nsc-react-component 4.5.10 → 4.5.12

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.
@@ -448,7 +448,6 @@ class FormPage extends PureComponent {
448
448
  } = config();
449
449
  let autoType = getLocalStore("formType", storePrefix ? storePrefix : "nsc-home");
450
450
  autoType = autoType ? autoType : null;
451
- console.log("forms", [...forms]);
452
451
  return /*#__PURE__*/React.createElement(Row, {
453
452
  gutter: 24
454
453
  }, forms.map((item, index) => {
@@ -720,4 +719,4 @@ class FormPage extends PureComponent {
720
719
  }
721
720
  }
722
721
  export default FormPage;
723
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsImNvbmZpZyIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJVdGlscyIsImZ1bmNzIiwicGFnZVJlZiIsInJlZnMiLCJyZWZMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNhbGxCYWNrIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsImNvbnZlcnRWYWx1ZSIsInNob3dGb3JtIiwiYWZ0ZXJSZW5kZXIiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0IiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDUiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2Iiwic2V0TG9hZGluZyIsInNldEVkaXRUeXBlIiwidHlwZSIsInNldEVkaXRJZCIsImdldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImNsb25lRGVlcCIsImZpbGVGb3JtYXQiLCJuZXdGaWxlTGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRGaWxlTGlzdCIsInN1Ym1pdEZsYWciLCJlcnJvciIsImRhdGVWYWx1ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJyYW5nZXJEYXRlIiwiZGF0ZUZvcm1hdCIsImUiLCJuZXdEYXRhIiwic3RyaW5naWZ5IiwidmFsdWVzIiwiZm9yRWFjaCIsImZpbGVLZXkiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwibmV3VmFsdWUiLCJkb1N1Ym1pdCIsImZvcm1kYXRhIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInN1Ym1pdFVybCIsInN1Ym1pdFBhcmFtcyIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJmdW5jIiwiRnVuY3Rpb24iLCJjb252ZXJQYXJhbXMiLCJjb25zb2xlIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwibXNnIiwic3VjY2VzcyIsInNldFRpbWVvdXQiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQxMCIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJyZXR1cm5EYXRhIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImxvZyIsImNyZWF0ZUVsZW1lbnQiLCJndXR0ZXIiLCJpbmRleCIsIl9pdGVtJHByb3BzIiwiX2l0ZW0kcHJvcHMyIiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwic3BsaXQiLCJhbGxvd0NoYXJzIiwiY2hpbGRyZW4iLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsImJpbmQiLCJkYXRhVHlwZSIsImRpc2FibGVkIiwicnVsZXMiLCJyZXF1aXJlZCIsIml0ZW1SZWYiLCJzcGFuIiwiX2l0ZW0kcHJvcHMzIiwic3R5bGUiLCJkaXNwbGF5IiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJub1N0eWxlIiwiZm9ybVJlbmRlciIsInJlZiIsIl9pdGVtJHByb3BzNCIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwicmVuZGVyIiwiZm9vdGVyIiwidGl0bGUiLCJtb2RhbFByb3BzIiwiZGVmYXVsdE1vZGFsUHJvcHMiLCJkcmF3ZXJQcm9wcyIsImRlZmF1bHREcmF3ZXJQcm9wcyIsInNlbGZCdXR0b25zIiwic2VsZlBhbmVzIiwiY2hpbGQiLCJfY2hpbGQkcHJvcHMiLCJwYWdlVHlwZSIsIl9pdGVtJHByb3BzNSIsIm9uT2siLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsImZvb3RlckJ1dHRvbiIsIm9uQ2xvc2UiLCJuZXdGb3Jtc09iaiIsImZvcm1Hcm91cHMiLCJvdGhlckdydXBzIiwic2hvd0Zvcm1zIiwiZ3JvdXBOYW1lIiwiaW5kZXhPZiIsImdyb3VwRm9ybXMiLCJmb3JtIiwiUGFuZVdpdGhvdXRQYWdlVHlwZSIsIlBhbmUiLCJjbGVhblByb3BzIiwiX2V4Y2x1ZGVkMiIsInNob3dNb2RlbCIsIm9uVmFsdWVzQ2hhbmdlIiwiY2hhbmdlZFZhbHVlcyIsImFsbFZhbHVlcyIsIm9uRm9ybUNoYW5nZSIsImNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwiT2JqZWN0Iiwia2V5cyIsImZvb3RlckNsYXNzTmFtZSIsImZvb3RlckZpeGVkIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlUHJvcHMge1xyXG4gIGZvcm1zPzogQXJyYXk8YW55PjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGZvb3RlckNsYXNzTmFtZT86IGFueTtcclxuICBva0J1dHRvblByb3BzPzogYW55O1xyXG4gIGNhbmNlbEJ1dHRvblByb3BzPzogYW55O1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZSB8IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25Gb3JtQ2hhbmdlPzogKHZhbHVlPzogYW55LCBhbGxWYWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBzdWJtaXRQYXJhbXM/OiBhbnk7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHByb3BzPzogSUZvcm1Qcm9wcztcclxuICByZXF1ZXN0T2JqZWN0Pzoge1xyXG4gICAgYWRkVXJsPzogc3RyaW5nO1xyXG4gICAgZWRpdG9yVXJsPzogc3RyaW5nO1xyXG4gICAgYWRkUGFyYW1zPzogYW55O1xyXG4gICAgZWRpdG9yUGFyYW1zPzogYW55O1xyXG4gICAgZGV0YWlsVXJsPzogc3RyaW5nO1xyXG4gIH07XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBmb290ZXJXaWR0aD86IGJvb2xlYW47XHJcbiAgZWRpdFR5cGU/OiBcIuaWsOWinlwiIHwgXCLnvJbovpFcIiB8IFwi5p+l55yLXCI7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZWRpdElkPzogc3RyaW5nO1xyXG4gIG1vZGFsUHJvcHM/OiBhbnk7XHJcbiAgZHJhd2VyUHJvcHM/OiBhbnk7XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG4gIGZvb3RlckZpeGVkPzogYm9vbGVhbjtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBjb252ZXJ0U3RyaW5nVG9PYmooZGVmYXVsdFZhbHVlLCB0aGlzLnByb3BzLlV0aWxzIHx8IHt9LCB7XHJcbiAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzLFxyXG4gICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgICBlZGl0SWQ6IG9yZ1ZhbHVlLmlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUob3JnVmFsdWUsIGxhYmVsKTtcclxuICAgICAgICAgIC8v5aSE55CG5paH5Lu25pWw5o2uXHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgICAgID8gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKClcclxuICAgICAgICAgICAgOiB7fTtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybShkZWZhdWx0VmFsdWUgfHwge30sIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgaGlkZShoaWRlID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgeyBvbkhpZGVGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uSGlkZUZvcm0pIHtcclxuICAgICAgb25IaWRlRm9ybSAmJiBvbkhpZGVGb3JtKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSwgZmlsZUxpc3Q6IHt9IH0pO1xyXG4gICAgaGlkZSAmJiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBzaG93Rm9ybShvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICB0aGlzLnNob3cob3JnVmFsdWUsIGVkaXRvcmZsYWcsIGNhbGxCYWNrKTtcclxuICB9XHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogbG9hZGluZyB9KTtcclxuICB9XHJcbiAgc2V0RWRpdFR5cGUodHlwZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGxhYmVsOiB0eXBlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldEVkaXRJZChpZCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGVkaXRJZDogaWQsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0Rm9ybVZhbHVlKCkge1xyXG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUsIGRpY3ROYW1lcywgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCBkYXRhID0gbG9kYXNoLmNsb25lRGVlcCh7IC4uLmZvcm1WYWx1ZSwgLi4uZGljdE5hbWVzIH0pO1xyXG4gICAgaWYgKHRoaXMuZmlsZUZvcm1hdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBuZXdGaWxlTGlzdCA9IHt9IGFzIGFueTtcclxuICAgICAgdGhpcy5maWxlRm9ybWF0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGlmIChmaWxlTGlzdFtpdGVtXS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdGaWxlTGlzdFtpdGVtXSA9IHRoaXMuZ2V0RmlsZUxpc3QoZmlsZUxpc3RbaXRlbV0gfHwgW10pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIC4uLm5ld0ZpbGVMaXN0IH07XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc3VibWl0RmxhZykge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFwi6K+3562J5b6F5omA5pyJ5paH5Lu25LiK5Lyg5a6M5oiQ77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlVmFsdWVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVWYWx1ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gZGF0YVtrZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmFuZ2VyRGF0ZVtrZXldKSB7XHJcbiAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGRhdGFbdGhpcy5yYW5nZXJEYXRlW2tleV1bMF1dID0gZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRba2V5XSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV0sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIHx8IHRoaXMuc3RhdGUuZWRpdElkIH07XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgcmV0dXJuIG5ld0RhdGE7XHJcbiAgfVxyXG4gIGNvbnZlcnRWYWx1ZSh2YWx1ZSwgdHlwZSkge1xyXG4gICAgbGV0IHZhbHVlcyA9IGxvZGFzaC5jbG9uZURlZXAodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuZmlsZUZvcm1hdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBmaWxlTGlzdCA9IHt9IGFzIGFueTtcclxuICAgICAgdGhpcy5maWxlRm9ybWF0LmZvckVhY2goKGZpbGVLZXkpID0+IHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1tmaWxlS2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSAmJiBBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBmaWxlTGlzdFtmaWxlS2V5XSA9IHRoaXMuZ2V0RmlsZUxpc3Qob2xkZGF0YSB8fCBbXSwgdHlwZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2ZpbGVLZXldID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBmaWxlTGlzdCB9KTtcclxuICAgIH1cclxuICAgIC8v5aSE55CG5pel5pyf5qC85byP5pWw5o2uXHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZXNba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlc1trZXldID0gZGF5anMob2xkZGF0YSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5yYW5nZXJEYXRlW2tleV0pIHtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMSA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVswXV07XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZTIgPSB2YWx1ZXNbdGhpcy5yYW5nZXJEYXRlW2tleV1bMV1dO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUxICYmIHZhbHVlMikge1xyXG4gICAgICAgICAgICAgIHZhbHVlc1trZXldID0gW1xyXG4gICAgICAgICAgICAgICAgZGF5anModmFsdWUxLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTIsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVzO1xyXG4gIH1cclxuICBzZXRGb3JtVmFsdWUodmFsdWUsIHR5cGUgPSBcIuafpeeci1wiKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgfVxyXG4gIGRvU3VibWl0KGZvcm1kYXRhLCBsYWJlbCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdWJtaXRVcmwsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBjYWxsQmFjayxcclxuICAgICAgcmVxdWVzdE9iamVjdCA9IHt9LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWRkVXJsLCBlZGl0b3JVcmwsIGFkZFBhcmFtcywgZWRpdG9yUGFyYW1zIH0gPSByZXF1ZXN0T2JqZWN0O1xyXG4gICAgbGV0IHVybCA9IHN1Ym1pdFVybDtcclxuICAgIGxldCBwYXJhbXM6IGFueSA9IHt9O1xyXG4gICAgaWYgKCFsYWJlbCB8fCBsYWJlbCA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgIHVybCA9IGFkZFVybCA/IGFkZFVybCA6IHN1Ym1pdFVybDtcclxuICAgICAgaWYgKGFkZFBhcmFtcyAmJiB0eXBlb2YgYWRkUGFyYW1zID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBVdGlscyA9IHRoaXMucHJvcHMuVXRpbHMgfHwge307XHJcbiAgICAgICAgbGV0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCBhZGRQYXJhbXMpO1xyXG4gICAgICAgIGxldCBjb252ZXJQYXJhbXMgPSBmdW5jKFV0aWxzKTtcclxuICAgICAgICBwYXJhbXMgPSBjb252ZXJQYXJhbXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyYW1zID0gYWRkUGFyYW1zID8gYWRkUGFyYW1zIDogc3VibWl0UGFyYW1zO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcclxuICAgICAgdXJsID0gZWRpdG9yVXJsID8gZWRpdG9yVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoZWRpdG9yUGFyYW1zICYmIHR5cGVvZiBlZGl0b3JQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGVkaXRvclBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBlZGl0b3JQYXJhbXMgPyBlZGl0b3JQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCLphY3nva5VcmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZGF0YSA9IHt9LCAuLi5vdGhlclBhcmFtcyB9ID0gcGFyYW1zO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/Lm9uU3VibWl0KFxyXG4gICAgICB1cmwsXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiB7IC4uLmZvcm1kYXRhLCAuLi5kYXRhIH0sXHJcbiAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgICAuLi5vdGhlclBhcmFtcyxcclxuICAgICAgfSxcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlLCBtc2cgfSA9IHJlcztcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoZGF0YSwgbGFiZWwgPSBcIuaWsOWinlwiKSB7XHJcbiAgICB0aGlzLnN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gICAgbGV0IGZpbGVMaXN0ID0gW10gYXMgYW55O1xyXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgIGZpbGVJZDogaXRlbS5maWxlSWQsXHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICAgICAgb2JqLnN0YXR1cyA9IFwiZG9uZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGFiZWwgIT09IFwi5p+l55yLXCIgJiYgaXRlbS5zdGF0dXMgIT09IFwiZG9uZVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdEZsYWcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsZUxpc3QucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWxlTGlzdDtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgeyBvblN1Ym1pdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHZhbGlkID0gdGhpcy52YWxpZDtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50XHJcbiAgICAgID8udmFsaWRhdGVGaWVsZHMoKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmdldEZvcm1WYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIGlmIChvblN1Ym1pdCkge1xyXG4gICAgICAgICAgbGV0IHJldHVybkRhdGEgPSBsb2Rhc2guY2xvbmVEZWVwKGRhdGEpO1xyXG4gICAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQocmV0dXJuRGF0YSwgbGFiZWwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRvU3VibWl0KGRhdGEsIGxhYmVsKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4ge30pO1xyXG4gIH1cclxuICB2YWx1ZUNoYW5nZSh7IHR5cGUsIGRpY3ROYW1lIH0sIHByb3BzLCB2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpIHtcclxuICAgIGlmICh2YWx1ZU9wdGlvbikge1xyXG4gICAgICBpZiAoZGljdE5hbWUpIHtcclxuICAgICAgICBjb25zdCB7IGRpY3ROYW1lcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICBjb25zdCBuZXdOYW1lcyA9IHsgLi4uZGljdE5hbWVzIH0gYXMgYW55O1xyXG4gICAgICAgIG5ld05hbWVzW2RpY3ROYW1lXSA9IHZhbHVlT3B0aW9uLmxhYmVsO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGljdE5hbWVzOiBuZXdOYW1lcyxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UodmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgZm9ybVJlZjogdGhpcy5mb3JtUmVmLFxyXG4gICAgICAgICAgZnVuY3M6IHRoaXMucHJvcHMuZnVuY3MgfHwge30sXHJcbiAgICAgICAgICByZWZzOiB0aGlzLnJlZkxpc3QsXHJcbiAgICAgICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGlmICh0eXBlID09IFwiU2VsZWN0XCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlT3B0aW9uID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgICBldmVudE9wdGlvbi5kYXRhID0gZGF0YTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJEYXRlUGlja2VyXCIgfHwgdHlwZSA9PSBcIlJhbmdlUGlja2VyXCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlU3RyID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNlbGZGdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb25cIiwgXCJVdGlsc1wiLCBwcm9wcy5vbkNoYW5nZSk7XHJcbiAgICAgICAgc2VsZkZ1bmMoZXZlbnRPcHRpb24sIFV0aWxzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyRm9ybShmb3JtcywgbGFiZWwpIHtcclxuICAgIGNvbnN0IG5ld1ZhbGlkOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3QgeyBmb3JtVHlwZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgc3RvcmVQcmVmaXggfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0TG9jYWxTdG9yZShcclxuICAgICAgXCJmb3JtVHlwZVwiLFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4IDogXCJuc2MtaG9tZVwiLFxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZSA6IG51bGw7XHJcbiAgICBjb25zb2xlLmxvZyhcImZvcm1zXCIsIFsuLi5mb3Jtc10pO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAgICB7Zm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9XHJcbiAgICAgICAgICAgICAgaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbS50eXBlID09IFwiUmFuZ2VQaWNrZXJcIiAmJiBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXJEYXRlW2l0ZW0ubmFtZV0gPSBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgbGV0IGNoaWxkcmVuID0gaXRlbS5wcm9wcz8uY2hpbGRyZW47XHJcblxyXG4gICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gLFxyXG4gICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZS5iaW5kKFxyXG4gICAgICAgICAgICAgIHRoaXMsXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgICAgZGljdE5hbWU6IGl0ZW0uZGljdE5hbWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7IC4uLml0ZW0ucHJvcHMgfSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlOyAvL2Zvcm0uaXRlbSDkvb/nlKhpbnB1dOe7hOS7tmFsbG93Q2hhcnPlv4Xpobvpu5jorqR0cnVlLOS4jeeEtui+k+WFpeeJueauiuWtl+espuaLv+WIsOeahOWAvOS4jeWvuVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmZvcm1hdDtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5kYXRhVHlwZTtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5jaGlsZHJlbjtcclxuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcHJvcHMucGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKChpdGVtLnJ1bGVzICYmIGl0ZW0ucnVsZXMubGVuZ3RoID4gMCkgfHwgaXRlbS5yZXF1aXJlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBmb3Jtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgaXRlbVJlZjogYW55ID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICAgICAgICAgIHRoaXMucmVmTGlzdFtpdGVtLm5hbWVdID0gaXRlbVJlZjtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgZm9ybVR5cGUgPT0gXCJkcmF3ZXJcIiB8fFxyXG4gICAgICAgICAgICAoZm9ybVR5cGUgPT0gXCJhdXRvXCIgJiYgYXV0b1R5cGUgPT0gXCJkcmF3ZXJcIilcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBpdGVtLnNwYW4gPSAyNDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgIT09IFwiVXBsb2FkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5zaG93ICE9PSBmYWxzZSA/IFwiYmxvY2tcIiA6IFwibm9uZVwiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgbm9TdHlsZT17aXRlbS5ub1N0eWxlIHx8IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS5mb3JtUmVuZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmZvcm1SZW5kZXIocHJvcHMpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IGl0ZW1SZWYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUZvcm1hdC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfVxyXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IGl0ZW0uc2hvdyA/IFwibm9uZVwiIDogXCJibG9ja1wiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2l0ZW0ucmVxdWlyZWR9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmZvcm1SZW5kZXIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5mb3JtUmVuZGVyKHByb3BzKVxyXG4gICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0W2l0ZW0ubmFtZV0gfHwgW119XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkxpc3RDaGFuZ2U9eyhsaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogbGFiZWwgIT09IFwi5p+l55yLXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtpdGVtUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbGFiZWwgIT09IFwi5p+l55yLXCIgJiYgPEJ1dHRvbj7kuIrkvKDmlofku7Y8L0J1dHRvbj59XHJcbiAgICAgICAgICAgICAgICAgICAgPC9VcGxvYWQ+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1zID0gW10sXHJcbiAgICAgIHByb3BzID0ge30sXHJcbiAgICAgIGZvb3RlciA9IHRydWUsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBmb3JtVHlwZSA9IFwicGFnZVwiLFxyXG4gICAgICB0aXRsZSA9IFwiXCIsXHJcbiAgICAgIG1vZGFsUHJvcHM6IGRlZmF1bHRNb2RhbFByb3BzID0ge30sXHJcbiAgICAgIGRyYXdlclByb3BzOiBkZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbG9hZGluZywgbGFiZWwgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgc2VsZkJ1dHRvbnMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgc2VsZlBhbmVzID0gW10gYXMgYW55O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmUGFuZXMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT0gXCJvYmplY3RcIiAmJiBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCArIHRpdGxlLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICAgIGZvb3RlckJ1dHRvbjogc2VsZkJ1dHRvbnMsXHJcbiAgICAgIC4uLmRlZmF1bHRNb2RhbFByb3BzLFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgbGV0IGRyYXdlclByb3BzID0ge1xyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogNjUwLFxyXG4gICAgICBmb290ZXJCdXR0b246IHNlbGZCdXR0b25zLFxyXG4gICAgICAuLi5kZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZmlsZUZvcm1hdCA9IFtdO1xyXG4gICAgbGV0IG5ld0Zvcm1zT2JqID0ge30gYXMgYW55O1xyXG4gICAgbGV0IGZvcm1Hcm91cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgb3RoZXJHcnVwcyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzaG93Rm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAvL+WkhOeQhuihqOWNleaVsOaNrlxyXG4gICAgZm9ybXMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgc2hvd0Zvcm1zLnB1c2goaXRlbSk7XHJcbiAgICAgIGlmIChpdGVtLmdyb3VwTmFtZSAmJiBmb3JtR3JvdXBzLmluZGV4T2YoaXRlbS5ncm91cE5hbWUpIDwgMCkge1xyXG4gICAgICAgIGZvcm1Hcm91cHMucHVzaChpdGVtLmdyb3VwTmFtZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoIWl0ZW0uZ3JvdXBOYW1lKSB7XHJcbiAgICAgICAgb3RoZXJHcnVwcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChmb3JtR3JvdXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9ybUdyb3Vwcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBncm91cEZvcm1zID0gW10gYXMgYW55O1xyXG4gICAgICAgIHNob3dGb3Jtcy5tYXAoKGZvcm06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZvcm0uZ3JvdXBOYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgZ3JvdXBGb3Jtcy5wdXNoKGZvcm0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW2l0ZW1dID0gZ3JvdXBGb3JtcztcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvdGhlckdydXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBuZXdGb3Jtc09ialtcIm5vR3JvdXBOYW1lXCJdID0gb3RoZXJHcnVwcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgUGFuZVdpdGhvdXRQYWdlVHlwZSA9IChQYW5lLCBwcm9wcykgPT4ge1xyXG4gICAgICBjb25zdCB7IHBhZ2VUeXBlLCAuLi5jbGVhblByb3BzIH0gPSBwcm9wcztcclxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZS50eXBlLCBjbGVhblByb3BzKTtcclxuICAgIH07XHJcbiAgICAvL+iHquWumuS5ieaMiemSrlxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEZvcm1cclxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cclxuICAgICAgICBzaG93TW9kZWw9e3RoaXMucHJvcHMuZm9ybVR5cGUgPT0gXCJwYWdlXCIgPyBudWxsIDogdGhpcy5wcm9wcy5mb3JtVHlwZX1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBkcmF3ZXJQcm9wcz17eyAuLi5kcmF3ZXJQcm9wcyB9fVxyXG4gICAgICAgIC8vIGxhYmVsQ29sPXt7IGZsZXg6IFwiMTAwcHhcIiB9fVxyXG4gICAgICAgIC8vIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cclxuICAgICAgICBvblZhbHVlc0NoYW5nZT17KGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBvbkZvcm1DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICBvbkZvcm1DaGFuZ2UgJiYgb25Gb3JtQ2hhbmdlKGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcyk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGFuZ2VWYWxpZD17dGhpcy5wcm9wcy5jaGFuZ2VWYWxpZH1cclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhZ2VcIj5cclxuICAgICAgICAgIHtmb3JtR3JvdXBzLmxlbmd0aCA9PSAwID8gKFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmZvcm1UeXBlICE9PSBcInBhZ2VcIiA/IChcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlckZvcm0oc2hvd0Zvcm1zLCBsYWJlbClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckZvcm0oc2hvd0Zvcm1zLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG5ld0Zvcm1zT2JqKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17a2V5fSBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHtrZXkgIT0gXCJub0dyb3VwTmFtZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXRpdGxlXCI+e2tleX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShuZXdGb3Jtc09ialtrZXldLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAge3NlbGZQYW5lcy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgIHNlbGZQYW5lcy5tYXAoKFBhbmUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiIGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICB7UGFuZVdpdGhvdXRQYWdlVHlwZShQYW5lLCB7IC4uLlBhbmUucHJvcHMgfSl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIHtmb3JtVHlwZSA9PT0gXCJwYWdlXCIgJiYgZm9vdGVyID09IHRydWUgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZvb3RlckNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIFwibnNjLWZvcm0tcGFnZS1mb290ZXJcIixcclxuICAgICAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5mb290ZXJGaXhlZCAhPT0gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICA/IFwibnNjLWZvcm0tcGFnZS1mb290ZXItZml4ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIDogXCJcIixcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICBbdGhpcy5zdGF0ZS53aWR0aCA/IFwibnNjLWZvcm0tcGFnZS1mb290ZXItZml4ZWQtd2lkdGhcIiA6IFwiXCJdLFxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2FuY2VsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5Y+W5raIXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMub2tCdXR0b25Qcm9wc31cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5vblN1Ym1pdCgpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGxvYWRpbmc9e3RoaXMuc3RhdGUubG9hZGluZ31cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICDkv53lrZhcclxuICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICB7c2VsZkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcIm5zYy1mb3JtLXBhZ2UtZm9vdGVyLWJ0blwifSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7Zm9ybVR5cGUgPT09IFwicGFnZVwiICYmIGZvb3RlciAhPT0gdHJ1ZSAmJiB0aGlzLnByb3BzLmZvb3Rlcn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Gb3JtPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvcm1QYWdlO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBbUIsT0FBTztBQUN2RCxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLFNBQWtCQyxPQUFPLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sb0JBQW9CO0FBQ3hDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxTQUFTQyxVQUFVLEVBQUVDLGFBQWEsUUFBUSxtQkFBbUI7QUFDN0QsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxxQkFBcUI7QUFDNUIsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBRTVCLE9BQU9DLFVBQVUsTUFBTSxhQUFhO0FBR3BDLFNBQVNDLGtCQUFrQixRQUFRLHNCQUFzQjtBQUN6RCxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQWdDakMsTUFBTUMsUUFB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
722
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsImNvbmZpZyIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJVdGlscyIsImZ1bmNzIiwicGFnZVJlZiIsInJlZnMiLCJyZWZMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNhbGxCYWNrIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsImNvbnZlcnRWYWx1ZSIsInNob3dGb3JtIiwiYWZ0ZXJSZW5kZXIiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0IiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDUiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2Iiwic2V0TG9hZGluZyIsInNldEVkaXRUeXBlIiwidHlwZSIsInNldEVkaXRJZCIsImdldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImNsb25lRGVlcCIsImZpbGVGb3JtYXQiLCJuZXdGaWxlTGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRGaWxlTGlzdCIsInN1Ym1pdEZsYWciLCJlcnJvciIsImRhdGVWYWx1ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJyYW5nZXJEYXRlIiwiZGF0ZUZvcm1hdCIsImUiLCJuZXdEYXRhIiwic3RyaW5naWZ5IiwidmFsdWVzIiwiZm9yRWFjaCIsImZpbGVLZXkiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwibmV3VmFsdWUiLCJkb1N1Ym1pdCIsImZvcm1kYXRhIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInN1Ym1pdFVybCIsInN1Ym1pdFBhcmFtcyIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJmdW5jIiwiRnVuY3Rpb24iLCJjb252ZXJQYXJhbXMiLCJjb25zb2xlIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwibXNnIiwic3VjY2VzcyIsInNldFRpbWVvdXQiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQxMCIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJyZXR1cm5EYXRhIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJndXR0ZXIiLCJpbmRleCIsIl9pdGVtJHByb3BzIiwiX2l0ZW0kcHJvcHMyIiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwic3BsaXQiLCJhbGxvd0NoYXJzIiwiY2hpbGRyZW4iLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsImJpbmQiLCJkYXRhVHlwZSIsImRpc2FibGVkIiwicnVsZXMiLCJyZXF1aXJlZCIsIml0ZW1SZWYiLCJzcGFuIiwiX2l0ZW0kcHJvcHMzIiwic3R5bGUiLCJkaXNwbGF5IiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJub1N0eWxlIiwiZm9ybVJlbmRlciIsInJlZiIsIl9pdGVtJHByb3BzNCIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwicmVuZGVyIiwiZm9vdGVyIiwidGl0bGUiLCJtb2RhbFByb3BzIiwiZGVmYXVsdE1vZGFsUHJvcHMiLCJkcmF3ZXJQcm9wcyIsImRlZmF1bHREcmF3ZXJQcm9wcyIsInNlbGZCdXR0b25zIiwic2VsZlBhbmVzIiwiY2hpbGQiLCJfY2hpbGQkcHJvcHMiLCJwYWdlVHlwZSIsIl9pdGVtJHByb3BzNSIsIm9uT2siLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsImZvb3RlckJ1dHRvbiIsIm9uQ2xvc2UiLCJuZXdGb3Jtc09iaiIsImZvcm1Hcm91cHMiLCJvdGhlckdydXBzIiwic2hvd0Zvcm1zIiwiZ3JvdXBOYW1lIiwiaW5kZXhPZiIsImdyb3VwRm9ybXMiLCJmb3JtIiwiUGFuZVdpdGhvdXRQYWdlVHlwZSIsIlBhbmUiLCJjbGVhblByb3BzIiwiX2V4Y2x1ZGVkMiIsInNob3dNb2RlbCIsIm9uVmFsdWVzQ2hhbmdlIiwiY2hhbmdlZFZhbHVlcyIsImFsbFZhbHVlcyIsIm9uRm9ybUNoYW5nZSIsImNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwiT2JqZWN0Iiwia2V5cyIsImZvb3RlckNsYXNzTmFtZSIsImZvb3RlckZpeGVkIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlUHJvcHMge1xyXG4gIGZvcm1zPzogQXJyYXk8YW55PjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGZvb3RlckNsYXNzTmFtZT86IGFueTtcclxuICBva0J1dHRvblByb3BzPzogYW55O1xyXG4gIGNhbmNlbEJ1dHRvblByb3BzPzogYW55O1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZSB8IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25Gb3JtQ2hhbmdlPzogKHZhbHVlPzogYW55LCBhbGxWYWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBzdWJtaXRQYXJhbXM/OiBhbnk7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHByb3BzPzogSUZvcm1Qcm9wcztcclxuICByZXF1ZXN0T2JqZWN0Pzoge1xyXG4gICAgYWRkVXJsPzogc3RyaW5nO1xyXG4gICAgZWRpdG9yVXJsPzogc3RyaW5nO1xyXG4gICAgYWRkUGFyYW1zPzogYW55O1xyXG4gICAgZWRpdG9yUGFyYW1zPzogYW55O1xyXG4gICAgZGV0YWlsVXJsPzogc3RyaW5nO1xyXG4gIH07XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBmb290ZXJXaWR0aD86IGJvb2xlYW47XHJcbiAgZWRpdFR5cGU/OiBcIuaWsOWinlwiIHwgXCLnvJbovpFcIiB8IFwi5p+l55yLXCI7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZWRpdElkPzogc3RyaW5nO1xyXG4gIG1vZGFsUHJvcHM/OiBhbnk7XHJcbiAgZHJhd2VyUHJvcHM/OiBhbnk7XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG4gIGZvb3RlckZpeGVkPzogYm9vbGVhbjtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBjb252ZXJ0U3RyaW5nVG9PYmooZGVmYXVsdFZhbHVlLCB0aGlzLnByb3BzLlV0aWxzIHx8IHt9LCB7XHJcbiAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzLFxyXG4gICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgICBlZGl0SWQ6IG9yZ1ZhbHVlLmlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUob3JnVmFsdWUsIGxhYmVsKTtcclxuICAgICAgICAgIC8v5aSE55CG5paH5Lu25pWw5o2uXHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgICAgID8gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKClcclxuICAgICAgICAgICAgOiB7fTtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybShkZWZhdWx0VmFsdWUgfHwge30sIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgaGlkZShoaWRlID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgeyBvbkhpZGVGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uSGlkZUZvcm0pIHtcclxuICAgICAgb25IaWRlRm9ybSAmJiBvbkhpZGVGb3JtKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSwgZmlsZUxpc3Q6IHt9IH0pO1xyXG4gICAgaGlkZSAmJiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBzaG93Rm9ybShvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICB0aGlzLnNob3cob3JnVmFsdWUsIGVkaXRvcmZsYWcsIGNhbGxCYWNrKTtcclxuICB9XHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogbG9hZGluZyB9KTtcclxuICB9XHJcbiAgc2V0RWRpdFR5cGUodHlwZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGxhYmVsOiB0eXBlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldEVkaXRJZChpZCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGVkaXRJZDogaWQsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0Rm9ybVZhbHVlKCkge1xyXG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUsIGRpY3ROYW1lcywgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCBkYXRhID0gbG9kYXNoLmNsb25lRGVlcCh7IC4uLmZvcm1WYWx1ZSwgLi4uZGljdE5hbWVzIH0pO1xyXG4gICAgaWYgKHRoaXMuZmlsZUZvcm1hdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBuZXdGaWxlTGlzdCA9IHt9IGFzIGFueTtcclxuICAgICAgdGhpcy5maWxlRm9ybWF0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGlmIChmaWxlTGlzdFtpdGVtXS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdGaWxlTGlzdFtpdGVtXSA9IHRoaXMuZ2V0RmlsZUxpc3QoZmlsZUxpc3RbaXRlbV0gfHwgW10pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIC4uLm5ld0ZpbGVMaXN0IH07XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc3VibWl0RmxhZykge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFwi6K+3562J5b6F5omA5pyJ5paH5Lu25LiK5Lyg5a6M5oiQ77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlVmFsdWVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVWYWx1ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gZGF0YVtrZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmFuZ2VyRGF0ZVtrZXldKSB7XHJcbiAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGRhdGFbdGhpcy5yYW5nZXJEYXRlW2tleV1bMF1dID0gZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRba2V5XSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV0sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIHx8IHRoaXMuc3RhdGUuZWRpdElkIH07XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgcmV0dXJuIG5ld0RhdGE7XHJcbiAgfVxyXG4gIGNvbnZlcnRWYWx1ZSh2YWx1ZSwgdHlwZSkge1xyXG4gICAgbGV0IHZhbHVlcyA9IGxvZGFzaC5jbG9uZURlZXAodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuZmlsZUZvcm1hdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBmaWxlTGlzdCA9IHt9IGFzIGFueTtcclxuICAgICAgdGhpcy5maWxlRm9ybWF0LmZvckVhY2goKGZpbGVLZXkpID0+IHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1tmaWxlS2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSAmJiBBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBmaWxlTGlzdFtmaWxlS2V5XSA9IHRoaXMuZ2V0RmlsZUxpc3Qob2xkZGF0YSB8fCBbXSwgdHlwZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2ZpbGVLZXldID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBmaWxlTGlzdCB9KTtcclxuICAgIH1cclxuICAgIC8v5aSE55CG5pel5pyf5qC85byP5pWw5o2uXHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZXNba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlc1trZXldID0gZGF5anMob2xkZGF0YSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5yYW5nZXJEYXRlW2tleV0pIHtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMSA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVswXV07XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZTIgPSB2YWx1ZXNbdGhpcy5yYW5nZXJEYXRlW2tleV1bMV1dO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUxICYmIHZhbHVlMikge1xyXG4gICAgICAgICAgICAgIHZhbHVlc1trZXldID0gW1xyXG4gICAgICAgICAgICAgICAgZGF5anModmFsdWUxLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTIsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVzO1xyXG4gIH1cclxuICBzZXRGb3JtVmFsdWUodmFsdWUsIHR5cGUgPSBcIuafpeeci1wiKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgfVxyXG4gIGRvU3VibWl0KGZvcm1kYXRhLCBsYWJlbCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdWJtaXRVcmwsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBjYWxsQmFjayxcclxuICAgICAgcmVxdWVzdE9iamVjdCA9IHt9LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWRkVXJsLCBlZGl0b3JVcmwsIGFkZFBhcmFtcywgZWRpdG9yUGFyYW1zIH0gPSByZXF1ZXN0T2JqZWN0O1xyXG4gICAgbGV0IHVybCA9IHN1Ym1pdFVybDtcclxuICAgIGxldCBwYXJhbXM6IGFueSA9IHt9O1xyXG4gICAgaWYgKCFsYWJlbCB8fCBsYWJlbCA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgIHVybCA9IGFkZFVybCA/IGFkZFVybCA6IHN1Ym1pdFVybDtcclxuICAgICAgaWYgKGFkZFBhcmFtcyAmJiB0eXBlb2YgYWRkUGFyYW1zID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBVdGlscyA9IHRoaXMucHJvcHMuVXRpbHMgfHwge307XHJcbiAgICAgICAgbGV0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCBhZGRQYXJhbXMpO1xyXG4gICAgICAgIGxldCBjb252ZXJQYXJhbXMgPSBmdW5jKFV0aWxzKTtcclxuICAgICAgICBwYXJhbXMgPSBjb252ZXJQYXJhbXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyYW1zID0gYWRkUGFyYW1zID8gYWRkUGFyYW1zIDogc3VibWl0UGFyYW1zO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcclxuICAgICAgdXJsID0gZWRpdG9yVXJsID8gZWRpdG9yVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoZWRpdG9yUGFyYW1zICYmIHR5cGVvZiBlZGl0b3JQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGVkaXRvclBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBlZGl0b3JQYXJhbXMgPyBlZGl0b3JQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCLphY3nva5VcmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZGF0YSA9IHt9LCAuLi5vdGhlclBhcmFtcyB9ID0gcGFyYW1zO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/Lm9uU3VibWl0KFxyXG4gICAgICB1cmwsXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiB7IC4uLmZvcm1kYXRhLCAuLi5kYXRhIH0sXHJcbiAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgICAuLi5vdGhlclBhcmFtcyxcclxuICAgICAgfSxcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlLCBtc2cgfSA9IHJlcztcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoZGF0YSwgbGFiZWwgPSBcIuaWsOWinlwiKSB7XHJcbiAgICB0aGlzLnN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gICAgbGV0IGZpbGVMaXN0ID0gW10gYXMgYW55O1xyXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgIGZpbGVJZDogaXRlbS5maWxlSWQsXHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICAgICAgb2JqLnN0YXR1cyA9IFwiZG9uZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGFiZWwgIT09IFwi5p+l55yLXCIgJiYgaXRlbS5zdGF0dXMgIT09IFwiZG9uZVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdEZsYWcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsZUxpc3QucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWxlTGlzdDtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgeyBvblN1Ym1pdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHZhbGlkID0gdGhpcy52YWxpZDtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50XHJcbiAgICAgID8udmFsaWRhdGVGaWVsZHMoKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmdldEZvcm1WYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIGlmIChvblN1Ym1pdCkge1xyXG4gICAgICAgICAgbGV0IHJldHVybkRhdGEgPSBsb2Rhc2guY2xvbmVEZWVwKGRhdGEpO1xyXG4gICAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQocmV0dXJuRGF0YSwgbGFiZWwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRvU3VibWl0KGRhdGEsIGxhYmVsKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4ge30pO1xyXG4gIH1cclxuICB2YWx1ZUNoYW5nZSh7IHR5cGUsIGRpY3ROYW1lIH0sIHByb3BzLCB2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpIHtcclxuICAgIGlmICh2YWx1ZU9wdGlvbikge1xyXG4gICAgICBpZiAoZGljdE5hbWUpIHtcclxuICAgICAgICBjb25zdCB7IGRpY3ROYW1lcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICBjb25zdCBuZXdOYW1lcyA9IHsgLi4uZGljdE5hbWVzIH0gYXMgYW55O1xyXG4gICAgICAgIG5ld05hbWVzW2RpY3ROYW1lXSA9IHZhbHVlT3B0aW9uLmxhYmVsO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGljdE5hbWVzOiBuZXdOYW1lcyxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UodmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgZm9ybVJlZjogdGhpcy5mb3JtUmVmLFxyXG4gICAgICAgICAgZnVuY3M6IHRoaXMucHJvcHMuZnVuY3MgfHwge30sXHJcbiAgICAgICAgICByZWZzOiB0aGlzLnJlZkxpc3QsXHJcbiAgICAgICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGlmICh0eXBlID09IFwiU2VsZWN0XCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlT3B0aW9uID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgICBldmVudE9wdGlvbi5kYXRhID0gZGF0YTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJEYXRlUGlja2VyXCIgfHwgdHlwZSA9PSBcIlJhbmdlUGlja2VyXCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlU3RyID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNlbGZGdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb25cIiwgXCJVdGlsc1wiLCBwcm9wcy5vbkNoYW5nZSk7XHJcbiAgICAgICAgc2VsZkZ1bmMoZXZlbnRPcHRpb24sIFV0aWxzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyRm9ybShmb3JtcywgbGFiZWwpIHtcclxuICAgIGNvbnN0IG5ld1ZhbGlkOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3QgeyBmb3JtVHlwZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgc3RvcmVQcmVmaXggfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0TG9jYWxTdG9yZShcclxuICAgICAgXCJmb3JtVHlwZVwiLFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4IDogXCJuc2MtaG9tZVwiLFxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZSA6IG51bGw7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Um93IGd1dHRlcj17MjR9PlxyXG4gICAgICAgIHtmb3Jtcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXRlbVByb3BzID0gaXRlbS5wcm9wcyB8fCB7fTtcclxuICAgICAgICAgIGlmIChpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVWYWx1ZUZvcm1hdFtpdGVtLm5hbWVdID1cclxuICAgICAgICAgICAgICBpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtUHJvcHMuZm9ybWF0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLmZvcm1hdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiICYmIGl0ZW0ubmFtZS5zcGxpdChcIixcIikubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICB0aGlzLnJhbmdlckRhdGVbaXRlbS5uYW1lXSA9IGl0ZW0ubmFtZS5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsZXQgYWxsb3dDaGFycyA9IGl0ZW0ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBpdGVtLnByb3BzPy5jaGlsZHJlbjtcclxuXHJcbiAgICAgICAgICBsZXQgcHJvcHMgPSB7XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXHJcbiAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXHJcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLnZhbHVlQ2hhbmdlLmJpbmQoXHJcbiAgICAgICAgICAgICAgdGhpcyxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICAgICAgICBkaWN0TmFtZTogaXRlbS5kaWN0TmFtZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHsgLi4uaXRlbS5wcm9wcyB9LFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGlmICghaXRlbS50eXBlIHx8IGl0ZW0udHlwZSA9PSBcIklucHV0XCIpIHtcclxuICAgICAgICAgICAgcHJvcHMuYWxsb3dDaGFycyA9IHRydWU7IC8vZm9ybS5pdGVtIOS9v+eUqGlucHV057uE5Lu2YWxsb3dDaGFyc+W/hemhu+m7mOiupHRydWUs5LiN54S26L6T5YWl54m55q6K5a2X56ym5ou/5Yiw55qE5YC85LiN5a+5XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZWxldGUgcHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICBkZWxldGUgcHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmRhdGFUeXBlO1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmNoaWxkcmVuO1xyXG4gICAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgICAgcHJvcHMuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBwcm9wcy5wbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoKGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGggPiAwKSB8fCBpdGVtLnJlcXVpcmVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmRleCArIDEgPT09IGZvcm1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkID0gbmV3VmFsaWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBpdGVtUmVmOiBhbnkgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gICAgICAgICAgdGhpcy5yZWZMaXN0W2l0ZW0ubmFtZV0gPSBpdGVtUmVmO1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBmb3JtVHlwZSA9PSBcImRyYXdlclwiIHx8XHJcbiAgICAgICAgICAgIChmb3JtVHlwZSA9PSBcImF1dG9cIiAmJiBhdXRvVHlwZSA9PSBcImRyYXdlclwiKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uc3BhbiA9IDI0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW0udHlwZSAhPT0gXCJVcGxvYWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxDb2xcclxuICAgICAgICAgICAgICAgIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn1cclxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBpdGVtLnNob3cgIT09IGZhbHNlID8gXCJibG9ja1wiIDogXCJub25lXCIgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lPXtpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCJ9XHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpdGVtLnJlcXVpcmVkfVxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtpdGVtLnByb3BzPy50eXBlfVxyXG4gICAgICAgICAgICAgICAgICBub1N0eWxlPXtpdGVtLm5vU3R5bGUgfHwgZmFsc2V9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmZvcm1SZW5kZXJcclxuICAgICAgICAgICAgICAgICAgICA/IGl0ZW0uZm9ybVJlbmRlcihwcm9wcylcclxuICAgICAgICAgICAgICAgICAgICA6IGdldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogaXRlbVJlZixcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlRm9ybWF0LnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5zaG93ID8gXCJub25lXCIgOiBcImJsb2NrXCIgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtpdGVtLnByb3BzPy50eXBlfVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge2l0ZW0uZm9ybVJlbmRlciA/IChcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLmZvcm1SZW5kZXIocHJvcHMpXHJcbiAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPFVwbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3RbaXRlbS5uYW1lXSB8fCBbXX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uTGlzdENoYW5nZT17KGxpc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUxpc3Q6IHsgLi4uZmlsZUxpc3QsIFtpdGVtLm5hbWVdOiBsaXN0IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0PXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dEb3dubG9hZEljb246IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dSZW1vdmVJY29uOiBsYWJlbCAhPT0gXCLmn6XnnItcIixcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICByZWY9e2l0ZW1SZWZ9XHJcbiAgICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBsYWJlbCAhPT0gXCLmn6XnnItcIiAmJiA8QnV0dG9uPuS4iuS8oOaWh+S7tjwvQnV0dG9uPn1cclxuICAgICAgICAgICAgICAgICAgICA8L1VwbG9hZD5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L1Jvdz5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZm9ybXMgPSBbXSxcclxuICAgICAgcHJvcHMgPSB7fSxcclxuICAgICAgZm9vdGVyID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHRpdGxlID0gXCJcIixcclxuICAgICAgbW9kYWxQcm9wczogZGVmYXVsdE1vZGFsUHJvcHMgPSB7fSxcclxuICAgICAgZHJhd2VyUHJvcHM6IGRlZmF1bHREcmF3ZXJQcm9wcyxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzZWxmQnV0dG9ucyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzZWxmUGFuZXMgPSBbXSBhcyBhbnk7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZlBhbmVzLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJmb3JtUGFuZVwiKSB7XHJcbiAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09IFwib2JqZWN0XCIgJiYgc2VsZlBhbmVzLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgbW9kYWxQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsICsgdGl0bGUsXHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DYW5jZWw6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICBva0J1dHRvblByb3BzOiB7IGxvYWRpbmc6IGxvYWRpbmcgfSxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgICAgZm9vdGVyQnV0dG9uOiBzZWxmQnV0dG9ucyxcclxuICAgICAgLi4uZGVmYXVsdE1vZGFsUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBsZXQgZHJhd2VyUHJvcHMgPSB7XHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DbG9zZTogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIHdpZHRoOiA2NTAsXHJcbiAgICAgIGZvb3RlckJ1dHRvbjogc2VsZkJ1dHRvbnMsXHJcbiAgICAgIC4uLmRlZmF1bHREcmF3ZXJQcm9wcyxcclxuICAgIH0gYXMgYW55O1xyXG4gICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgbW9kYWxQcm9wcy5mb290ZXIgPSBudWxsO1xyXG4gICAgICBkcmF3ZXJQcm9wcy5mb290ZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlVmFsdWVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZGF0ZUZvcm1hdCA9IHt9O1xyXG4gICAgdGhpcy5maWxlRm9ybWF0ID0gW107XHJcbiAgICBsZXQgbmV3Rm9ybXNPYmogPSB7fSBhcyBhbnk7XHJcbiAgICBsZXQgZm9ybUdyb3VwcyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBvdGhlckdydXBzID0gW10gYXMgYW55O1xyXG4gICAgbGV0IHNob3dGb3JtcyA9IFtdIGFzIGFueTtcclxuICAgIC8v5aSE55CG6KGo5Y2V5pWw5o2uXHJcbiAgICBmb3Jtcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBzaG93Rm9ybXMucHVzaChpdGVtKTtcclxuICAgICAgaWYgKGl0ZW0uZ3JvdXBOYW1lICYmIGZvcm1Hcm91cHMuaW5kZXhPZihpdGVtLmdyb3VwTmFtZSkgPCAwKSB7XHJcbiAgICAgICAgZm9ybUdyb3Vwcy5wdXNoKGl0ZW0uZ3JvdXBOYW1lKTtcclxuICAgICAgfSBlbHNlIGlmICghaXRlbS5ncm91cE5hbWUpIHtcclxuICAgICAgICBvdGhlckdydXBzLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGZvcm1Hcm91cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3JtR3JvdXBzLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGdyb3VwRm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAgICAgc2hvd0Zvcm1zLm1hcCgoZm9ybTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZm9ybS5ncm91cE5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBncm91cEZvcm1zLnB1c2goZm9ybSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3Rm9ybXNPYmpbaXRlbV0gPSBncm91cEZvcm1zO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKG90aGVyR3J1cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW1wibm9Hcm91cE5hbWVcIl0gPSBvdGhlckdydXBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBQYW5lV2l0aG91dFBhZ2VUeXBlID0gKFBhbmUsIHByb3BzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcGFnZVR5cGUsIC4uLmNsZWFuUHJvcHMgfSA9IHByb3BzO1xyXG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChQYW5lLnR5cGUsIGNsZWFuUHJvcHMpO1xyXG4gICAgfTtcclxuICAgIC8v6Ieq5a6a5LmJ5oyJ6ZKuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZSA9PSBcInBhZ2VcIiA/IG51bGwgOiB0aGlzLnByb3BzLmZvcm1UeXBlfVxyXG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxyXG4gICAgICAgIGRyYXdlclByb3BzPXt7IC4uLmRyYXdlclByb3BzIH19XHJcbiAgICAgICAgLy8gbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XHJcbiAgICAgICAgLy8gd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxyXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlPXsoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IG9uRm9ybUNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIG9uRm9ybUNoYW5nZSAmJiBvbkZvcm1DaGFuZ2UoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIGNoYW5nZVZhbGlkPXt0aGlzLnByb3BzLmNoYW5nZVZhbGlkfVxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFnZVwiPlxyXG4gICAgICAgICAge2Zvcm1Hcm91cHMubGVuZ3RoID09IDAgPyAoXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZm9ybVR5cGUgIT09IFwicGFnZVwiID8gKFxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMobmV3Rm9ybXNPYmopLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrZXl9IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgICAge2tleSAhPSBcIm5vR3JvdXBOYW1lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tdGl0bGVcIj57a2V5fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJGb3JtKG5ld0Zvcm1zT2JqW2tleV0sIGxhYmVsKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICB7c2VsZlBhbmVzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgc2VsZlBhbmVzLm1hcCgoUGFuZSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCIga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgIHtQYW5lV2l0aG91dFBhZ2VUeXBlKFBhbmUsIHsgLi4uUGFuZS5wcm9wcyB9KX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZm9vdGVyQ2xhc3NOYW1lLFxyXG4gICAgICAgICAgICAgICAgXCJuc2MtZm9ybS1wYWdlLWZvb3RlclwiLFxyXG4gICAgICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZvb3RlckZpeGVkICE9PSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1maXhlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIFt0aGlzLnN0YXRlLndpZHRoID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1maXhlZC13aWR0aFwiIDogXCJcIl0sXHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLmNhbmNlbEJ1dHRvblByb3BzfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNhbmNlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DYW5jZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICDlj5bmtohcclxuICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5va0J1dHRvblByb3BzfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLm9uU3VibWl0KCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgbG9hZGluZz17dGhpcy5zdGF0ZS5sb2FkaW5nfVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcIm5zYy1mb3JtLXBhZ2UtZm9vdGVyLWJ0blwifVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOS/neWtmFxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgIHtzZWxmQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wibnNjLWZvcm0tcGFnZS1mb290ZXItYnRuXCJ9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICAgIHtpdGVtfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtmb3JtVHlwZSA9PT0gXCJwYWdlXCIgJiYgZm9vdGVyICE9PSB0cnVlICYmIHRoaXMucHJvcHMuZm9vdGVyfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0Zvcm0+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9ybVBhZ2U7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsYUFBYSxRQUFtQixPQUFPO0FBQ3ZELE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsU0FBa0JDLE9BQU8sUUFBUSxhQUFhO0FBQzlDLE9BQU9DLE9BQU8sTUFBTSxvQkFBb0I7QUFDeEMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLFNBQVNDLFVBQVUsRUFBRUMsYUFBYSxRQUFRLG1CQUFtQjtBQUM3RCxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPLHFCQUFxQjtBQUM1QixPQUFPQyxNQUFNLE1BQU0sUUFBUTtBQUMzQixPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFFNUIsT0FBT0MsVUFBVSxNQUFNLGFBQWE7QUFHcEMsU0FBU0Msa0JBQWtCLFFBQVEsc0JBQXNCO0FBQ3pELE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBZ0NqQyxNQUFNQyxRQUFRLFNBQVNoQixhQUFhLENBQXFCO0VBQUFpQixZQUFBO0lBQUEsU0FBQUMsU0FBQTtJ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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","config","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","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","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","valueStr","selfFunc","renderForm","forms","newValid","storePrefix","autoType","log","createElement","gutter","index","_item$props","_item$props2","itemProps","valueFormat","name","split","allowChars","children","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","span","_item$props3","style","display","Item","componentName","noStyle","formRender","ref","_item$props4","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","render","footer","title","modalProps","defaultModalProps","drawerProps","defaultDrawerProps","selfButtons","selfPanes","child","_child$props","pageType","_item$props5","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","footerFixed","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\nimport config from \"../../config\";\r\n\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 footerFixed?: boolean;\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 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 const { formType } = this.props;\r\n const { storePrefix } = config();\r\n let autoType = getLocalStore(\r\n \"formType\",\r\n storePrefix ? storePrefix : \"nsc-home\",\r\n );\r\n autoType = autoType ? autoType : null;\r\n console.log(\"forms\", [...forms]);\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 children = item.props?.children;\r\n\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 delete props.children;\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 (\r\n formType == \"drawer\" ||\r\n (formType == \"auto\" && autoType == \"drawer\")\r\n ) {\r\n item.span = 24;\r\n }\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.show !== false ? \"block\" : \"none\" }}\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.show ? \"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 {item.formRender ? (\r\n item.formRender(props)\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 {children\r\n ? children\r\n : label !== \"查看\" && <Button>上传文件</Button>}\r\n </Upload>\r\n )}\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 } else {\r\n typeof item == \"object\" && selfButtons.push(child);\r\n }\r\n });\r\n } else {\r\n if (item?.props?.pageType == \"formPane\") {\r\n typeof item == \"object\" && selfPanes.push(item);\r\n } else {\r\n typeof item == \"object\" && selfButtons.push(item);\r\n }\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: 650,\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 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 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 [\r\n this.props.footerFixed !== false\r\n ? \"nsc-form-page-footer-fixed\"\r\n : \"\",\r\n ],\r\n [this.state.width ? \"nsc-form-page-footer-fixed-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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"}
1
+ {"version":3,"file":"index.js","names":["React","PureComponent","Form","getNode","message","Col","Row","isEmptyObj","getLocalStore","dayjs","lodash","Button","Upload","cls","NscRequest","convertStringToObj","config","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","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","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","valueStr","selfFunc","renderForm","forms","newValid","storePrefix","autoType","createElement","gutter","index","_item$props","_item$props2","itemProps","valueFormat","name","split","allowChars","children","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","span","_item$props3","style","display","Item","componentName","noStyle","formRender","ref","_item$props4","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","render","footer","title","modalProps","defaultModalProps","drawerProps","defaultDrawerProps","selfButtons","selfPanes","child","_child$props","pageType","_item$props5","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","footerFixed","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\nimport config from \"../../config\";\r\n\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 footerFixed?: boolean;\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 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 const { formType } = this.props;\r\n const { storePrefix } = config();\r\n let autoType = getLocalStore(\r\n \"formType\",\r\n storePrefix ? storePrefix : \"nsc-home\",\r\n );\r\n autoType = autoType ? autoType : null;\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 children = item.props?.children;\r\n\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 delete props.children;\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 (\r\n formType == \"drawer\" ||\r\n (formType == \"auto\" && autoType == \"drawer\")\r\n ) {\r\n item.span = 24;\r\n }\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.show !== false ? \"block\" : \"none\" }}\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.show ? \"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 {item.formRender ? (\r\n item.formRender(props)\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 {children\r\n ? children\r\n : label !== \"查看\" && <Button>上传文件</Button>}\r\n </Upload>\r\n )}\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 } else {\r\n typeof item == \"object\" && selfButtons.push(child);\r\n }\r\n });\r\n } else {\r\n if (item?.props?.pageType == \"formPane\") {\r\n typeof item == \"object\" && selfPanes.push(item);\r\n } else {\r\n typeof item == \"object\" && selfButtons.push(item);\r\n }\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: 650,\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 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 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 [\r\n this.props.footerFixed !== false\r\n ? \"nsc-form-page-footer-fixed\"\r\n : \"\",\r\n ],\r\n [this.state.width ? \"nsc-form-page-footer-fixed-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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"}
@@ -226,7 +226,7 @@ class HeaderSearch extends PureComponent {
226
226
  className: cls({
227
227
  [getLess(styles, "nsc-headersearch-button-reverse")]: this.props.buttonRevers == true
228
228
  })
229
- }, /*#__PURE__*/React.createElement(Button, {
229
+ }, buttons.indexOf("search") > -1 && /*#__PURE__*/React.createElement(Button, {
230
230
  type: "primary"
231
231
  // onClick={this.onSearch.bind(this)}
232
232
  ,
@@ -254,4 +254,4 @@ class HeaderSearch extends PureComponent {
254
254
  }
255
255
  }
256
256
  export default HeaderSearch;
257
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwiQ29sIiwiUm93IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJkYXlqcyIsInN0eWxlcyIsIkhlYWRlclNlYXJjaCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZXhwYW5kIiwic2V0U2VhcmNoUGFyYW1zIiwicGFyYW1zIiwiY2FsbEJhY2siLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUiLCJuZXdQYXJhbXMiLCJfb2JqZWN0U3ByZWFkIiwiZGF0ZUZvcm1hdCIsImtleSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VhcmNoUmVmIiwiY3VycmVudCIsInNldEZpZWxkc1ZhbHVlIiwiZ2V0U2VhcmNoVmFsdWVzIiwiZm9ybVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUyIiwiZ2V0RmllbGRzVmFsdWUiLCJvbGRkYXRhIiwibGVuZ3RoIiwiZm9ybWF0IiwicmFuZ2VyRGF0ZSIsImUiLCJvblNlYXJjaCIsInByb3BzIiwiZnJvbVZhbHVlIiwicmVzZXRGaWVsZHMiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUzIiwicmVzZXRTZWFyY2giLCJfdGhpcyRzZWFyY2hSZWYkY3VycmU0Iiwib25SZXNldCIsInJlbmRlciIsInNlYXJjaEZvcm1zIiwidG9vbEJ1dHRvblBvc2l0aW9uIiwiYnV0dG9ucyIsInNlYXJjaEZvcm1Qcm9wcyIsImNvbFNwYW4iLCJoZWFkZXJDb3VudCIsImhlYWRlclJvdXQiLCJjcmVhdGVFbGVtZW50IiwiZ3V0dGVyIiwid3JhcCIsImNsYXNzTmFtZSIsIl9leHRlbmRzIiwicmVmIiwibGFiZWxDb2wiLCJ3cmFwcGVyQ29sIiwic3R5bGUiLCJ3aWR0aCIsImRpc3BsYXkiLCJmbGV4V3JhcCIsIm9uRmluaXNoIiwiYmluZCIsImxheW91dCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIl9pdGVtJHByb3BzIiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwic3RhdGUiLCJhbGxvd0NoYXJzIiwic2VhcmNoRGlzYWJsZWQiLCJ0eXBlIiwiZGVmYXVsdEl0ZW0iLCJsYWJlbCIsInJ1bGVzIiwiY29tcG9uZW50TmFtZSIsInBsYWNlaG9sZGVyIiwiY29uY2F0Iiwic3BsaXQiLCJyYW5nZXJGaWVsZHMiLCJtZCIsInNwYW4iLCJzbSIsImxnIiwicGFkZGluZ1JpZ2h0IiwiSXRlbSIsIm9mZnNldCIsIm1hcmdpblRvcCIsImJ1dHRvblJldmVycyIsImljb24iLCJtYXJnaW5MZWZ0IiwiaHRtbFR5cGUiLCJpbmRleE9mIiwib25DbGljayIsInNldFN0YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9IZWFkZXJTZWFyY2gvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQge1xyXG4gIERvd25PdXRsaW5lZCxcclxuICBVcE91dGxpbmVkLFxyXG4gIFJlbG9hZE91dGxpbmVkLFxyXG4gIFNlYXJjaE91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuY29uc3Qgc3R5bGVzID0gbnVsbDtcclxuaW50ZXJmYWNlIFNlYXJjaEl0ZW1Qcm9wcyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxDb2w/OiBhbnk7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICB3cmFwcGVyQ29sPzogYW55O1xyXG4gIHByb3BzPzogYW55O1xyXG59XHJcbmludGVyZmFjZSBTZWFyY2hQcm9wcyB7XHJcbiAgc2VhcmNoRm9ybXM6IEFycmF5PFNlYXJjaEl0ZW1Qcm9wcz47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgdG9vbEJ1dHRvblBvc2l0aW9uPzogc3RyaW5nO1xyXG4gIG9uU2VhcmNoPzogYW55O1xyXG4gIG9uUmVzZXQ/OiBhbnk7XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogb2JqZWN0O1xyXG4gIGJ1dHRvblJldmVycz86IGJvb2xlYW47XHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIGJ1dHRvbnM/OiBBcnJheTxzdHJpbmc+O1xyXG59XHJcblxyXG5jbGFzcyBIZWFkZXJTZWFyY2ggZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFNlYXJjaFByb3BzLCBhbnk+IHtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICBzdGF0ZSA9IHsgZXhwYW5kOiBmYWxzZSB9O1xyXG4gIHNldFNlYXJjaFBhcmFtcyhwYXJhbXMsIGNhbGxCYWNrKSB7XHJcbiAgICBsZXQgbmV3UGFyYW1zID0geyAuLi5wYXJhbXMgfTtcclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgdmFsdWUgPSBuZXdQYXJhbXNba2V5XTtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICBuZXdQYXJhbXNba2V5XSA9IGRheWpzKHZhbHVlLCB0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVswXSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICBuZXdQYXJhbXNba2V5XSA9IFtcclxuICAgICAgICAgICAgICBkYXlqcyh2YWx1ZVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKHZhbHVlWzFdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZShuZXdQYXJhbXMpO1xyXG4gIH1cclxuICBnZXRTZWFyY2hWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKCk7XHJcbiAgICByZXR1cm4gZm9ybVZhbHVlO1xyXG4gIH1cclxuICBmb3JtYXRWYWx1ZSgpIHtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSBmb3JtVmFsdWVba2V5XTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgaWYgKG9sZGRhdGEubGVuZ3RoID4gMCAmJiBvbGRkYXRhWzBdICYmIG9sZGRhdGFbMV0pIHtcclxuICAgICAgICAgICAgZm9ybVZhbHVlW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMucmFuZ2VyRGF0ZVtrZXldKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgZm9ybVZhbHVlW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXSA9IGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtrZXldLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZm9ybVZhbHVlW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtrZXldLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZGVsZXRlIGZvcm1WYWx1ZVtrZXldO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgZm9ybVZhbHVlW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm1WYWx1ZTtcclxuICB9XHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICBjb25zdCB7IG9uU2VhcmNoIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSgpO1xyXG4gICAgaWYgKG9uU2VhcmNoKSB7XHJcbiAgICAgIG9uU2VhcmNoKGZyb21WYWx1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcbiAgcmVzZXRGaWVsZHMoKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuICByZXNldFNlYXJjaCgpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLm9uUmVzZXQpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblJlc2V0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc2VhcmNoRm9ybXMgPSBbXSxcclxuICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uLFxyXG4gICAgICBvblNlYXJjaCxcclxuICAgICAgb25SZXNldCxcclxuICAgICAgYnV0dG9ucyA9IFtcInNlYXJjaFwiLCBcInJlc2V0XCJdLFxyXG4gICAgICBzZWFyY2hGb3JtUHJvcHMgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IGNvbFNwYW4gPSAwO1xyXG4gICAgY29uc3QgaGVhZGVyQ291bnQgPSB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJyaWdodFwiID8gMSA6IDI7XHJcbiAgICBjb25zdCBoZWFkZXJSb3V0ID0gc2VhcmNoRm9ybXMubGVuZ3RoICUgNDtcclxuICAgIGlmIChoZWFkZXJSb3V0ID09IDApIHtcclxuICAgICAgY29sU3BhbiA9IDE4O1xyXG4gICAgfSBlbHNlIGlmIChoZWFkZXJSb3V0ID09IDEpIHtcclxuICAgICAgY29sU3BhbiA9IDEyO1xyXG4gICAgfSBlbHNlIGlmIChoZWFkZXJSb3V0ID09IDIpIHtcclxuICAgICAgY29sU3BhbiA9IDY7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Um93IGd1dHRlcj17MjR9IHdyYXA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtaGVhZGVyXCIpLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtaGVhZGVyLXBhZGRpbmdcIildOlxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5jbGFzc05hbWUsXHJcbiAgICAgICAgICApfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwibnNjLWhlYWRlcnNlYXJjaC1mb3JtXCIpKX0+XHJcbiAgICAgICAgICAgIDxGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICBsYWJlbENvbD17e319XHJcbiAgICAgICAgICAgICAgd3JhcHBlckNvbD17e319XHJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IFwiMTAwJVwiLCBkaXNwbGF5OiBcImZsZXhcIiwgZmxleFdyYXA6IFwid3JhcFwiIH19XHJcbiAgICAgICAgICAgICAgb25GaW5pc2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAvLyBsYWJlbEFsaWduPXsnbGVmdCd9XHJcbiAgICAgICAgICAgICAgbGF5b3V0PVwiaG9yaXpvbnRhbFwiXHJcbiAgICAgICAgICAgICAgey4uLnNlYXJjaEZvcm1Qcm9wc31cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbVByb3BzID0gaXRlbS5wcm9wcyB8fCB7fTtcclxuICAgICAgICAgICAgICAgIGxldCBkaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID1cclxuICAgICAgICAgICAgICAgICAgICBpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IGhlYWRlckNvdW50ICYmICF0aGlzLnN0YXRlLmV4cGFuZCkge1xyXG4gICAgICAgICAgICAgICAgICBkaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICAgICAgICAgICAgICAgIC8vcmV0dXJuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgYWxsb3dDaGFycyA9IGl0ZW0/LnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByb3BzID0geyAuLi5pdGVtUHJvcHMgfTtcclxuXHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuc2VhcmNoRGlzYWJsZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBpdGVtLnJ1bGVzLFxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiBpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCIsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXI6IGFueSA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PSBcIlNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPyBg6K+36YCJ5oupJHtpdGVtLmxhYmVsfWBcclxuICAgICAgICAgICAgICAgICAgICA6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YDtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gW1wi5byA5aeL5pe26Ze0XCIsIFwi57uT5p2f5pe26Ze0XCJdO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoaXRlbS5uYW1lLnNwbGl0KFwiLFwiKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5nZXJEYXRlW2l0ZW0ubmFtZV0gPSBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMucmFuZ2VyRmllbGRzO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAsIGRpc3BsYXk6IGRpc3BsYXkgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gey4uLmRlZmF1bHRJdGVtfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgbWQ9e3sgc3BhbjogMTIgfX1cclxuICAgICAgICAgICAgICAgIHNtPXt7IHNwYW46IDI0IH19XHJcbiAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJyaWdodFwiID8gMTIgOiA2IH19XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAgfX1cclxuICAgICAgICAgICAgICAgIG9mZnNldD17XHJcbiAgICAgICAgICAgICAgICAgICh0aGlzLnN0YXRlLmV4cGFuZCB8fCBzZWFyY2hGb3Jtcy5sZW5ndGggPCA0KSAmJlxyXG4gICAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcy5sZW5ndGggPiAxXHJcbiAgICAgICAgICAgICAgICAgICAgPyBjb2xTcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgOiAwXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJuc2MtaGVhZGVyc2VhcmNoLXNlYXJjaC1idXR0b25zXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaGVhZGVyc2VhcmNoLXNlYXJjaC1idXR0b25zLWZsZXhcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcy5sZW5ndGggPiAxLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtYnV0dG9uLXJldmVyc2VcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmJ1dHRvblJldmVycyA9PSB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBvbkNsaWNrPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8U2VhcmNoT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBodG1sVHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLmxlbmd0aCA+IDEgJiZcclxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnMuaW5kZXhPZihcInJlc2V0XCIpID4gLTEgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5yZXNldFNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxSZWxvYWRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIOmHjee9rlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubGVuZ3RoID4gMyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm5zYy1oZWFkZXJzZWFyY2gtZXhwYW5kLXN0eWxlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGV4cGFuZCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kOiAhZXhwYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kID8gXCLmlLbotbdcIiA6IFwi5bGV5byAXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyA8VXBPdXRsaW5lZCAvPiA6IDxEb3duT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgIDwvRm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L1Jvdz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEhlYWRlclNlYXJjaDtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBbUIsT0FBTztBQUN2RCxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFDNUIsT0FBTyxjQUFjO0FBQ3JCLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLFNBQ0VDLFlBQVksRUFDWkMsVUFBVSxFQUNWQyxjQUFjLEVBQ2RDLGNBQWMsUUFDVCxtQkFBbUI7QUFDMUIsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixNQUFNQyxNQUFNLEdBQUcsSUFBSTtBQW9CbkIsTUFBTUMsWUFBWSxTQUFTZixhQUFhLENBQW1CO0VBQUFnQixZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLGlDQUM3Q25CLEtBQUssQ0FBQ29CLFNBQVMsQ0FBTSxDQUFDO0lBQUFELGVBQUEscUJBQ3JCLENBQUMsQ0FBQztJQUFBQSxlQUFBLHFCQUNGLENB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
257
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwiQ29sIiwiUm93IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJkYXlqcyIsInN0eWxlcyIsIkhlYWRlclNlYXJjaCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZXhwYW5kIiwic2V0U2VhcmNoUGFyYW1zIiwicGFyYW1zIiwiY2FsbEJhY2siLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUiLCJuZXdQYXJhbXMiLCJfb2JqZWN0U3ByZWFkIiwiZGF0ZUZvcm1hdCIsImtleSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VhcmNoUmVmIiwiY3VycmVudCIsInNldEZpZWxkc1ZhbHVlIiwiZ2V0U2VhcmNoVmFsdWVzIiwiZm9ybVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUyIiwiZ2V0RmllbGRzVmFsdWUiLCJvbGRkYXRhIiwibGVuZ3RoIiwiZm9ybWF0IiwicmFuZ2VyRGF0ZSIsImUiLCJvblNlYXJjaCIsInByb3BzIiwiZnJvbVZhbHVlIiwicmVzZXRGaWVsZHMiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUzIiwicmVzZXRTZWFyY2giLCJfdGhpcyRzZWFyY2hSZWYkY3VycmU0Iiwib25SZXNldCIsInJlbmRlciIsInNlYXJjaEZvcm1zIiwidG9vbEJ1dHRvblBvc2l0aW9uIiwiYnV0dG9ucyIsInNlYXJjaEZvcm1Qcm9wcyIsImNvbFNwYW4iLCJoZWFkZXJDb3VudCIsImhlYWRlclJvdXQiLCJjcmVhdGVFbGVtZW50IiwiZ3V0dGVyIiwid3JhcCIsImNsYXNzTmFtZSIsIl9leHRlbmRzIiwicmVmIiwibGFiZWxDb2wiLCJ3cmFwcGVyQ29sIiwic3R5bGUiLCJ3aWR0aCIsImRpc3BsYXkiLCJmbGV4V3JhcCIsIm9uRmluaXNoIiwiYmluZCIsImxheW91dCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIl9pdGVtJHByb3BzIiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwic3RhdGUiLCJhbGxvd0NoYXJzIiwic2VhcmNoRGlzYWJsZWQiLCJ0eXBlIiwiZGVmYXVsdEl0ZW0iLCJsYWJlbCIsInJ1bGVzIiwiY29tcG9uZW50TmFtZSIsInBsYWNlaG9sZGVyIiwiY29uY2F0Iiwic3BsaXQiLCJyYW5nZXJGaWVsZHMiLCJtZCIsInNwYW4iLCJzbSIsImxnIiwicGFkZGluZ1JpZ2h0IiwiSXRlbSIsIm9mZnNldCIsIm1hcmdpblRvcCIsImJ1dHRvblJldmVycyIsImluZGV4T2YiLCJpY29uIiwibWFyZ2luTGVmdCIsImh0bWxUeXBlIiwib25DbGljayIsInNldFN0YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9IZWFkZXJTZWFyY2gvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQge1xyXG4gIERvd25PdXRsaW5lZCxcclxuICBVcE91dGxpbmVkLFxyXG4gIFJlbG9hZE91dGxpbmVkLFxyXG4gIFNlYXJjaE91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuY29uc3Qgc3R5bGVzID0gbnVsbDtcclxuaW50ZXJmYWNlIFNlYXJjaEl0ZW1Qcm9wcyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxDb2w/OiBhbnk7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICB3cmFwcGVyQ29sPzogYW55O1xyXG4gIHByb3BzPzogYW55O1xyXG59XHJcbmludGVyZmFjZSBTZWFyY2hQcm9wcyB7XHJcbiAgc2VhcmNoRm9ybXM6IEFycmF5PFNlYXJjaEl0ZW1Qcm9wcz47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgdG9vbEJ1dHRvblBvc2l0aW9uPzogc3RyaW5nO1xyXG4gIG9uU2VhcmNoPzogYW55O1xyXG4gIG9uUmVzZXQ/OiBhbnk7XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogb2JqZWN0O1xyXG4gIGJ1dHRvblJldmVycz86IGJvb2xlYW47XHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIGJ1dHRvbnM/OiBBcnJheTxzdHJpbmc+O1xyXG59XHJcblxyXG5jbGFzcyBIZWFkZXJTZWFyY2ggZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFNlYXJjaFByb3BzLCBhbnk+IHtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICBzdGF0ZSA9IHsgZXhwYW5kOiBmYWxzZSB9O1xyXG4gIHNldFNlYXJjaFBhcmFtcyhwYXJhbXMsIGNhbGxCYWNrKSB7XHJcbiAgICBsZXQgbmV3UGFyYW1zID0geyAuLi5wYXJhbXMgfTtcclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgdmFsdWUgPSBuZXdQYXJhbXNba2V5XTtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICBuZXdQYXJhbXNba2V5XSA9IGRheWpzKHZhbHVlLCB0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVswXSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICBuZXdQYXJhbXNba2V5XSA9IFtcclxuICAgICAgICAgICAgICBkYXlqcyh2YWx1ZVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKHZhbHVlWzFdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZShuZXdQYXJhbXMpO1xyXG4gIH1cclxuICBnZXRTZWFyY2hWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKCk7XHJcbiAgICByZXR1cm4gZm9ybVZhbHVlO1xyXG4gIH1cclxuICBmb3JtYXRWYWx1ZSgpIHtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSBmb3JtVmFsdWVba2V5XTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgaWYgKG9sZGRhdGEubGVuZ3RoID4gMCAmJiBvbGRkYXRhWzBdICYmIG9sZGRhdGFbMV0pIHtcclxuICAgICAgICAgICAgZm9ybVZhbHVlW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMucmFuZ2VyRGF0ZVtrZXldKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgZm9ybVZhbHVlW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXSA9IGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtrZXldLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZm9ybVZhbHVlW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtrZXldLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZGVsZXRlIGZvcm1WYWx1ZVtrZXldO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgZm9ybVZhbHVlW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm1WYWx1ZTtcclxuICB9XHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICBjb25zdCB7IG9uU2VhcmNoIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSgpO1xyXG4gICAgaWYgKG9uU2VhcmNoKSB7XHJcbiAgICAgIG9uU2VhcmNoKGZyb21WYWx1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcbiAgcmVzZXRGaWVsZHMoKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuICByZXNldFNlYXJjaCgpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLm9uUmVzZXQpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblJlc2V0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc2VhcmNoRm9ybXMgPSBbXSxcclxuICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uLFxyXG4gICAgICBvblNlYXJjaCxcclxuICAgICAgb25SZXNldCxcclxuICAgICAgYnV0dG9ucyA9IFtcInNlYXJjaFwiLCBcInJlc2V0XCJdLFxyXG4gICAgICBzZWFyY2hGb3JtUHJvcHMgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IGNvbFNwYW4gPSAwO1xyXG4gICAgY29uc3QgaGVhZGVyQ291bnQgPSB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJyaWdodFwiID8gMSA6IDI7XHJcbiAgICBjb25zdCBoZWFkZXJSb3V0ID0gc2VhcmNoRm9ybXMubGVuZ3RoICUgNDtcclxuICAgIGlmIChoZWFkZXJSb3V0ID09IDApIHtcclxuICAgICAgY29sU3BhbiA9IDE4O1xyXG4gICAgfSBlbHNlIGlmIChoZWFkZXJSb3V0ID09IDEpIHtcclxuICAgICAgY29sU3BhbiA9IDEyO1xyXG4gICAgfSBlbHNlIGlmIChoZWFkZXJSb3V0ID09IDIpIHtcclxuICAgICAgY29sU3BhbiA9IDY7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Um93IGd1dHRlcj17MjR9IHdyYXA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtaGVhZGVyXCIpLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtaGVhZGVyLXBhZGRpbmdcIildOlxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5jbGFzc05hbWUsXHJcbiAgICAgICAgICApfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwibnNjLWhlYWRlcnNlYXJjaC1mb3JtXCIpKX0+XHJcbiAgICAgICAgICAgIDxGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICBsYWJlbENvbD17e319XHJcbiAgICAgICAgICAgICAgd3JhcHBlckNvbD17e319XHJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IFwiMTAwJVwiLCBkaXNwbGF5OiBcImZsZXhcIiwgZmxleFdyYXA6IFwid3JhcFwiIH19XHJcbiAgICAgICAgICAgICAgb25GaW5pc2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAvLyBsYWJlbEFsaWduPXsnbGVmdCd9XHJcbiAgICAgICAgICAgICAgbGF5b3V0PVwiaG9yaXpvbnRhbFwiXHJcbiAgICAgICAgICAgICAgey4uLnNlYXJjaEZvcm1Qcm9wc31cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbVByb3BzID0gaXRlbS5wcm9wcyB8fCB7fTtcclxuICAgICAgICAgICAgICAgIGxldCBkaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID1cclxuICAgICAgICAgICAgICAgICAgICBpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IGhlYWRlckNvdW50ICYmICF0aGlzLnN0YXRlLmV4cGFuZCkge1xyXG4gICAgICAgICAgICAgICAgICBkaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICAgICAgICAgICAgICAgIC8vcmV0dXJuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgYWxsb3dDaGFycyA9IGl0ZW0/LnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByb3BzID0geyAuLi5pdGVtUHJvcHMgfTtcclxuXHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuc2VhcmNoRGlzYWJsZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBpdGVtLnJ1bGVzLFxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiBpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCIsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXI6IGFueSA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PSBcIlNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPyBg6K+36YCJ5oupJHtpdGVtLmxhYmVsfWBcclxuICAgICAgICAgICAgICAgICAgICA6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YDtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gW1wi5byA5aeL5pe26Ze0XCIsIFwi57uT5p2f5pe26Ze0XCJdO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoaXRlbS5uYW1lLnNwbGl0KFwiLFwiKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5nZXJEYXRlW2l0ZW0ubmFtZV0gPSBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMucmFuZ2VyRmllbGRzO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAsIGRpc3BsYXk6IGRpc3BsYXkgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gey4uLmRlZmF1bHRJdGVtfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgbWQ9e3sgc3BhbjogMTIgfX1cclxuICAgICAgICAgICAgICAgIHNtPXt7IHNwYW46IDI0IH19XHJcbiAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJyaWdodFwiID8gMTIgOiA2IH19XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAgfX1cclxuICAgICAgICAgICAgICAgIG9mZnNldD17XHJcbiAgICAgICAgICAgICAgICAgICh0aGlzLnN0YXRlLmV4cGFuZCB8fCBzZWFyY2hGb3Jtcy5sZW5ndGggPCA0KSAmJlxyXG4gICAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcy5sZW5ndGggPiAxXHJcbiAgICAgICAgICAgICAgICAgICAgPyBjb2xTcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgOiAwXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJuc2MtaGVhZGVyc2VhcmNoLXNlYXJjaC1idXR0b25zXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaGVhZGVyc2VhcmNoLXNlYXJjaC1idXR0b25zLWZsZXhcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcy5sZW5ndGggPiAxLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtYnV0dG9uLXJldmVyc2VcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmJ1dHRvblJldmVycyA9PSB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge2J1dHRvbnMuaW5kZXhPZihcInNlYXJjaFwiKSA+IC0xICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uQ2xpY2s9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFNlYXJjaE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxUeXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAxICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICBidXR0b25zLmluZGV4T2YoXCJyZXNldFwiKSA+IC0xICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucmVzZXRTZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8UmVsb2FkT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLmxlbmd0aCA+IDMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3MoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJuc2MtaGVhZGVyc2VhcmNoLWV4cGFuZC1zdHlsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBleHBhbmQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZDogIWV4cGFuZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IFwi5pS26LW3XCIgOiBcIuWxleW8gFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kID8gPFVwT3V0bGluZWQgLz4gOiA8RG93bk91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBIZWFkZXJTZWFyY2g7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU8sY0FBYztBQUNyQixPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUM5QyxTQUNFQyxZQUFZLEVBQ1pDLFVBQVUsRUFDVkMsY0FBYyxFQUNkQyxjQUFjLFFBQ1QsbUJBQW1CO0FBQzFCLFNBQVNDLE9BQU8sRUFBRUMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsTUFBTUMsTUFBTSxHQUFHLElBQUk7QUFvQm5CLE1BQU1DLFlBQVksU0FBU2YsYUFBYSxDQUFtQjtFQUFBZ0IsWUFBQTtJQUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PureComponent","Form","Button","cls","Col","Row","isEmptyObj","DownOutlined","UpOutlined","ReloadOutlined","SearchOutlined","getLess","getNode","dayjs","styles","HeaderSearch","constructor","arguments","_defineProperty","createRef","expand","setSearchParams","params","callBack","_this$searchRef$curre","newParams","_objectSpread","dateFormat","key","value","Array","isArray","searchRef","current","setFieldsValue","getSearchValues","formValue","formatValue","_this$searchRef$curre2","getFieldsValue","olddata","length","format","rangerDate","e","onSearch","props","fromValue","resetFields","_this$searchRef$curre3","resetSearch","_this$searchRef$curre4","onReset","render","searchForms","toolButtonPosition","buttons","searchFormProps","colSpan","headerCount","headerRout","createElement","gutter","wrap","className","_extends","ref","labelCol","wrapperCol","style","width","display","flexWrap","onFinish","bind","layout","map","item","index","_item$props","itemProps","valueFormat","name","state","allowChars","searchDisabled","type","defaultItem","label","rules","componentName","placeholder","concat","split","rangerFields","md","span","sm","lg","paddingRight","Item","offset","marginTop","buttonRevers","icon","marginLeft","htmlType","indexOf","onClick","setState"],"sources":["../../../src/components/page/HeaderSearch/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport Button from \"../../base/button\";\r\nimport cls from \"classnames\";\r\nimport \"./index.less\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport {\r\n DownOutlined,\r\n UpOutlined,\r\n ReloadOutlined,\r\n SearchOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport dayjs from \"dayjs\";\r\nconst styles = null;\r\ninterface SearchItemProps {\r\n label: string;\r\n name: string;\r\n labelCol?: any;\r\n type?: string;\r\n wrapperCol?: any;\r\n props?: any;\r\n}\r\ninterface SearchProps {\r\n searchForms: Array<SearchItemProps>; //是否显示操作列\r\n toolButtonPosition?: string;\r\n onSearch?: any;\r\n onReset?: any;\r\n searchFormProps?: object;\r\n buttonRevers?: boolean;\r\n className?: any;\r\n buttons?: Array<string>;\r\n}\r\n\r\nclass HeaderSearch extends PureComponent<SearchProps, any> {\r\n searchRef = React.createRef<any>();\r\n dateFormat = {} as any;\r\n rangerDate = {} as any;\r\n state = { expand: false };\r\n setSearchParams(params, callBack) {\r\n let newParams = { ...params };\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let value = newParams[key];\r\n if (typeof value === \"string\") {\r\n newParams[key] = dayjs(value, this.dateFormat[key]);\r\n } else if (Array.isArray(value)) {\r\n if (typeof value[0] === \"string\") {\r\n newParams[key] = [\r\n dayjs(value[0], this.dateFormat[key]),\r\n dayjs(value[1], this.dateFormat[key]),\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n this.searchRef.current?.setFieldsValue(newParams);\r\n }\r\n getSearchValues() {\r\n const formValue = this.formatValue();\r\n return formValue;\r\n }\r\n formatValue() {\r\n const formValue = this.searchRef.current?.getFieldsValue();\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = formValue[key];\r\n if (Array.isArray(olddata)) {\r\n if (olddata.length > 0 && olddata[0] && olddata[1]) {\r\n formValue[key] = [\r\n dayjs(olddata[0]).format(this.dateFormat[key]),\r\n dayjs(olddata[1]).format(this.dateFormat[key]),\r\n ];\r\n }\r\n if (this.rangerDate[key]) {\r\n try {\r\n formValue[this.rangerDate[key][0]] = dayjs(olddata[0]).format(\r\n this.dateFormat[key],\r\n );\r\n formValue[this.rangerDate[key][1]] = dayjs(olddata[1]).format(\r\n this.dateFormat[key],\r\n );\r\n delete formValue[key];\r\n } catch (e) {}\r\n }\r\n } else if (olddata) {\r\n formValue[key] = dayjs(olddata).format(this.dateFormat[key]);\r\n }\r\n }\r\n }\r\n return formValue;\r\n }\r\n onSearch() {\r\n const { onSearch } = this.props;\r\n const fromValue = this.formatValue();\r\n if (onSearch) {\r\n onSearch(fromValue);\r\n return;\r\n }\r\n }\r\n resetFields() {\r\n this.searchRef.current?.resetFields();\r\n }\r\n resetSearch() {\r\n if (this.props.onReset) {\r\n this.props.onReset();\r\n return;\r\n }\r\n this.searchRef.current?.resetFields();\r\n }\r\n render() {\r\n const {\r\n searchForms = [],\r\n toolButtonPosition,\r\n onSearch,\r\n onReset,\r\n buttons = [\"search\", \"reset\"],\r\n searchFormProps = {},\r\n } = this.props;\r\n let colSpan = 0;\r\n const headerCount = toolButtonPosition == \"right\" ? 1 : 2;\r\n const headerRout = searchForms.length % 4;\r\n if (headerRout == 0) {\r\n colSpan = 18;\r\n } else if (headerRout == 1) {\r\n colSpan = 12;\r\n } else if (headerRout == 2) {\r\n colSpan = 6;\r\n }\r\n return (\r\n <Row gutter={24} wrap>\r\n <div\r\n className={cls(\r\n getLess(styles, \"nsc-headersearch-header\"),\r\n {\r\n [getLess(styles, \"nsc-headersearch-header-padding\")]:\r\n searchForms.length > 3,\r\n },\r\n this.props.className,\r\n )}\r\n >\r\n <div className={cls(getLess(styles, \"nsc-headersearch-form\"))}>\r\n <Form\r\n ref={this.searchRef}\r\n labelCol={{}}\r\n wrapperCol={{}}\r\n style={{ width: \"100%\", display: \"flex\", flexWrap: \"wrap\" }}\r\n onFinish={this.onSearch.bind(this)}\r\n // labelAlign={'left'}\r\n layout=\"horizontal\"\r\n {...searchFormProps}\r\n >\r\n {searchForms.map((item: any, index: any) => {\r\n const itemProps = item.props || {};\r\n let display = \"block\";\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (index > headerCount && !this.state.expand) {\r\n display = \"none\";\r\n //return\r\n }\r\n let allowChars = item?.props?.allowChars || false;\r\n let props = { ...itemProps };\r\n\r\n delete props.searchDisabled;\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true;\r\n } else {\r\n delete props.allowChars;\r\n }\r\n let defaultItem = {\r\n label: item.label,\r\n name: item.name,\r\n allowChars: allowChars,\r\n rules: item.rules,\r\n componentName: item.type ? item.type : \"Input\",\r\n } as any;\r\n if (item.labelCol) {\r\n defaultItem = { ...defaultItem, labelCol: item.labelCol };\r\n delete item.labelCol;\r\n }\r\n if (item.wrapperCol) {\r\n defaultItem = { ...defaultItem, wrapperCol: item.wrapperCol };\r\n delete item.wrapperCol;\r\n }\r\n let placeholder: any =\r\n item.type == \"Select\"\r\n ? `请选择${item.label}`\r\n : `请输入${item.label}`;\r\n if (item.type == \"RangePicker\") {\r\n placeholder = [\"开始时间\", \"结束时间\"];\r\n if (item.name.split(\",\").length > 1) {\r\n this.rangerDate[item.name] = item.name.split(\",\");\r\n }\r\n }\r\n delete props.rangerFields;\r\n return (\r\n <Col\r\n md={{ span: 12 }}\r\n sm={{ span: 24 }}\r\n lg={{ span: 6 }}\r\n key={index}\r\n style={{ paddingRight: 0, display: display }}\r\n >\r\n <Form.Item {...defaultItem}>\r\n {getNode(item.type, {\r\n placeholder: placeholder,\r\n style: { width: \"100%\" },\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n })}\r\n <Col\r\n md={{ span: 12 }}\r\n sm={{ span: 24 }}\r\n lg={{ span: toolButtonPosition == \"right\" ? 12 : 6 }}\r\n style={{ paddingRight: 0 }}\r\n offset={\r\n (this.state.expand || searchForms.length < 4) &&\r\n searchForms.length > 1\r\n ? colSpan\r\n : 0\r\n }\r\n >\r\n <div\r\n className={cls(\r\n getLess(styles, \"nsc-headersearch-search-buttons\"),\r\n {\r\n [getLess(styles, \"nsc-headersearch-search-buttons-flex\")]:\r\n searchForms.length > 1,\r\n },\r\n )}\r\n style={{ marginTop: 0 }}\r\n >\r\n <div\r\n className={cls({\r\n [getLess(styles, \"nsc-headersearch-button-reverse\")]:\r\n this.props.buttonRevers == true,\r\n })}\r\n >\r\n <Button\r\n type={\"primary\"}\r\n // onClick={this.onSearch.bind(this)}\r\n icon={<SearchOutlined />}\r\n style={{ marginLeft: 0 }}\r\n htmlType=\"submit\"\r\n >\r\n 查询\r\n </Button>\r\n {searchForms.length > 1 &&\r\n buttons.indexOf(\"reset\") > -1 && (\r\n <Button\r\n // type={\"primary\"}\r\n onClick={this.resetSearch.bind(this)}\r\n icon={<ReloadOutlined />}\r\n >\r\n 重置\r\n </Button>\r\n )}\r\n </div>\r\n {searchForms.length > 3 && (\r\n <a\r\n className={getLess(\r\n styles,\r\n \"nsc-headersearch-expand-style\",\r\n )}\r\n onClick={() => {\r\n const { expand } = this.state;\r\n this.setState({\r\n expand: !expand,\r\n });\r\n }}\r\n >\r\n {this.state.expand ? \"收起\" : \"展开\"}\r\n {this.state.expand ? <UpOutlined /> : <DownOutlined />}\r\n </a>\r\n )}\r\n </div>\r\n </Col>\r\n </Form>\r\n </div>\r\n </div>\r\n </Row>\r\n );\r\n }\r\n}\r\nexport default HeaderSearch;\r\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,aAAa,QAAmB,OAAO;AACvD,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,MAAM,MAAM,mBAAmB;AACtC,OAAOC,GAAG,MAAM,YAAY;AAC5B,OAAO,cAAc;AACrB,OAAOC,GAAG,MAAM,qBAAqB;AACrC,OAAOC,GAAG,MAAM,qBAAqB;AACrC,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SACEC,YAAY,EACZC,UAAU,EACVC,cAAc,EACdC,cAAc,QACT,mBAAmB;AAC1B,SAASC,OAAO,EAAEC,OAAO,QAAQ,aAAa;AAC9C,OAAOC,KAAK,MAAM,OAAO;AACzB,MAAMC,MAAM,GAAG,IAAI;AAoBnB,MAAMC,YAAY,SAASf,aAAa,CAAmB;EAAAgB,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,iCAC7CnB,KAAK,CAACoB,SAAS,CAAM,CAAC;IAAAD,eAAA,qBACrB,CAAC,CAAC;IAAAA,eAAA,qBACF,CAAC,CAAC;IAAAA,eAAA,gBACP;MAAEE,MAAM,EAAE;IAAM,CAAC;EAAA;EACzBC,eAAeA,CAACC,MAAM,EAAEC,QAAQ,EAAE;IAAA,IAAAC,qBAAA;IAChC,IAAIC,SAAS,GAAAC,aAAA,KAAQJ,MAAM,CAAE;IAC7B,IAAI,CAAChB,UAAU,CAAC,IAAI,CAACqB,UAAU,CAAC,EAAE;MAChC,KAAK,IAAIC,GAAG,IAAI,IAAI,CAACD,UAAU,EAAE;QAC/B,IAAIE,KAAK,GAAGJ,SAAS,CAACG,GAAG,CAAC;QAC1B,IAAI,OAAOC,KAAK,KAAK,QAAQ,EAAE;UAC7BJ,SAAS,CAACG,GAAG,CAAC,GAAGf,KAAK,CAACgB,KAAK,EAAE,IAAI,CAACF,UAAU,CAACC,GAAG,CAAC,CAAC;QACrD,CAAC,MAAM,IAAIE,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;UAC/B,IAAI,OAAOA,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAChCJ,SAAS,CAACG,GAAG,CAAC,GAAG,CACff,KAAK,CAACgB,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAACF,UAAU,CAACC,GAAG,CAAC,CAAC,EACrCf,KAAK,CAACgB,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAACF,UAAU,CAACC,GAAG,CAAC,CAAC,CACtC;UACH;QACF;MACF;IACF;IACA,CAAAJ,qBAAA,OAAI,CAACQ,SAAS,CAACC,OAAO,cAAAT,qBAAA,eAAtBA,qBAAA,CAAwBU,cAAc,CAACT,SAAS,CAAC;EACnD;EACAU,eAAeA,CAAA,EAAG;IAChB,MAAMC,SAAS,GAAG,IAAI,CAACC,WAAW,CAAC,CAAC;IACpC,OAAOD,SAAS;EAClB;EACAC,WAAWA,CAAA,EAAG;IAAA,IAAAC,sBAAA;IACZ,MAAMF,SAAS,IAAAE,sBAAA,GAAG,IAAI,CAACN,SAAS,CAACC,OAAO,cAAAK,sBAAA,uBAAtBA,sBAAA,CAAwBC,cAAc,CAAC,CAAC;IAC1D,IAAI,CAACjC,UAAU,CAAC,IAAI,CAACqB,UAAU,CAAC,EAAE;MAChC,KAAK,IAAIC,GAAG,IAAI,IAAI,CAACD,UAAU,EAAE;QAC/B,IAAIa,OAAO,GAAGJ,SAAS,CAACR,GAAG,CAAC;QAC5B,IAAIE,KAAK,CAACC,OAAO,CAACS,OAAO,CAAC,EAAE;UAC1B,IAAIA,OAAO,CAACC,MAAM,GAAG,CAAC,IAAID,OAAO,CAAC,CAAC,CAAC,IAAIA,OAAO,CAAC,CAAC,CAAC,EAAE;YAClDJ,SAAS,CAACR,GAAG,CAAC,GAAG,CACff,KAAK,CAAC2B,OAAO,CAAC,CAAC,CAAC,CAAC,CAACE,MAAM,CAAC,IAAI,CAACf,UAAU,CAACC,GAAG,CAAC,CAAC,EAC9Cf,KAAK,CAAC2B,OAAO,CAAC,CAAC,CAAC,CAAC,CAACE,MAAM,CAAC,IAAI,CAACf,UAAU,CAACC,GAAG,CAAC,CAAC,CAC/C;UACH;UACA,IAAI,IAAI,CAACe,UAAU,CAACf,GAAG,CAAC,EAAE;YACxB,IAAI;cACFQ,SAAS,CAAC,IAAI,CAACO,UAAU,CAACf,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGf,KAAK,CAAC2B,OAAO,CAAC,CAAC,CAAC,CAAC,CAACE,MAAM,CAC3D,IAAI,CAACf,UAAU,CAACC,GAAG,CACrB,CAAC;cACDQ,SAAS,CAAC,IAAI,CAACO,UAAU,CAACf,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGf,KAAK,CAAC2B,OAAO,CAAC,CAAC,CAAC,CAAC,CAACE,MAAM,CAC3D,IAAI,CAACf,UAAU,CAACC,GAAG,CACrB,CAAC;cACD,OAAOQ,SAAS,CAACR,GAAG,CAAC;YACvB,CAAC,CAAC,OAAOgB,CAAC,EAAE,CAAC;UACf;QACF,CAAC,MAAM,IAAIJ,OAAO,EAAE;UAClBJ,SAAS,CAACR,GAAG,CAAC,GAAGf,KAAK,CAAC2B,OAAO,CAAC,CAACE,MAAM,CAAC,IAAI,CAACf,UAAU,CAACC,GAAG,CAAC,CAAC;QAC9D;MACF;IACF;IACA,OAAOQ,SAAS;EAClB;EACAS,QAAQA,CAAA,EAAG;IACT,MAAM;MAAEA;IAAS,CAAC,GAAG,IAAI,CAACC,KAAK;IAC/B,MAAMC,SAAS,GAAG,IAAI,CAACV,WAAW,CAAC,CAAC;IACpC,IAAIQ,QAAQ,EAAE;MACZA,QAAQ,CAACE,SAAS,CAAC;MACnB;IACF;EACF;EACAC,WAAWA,CAAA,EAAG;IAAA,IAAAC,sBAAA;IACZ,CAAAA,sBAAA,OAAI,CAACjB,SAAS,CAACC,OAAO,cAAAgB,sBAAA,eAAtBA,sBAAA,CAAwBD,WAAW,CAAC,CAAC;EACvC;EACAE,WAAWA,CAAA,EAAG;IAAA,IAAAC,sBAAA;IACZ,IAAI,IAAI,CAACL,KAAK,CAACM,OAAO,EAAE;MACtB,IAAI,CAACN,KAAK,CAACM,OAAO,CAAC,CAAC;MACpB;IACF;IACA,CAAAD,sBAAA,OAAI,CAACnB,SAAS,CAACC,OAAO,cAAAkB,sBAAA,eAAtBA,sBAAA,CAAwBH,WAAW,CAAC,CAAC;EACvC;EACAK,MAAMA,CAAA,EAAG;IACP,MAAM;MACJC,WAAW,GAAG,EAAE;MAChBC,kBAAkB;MAClBV,QAAQ;MACRO,OAAO;MACPI,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;MAC7BC,eAAe,GAAG,CAAC;IACrB,CAAC,GAAG,IAAI,CAACX,KAAK;IACd,IAAIY,OAAO,GAAG,CAAC;IACf,MAAMC,WAAW,GAAGJ,kBAAkB,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC;IACzD,MAAMK,UAAU,GAAGN,WAAW,CAACb,MAAM,GAAG,CAAC;IACzC,IAAImB,UAAU,IAAI,CAAC,EAAE;MACnBF,OAAO,GAAG,EAAE;IACd,CAAC,MAAM,IAAIE,UAAU,IAAI,CAAC,EAAE;MAC1BF,OAAO,GAAG,EAAE;IACd,CAAC,MAAM,IAAIE,UAAU,IAAI,CAAC,EAAE;MAC1BF,OAAO,GAAG,CAAC;IACb;IACA,oBACE3D,KAAA,CAAA8D,aAAA,CAACxD,GAAG;MAACyD,MAAM,EAAE,EAAG;MAACC,IAAI;IAAA,gBACnBhE,KAAA,CAAA8D,aAAA;MACEG,SAAS,EAAE7D,GAAG,CACZQ,OAAO,CAACG,MAAM,EAAE,yBAAyB,CAAC,EAC1C;QACE,CAACH,OAAO,CAACG,MAAM,EAAE,iCAAiC,CAAC,GACjDwC,WAAW,CAACb,MAAM,GAAG;MACzB,CAAC,EACD,IAAI,CAACK,KAAK,CAACkB,SACb;IAAE,gBAEFjE,KAAA,CAAA8D,aAAA;MAAKG,SAAS,EAAE7D,GAAG,CAACQ,OAAO,CAACG,MAAM,EAAE,uBAAuB,CAAC;IAAE,gBAC5Df,KAAA,CAAA8D,aAAA,CAAC5D,IAAI,EAAAgE,QAAA;MACHC,GAAG,EAAE,IAAI,CAAClC,SAAU;MACpBmC,QAAQ,EAAE,CAAC,CAAE;MACbC,UAAU,EAAE,CAAC,CAAE;MACfC,KAAK,EAAE;QAAEC,KAAK,EAAE,MAAM;QAAEC,OAAO,EAAE,MAAM;QAAEC,QAAQ,EAAE;MAAO,CAAE;MAC5DC,QAAQ,EAAE,IAAI,CAAC5B,QAAQ,CAAC6B,IAAI,CAAC,IAAI;MACjC;MAAA;MACAC,MAAM,EAAC;IAAY,GACflB,eAAe,GAElBH,WAAW,CAACsB,GAAG,CAAC,CAACC,IAAS,EAAEC,KAAU,KAAK;MAAA,IAAAC,WAAA;MAC1C,MAAMC,SAAS,GAAGH,IAAI,CAAC/B,KAAK,IAAI,CAAC,CAAC;MAClC,IAAIyB,OAAO,GAAG,OAAO;MACrB,IAAIS,SAAS,CAACtC,MAAM,IAAIsC,SAAS,CAACC,WAAW,EAAE;QAC7C,IAAI,CAACtD,UAAU,CAACkD,IAAI,CAACK,IAAI,CAAC,GACxBF,SAAS,CAACtC,MAAM,IAAIsC,SAAS,CAACC,WAAW;MAC7C;MACA,IAAIH,KAAK,GAAGnB,WAAW,IAAI,CAAC,IAAI,CAACwB,KAAK,CAAC/D,MAAM,EAAE;QAC7CmD,OAAO,GAAG,MAAM;QAChB;MACF;MACA,IAAIa,UAAU,GAAG,CAAAP,IAAI,aAAJA,IAAI,gBAAAE,WAAA,GAAJF,IAAI,CAAE/B,KAAK,cAAAiC,WAAA,uBAAXA,WAAA,CAAaK,UAAU,KAAI,KAAK;MACjD,IAAItC,KAAK,GAAApB,aAAA,KAAQsD,SAAS,CAAE;MAE5B,OAAOlC,KAAK,CAACuC,cAAc;MAC3B,IAAI,CAACR,IAAI,CAACS,IAAI,IAAIT,IAAI,CAACS,IAAI,IAAI,OAAO,EAAE;QACtCxC,KAAK,CAACsC,UAAU,GAAG,IAAI;MACzB,CAAC,MAAM;QACL,OAAOtC,KAAK,CAACsC,UAAU;MACzB;MACA,IAAIG,WAAW,GAAG;QAChBC,KAAK,EAAEX,IAAI,CAACW,KAAK;QACjBN,IAAI,EAAEL,IAAI,CAACK,IAAI;QACfE,UAAU,EAAEA,UAAU;QACtBK,KAAK,EAAEZ,IAAI,CAACY,KAAK;QACjBC,aAAa,EAAEb,IAAI,CAACS,IAAI,GAAGT,IAAI,CAACS,IAAI,GAAG;MACzC,CAAQ;MACR,IAAIT,IAAI,CAACV,QAAQ,EAAE;QACjBoB,WAAW,GAAA7D,aAAA,CAAAA,aAAA,KAAQ6D,WAAW;UAAEpB,QAAQ,EAAEU,IAAI,CAACV;QAAQ,EAAE;QACzD,OAAOU,IAAI,CAACV,QAAQ;MACtB;MACA,IAAIU,IAAI,CAACT,UAAU,EAAE;QACnBmB,WAAW,GAAA7D,aAAA,CAAAA,aAAA,KAAQ6D,WAAW;UAAEnB,UAAU,EAAES,IAAI,CAACT;QAAU,EAAE;QAC7D,OAAOS,IAAI,CAACT,UAAU;MACxB;MACA,IAAIuB,WAAgB,GAClBd,IAAI,CAACS,IAAI,IAAI,QAAQ,wBAAAM,MAAA,CACXf,IAAI,CAACW,KAAK,yBAAAI,MAAA,CACVf,IAAI,CAACW,KAAK,CAAE;MACxB,IAAIX,IAAI,CAACS,IAAI,IAAI,aAAa,EAAE;QAC9BK,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,IAAId,IAAI,CAACK,IAAI,CAACW,KAAK,CAAC,GAAG,CAAC,CAACpD,MAAM,GAAG,CAAC,EAAE;UACnC,IAAI,CAACE,UAAU,CAACkC,IAAI,CAACK,IAAI,CAAC,GAAGL,IAAI,CAACK,IAAI,CAACW,KAAK,CAAC,GAAG,CAAC;QACnD;MACF;MACA,OAAO/C,KAAK,CAACgD,YAAY;MACzB,oBACE/F,KAAA,CAAA8D,aAAA,CAACzD,GAAG;QACF2F,EAAE,EAAE;UAAEC,IAAI,EAAE;QAAG,CAAE;QACjBC,EAAE,EAAE;UAAED,IAAI,EAAE;QAAG,CAAE;QACjBE,EAAE,EAAE;UAAEF,IAAI,EAAE;QAAE,CAAE;QAChBpE,GAAG,EAAEkD,KAAM;QACXT,KAAK,EAAE;UAAE8B,YAAY,EAAE,CAAC;UAAE5B,OAAO,EAAEA;QAAQ;MAAE,gBAE7CxE,KAAA,CAAA8D,aAAA,CAAC5D,IAAI,CAACmG,IAAI,EAAKb,WAAW,EACvB3E,OAAO,CAACiE,IAAI,CAACS,IAAI,EAAA5D,aAAA;QAChBiE,WAAW,EAAEA,WAAW;QACxBtB,KAAK,EAAE;UAAEC,KAAK,EAAE;QAAO;MAAC,GACrBxB,KAAK,CACT,CACQ,CACR,CAAC;IAEV,CAAC,CAAC,eACF/C,KAAA,CAAA8D,aAAA,CAACzD,GAAG;MACF2F,EAAE,EAAE;QAAEC,IAAI,EAAE;MAAG,CAAE;MACjBC,EAAE,EAAE;QAAED,IAAI,EAAE;MAAG,CAAE;MACjBE,EAAE,EAAE;QAAEF,IAAI,EAAEzC,kBAAkB,IAAI,OAAO,GAAG,EAAE,GAAG;MAAE,CAAE;MACrDc,KAAK,EAAE;QAAE8B,YAAY,EAAE;MAAE,CAAE;MAC3BE,MAAM,EACJ,CAAC,IAAI,CAAClB,KAAK,CAAC/D,MAAM,IAAIkC,WAAW,CAACb,MAAM,GAAG,CAAC,KAC5Ca,WAAW,CAACb,MAAM,GAAG,CAAC,GAClBiB,OAAO,GACP;IACL,gBAED3D,KAAA,CAAA8D,aAAA;MACEG,SAAS,EAAE7D,GAAG,CACZQ,OAAO,CAACG,MAAM,EAAE,iCAAiC,CAAC,EAClD;QACE,CAACH,OAAO,CAACG,MAAM,EAAE,sCAAsC,CAAC,GACtDwC,WAAW,CAACb,MAAM,GAAG;MACzB,CACF,CAAE;MACF4B,KAAK,EAAE;QAAEiC,SAAS,EAAE;MAAE;IAAE,gBAExBvG,KAAA,CAAA8D,aAAA;MACEG,SAAS,EAAE7D,GAAG,CAAC;QACb,CAACQ,OAAO,CAACG,MAAM,EAAE,iCAAiC,CAAC,GACjD,IAAI,CAACgC,KAAK,CAACyD,YAAY,IAAI;MAC/B,CAAC;IAAE,gBAEHxG,KAAA,CAAA8D,aAAA,CAAC3D,MAAM;MACLoF,IAAI,EAAE;MACN;MAAA;MACAkB,IAAI,eAAEzG,KAAA,CAAA8D,aAAA,CAACnD,cAAc,MAAE,CAAE;MACzB2D,KAAK,EAAE;QAAEoC,UAAU,EAAE;MAAE,CAAE;MACzBC,QAAQ,EAAC;IAAQ,GAClB,cAEO,CAAC,EACRpD,WAAW,CAACb,MAAM,GAAG,CAAC,IACrBe,OAAO,CAACmD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,iBAC3B5G,KAAA,CAAA8D,aAAA,CAAC3D;IACC;IAAA;MACA0G,OAAO,EAAE,IAAI,CAAC1D,WAAW,CAACwB,IAAI,CAAC,IAAI,CAAE;MACrC8B,IAAI,eAAEzG,KAAA,CAAA8D,aAAA,CAACpD,cAAc,MAAE;IAAE,GAC1B,cAEO,CAET,CAAC,EACL6C,WAAW,CAACb,MAAM,GAAG,CAAC,iBACrB1C,KAAA,CAAA8D,aAAA;MACEG,SAAS,EAAErD,OAAO,CAChBG,MAAM,EACN,+BACF,CAAE;MACF8F,OAAO,EAAEA,CAAA,KAAM;QACb,MAAM;UAAExF;QAAO,CAAC,GAAG,IAAI,CAAC+D,KAAK;QAC7B,IAAI,CAAC0B,QAAQ,CAAC;UACZzF,MAAM,EAAE,CAACA;QACX,CAAC,CAAC;MACJ;IAAE,GAED,IAAI,CAAC+D,KAAK,CAAC/D,MAAM,GAAG,IAAI,GAAG,IAAI,EAC/B,IAAI,CAAC+D,KAAK,CAAC/D,MAAM,gBAAGrB,KAAA,CAAA8D,aAAA,CAACrD,UAAU,MAAE,CAAC,gBAAGT,KAAA,CAAA8D,aAAA,CAACtD,YAAY,MAAE,CACpD,CAEF,CACF,CACD,CACH,CACF,CACF,CAAC;EAEV;AACF;AACA,eAAeQ,YAAY"}
1
+ {"version":3,"file":"index.js","names":["React","PureComponent","Form","Button","cls","Col","Row","isEmptyObj","DownOutlined","UpOutlined","ReloadOutlined","SearchOutlined","getLess","getNode","dayjs","styles","HeaderSearch","constructor","arguments","_defineProperty","createRef","expand","setSearchParams","params","callBack","_this$searchRef$curre","newParams","_objectSpread","dateFormat","key","value","Array","isArray","searchRef","current","setFieldsValue","getSearchValues","formValue","formatValue","_this$searchRef$curre2","getFieldsValue","olddata","length","format","rangerDate","e","onSearch","props","fromValue","resetFields","_this$searchRef$curre3","resetSearch","_this$searchRef$curre4","onReset","render","searchForms","toolButtonPosition","buttons","searchFormProps","colSpan","headerCount","headerRout","createElement","gutter","wrap","className","_extends","ref","labelCol","wrapperCol","style","width","display","flexWrap","onFinish","bind","layout","map","item","index","_item$props","itemProps","valueFormat","name","state","allowChars","searchDisabled","type","defaultItem","label","rules","componentName","placeholder","concat","split","rangerFields","md","span","sm","lg","paddingRight","Item","offset","marginTop","buttonRevers","indexOf","icon","marginLeft","htmlType","onClick","setState"],"sources":["../../../src/components/page/HeaderSearch/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport Button from \"../../base/button\";\r\nimport cls from \"classnames\";\r\nimport \"./index.less\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport {\r\n DownOutlined,\r\n UpOutlined,\r\n ReloadOutlined,\r\n SearchOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport dayjs from \"dayjs\";\r\nconst styles = null;\r\ninterface SearchItemProps {\r\n label: string;\r\n name: string;\r\n labelCol?: any;\r\n type?: string;\r\n wrapperCol?: any;\r\n props?: any;\r\n}\r\ninterface SearchProps {\r\n searchForms: Array<SearchItemProps>; //是否显示操作列\r\n toolButtonPosition?: string;\r\n onSearch?: any;\r\n onReset?: any;\r\n searchFormProps?: object;\r\n buttonRevers?: boolean;\r\n className?: any;\r\n buttons?: Array<string>;\r\n}\r\n\r\nclass HeaderSearch extends PureComponent<SearchProps, any> {\r\n searchRef = React.createRef<any>();\r\n dateFormat = {} as any;\r\n rangerDate = {} as any;\r\n state = { expand: false };\r\n setSearchParams(params, callBack) {\r\n let newParams = { ...params };\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let value = newParams[key];\r\n if (typeof value === \"string\") {\r\n newParams[key] = dayjs(value, this.dateFormat[key]);\r\n } else if (Array.isArray(value)) {\r\n if (typeof value[0] === \"string\") {\r\n newParams[key] = [\r\n dayjs(value[0], this.dateFormat[key]),\r\n dayjs(value[1], this.dateFormat[key]),\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n this.searchRef.current?.setFieldsValue(newParams);\r\n }\r\n getSearchValues() {\r\n const formValue = this.formatValue();\r\n return formValue;\r\n }\r\n formatValue() {\r\n const formValue = this.searchRef.current?.getFieldsValue();\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = formValue[key];\r\n if (Array.isArray(olddata)) {\r\n if (olddata.length > 0 && olddata[0] && olddata[1]) {\r\n formValue[key] = [\r\n dayjs(olddata[0]).format(this.dateFormat[key]),\r\n dayjs(olddata[1]).format(this.dateFormat[key]),\r\n ];\r\n }\r\n if (this.rangerDate[key]) {\r\n try {\r\n formValue[this.rangerDate[key][0]] = dayjs(olddata[0]).format(\r\n this.dateFormat[key],\r\n );\r\n formValue[this.rangerDate[key][1]] = dayjs(olddata[1]).format(\r\n this.dateFormat[key],\r\n );\r\n delete formValue[key];\r\n } catch (e) {}\r\n }\r\n } else if (olddata) {\r\n formValue[key] = dayjs(olddata).format(this.dateFormat[key]);\r\n }\r\n }\r\n }\r\n return formValue;\r\n }\r\n onSearch() {\r\n const { onSearch } = this.props;\r\n const fromValue = this.formatValue();\r\n if (onSearch) {\r\n onSearch(fromValue);\r\n return;\r\n }\r\n }\r\n resetFields() {\r\n this.searchRef.current?.resetFields();\r\n }\r\n resetSearch() {\r\n if (this.props.onReset) {\r\n this.props.onReset();\r\n return;\r\n }\r\n this.searchRef.current?.resetFields();\r\n }\r\n render() {\r\n const {\r\n searchForms = [],\r\n toolButtonPosition,\r\n onSearch,\r\n onReset,\r\n buttons = [\"search\", \"reset\"],\r\n searchFormProps = {},\r\n } = this.props;\r\n let colSpan = 0;\r\n const headerCount = toolButtonPosition == \"right\" ? 1 : 2;\r\n const headerRout = searchForms.length % 4;\r\n if (headerRout == 0) {\r\n colSpan = 18;\r\n } else if (headerRout == 1) {\r\n colSpan = 12;\r\n } else if (headerRout == 2) {\r\n colSpan = 6;\r\n }\r\n return (\r\n <Row gutter={24} wrap>\r\n <div\r\n className={cls(\r\n getLess(styles, \"nsc-headersearch-header\"),\r\n {\r\n [getLess(styles, \"nsc-headersearch-header-padding\")]:\r\n searchForms.length > 3,\r\n },\r\n this.props.className,\r\n )}\r\n >\r\n <div className={cls(getLess(styles, \"nsc-headersearch-form\"))}>\r\n <Form\r\n ref={this.searchRef}\r\n labelCol={{}}\r\n wrapperCol={{}}\r\n style={{ width: \"100%\", display: \"flex\", flexWrap: \"wrap\" }}\r\n onFinish={this.onSearch.bind(this)}\r\n // labelAlign={'left'}\r\n layout=\"horizontal\"\r\n {...searchFormProps}\r\n >\r\n {searchForms.map((item: any, index: any) => {\r\n const itemProps = item.props || {};\r\n let display = \"block\";\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (index > headerCount && !this.state.expand) {\r\n display = \"none\";\r\n //return\r\n }\r\n let allowChars = item?.props?.allowChars || false;\r\n let props = { ...itemProps };\r\n\r\n delete props.searchDisabled;\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true;\r\n } else {\r\n delete props.allowChars;\r\n }\r\n let defaultItem = {\r\n label: item.label,\r\n name: item.name,\r\n allowChars: allowChars,\r\n rules: item.rules,\r\n componentName: item.type ? item.type : \"Input\",\r\n } as any;\r\n if (item.labelCol) {\r\n defaultItem = { ...defaultItem, labelCol: item.labelCol };\r\n delete item.labelCol;\r\n }\r\n if (item.wrapperCol) {\r\n defaultItem = { ...defaultItem, wrapperCol: item.wrapperCol };\r\n delete item.wrapperCol;\r\n }\r\n let placeholder: any =\r\n item.type == \"Select\"\r\n ? `请选择${item.label}`\r\n : `请输入${item.label}`;\r\n if (item.type == \"RangePicker\") {\r\n placeholder = [\"开始时间\", \"结束时间\"];\r\n if (item.name.split(\",\").length > 1) {\r\n this.rangerDate[item.name] = item.name.split(\",\");\r\n }\r\n }\r\n delete props.rangerFields;\r\n return (\r\n <Col\r\n md={{ span: 12 }}\r\n sm={{ span: 24 }}\r\n lg={{ span: 6 }}\r\n key={index}\r\n style={{ paddingRight: 0, display: display }}\r\n >\r\n <Form.Item {...defaultItem}>\r\n {getNode(item.type, {\r\n placeholder: placeholder,\r\n style: { width: \"100%\" },\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n })}\r\n <Col\r\n md={{ span: 12 }}\r\n sm={{ span: 24 }}\r\n lg={{ span: toolButtonPosition == \"right\" ? 12 : 6 }}\r\n style={{ paddingRight: 0 }}\r\n offset={\r\n (this.state.expand || searchForms.length < 4) &&\r\n searchForms.length > 1\r\n ? colSpan\r\n : 0\r\n }\r\n >\r\n <div\r\n className={cls(\r\n getLess(styles, \"nsc-headersearch-search-buttons\"),\r\n {\r\n [getLess(styles, \"nsc-headersearch-search-buttons-flex\")]:\r\n searchForms.length > 1,\r\n },\r\n )}\r\n style={{ marginTop: 0 }}\r\n >\r\n <div\r\n className={cls({\r\n [getLess(styles, \"nsc-headersearch-button-reverse\")]:\r\n this.props.buttonRevers == true,\r\n })}\r\n >\r\n {buttons.indexOf(\"search\") > -1 && (\r\n <Button\r\n type={\"primary\"}\r\n // onClick={this.onSearch.bind(this)}\r\n icon={<SearchOutlined />}\r\n style={{ marginLeft: 0 }}\r\n htmlType=\"submit\"\r\n >\r\n 查询\r\n </Button>\r\n )}\r\n {searchForms.length > 1 &&\r\n buttons.indexOf(\"reset\") > -1 && (\r\n <Button\r\n // type={\"primary\"}\r\n onClick={this.resetSearch.bind(this)}\r\n icon={<ReloadOutlined />}\r\n >\r\n 重置\r\n </Button>\r\n )}\r\n </div>\r\n {searchForms.length > 3 && (\r\n <a\r\n className={getLess(\r\n styles,\r\n \"nsc-headersearch-expand-style\",\r\n )}\r\n onClick={() => {\r\n const { expand } = this.state;\r\n this.setState({\r\n expand: !expand,\r\n });\r\n }}\r\n >\r\n {this.state.expand ? \"收起\" : \"展开\"}\r\n {this.state.expand ? <UpOutlined /> : <DownOutlined />}\r\n </a>\r\n )}\r\n </div>\r\n </Col>\r\n </Form>\r\n </div>\r\n </div>\r\n </Row>\r\n );\r\n }\r\n}\r\nexport default HeaderSearch;\r\n"],"mappings":"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"}
@@ -1,9 +1,14 @@
1
1
  import React from "react";
2
- declare class PasswordCheck extends React.PureComponent {
2
+ declare class PasswordCheck extends React.PureComponent<any> {
3
3
  passRef: React.RefObject<any>;
4
4
  numRef: React.RefObject<any>;
5
5
  modalRef: React.RefObject<any>;
6
+ state: {
7
+ checkRes: any;
8
+ timeMin: any;
9
+ };
6
10
  show(): void;
11
+ hide(): void;
7
12
  submit(data: any): any;
8
13
  render(): React.JSX.Element;
9
14
  }
@@ -14,10 +14,17 @@ class PasswordCheck extends React.PureComponent {
14
14
  _defineProperty(this, "passRef", /*#__PURE__*/React.createRef());
15
15
  _defineProperty(this, "numRef", /*#__PURE__*/React.createRef());
16
16
  _defineProperty(this, "modalRef", /*#__PURE__*/React.createRef());
17
+ _defineProperty(this, "state", {
18
+ checkRes: null,
19
+ timeMin: null
20
+ });
17
21
  }
18
22
  show() {
19
23
  this.modalRef.current.show();
20
24
  }
25
+ hide() {
26
+ this.modalRef.current.hide();
27
+ }
21
28
  submit(data) {
22
29
  return request.post("/jquick-system/api-scope/pwd-verify", {
23
30
  data: data,
@@ -35,6 +42,10 @@ class PasswordCheck extends React.PureComponent {
35
42
  }).then(res => {
36
43
  if (res.code == 200) {
37
44
  this.modalRef.current.hide();
45
+ this.props.callBack && this.props.callBack({
46
+ res,
47
+ time: num
48
+ });
38
49
  }
39
50
  });
40
51
  },
@@ -56,4 +67,4 @@ class PasswordCheck extends React.PureComponent {
56
67
  }
57
68
  }
58
69
  export default PasswordCheck;
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk1vZGFsIiwiSW5wdXQiLCJyZXF1ZXN0IiwibWQ1Iiwic3R5bGVzIiwiZ2V0TGVzcyIsIlBhc3N3b3JkQ2hlY2siLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJzaG93IiwibW9kYWxSZWYiLCJjdXJyZW50Iiwic3VibWl0IiwiZGF0YSIsInBvc3QiLCJhdXRvUHJlZml4IiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIm9uT2siLCJ2YWx1ZSIsInBhc3NSZWYiLCJnZXRWYWx1ZSIsIm51bSIsIm51bVJlZiIsInB3ZCIsImF1dGhNaW51dGVzIiwidGhlbiIsInJlcyIsImNvZGUiLCJoaWRlIiwidGl0bGUiLCJyZWYiLCJjbGFzc05hbWUiLCJQYXNzd29yZCIsIk51bWJlciIsIm1pbiIsIm1heCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvUGFzc3dvcmRDaGVjay9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuaW1wb3J0IElucHV0IGZyb20gXCIuLi8uLi9iYXNlL2lucHV0XCI7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgbWQ1IGZyb20gXCJtZDVcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuXHJcbmNsYXNzIFBhc3N3b3JkQ2hlY2sgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcclxuICBwYXNzUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBudW1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIG1vZGFsUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzaG93KCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50LnNob3coKTtcclxuICB9XHJcbiAgc3VibWl0KGRhdGEpIHtcclxuICAgIHJldHVybiByZXF1ZXN0LnBvc3QoYC9qcXVpY2stc3lzdGVtL2FwaS1zY29wZS9wd2QtdmVyaWZ5YCwge1xyXG4gICAgICBkYXRhOiBkYXRhLFxyXG4gICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxNb2RhbFxyXG4gICAgICAgIG9uT2s9eygpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXNzUmVmLmN1cnJlbnQuZ2V0VmFsdWUoKTtcclxuICAgICAgICAgIGNvbnN0IG51bSA9IHRoaXMubnVtUmVmLmN1cnJlbnQuZ2V0VmFsdWUoKTtcclxuICAgICAgICAgIHRoaXMuc3VibWl0KHsgcHdkOiBtZDUodmFsdWUpLCBhdXRoTWludXRlczogbnVtIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50LmhpZGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICB0aXRsZT17XCLlr4bnoIHnoa7orqRcIn1cclxuICAgICAgICByZWY9e3RoaXMubW9kYWxSZWZ9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXBhc3N3b3JkLW1hcmdpbi10ZXh0XCIpfT5cclxuICAgICAgICAgIOehruiupOWvhueggTpcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8SW5wdXQuUGFzc3dvcmRcclxuICAgICAgICAgIHJlZj17dGhpcy5wYXNzUmVmfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtcGFzc3dvcmQtbWFyZ2luLWlucHV0XCIpfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1wYXNzd29yZC1tYXJnaW4tdGV4dFwiKX0+XHJcbiAgICAgICAgICB7XCLmnInmlYjml7bpl7Qo5YiG6ZKfKVwifTpcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8SW5wdXQuTnVtYmVyXHJcbiAgICAgICAgICByZWY9e3RoaXMubnVtUmVmfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtcGFzc3dvcmQtbWFyZ2luLWlucHV0XCIpfVxyXG4gICAgICAgICAgbWluPXs1fVxyXG4gICAgICAgICAgbWF4PXszMH1cclxuICAgICAgICAvPlxyXG4gICAgICA8L01vZGFsPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgUGFzc3dvcmRDaGVjaztcclxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxLQUFLLE1BQU0sa0JBQWtCO0FBQ3BDLE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFDcEMsT0FBT0MsT0FBTyxNQUFNLGFBQWE7QUFDakMsT0FBT0MsR0FBRyxNQUFNLEtBQUs7QUFDckIsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFFckMsTUFBTUMsYUFBYSxTQUFTUCxLQUFLLENBQUNRLGFBQWEsQ0FBQztFQUFBQyxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLCtCQUNwQ1gsS0FBSyxDQUFDWSxTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLDhCQUN2QlgsS0FBSyxDQUFDWSxTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLGdDQUNwQlgsS0FBSyxDQUFDWSxTQUFTLENBQU0sQ0FBQztFQUFBO0VBQ2pDQyxJQUFJQSxDQUFBLEVBQUc7SUFDTCxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDRixJQUFJLENBQUMsQ0FBQztFQUM5QjtFQUNBRyxNQUFNQSxDQUFDQyxJQUFJLEVBQUU7SUFDWCxPQUFPZCxPQUFPLENBQUNlLElBQUksd0NBQXdDO01BQ3pERCxJQUFJLEVBQUVBLElBQUk7TUFDVkUsVUFBVSxFQUFFO0lBQ2QsQ0FBQyxDQUFDO0VBQ0o7RUFDQUMsTUFBTUEsQ0FBQSxFQUFHO0lBQ1Asb0JBQ0VwQixLQUFBLENBQUFxQixhQUFBLENBQUNwQixLQUFLO01BQ0pxQixJQUFJLEVBQUVBLENBQUEsS0FBTTtRQUNWLE1BQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLE9BQU8sQ0FBQ1QsT0FBTyxDQUFDVSxRQUFRLENBQUMsQ0FBQztRQUM3QyxNQUFNQyxHQUFHLEdBQUcsSUFBSSxDQUFDQyxNQUFNLENBQUNaLE9BQU8sQ0FBQ1UsUUFBUSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDVCxNQUFNLENBQUM7VUFBRVksR0FBRyxFQUFFeEIsR0FBRyxDQUFDbUIsS0FBSyxDQUFDO1VBQUVNLFdBQVcsRUFBRUg7UUFBSSxDQUFDLENBQUMsQ0FBQ0ksSUFBSSxDQUFFQyxHQUFHLElBQUs7VUFDL0QsSUFBSUEsR0FBRyxDQUFDQyxJQUFJLElBQUksR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQ2xCLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDa0IsSUFBSSxDQUFDLENBQUM7VUFDOUI7UUFDRixDQUFDLENBQUM7TUFDSixDQUFFO01BQ0ZDLEtBQUssRUFBRSxNQUFPO01BQ2RDLEdBQUcsRUFBRSxJQUFJLENBQUNyQjtJQUFTLGdCQUVuQmQsS0FBQSxDQUFBcUIsYUFBQTtNQUFLZSxTQUFTLEVBQUU5QixPQUFPLENBQUNELE1BQU0sRUFBRSwwQkFBMEI7SUFBRSxHQUFDLDJCQUV4RCxDQUFDLGVBQ05MLEtBQUEsQ0FBQXFCLGFBQUEsQ0FBQ25CLEtBQUssQ0FBQ21DLFFBQVE7TUFDYkYsR0FBRyxFQUFFLElBQUksQ0FBQ1gsT0FBUTtNQUNsQlksU0FBUyxFQUFFOUIsT0FBTyxDQUFDRCxNQUFNLEVBQUUsMkJBQTJCO0lBQUUsQ0FDekQsQ0FBQyxlQUNGTCxLQUFBLENBQUFxQixhQUFBO01BQUtlLFNBQVMsRUFBRTlCLE9BQU8sQ0FBQ0QsTUFBTSxFQUFFLDBCQUEwQjtJQUFFLEdBQ3pELFVBQVUsRUFBQyxHQUNULENBQUMsZUFDTkwsS0FBQSxDQUFBcUIsYUFBQSxDQUFDbkIsS0FBSyxDQUFDb0MsTUFBTTtNQUNYSCxHQUFHLEVBQUUsSUFBSSxDQUFDUixNQUFPO01BQ2pCUyxTQUFTLEVBQUU5QixPQUFPLENBQUNELE1BQU0sRUFBRSwyQkFBMkIsQ0FBRTtNQUN4RGtDLEdBQUcsRUFBRSxDQUFFO01BQ1BDLEdBQUcsRUFBRTtJQUFHLENBQ1QsQ0FDSSxDQUFDO0VBRVo7QUFDRjtBQUNBLGVBQWVqQyxhQUFhIn0=
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk1vZGFsIiwiSW5wdXQiLCJyZXF1ZXN0IiwibWQ1Iiwic3R5bGVzIiwiZ2V0TGVzcyIsIlBhc3N3b3JkQ2hlY2siLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJjaGVja1JlcyIsInRpbWVNaW4iLCJzaG93IiwibW9kYWxSZWYiLCJjdXJyZW50IiwiaGlkZSIsInN1Ym1pdCIsImRhdGEiLCJwb3N0IiwiYXV0b1ByZWZpeCIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJvbk9rIiwidmFsdWUiLCJwYXNzUmVmIiwiZ2V0VmFsdWUiLCJudW0iLCJudW1SZWYiLCJwd2QiLCJhdXRoTWludXRlcyIsInRoZW4iLCJyZXMiLCJjb2RlIiwicHJvcHMiLCJjYWxsQmFjayIsInRpbWUiLCJ0aXRsZSIsInJlZiIsImNsYXNzTmFtZSIsIlBhc3N3b3JkIiwiTnVtYmVyIiwibWluIiwibWF4Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9QYXNzd29yZENoZWNrL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vYmFzZS9tb2RhbFwiO1xyXG5pbXBvcnQgSW5wdXQgZnJvbSBcIi4uLy4uL2Jhc2UvaW5wdXRcIjtcclxuaW1wb3J0IHJlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCBtZDUgZnJvbSBcIm1kNVwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5cclxuY2xhc3MgUGFzc3dvcmRDaGVjayBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8YW55PiB7XHJcbiAgcGFzc1JlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgbnVtUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBtb2RhbFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBjaGVja1JlczogbnVsbCxcclxuICAgIHRpbWVNaW46IG51bGwsXHJcbiAgfTtcclxuICBzaG93KCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50LnNob3coKTtcclxuICB9XHJcblxyXG4gIGhpZGUoKSB7XHJcbiAgICB0aGlzLm1vZGFsUmVmLmN1cnJlbnQuaGlkZSgpO1xyXG4gIH1cclxuICBzdWJtaXQoZGF0YSkge1xyXG4gICAgcmV0dXJuIHJlcXVlc3QucG9zdChgL2pxdWljay1zeXN0ZW0vYXBpLXNjb3BlL3B3ZC12ZXJpZnlgLCB7XHJcbiAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgIGF1dG9QcmVmaXg6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPE1vZGFsXHJcbiAgICAgICAgb25Paz17KCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBhc3NSZWYuY3VycmVudC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgY29uc3QgbnVtID0gdGhpcy5udW1SZWYuY3VycmVudC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXQoeyBwd2Q6IG1kNSh2YWx1ZSksIGF1dGhNaW51dGVzOiBudW0gfSkudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLm1vZGFsUmVmLmN1cnJlbnQuaGlkZSgpO1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvcHMuY2FsbEJhY2sgJiYgdGhpcy5wcm9wcy5jYWxsQmFjayh7IHJlcywgdGltZTogbnVtIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIHRpdGxlPXtcIuWvhueggeehruiupFwifVxyXG4gICAgICAgIHJlZj17dGhpcy5tb2RhbFJlZn1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtcGFzc3dvcmQtbWFyZ2luLXRleHRcIil9PlxyXG4gICAgICAgICAg56Gu6K6k5a+G56CBOlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxJbnB1dC5QYXNzd29yZFxyXG4gICAgICAgICAgcmVmPXt0aGlzLnBhc3NSZWZ9XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1wYXNzd29yZC1tYXJnaW4taW5wdXRcIil9XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXBhc3N3b3JkLW1hcmdpbi10ZXh0XCIpfT5cclxuICAgICAgICAgIHtcIuacieaViOaXtumXtCjliIbpkp8pXCJ9OlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxJbnB1dC5OdW1iZXJcclxuICAgICAgICAgIHJlZj17dGhpcy5udW1SZWZ9XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1wYXNzd29yZC1tYXJnaW4taW5wdXRcIil9XHJcbiAgICAgICAgICBtaW49ezV9XHJcbiAgICAgICAgICBtYXg9ezMwfVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTW9kYWw+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBQYXNzd29yZENoZWNrO1xyXG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFDcEMsT0FBT0MsS0FBSyxNQUFNLGtCQUFrQjtBQUNwQyxPQUFPQyxPQUFPLE1BQU0sYUFBYTtBQUNqQyxPQUFPQyxH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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Modal","Input","request","md5","styles","getLess","PasswordCheck","PureComponent","constructor","arguments","_defineProperty","createRef","show","modalRef","current","submit","data","post","autoPrefix","render","createElement","onOk","value","passRef","getValue","num","numRef","pwd","authMinutes","then","res","code","hide","title","ref","className","Password","Number","min","max"],"sources":["../../../src/components/page/PasswordCheck/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport Modal from \"../../base/modal\";\r\nimport Input from \"../../base/input\";\r\nimport request from \"nsc-request\";\r\nimport md5 from \"md5\";\r\nimport styles from \"./index.less\";\r\nimport { getLess } from \"../../utils\";\r\n\r\nclass PasswordCheck extends React.PureComponent {\r\n passRef = React.createRef<any>();\r\n numRef = React.createRef<any>();\r\n modalRef = React.createRef<any>();\r\n show() {\r\n this.modalRef.current.show();\r\n }\r\n submit(data) {\r\n return request.post(`/jquick-system/api-scope/pwd-verify`, {\r\n data: data,\r\n autoPrefix: true,\r\n });\r\n }\r\n render() {\r\n return (\r\n <Modal\r\n onOk={() => {\r\n const value = this.passRef.current.getValue();\r\n const num = this.numRef.current.getValue();\r\n this.submit({ pwd: md5(value), authMinutes: num }).then((res) => {\r\n if (res.code == 200) {\r\n this.modalRef.current.hide();\r\n }\r\n });\r\n }}\r\n title={\"密码确认\"}\r\n ref={this.modalRef}\r\n >\r\n <div className={getLess(styles, \"nsc-password-margin-text\")}>\r\n 确认密码:\r\n </div>\r\n <Input.Password\r\n ref={this.passRef}\r\n className={getLess(styles, \"nsc-password-margin-input\")}\r\n />\r\n <div className={getLess(styles, \"nsc-password-margin-text\")}>\r\n {\"有效时间(分钟)\"}:\r\n </div>\r\n <Input.Number\r\n ref={this.numRef}\r\n className={getLess(styles, \"nsc-password-margin-input\")}\r\n min={5}\r\n max={30}\r\n />\r\n </Modal>\r\n );\r\n }\r\n}\r\nexport default PasswordCheck;\r\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,kBAAkB;AACpC,OAAOC,KAAK,MAAM,kBAAkB;AACpC,OAAOC,OAAO,MAAM,aAAa;AACjC,OAAOC,GAAG,MAAM,KAAK;AACrB,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,OAAO,QAAQ,aAAa;AAErC,MAAMC,aAAa,SAASP,KAAK,CAACQ,aAAa,CAAC;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,+BACpCX,KAAK,CAACY,SAAS,CAAM,CAAC;IAAAD,eAAA,8BACvBX,KAAK,CAACY,SAAS,CAAM,CAAC;IAAAD,eAAA,gCACpBX,KAAK,CAACY,SAAS,CAAM,CAAC;EAAA;EACjCC,IAAIA,CAAA,EAAG;IACL,IAAI,CAACC,QAAQ,CAACC,OAAO,CAACF,IAAI,CAAC,CAAC;EAC9B;EACAG,MAAMA,CAACC,IAAI,EAAE;IACX,OAAOd,OAAO,CAACe,IAAI,wCAAwC;MACzDD,IAAI,EAAEA,IAAI;MACVE,UAAU,EAAE;IACd,CAAC,CAAC;EACJ;EACAC,MAAMA,CAAA,EAAG;IACP,oBACEpB,KAAA,CAAAqB,aAAA,CAACpB,KAAK;MACJqB,IAAI,EAAEA,CAAA,KAAM;QACV,MAAMC,KAAK,GAAG,IAAI,CAACC,OAAO,CAACT,OAAO,CAACU,QAAQ,CAAC,CAAC;QAC7C,MAAMC,GAAG,GAAG,IAAI,CAACC,MAAM,CAACZ,OAAO,CAACU,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAACT,MAAM,CAAC;UAAEY,GAAG,EAAExB,GAAG,CAACmB,KAAK,CAAC;UAAEM,WAAW,EAAEH;QAAI,CAAC,CAAC,CAACI,IAAI,CAAEC,GAAG,IAAK;UAC/D,IAAIA,GAAG,CAACC,IAAI,IAAI,GAAG,EAAE;YACnB,IAAI,CAAClB,QAAQ,CAACC,OAAO,CAACkB,IAAI,CAAC,CAAC;UAC9B;QACF,CAAC,CAAC;MACJ,CAAE;MACFC,KAAK,EAAE,MAAO;MACdC,GAAG,EAAE,IAAI,CAACrB;IAAS,gBAEnBd,KAAA,CAAAqB,aAAA;MAAKe,SAAS,EAAE9B,OAAO,CAACD,MAAM,EAAE,0BAA0B;IAAE,GAAC,2BAExD,CAAC,eACNL,KAAA,CAAAqB,aAAA,CAACnB,KAAK,CAACmC,QAAQ;MACbF,GAAG,EAAE,IAAI,CAACX,OAAQ;MAClBY,SAAS,EAAE9B,OAAO,CAACD,MAAM,EAAE,2BAA2B;IAAE,CACzD,CAAC,eACFL,KAAA,CAAAqB,aAAA;MAAKe,SAAS,EAAE9B,OAAO,CAACD,MAAM,EAAE,0BAA0B;IAAE,GACzD,UAAU,EAAC,GACT,CAAC,eACNL,KAAA,CAAAqB,aAAA,CAACnB,KAAK,CAACoC,MAAM;MACXH,GAAG,EAAE,IAAI,CAACR,MAAO;MACjBS,SAAS,EAAE9B,OAAO,CAACD,MAAM,EAAE,2BAA2B,CAAE;MACxDkC,GAAG,EAAE,CAAE;MACPC,GAAG,EAAE;IAAG,CACT,CACI,CAAC;EAEZ;AACF;AACA,eAAejC,aAAa"}
1
+ {"version":3,"file":"index.js","names":["React","Modal","Input","request","md5","styles","getLess","PasswordCheck","PureComponent","constructor","arguments","_defineProperty","createRef","checkRes","timeMin","show","modalRef","current","hide","submit","data","post","autoPrefix","render","createElement","onOk","value","passRef","getValue","num","numRef","pwd","authMinutes","then","res","code","props","callBack","time","title","ref","className","Password","Number","min","max"],"sources":["../../../src/components/page/PasswordCheck/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport Modal from \"../../base/modal\";\r\nimport Input from \"../../base/input\";\r\nimport request from \"nsc-request\";\r\nimport md5 from \"md5\";\r\nimport styles from \"./index.less\";\r\nimport { getLess } from \"../../utils\";\r\n\r\nclass PasswordCheck extends React.PureComponent<any> {\r\n passRef = React.createRef<any>();\r\n numRef = React.createRef<any>();\r\n modalRef = React.createRef<any>();\r\n state = {\r\n checkRes: null,\r\n timeMin: null,\r\n };\r\n show() {\r\n this.modalRef.current.show();\r\n }\r\n\r\n hide() {\r\n this.modalRef.current.hide();\r\n }\r\n submit(data) {\r\n return request.post(`/jquick-system/api-scope/pwd-verify`, {\r\n data: data,\r\n autoPrefix: true,\r\n });\r\n }\r\n render() {\r\n return (\r\n <Modal\r\n onOk={() => {\r\n const value = this.passRef.current.getValue();\r\n const num = this.numRef.current.getValue();\r\n this.submit({ pwd: md5(value), authMinutes: num }).then((res) => {\r\n if (res.code == 200) {\r\n this.modalRef.current.hide();\r\n this.props.callBack && this.props.callBack({ res, time: num });\r\n }\r\n });\r\n }}\r\n title={\"密码确认\"}\r\n ref={this.modalRef}\r\n >\r\n <div className={getLess(styles, \"nsc-password-margin-text\")}>\r\n 确认密码:\r\n </div>\r\n <Input.Password\r\n ref={this.passRef}\r\n className={getLess(styles, \"nsc-password-margin-input\")}\r\n />\r\n <div className={getLess(styles, \"nsc-password-margin-text\")}>\r\n {\"有效时间(分钟)\"}:\r\n </div>\r\n <Input.Number\r\n ref={this.numRef}\r\n className={getLess(styles, \"nsc-password-margin-input\")}\r\n min={5}\r\n max={30}\r\n />\r\n </Modal>\r\n );\r\n }\r\n}\r\nexport default PasswordCheck;\r\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,kBAAkB;AACpC,OAAOC,KAAK,MAAM,kBAAkB;AACpC,OAAOC,OAAO,MAAM,aAAa;AACjC,OAAOC,GAAG,MAAM,KAAK;AACrB,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,OAAO,QAAQ,aAAa;AAErC,MAAMC,aAAa,SAASP,KAAK,CAACQ,aAAa,CAAM;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,+BACzCX,KAAK,CAACY,SAAS,CAAM,CAAC;IAAAD,eAAA,8BACvBX,KAAK,CAACY,SAAS,CAAM,CAAC;IAAAD,eAAA,gCACpBX,KAAK,CAACY,SAAS,CAAM,CAAC;IAAAD,eAAA,gBACzB;MACNE,QAAQ,EAAE,IAAI;MACdC,OAAO,EAAE;IACX,CAAC;EAAA;EACDC,IAAIA,CAAA,EAAG;IACL,IAAI,CAACC,QAAQ,CAACC,OAAO,CAACF,IAAI,CAAC,CAAC;EAC9B;EAEAG,IAAIA,CAAA,EAAG;IACL,IAAI,CAACF,QAAQ,CAACC,OAAO,CAACC,IAAI,CAAC,CAAC;EAC9B;EACAC,MAAMA,CAACC,IAAI,EAAE;IACX,OAAOjB,OAAO,CAACkB,IAAI,wCAAwC;MACzDD,IAAI,EAAEA,IAAI;MACVE,UAAU,EAAE;IACd,CAAC,CAAC;EACJ;EACAC,MAAMA,CAAA,EAAG;IACP,oBACEvB,KAAA,CAAAwB,aAAA,CAACvB,KAAK;MACJwB,IAAI,EAAEA,CAAA,KAAM;QACV,MAAMC,KAAK,GAAG,IAAI,CAACC,OAAO,CAACV,OAAO,CAACW,QAAQ,CAAC,CAAC;QAC7C,MAAMC,GAAG,GAAG,IAAI,CAACC,MAAM,CAACb,OAAO,CAACW,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAACT,MAAM,CAAC;UAAEY,GAAG,EAAE3B,GAAG,CAACsB,KAAK,CAAC;UAAEM,WAAW,EAAEH;QAAI,CAAC,CAAC,CAACI,IAAI,CAAEC,GAAG,IAAK;UAC/D,IAAIA,GAAG,CAACC,IAAI,IAAI,GAAG,EAAE;YACnB,IAAI,CAACnB,QAAQ,CAACC,OAAO,CAACC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAACkB,KAAK,CAACC,QAAQ,IAAI,IAAI,CAACD,KAAK,CAACC,QAAQ,CAAC;cAAEH,GAAG;cAAEI,IAAI,EAAET;YAAI,CAAC,CAAC;UAChE;QACF,CAAC,CAAC;MACJ,CAAE;MACFU,KAAK,EAAE,MAAO;MACdC,GAAG,EAAE,IAAI,CAACxB;IAAS,gBAEnBhB,KAAA,CAAAwB,aAAA;MAAKiB,SAAS,EAAEnC,OAAO,CAACD,MAAM,EAAE,0BAA0B;IAAE,GAAC,2BAExD,CAAC,eACNL,KAAA,CAAAwB,aAAA,CAACtB,KAAK,CAACwC,QAAQ;MACbF,GAAG,EAAE,IAAI,CAACb,OAAQ;MAClBc,SAAS,EAAEnC,OAAO,CAACD,MAAM,EAAE,2BAA2B;IAAE,CACzD,CAAC,eACFL,KAAA,CAAAwB,aAAA;MAAKiB,SAAS,EAAEnC,OAAO,CAACD,MAAM,EAAE,0BAA0B;IAAE,GACzD,UAAU,EAAC,GACT,CAAC,eACNL,KAAA,CAAAwB,aAAA,CAACtB,KAAK,CAACyC,MAAM;MACXH,GAAG,EAAE,IAAI,CAACV,MAAO;MACjBW,SAAS,EAAEnC,OAAO,CAACD,MAAM,EAAE,2BAA2B,CAAE;MACxDuC,GAAG,EAAE,CAAE;MACPC,GAAG,EAAE;IAAG,CACT,CACI,CAAC;EAEZ;AACF;AACA,eAAetC,aAAa"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "4.5.10",
3
+ "version": "4.5.12",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {