nsc-react-component 4.5.9 → 4.5.10

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.
@@ -23,7 +23,6 @@ import "./index.less";
23
23
  */
24
24
  class NscChart extends PureComponent {
25
25
  constructor(props) {
26
- console.log('constructor');
27
26
  super(props);
28
27
  _defineProperty(this, "chartRef", /*#__PURE__*/React.createRef());
29
28
  _defineProperty(this, "myChart", null);
@@ -478,4 +477,4 @@ class NscChart extends PureComponent {
478
477
  }
479
478
  }
480
479
  export default NscChart;
481
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJlY2hhcnRzIiwiU3RvcmUiLCJ1dGlscyIsInB4MnZ3IiwiaXNBcnJheSIsImlzT2JqZWN0IiwiY2xzIiwiTnNjQ2hhcnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiY29uc29sZSIsImxvZyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImRhdGFTb3VyY2UiLCJsZWdlbmREYXRhIiwiY29sb3JzIiwiZGF0YSIsInN0b3JlIiwiY2hpbGRyZW4iLCJvcHRpb24iLCJvcHRpb25zIiwiYXV0b0xvYWQiLCJ1cmwiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQb3BzIiwic3RvcmVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiRXJyb3IiLCJfdGhpcyIsInN0b3JlUHJvcHMiLCJfb2JqZWN0U3ByZWFkIiwibW9kZWwiLCJjb21wb25lbnQiLCJvbkJlZm9yZUxvYWQiLCJjYWxsYmFjayIsImxvYWQiLCJtb2RlbERhdGEiLCJzZXRTdGF0ZSIsImlzRmlyc3QiLCJpbml0IiwiZGF0YUNoYW5nZWQiLCJjb21wb25lbnREaWRNb3VudCIsIm15Q2hhcnQiLCJjaGFydFJlZiIsImN1cnJlbnQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJzbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZVNldENoYXJ0IiwiaXNTdHJpbmciLCJ2IiwiY2hhcnRMb2FkIiwicGFyYW1zIiwiY2hhcnRSZUxvYWQiLCJyZWxvYWQiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImRpc3Bvc2UiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2hhcnRSZXNpemUiLCJiaW5kIiwiaXNSZXBsYWNlIiwidGVzdCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJnZXRSYW5kb21Db2xvciIsImNvbG9yIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwidG9TdHJpbmciLCJwYWRTdGFydCIsImdlbmVyYXRlQ29sb3JzIiwiY291bnQiLCJkZWZhdWx0Q29sb3JzIiwic2xpY2UiLCJuZWVkZWQiLCJpIiwicHVzaCIsImRhdGFDb252ZXJzaW9uIiwiZGF0YXMiLCJkYXRhTWFwIiwicmVzdWx0IiwibWFwIiwiaXRlbSIsInZhbHVlIiwidGVtcE9iaiIsImtleSIsIm9iamVjdENvbnZlcnNpb24iLCJvYmoiLCJ0eXBlIiwibGVnZW5kIiwiYWxsRGF0YSIsImNhbGN1bGF0ZVBlcmNlbnRhZ2VzIiwidG90YWwiLCJyZWR1Y2UiLCJzdW0iLCJuYW1lIiwicGVyY2VudCIsImluZGV4IiwiY29uY2F0IiwidG9GaXhlZCIsIm90aGVyc1RvdGFsIiwicGFyc2VGbG9hdCIsImxhc3RQZXJjZW50IiwiZ2V0TmV3T3B0aW9uIiwibmV3T3B0aW9uIiwic2VyaWVzIiwiQXJyYXkiLCJ0b29sdGlwIiwidHJpZ2dlciIsInNlcmllc0l0ZW0iLCJiYXJXaWR0aCIsIml0ZW1TdHlsZSIsImJvcmRlclJhZGl1cyIsInBpZURhdGFDb3VudCIsInBpZUNvbG9ycyIsInJhZGl1cyIsImxhYmVsIiwic2hvdyIsImJvcmRlckNvbG9yIiwiYm9yZGVyV2lkdGgiLCJfbXlDaGFydCRnZXRaciIsIl9teUNoYXJ0JGdldFpyMiIsIk9uQ2xpY2siLCJPblpyQ2xpY2siLCJzdGF0ZSIsIm5ld0RhdGFzIiwic2VyaWVzQ291bnQiLCJkZWZhdWx0T3B0aW9uIiwieEF4aXMiLCJ5QXhpcyIsImNoYXJ0Q29sb3JzIiwiY2xlYXIiLCJvZmYiLCJnZXRaciIsInNldE9wdGlvbiIsIm9uIiwic2V0VGltZW91dCIsInJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW5kZXIiLCJ3aWR0aCIsImhlaWdodCIsImJveFN0eWxlIiwiZGlzcGxheSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInJlZiIsImZsZXgiLCJjbGFzc05hbWUiLCJiYWNrZ3JvdW5kQ29sb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL2NoYXJ0L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgKiBhcyBlY2hhcnRzIGZyb20gXCJlY2hhcnRzXCI7XHJcbmltcG9ydCB7IEVDaGFydHMgfSBmcm9tIFwiZWNoYXJ0cy9saWIvZWNoYXJ0c1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHsgZGVlcE1lcmdlLCBweDJ2dyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBpc09iamVjdCB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0UHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBvcHRpb246IGFueTtcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PiB8IE9iamVjdDtcclxuICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nOyAvL+WbvuihqOWuveW6plxyXG4gIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nOyAvL+WbvuihqOmVv+W6plxyXG4gIGF1dG9Mb2FkPzogYm9vbGVhbjsgLy/mlbDmja7mlLnlj5jvvIzoh6rliqjliLfmlrDlm77ooags6buY6K6kdHJ1ZVxyXG4gIE9uQ2xpY2s/OiAocGFyYW1zOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7IC8v5Zu+6KGo54K55Ye75LqL5Lu2XHJcbiAgT25ackNsaWNrPzogKHBhcmFtczogYW55LCBlPzogYW55KSA9PiB2b2lkOyAvL+WbvuihqOeCueWHu+S6i+S7tlxyXG4gIGxlZ2VuZD86IGJvb2xlYW47IC8v6Ieq5a6a5LmJ5Zu+5L6L5piv5ZCm5pi+56S6IO+8jOeUqOS6jumlvOWbvlxyXG4gIFtwcm9OYW1lczogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vL2RhdGHnpLrkvotcclxuLyoqXHJcbiDmlbDnu4TvvJpcclxuIGRhdGE9W3tuYW1lOicx5pyIJyx2YWx1ZToyMH0se25hbWU6JzLmnIgnLHZhbHVlOjEwfSx7bmFtZTonM+aciCcsdmFsdWU6MjV9XVxyXG4g5a+56LGhXHJcbiBkYXRhPXtuYW1lOlsnMeaciCcsJzLmnIgnLCcz5pyIJ10sdmFsdWU6WzIwLDMwLDQwXX1cclxuICovXHJcbmNsYXNzIE5zY0NoYXJ0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxDaGFydFByb3BzPiB7XHJcbiAgY2hhcnRSZWYgPSBSZWFjdC5jcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcbiAgbXlDaGFydDogRUNoYXJ0cyB8IG51bGwgPSBudWxsO1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBkZWZhdWx0Q29sb3JzID0gW1xyXG4gICAgXCIjNUI5NkY3XCIsXHJcbiAgICBcIiM3M0M4RkZcIixcclxuICAgIFwiIzNDNkNGRVwiLFxyXG4gICAgXCIjODE4RkZGXCIsXHJcbiAgICBcIiM5N0RDRkJcIixcclxuICAgIFwiI0VGNkY1QlwiLFxyXG4gICAgXCIjRjhCRjcwXCIsXHJcbiAgICBcIiM1N0MzOUVcIixcclxuICBdIGFzIHN0cmluZ1tdO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZGF0YVNvdXJjZTogbnVsbCxcclxuICAgIGxlZ2VuZERhdGE6IFtdLFxyXG4gICAgY29sb3JzOiBbXSxcclxuICB9O1xyXG4gIGlzRmlyc3QgPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBjb25zb2xlLmxvZygnY29uc3RydWN0b3InKVxyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9uOiBvcHRpb25zLFxyXG4gICAgICBhdXRvTG9hZCA9IHRydWUsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7IHVybCwgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sIC4uLnN0b3JlcyB9ID0gc3RvcmU7XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGlmICghKGRhdGEgfHwgdXJsIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBZGF0YeOAgW9wdGlvbuS4jeiDvemDveS4uuepuu+8gVwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgICBsZXQgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChfdGhpcy5pc0ZpcnN0ICYmIGF1dG9Mb2FkKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pbml0KCk7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pc0ZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKHVybCAmJiBkYXRhID09IG51bGwpIHtcclxuICAgICAgICBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICBhdXRvTG9hZDogdHJ1ZSxcclxuICAgICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgYXV0b0xvYWQgPSB0cnVlLCBzdG9yZSwgb3B0aW9uIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGlmICh0aGlzLm15Q2hhcnQgfHwgIXRoaXMuY2hhcnRSZWYuY3VycmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoZGF0YSAmJiBhdXRvTG9hZCkge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgIH0gZWxzZSBpZiAoIWRhdGEgJiYgIXN0b3JlPy51cmwgJiYgb3B0aW9uKSB7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKFxyXG4gICAgcHJldlByb3BzOiBSZWFkb25seTxDaGFydFByb3BzPixcclxuICAgIHByZXZTdGF0ZTogUmVhZG9ubHk8e30+LFxyXG4gICAgc25hcHNob3Q/OiBhbnlcclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgYXV0b0xvYWQgPSB0cnVlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKGF1dG9Mb2FkKSB7XHJcbiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShwcmV2UHJvcHMuZGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZGF0YSkpIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShwcmV2UHJvcHMub3B0aW9uKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5vcHRpb24pXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZVNldENoYXJ0KCkge1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG4gIGlzU3RyaW5nKHYpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIjtcclxuICB9XHJcblxyXG5cclxuICBjaGFydExvYWQocGFyYW1zKXtcclxuICAgIHRoaXMuc3RvcmUubG9hZCh7cGFyYW1zfSlcclxuICB9XHJcbiAgY2hhcnRSZUxvYWQoKXtcclxuICAgIHRoaXMuc3RvcmUucmVsb2FkKCk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgLy8g5riF55CGIGVjaGFydHMg5a6e5L6LXHJcbiAgICBpZiAodGhpcy5teUNoYXJ0KSB7XHJcbiAgICAgIHRoaXMubXlDaGFydC5kaXNwb3NlKCk7XHJcbiAgICAgIHRoaXMubXlDaGFydCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g56e76Zmk5LqL5Lu255uR5ZCs5ZmoXHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLmhhbmRsZUNoYXJ0UmVzaXplLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgaXNSZXBsYWNlKHYpIHtcclxuICAgIHJldHVybiAvXnsuKn0kL2dpLnRlc3Qodik7XHJcbiAgfVxyXG4gIHJlcGxhY2Uodikge1xyXG4gICAgcmV0dXJuIHYuc3Vic3RyaW5nKDEsIHYubGVuZ3RoIC0gMSk7XHJcbiAgfVxyXG5cclxuICBnZXRSYW5kb21Db2xvcigpIHtcclxuICAgIGxldCBjb2xvcjtcclxuICAgIGRvIHtcclxuICAgICAgY29sb3IgPVxyXG4gICAgICAgIFwiI1wiICtcclxuICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAweGZmZmZmZilcclxuICAgICAgICAgIC50b1N0cmluZygxNilcclxuICAgICAgICAgIC5wYWRTdGFydCg2LCBcIjBcIik7XHJcbiAgICB9IHdoaWxlIChjb2xvciA9PT0gXCIjRkZGRkZGXCIgfHwgY29sb3IgPT09IFwiIzAwMDAwMFwiKTtcclxuICAgIHJldHVybiBjb2xvcjtcclxuICB9XHJcbiAgZ2VuZXJhdGVDb2xvcnMoY291bnQ6IG51bWJlcik6IHN0cmluZ1tdIHtcclxuICAgIC8vIOWmguaenOmcgOimgeeahOminOiJsuaVsOmHj+WwkeS6juaIluetieS6jum7mOiupOminOiJsuaVsOmHj++8jOebtOaOpei/lOWbnuWvueW6lOaVsOmHj+eahOm7mOiupOminOiJslxyXG4gICAgaWYgKGNvdW50IDw9IHRoaXMuZGVmYXVsdENvbG9ycy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvbG9ycy5zbGljZSgwLCBjb3VudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5ZCm5YiZ77yM5YWI5aSN5Yi25omA5pyJ6buY6K6k6aKc6ImyXHJcbiAgICBjb25zdCBjb2xvcnMgPSBbLi4udGhpcy5kZWZhdWx0Q29sb3JzXTtcclxuXHJcbiAgICAvLyDnlJ/miJDpop3lpJbnmoTpmo/mnLrpopzoibJcclxuICAgIGNvbnN0IG5lZWRlZCA9IGNvdW50IC0gdGhpcy5kZWZhdWx0Q29sb3JzLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmVlZGVkOyBpKyspIHtcclxuICAgICAgY29sb3JzLnB1c2godGhpcy5nZXRSYW5kb21Db2xvcigpKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoeyBjb2xvcnMgfSk7XHJcbiAgICByZXR1cm4gY29sb3JzO1xyXG4gIH1cclxuICBkYXRhQ29udmVyc2lvbihkYXRhLCBkYXRhcywgZGF0YU1hcCkge1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGlmIChkYXRhKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzU3RyaW5nKGRhdGEpICYmIHRoaXMuaXNSZXBsYWNlKGRhdGEpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gZGF0YU1hcFt0aGlzLnJlcGxhY2UoZGF0YSldO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHYgPSBpdGVtPy52YWx1ZSB8fCBudWxsO1xyXG4gICAgICAgICAgaWYgKHYgJiYgdGhpcy5pc1JlcGxhY2UodikpIHtcclxuICAgICAgICAgICAgaXRlbS52YWx1ZSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odiwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJlc3VsdCA9IGRhdGE7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoZGF0YSkpIHtcclxuICAgICAgICByZXN1bHQgPSBbXTtcclxuICAgICAgICBpZiAoaXNBcnJheShkYXRhcykpIHtcclxuICAgICAgICAgIGRhdGFzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdGVtcE9iaiA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICAgICAgICAgIGxldCB2ID0gZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmlzUmVwbGFjZSh2KSkge1xyXG4gICAgICAgICAgICAgICAgdGVtcE9ialtrZXldID0gaXRlbVt0aGlzLnJlcGxhY2UodildO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wT2JqW2tleV0gPSB2O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXN1bHQucHVzaCh0ZW1wT2JqKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIG9iamVjdENvbnZlcnNpb24ob2JqLCBkYXRhcywgZGF0YU1hcCkge1xyXG4gICAgbGV0IHRlbXBPYmo6IGFueTtcclxuICAgIGlmIChvYmopIHtcclxuICAgICAgaWYgKGlzQXJyYXkob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBbLi4ub2JqXTtcclxuICAgICAgICB0ZW1wT2JqLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uZGF0YSkge1xyXG4gICAgICAgICAgICBpdGVtLmRhdGEgPSB0aGlzLmRhdGFDb252ZXJzaW9uKGl0ZW0uZGF0YSwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTdHJpbmcob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBvYmo7XHJcbiAgICAgICAgdGVtcE9iai5kYXRhID0gdGhpcy5kYXRhQ29udmVyc2lvbih0ZW1wT2JqLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSB7IC4uLm9iaiB9O1xyXG4gICAgICAgIHRlbXBPYmouZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odGVtcE9iai5kYXRhLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgICAgaWYgKHRlbXBPYmoudHlwZSA9PT0gXCJwaWVcIiAmJiB0aGlzLnByb3BzLmxlZ2VuZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICBsZXQgYWxsRGF0YSA9IHRlbXBPYmouZGF0YTtcclxuICAgICAgICAgIGNvbnN0IGxlZ2VuZERhdGEgPSB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2VzKGFsbERhdGEpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGxlZ2VuZERhdGEsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0ZW1wT2JqO1xyXG4gIH1cclxuICBjYWxjdWxhdGVQZXJjZW50YWdlcyhcclxuICAgIGFsbERhdGE6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH0+XHJcbiAgKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBudW1iZXI7IHBlcmNlbnQ6IHN0cmluZyB9PiB7XHJcbiAgICBpZiAoIWFsbERhdGEgfHwgYWxsRGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdG90YWwgPSBhbGxEYXRhLnJlZHVjZSgoc3VtLCBpdGVtKSA9PiBzdW0gKyAoaXRlbS52YWx1ZSB8fCAwKSwgMCk7XHJcbiAgICBpZiAodG90YWwgPT09IDApIHtcclxuICAgICAgcmV0dXJuIGFsbERhdGEubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBwZXJjZW50OiBcIjAlXCIsXHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDYWxjdWxhdGUgcGVyY2VudGFnZXMgZm9yIGFsbCBidXQgdGhlIGxhc3QgaXRlbVxyXG4gICAgY29uc3QgcmVzdWx0ID0gYWxsRGF0YS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gYWxsRGF0YS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgLy8gRm9yIHRoZSBsYXN0IGl0ZW0sIHdlJ2xsIGNhbGN1bGF0ZSBiYXNlZCBvbiByZW1haW5pbmcgcGVyY2VudGFnZVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICAgIHBlcmNlbnQ6IFwiXCIsIC8vIFBsYWNlaG9sZGVyLCB3aWxsIGJlIGNhbGN1bGF0ZWQgYmVsb3dcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwZXJjZW50ID0gKGl0ZW0udmFsdWUgLyB0b3RhbCkgKiAxMDA7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxyXG4gICAgICAgIHBlcmNlbnQ6IGAke3BlcmNlbnQudG9GaXhlZCgyKX0lYCxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIENhbGN1bGF0ZSB0aGUgbGFzdCBpdGVtJ3MgcGVyY2VudGFnZSB0byBlbnN1cmUgdG90YWwgaXMgMTAwJVxyXG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IG90aGVyc1RvdGFsID0gcmVzdWx0LnNsaWNlKDAsIC0xKS5yZWR1Y2UoKHN1bSwgaXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBzdW0gKyBwYXJzZUZsb2F0KGl0ZW0ucGVyY2VudCk7XHJcbiAgICAgIH0sIDApO1xyXG5cclxuICAgICAgY29uc3QgbGFzdFBlcmNlbnQgPSAxMDAgLSBvdGhlcnNUb3RhbDtcclxuICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXS5wZXJjZW50ID0gYCR7bGFzdFBlcmNlbnQudG9GaXhlZCgyKX0lYDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuICBnZXROZXdPcHRpb24obmV3T3B0aW9uKSB7XHJcbiAgICBsZXQgY29sb3JzID0gbmV3T3B0aW9uLmNvbG9yO1xyXG4gICAgaWYgKG5ld09wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmV3T3B0aW9uLnNlcmllcykpIHtcclxuICAgICAgICBuZXdPcHRpb24udG9vbHRpcCA9IG5ld09wdGlvbi50b29sdGlwIHx8IHsgdHJpZ2dlcjogXCJheGlzXCIgfTtcclxuICAgICAgICBuZXdPcHRpb24uc2VyaWVzID0gbmV3T3B0aW9uLnNlcmllcy5tYXAoKHNlcmllc0l0ZW0pID0+IHtcclxuICAgICAgICAgIC8vIOWmguaenOaYr+afseeKtuWbvuS4lOayoeacieiuvue9riBiYXJXaWR0aO+8jOWImeiuvue9rum7mOiupOWAvOS4ujIwXHJcbiAgICAgICAgICBpZiAoc2VyaWVzSXRlbS50eXBlID09PSBcImJhclwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgYmFyV2lkdGg6IDIwLFxyXG4gICAgICAgICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBbNSwgNSwgMCwgMF0sXHJcbiAgICAgICAgICAgICAgICAuLi5zZXJpZXNJdGVtLml0ZW1TdHlsZSwgLy8g5L+d55WZ55So5oi36Ieq5a6a5LmJ55qEIGl0ZW1TdHlsZVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgLi4uc2VyaWVzSXRlbSxcclxuICAgICAgICAgICAgICAvLyDmraPnoa7orr7nva4gYm9yZGVyUmFkaXVz77yM6ZyA6KaB5pS+5ZyoIGl0ZW1TdHlsZSDkuK1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoc2VyaWVzSXRlbS50eXBlID09PSBcInBpZVwiKSB7XHJcbiAgICAgICAgICAgIG5ld09wdGlvbi50b29sdGlwID0gbmV3T3B0aW9uLnRvb2x0aXAgfHwgeyB0cmlnZ2VyOiBcIml0ZW1cIiB9O1xyXG4gICAgICAgICAgICBsZXQgcGllRGF0YUNvdW50ID0gMTtcclxuICAgICAgICAgICAgaWYgKHNlcmllc0l0ZW0uZGF0YSAmJiBBcnJheS5pc0FycmF5KHNlcmllc0l0ZW0uZGF0YSkpIHtcclxuICAgICAgICAgICAgICBwaWVEYXRhQ291bnQgPSBzZXJpZXNJdGVtLmRhdGEubGVuZ3RoO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDkuLrppbzlm77nlJ/miJDpgILlvZPmlbDph4/nmoTpopzoibJcclxuICAgICAgICAgICAgY29uc3QgcGllQ29sb3JzID0gdGhpcy5nZW5lcmF0ZUNvbG9ycyhwaWVEYXRhQ291bnQpO1xyXG4gICAgICAgICAgICBjb2xvcnMgPSBjb2xvcnMgfHwgcGllQ29sb3JzO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIHJhZGl1czogW1wiNDAlXCIsIFwiNzAlXCJdLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAxMCxcclxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBcIiNmZmZcIixcclxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgICAgICAgICAgICAgLi4uc2VyaWVzSXRlbS5pdGVtU3R5bGUsIC8vIOS/neeVmeeUqOaIt+iHquWumuS5ieeahCBpdGVtU3R5bGVcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIC8vIGNvbG9yOiBzZXJpZXNJdGVtLmNvbG9yIHx8IHBpZUNvbG9ycyxcclxuICAgICAgICAgICAgICAuLi5zZXJpZXNJdGVtLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHNlcmllc0l0ZW07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAobmV3T3B0aW9uLnNlcmllcy50eXBlID09PSBcImJhclwiKSB7XHJcbiAgICAgICAgLy8g5aSE55CG5Y2V5LiqIHNlcmllcyDlr7nosaHnmoTmg4XlhrVcclxuICAgICAgICBuZXdPcHRpb24uc2VyaWVzID0ge1xyXG4gICAgICAgICAgYmFyV2lkdGg6IDIwLFxyXG4gICAgICAgICAgLi4ubmV3T3B0aW9uLnNlcmllcyxcclxuICAgICAgICAgIC8vIOato+ehruiuvue9riBib3JkZXJSYWRpdXPvvIzpnIDopoHmlL7lnKggaXRlbVN0eWxlIOS4rVxyXG4gICAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogWzUsIDUsIDAsIDBdLFxyXG4gICAgICAgICAgICAuLi5uZXdPcHRpb24uc2VyaWVzLml0ZW1TdHlsZSwgLy8g5L+d55WZ55So5oi36Ieq5a6a5LmJ55qEIGl0ZW1TdHlsZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2UgaWYgKG5ld09wdGlvbi5zZXJpZXMudHlwZSA9PT0gXCJwaWVcIikge1xyXG4gICAgICAgIC8vIOWkhOeQhuWNleS4qiBzZXJpZXMg5a+56LGh55qE5oOF5Ya177yI6aW85Zu+77yJXHJcbiAgICAgICAgbmV3T3B0aW9uLnRvb2x0aXAgPSBuZXdPcHRpb24udG9vbHRpcCB8fCB7IHRyaWdnZXI6IFwiaXRlbVwiIH07XHJcbiAgICAgICAgbGV0IHBpZURhdGFDb3VudCA9IDE7XHJcbiAgICAgICAgaWYgKG5ld09wdGlvbi5zZXJpZXMuZGF0YSAmJiBBcnJheS5pc0FycmF5KG5ld09wdGlvbi5zZXJpZXMuZGF0YSkpIHtcclxuICAgICAgICAgIHBpZURhdGFDb3VudCA9IG5ld09wdGlvbi5zZXJpZXMuZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOS4uumlvOWbvueUn+aIkOmAguW9k+aVsOmHj+eahOminOiJslxyXG4gICAgICAgIGNvbnN0IHBpZUNvbG9ycyA9IHRoaXMuZ2VuZXJhdGVDb2xvcnMocGllRGF0YUNvdW50KTtcclxuICAgICAgICBjb2xvcnMgPSBjb2xvcnMgfHwgcGllQ29sb3JzO1xyXG4gICAgICAgIG5ld09wdGlvbi5zZXJpZXMgPSB7XHJcbiAgICAgICAgICByYWRpdXM6IFtcIjQwJVwiLCBcIjcwJVwiXSxcclxuICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLm5ld09wdGlvbi5zZXJpZXMsXHJcbiAgICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAxMCxcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IFwiI2ZmZlwiLFxyXG4gICAgICAgICAgICBib3JkZXJXaWR0aDogMixcclxuICAgICAgICAgICAgLi4ubmV3T3B0aW9uLnNlcmllcy5pdGVtU3R5bGUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLy8gY29sb3I6IG5ld09wdGlvbi5zZXJpZXMuY29sb3IgfHwgcGllQ29sb3JzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG5ld09wdGlvbi5jb2xvciA9IGNvbG9ycztcclxuICAgIHJldHVybiBuZXdPcHRpb247XHJcbiAgfVxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hhcnRSZWYuY3VycmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IG9wdGlvbiwgZGF0YSwgT25DbGljaywgT25ackNsaWNrIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBkYXRhU291cmNlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IGRhdGFNYXA6IGFueSA9IHt9O1xyXG4gICAgY29uc3QgbmV3RGF0YXMgPSBkYXRhIHx8IGRhdGFTb3VyY2U7XHJcbiAgICBsZXQgc2VyaWVzQ291bnQgPSAxOyAvLyDpu5jorqToh7PlsJHkuIDkuKrns7vliJdcclxuICAgIGlmIChvcHRpb24/LnNlcmllcykge1xyXG4gICAgICBzZXJpZXNDb3VudCA9IEFycmF5LmlzQXJyYXkob3B0aW9uLnNlcmllcykgPyBvcHRpb24uc2VyaWVzLmxlbmd0aCA6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g55Sf5oiQ6YCC5b2T5pWw6YeP55qE6aKc6Imy77yI5aaC5p6c55So5oi35rKh5pyJ5o+Q5L6b6aKc6Imy77yJXHJcbiAgICBsZXQgZGVmYXVsdE9wdGlvbiA9IHt9O1xyXG5cclxuICAgIGxldCBuZXdPcHRpb246IGFueSA9IHsgLi4uZGVmYXVsdE9wdGlvbiwgLi4ub3B0aW9uIH07XHJcblxyXG4gICAgaWYgKGlzQXJyYXkobmV3RGF0YXMpKSB7XHJcbiAgICAgIG5ld0RhdGFzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBpdGVtKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YU1hcFtrZXldID09IG51bGwpIHtcclxuICAgICAgICAgICAgZGF0YU1hcFtrZXldID0gW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhTWFwW2tleV0ucHVzaChpdGVtW2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG5ld0RhdGFzKSkge1xyXG4gICAgICBkYXRhTWFwID0gbmV3RGF0YXM7XHJcbiAgICB9XHJcbiAgICBuZXdPcHRpb24ueEF4aXMgPSB0aGlzLm9iamVjdENvbnZlcnNpb24obmV3T3B0aW9uLnhBeGlzLCBuZXdEYXRhcywgZGF0YU1hcCk7XHJcbiAgICBuZXdPcHRpb24ueUF4aXMgPSB0aGlzLm9iamVjdENvbnZlcnNpb24obmV3T3B0aW9uLnlBeGlzLCBuZXdEYXRhcywgZGF0YU1hcCk7XHJcbiAgICBuZXdPcHRpb24uc2VyaWVzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKFxyXG4gICAgICBuZXdPcHRpb24uc2VyaWVzLFxyXG4gICAgICBuZXdEYXRhcyxcclxuICAgICAgZGF0YU1hcFxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNoYXJ0Q29sb3JzID0gdGhpcy5nZW5lcmF0ZUNvbG9ycyhzZXJpZXNDb3VudCk7XHJcbiAgICBuZXdPcHRpb24gPSB0aGlzLmdldE5ld09wdGlvbih7IC4uLm5ld09wdGlvbiB9KTtcclxuICAgIG5ld09wdGlvbiA9IHsgLi4ubmV3T3B0aW9uLCBjb2xvcjogbmV3T3B0aW9uLmNvbG9yIHx8IGNoYXJ0Q29sb3JzIH07XHJcbiAgICBpZiAodGhpcy5teUNoYXJ0KSB7XHJcbiAgICAgIHRoaXMubXlDaGFydC5kaXNwb3NlKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBteUNoYXJ0ID0gKHRoaXMubXlDaGFydCA9IGVjaGFydHMuaW5pdChcclxuICAgICAgdGhpcy5jaGFydFJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50XHJcbiAgICApKTsgLy/liJ3lp4vljJZlY2hhcnRz77yM6YCa6L+HcmVm5bGe5oCn6I635Y+WZG9tXHJcbiAgICBteUNoYXJ0LmNsZWFyKCk7XHJcbiAgICBteUNoYXJ0Lm9mZihcImNsaWNrXCIpO1xyXG4gICAgbXlDaGFydD8uZ2V0WnIoKT8ub2ZmKFwiY2xpY2tcIik7XHJcbiAgICBteUNoYXJ0LnNldE9wdGlvbihuZXdPcHRpb24pO1xyXG4gICAgbXlDaGFydC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcclxuICAgICAgT25DbGljayAmJiBPbkNsaWNrKHBhcmFtcywgbXlDaGFydCk7XHJcbiAgICB9KTtcclxuICAgIG15Q2hhcnQ/LmdldFpyKCk/Lm9uKFwiY2xpY2tcIiwgKHBhcmFtcykgPT4ge1xyXG4gICAgICBPblpyQ2xpY2sgJiYgT25ackNsaWNrKHBhcmFtcywgbXlDaGFydCk7XHJcbiAgICB9KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5teUNoYXJ0KSB7XHJcbiAgICAgICAgdGhpcy5teUNoYXJ0LnJlc2l6ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBjb2xvcnM6IG5ld09wdGlvbi5jb2xvcixcclxuICAgIH0pO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNoYXJ0UmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMubXlDaGFydCkge1xyXG4gICAgICB0aGlzLm15Q2hhcnQucmVzaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIGxlZ2VuZCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGVnZW5kRGF0YSA9IFtdLCBjb2xvcnMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBib3hTdHlsZSA9IHtcclxuICAgICAgd2lkdGg6IHR5cGVvZiB3aWR0aCA9PSBcIm51bWJlclwiID8gcHgydncod2lkdGgpIDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogdHlwZW9mIGhlaWdodCA9PSBcIm51bWJlclwiID8gcHgydncoaGVpZ2h0KSA6IGhlaWdodCxcclxuICAgIH0gYXMgYW55O1xyXG4gICAgaWYgKGxlZ2VuZCA9PSB0cnVlKSB7XHJcbiAgICAgIGJveFN0eWxlLmRpc3BsYXkgPSBcImZsZXhcIjtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgc3R5bGU9e2JveFN0eWxlfT5cclxuICAgICAgICA8ZGl2IHJlZj17dGhpcy5jaGFydFJlZn0gc3R5bGU9e3sgZmxleDogMSwgaGVpZ2h0OiBcIjEwMCVcIiB9fT48L2Rpdj5cclxuICAgICAgICB7bGVnZW5kICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoXCJuc2MtY2hhcnQtbGVnZW5kQm94XCIpfT5cclxuICAgICAgICAgICAge2xlZ2VuZERhdGEubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1jaGFydC1sZWdlbmRJdGVtXCIga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kSXRlbS1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yc1tpbmRleF0gfX1cclxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1jaGFydC1sZWdlbmRJdGVtLW5hbWVcIj57aXRlbS5uYW1lfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1jaGFydC1sZWdlbmRJdGVtLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW0udmFsdWUgfHwgMH1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWNoYXJ0LWxlZ2VuZEl0ZW0tcGVyY2VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHtpdGVtLnBlcmNlbnR9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOc2NDaGFydDtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsYUFBYSxRQUFRLE9BQU87QUFDNUMsT0FBTyxLQUFLQyxPQUFPLE1BQU0sU0FBUztBQUVsQyxPQUFPQyxLQUFLLE1BQXNCLGFBQWE7QUFDL0MsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxTQUFvQkMsS0FBSyxRQUFRLGFBQWE7QUFDOUMsU0FBU0MsT0FBTyxFQUFFQyxRQUFRLFFBQVEsbUJBQW1CO0FBQ3JELE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU8sY0FBYztBQWNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1DLFFBQVEsU0FBU1IsYUFBYSxDQUFhO0VBb0IvQ1MsV0FBV0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQ2pCQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDMUIsS0FBSyxDQUFDRixLQUFLLENBQUM7SUFBQ0csZUFBQSxnQ0FyQkpkLEtBQUssQ0FBQ2UsU0FBUyxDQUFpQixDQUFDO0lBQUFELGVBQUEsa0JBQ2xCLElBQUk7SUFBQUEsZUFBQSxnQkFDdEIsQ0FBQyxDQUFDO0lBQUFBLGVBQUEsd0JBQ00sQ0FDZCxTQUFTLEVB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
480
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJlY2hhcnRzIiwiU3RvcmUiLCJ1dGlscyIsInB4MnZ3IiwiaXNBcnJheSIsImlzT2JqZWN0IiwiY2xzIiwiTnNjQ2hhcnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImxlZ2VuZERhdGEiLCJjb2xvcnMiLCJkYXRhIiwic3RvcmUiLCJjaGlsZHJlbiIsIm9wdGlvbiIsIm9wdGlvbnMiLCJhdXRvTG9hZCIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJzdG9yZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJFcnJvciIsIl90aGlzIiwic3RvcmVQcm9wcyIsIl9vYmplY3RTcHJlYWQiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiaXNGaXJzdCIsImluaXQiLCJkYXRhQ2hhbmdlZCIsImNvbXBvbmVudERpZE1vdW50IiwibXlDaGFydCIsImNoYXJ0UmVmIiwiY3VycmVudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInNuYXBzaG90IiwiSlNPTiIsInN0cmluZ2lmeSIsInJlU2V0Q2hhcnQiLCJpc1N0cmluZyIsInYiLCJjaGFydExvYWQiLCJwYXJhbXMiLCJjaGFydFJlTG9hZCIsInJlbG9hZCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiZGlzcG9zZSIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVDaGFydFJlc2l6ZSIsImJpbmQiLCJpc1JlcGxhY2UiLCJ0ZXN0IiwicmVwbGFjZSIsInN1YnN0cmluZyIsImxlbmd0aCIsImdldFJhbmRvbUNvbG9yIiwiY29sb3IiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJ0b1N0cmluZyIsInBhZFN0YXJ0IiwiZ2VuZXJhdGVDb2xvcnMiLCJjb3VudCIsImRlZmF1bHRDb2xvcnMiLCJzbGljZSIsIm5lZWRlZCIsImkiLCJwdXNoIiwiZGF0YUNvbnZlcnNpb24iLCJkYXRhcyIsImRhdGFNYXAiLCJyZXN1bHQiLCJtYXAiLCJpdGVtIiwidmFsdWUiLCJ0ZW1wT2JqIiwia2V5Iiwib2JqZWN0Q29udmVyc2lvbiIsIm9iaiIsInR5cGUiLCJsZWdlbmQiLCJhbGxEYXRhIiwiY2FsY3VsYXRlUGVyY2VudGFnZXMiLCJ0b3RhbCIsInJlZHVjZSIsInN1bSIsIm5hbWUiLCJwZXJjZW50IiwiaW5kZXgiLCJjb25jYXQiLCJ0b0ZpeGVkIiwib3RoZXJzVG90YWwiLCJwYXJzZUZsb2F0IiwibGFzdFBlcmNlbnQiLCJnZXROZXdPcHRpb24iLCJuZXdPcHRpb24iLCJzZXJpZXMiLCJBcnJheSIsInRvb2x0aXAiLCJ0cmlnZ2VyIiwic2VyaWVzSXRlbSIsImJhcldpZHRoIiwiaXRlbVN0eWxlIiwiYm9yZGVyUmFkaXVzIiwicGllRGF0YUNvdW50IiwicGllQ29sb3JzIiwicmFkaXVzIiwibGFiZWwiLCJzaG93IiwiYm9yZGVyQ29sb3IiLCJib3JkZXJXaWR0aCIsIl9teUNoYXJ0JGdldFpyIiwiX215Q2hhcnQkZ2V0WnIyIiwiT25DbGljayIsIk9uWnJDbGljayIsInN0YXRlIiwibmV3RGF0YXMiLCJzZXJpZXNDb3VudCIsImRlZmF1bHRPcHRpb24iLCJ4QXhpcyIsInlBeGlzIiwiY2hhcnRDb2xvcnMiLCJjbGVhciIsIm9mZiIsImdldFpyIiwic2V0T3B0aW9uIiwib24iLCJzZXRUaW1lb3V0IiwicmVzaXplIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbmRlciIsIndpZHRoIiwiaGVpZ2h0IiwiYm94U3R5bGUiLCJkaXNwbGF5IiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwicmVmIiwiZmxleCIsImNsYXNzTmFtZSIsImJhY2tncm91bmRDb2xvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvY2hhcnQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCAqIGFzIGVjaGFydHMgZnJvbSBcImVjaGFydHNcIjtcclxuaW1wb3J0IHsgRUNoYXJ0cyB9IGZyb20gXCJlY2hhcnRzL2xpYi9lY2hhcnRzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgeyBkZWVwTWVyZ2UsIHB4MnZ3IH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzT2JqZWN0IH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IFwiLi9pbmRleC5sZXNzXCI7XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIG9wdGlvbjogYW55O1xyXG4gIGRhdGE/OiBBcnJheTxPYmplY3Q+IHwgT2JqZWN0O1xyXG4gIHdpZHRoOiBudW1iZXIgfCBzdHJpbmc7IC8v5Zu+6KGo5a695bqmXHJcbiAgaGVpZ2h0OiBudW1iZXIgfCBzdHJpbmc7IC8v5Zu+6KGo6ZW/5bqmXHJcbiAgYXV0b0xvYWQ/OiBib29sZWFuOyAvL+aVsOaNruaUueWPmO+8jOiHquWKqOWIt+aWsOWbvuihqCzpu5jorqR0cnVlXHJcbiAgT25DbGljaz86IChwYXJhbXM6IGFueSwgZT86IGFueSkgPT4gdm9pZDsgLy/lm77ooajngrnlh7vkuovku7ZcclxuICBPblpyQ2xpY2s/OiAocGFyYW1zOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7IC8v5Zu+6KGo54K55Ye75LqL5Lu2XHJcbiAgbGVnZW5kPzogYm9vbGVhbjsgLy/oh6rlrprkuYnlm77kvovmmK/lkKbmmL7npLog77yM55So5LqO6aW85Zu+XHJcbiAgW3Byb05hbWVzOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8vZGF0YeekuuS+i1xyXG4vKipcclxuIOaVsOe7hO+8mlxyXG4gZGF0YT1be25hbWU6JzHmnIgnLHZhbHVlOjIwfSx7bmFtZTonMuaciCcsdmFsdWU6MTB9LHtuYW1lOicz5pyIJyx2YWx1ZToyNX1dXHJcbiDlr7nosaFcclxuIGRhdGE9e25hbWU6Wycx5pyIJywnMuaciCcsJzPmnIgnXSx2YWx1ZTpbMjAsMzAsNDBdfVxyXG4gKi9cclxuY2xhc3MgTnNjQ2hhcnQgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PENoYXJ0UHJvcHM+IHtcclxuICBjaGFydFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuICBteUNoYXJ0OiBFQ2hhcnRzIHwgbnVsbCA9IG51bGw7XHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIGRlZmF1bHRDb2xvcnMgPSBbXHJcbiAgICBcIiM1Qjk2RjdcIixcclxuICAgIFwiIzczQzhGRlwiLFxyXG4gICAgXCIjM0M2Q0ZFXCIsXHJcbiAgICBcIiM4MThGRkZcIixcclxuICAgIFwiIzk3RENGQlwiLFxyXG4gICAgXCIjRUY2RjVCXCIsXHJcbiAgICBcIiNGOEJGNzBcIixcclxuICAgIFwiIzU3QzM5RVwiLFxyXG4gIF0gYXMgc3RyaW5nW107XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBudWxsLFxyXG4gICAgbGVnZW5kRGF0YTogW10sXHJcbiAgICBjb2xvcnM6IFtdLFxyXG4gIH07XHJcbiAgaXNGaXJzdCA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGF0YSxcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIG9wdGlvbjogb3B0aW9ucyxcclxuICAgICAgYXV0b0xvYWQgPSB0cnVlLFxyXG4gICAgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgeyB1cmwsIGxpc3RlbmVyczogbGlzdGVuZXJzUG9wcyA9IHt9LCAuLi5zdG9yZXMgfSA9IHN0b3JlO1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgWRhdGHjgIFvcHRpb27kuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoX3RoaXMuaXNGaXJzdCAmJiBhdXRvTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaXNGaXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYXV0b0xvYWQpIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLmluaXQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh1cmwgJiYgZGF0YSA9PSBudWxsKSB7XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGF1dG9Mb2FkID0gdHJ1ZSwgc3RvcmUsIG9wdGlvbiB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBpZiAodGhpcy5teUNoYXJ0IHx8ICF0aGlzLmNoYXJ0UmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGRhdGEgJiYgYXV0b0xvYWQpIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9IGVsc2UgaWYgKCFkYXRhICYmICFzdG9yZT8udXJsICYmIG9wdGlvbikge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShcclxuICAgIHByZXZQcm9wczogUmVhZG9ubHk8Q2hhcnRQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PHt9PixcclxuICAgIHNuYXBzaG90PzogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGF1dG9Mb2FkID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLmRhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmRhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLm9wdGlvbikgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMub3B0aW9uKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVTZXRDaGFydCgpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBpc1N0cmluZyh2KSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCI7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2hhcnRMb2FkKHBhcmFtcyl7XHJcbiAgICB0aGlzLnN0b3JlLmxvYWQoe3BhcmFtc30pXHJcbiAgfVxyXG4gIGNoYXJ0UmVMb2FkKCl7XHJcbiAgICB0aGlzLnN0b3JlLnJlbG9hZCgpO1xyXG4gIH1cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIC8vIOa4heeQhiBlY2hhcnRzIOWunuS+i1xyXG4gICAgaWYgKHRoaXMubXlDaGFydCkge1xyXG4gICAgICB0aGlzLm15Q2hhcnQuZGlzcG9zZSgpO1xyXG4gICAgICB0aGlzLm15Q2hhcnQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOenu+mZpOS6i+S7tuebkeWQrOWZqFxyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGlzUmVwbGFjZSh2KSB7XHJcbiAgICByZXR1cm4gL157Lip9JC9naS50ZXN0KHYpO1xyXG4gIH1cclxuICByZXBsYWNlKHYpIHtcclxuICAgIHJldHVybiB2LnN1YnN0cmluZygxLCB2Lmxlbmd0aCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZG9tQ29sb3IoKSB7XHJcbiAgICBsZXQgY29sb3I7XHJcbiAgICBkbyB7XHJcbiAgICAgIGNvbG9yID1cclxuICAgICAgICBcIiNcIiArXHJcbiAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMHhmZmZmZmYpXHJcbiAgICAgICAgICAudG9TdHJpbmcoMTYpXHJcbiAgICAgICAgICAucGFkU3RhcnQoNiwgXCIwXCIpO1xyXG4gICAgfSB3aGlsZSAoY29sb3IgPT09IFwiI0ZGRkZGRlwiIHx8IGNvbG9yID09PSBcIiMwMDAwMDBcIik7XHJcbiAgICByZXR1cm4gY29sb3I7XHJcbiAgfVxyXG4gIGdlbmVyYXRlQ29sb3JzKGNvdW50OiBudW1iZXIpOiBzdHJpbmdbXSB7XHJcbiAgICAvLyDlpoLmnpzpnIDopoHnmoTpopzoibLmlbDph4/lsJHkuo7miJbnrYnkuo7pu5jorqTpopzoibLmlbDph4/vvIznm7TmjqXov5Tlm57lr7nlupTmlbDph4/nmoTpu5jorqTpopzoibJcclxuICAgIGlmIChjb3VudCA8PSB0aGlzLmRlZmF1bHRDb2xvcnMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRDb2xvcnMuc2xpY2UoMCwgY291bnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWQpuWIme+8jOWFiOWkjeWItuaJgOaciem7mOiupOminOiJslxyXG4gICAgY29uc3QgY29sb3JzID0gWy4uLnRoaXMuZGVmYXVsdENvbG9yc107XHJcblxyXG4gICAgLy8g55Sf5oiQ6aKd5aSW55qE6ZqP5py66aKc6ImyXHJcbiAgICBjb25zdCBuZWVkZWQgPSBjb3VudCAtIHRoaXMuZGVmYXVsdENvbG9ycy5sZW5ndGg7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5lZWRlZDsgaSsrKSB7XHJcbiAgICAgIGNvbG9ycy5wdXNoKHRoaXMuZ2V0UmFuZG9tQ29sb3IoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgY29sb3JzIH0pO1xyXG4gICAgcmV0dXJuIGNvbG9ycztcclxuICB9XHJcbiAgZGF0YUNvbnZlcnNpb24oZGF0YSwgZGF0YXMsIGRhdGFNYXApIHtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBpZiAodGhpcy5pc1N0cmluZyhkYXRhKSAmJiB0aGlzLmlzUmVwbGFjZShkYXRhKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IGRhdGFNYXBbdGhpcy5yZXBsYWNlKGRhdGEpXTtcclxuICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgZGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGxldCB2ID0gaXRlbT8udmFsdWUgfHwgbnVsbDtcclxuICAgICAgICAgIGlmICh2ICYmIHRoaXMuaXNSZXBsYWNlKHYpKSB7XHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB0aGlzLmRhdGFDb252ZXJzaW9uKHYsIGRhdGFzLCBkYXRhTWFwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXN1bHQgPSBkYXRhO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGRhdGEpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gW107XHJcbiAgICAgICAgaWYgKGlzQXJyYXkoZGF0YXMpKSB7XHJcbiAgICAgICAgICBkYXRhcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgdmFyIHRlbXBPYmogPSB7fTtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIGRhdGEpIHtcclxuICAgICAgICAgICAgICBsZXQgdiA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlcGxhY2UodikpIHtcclxuICAgICAgICAgICAgICAgIHRlbXBPYmpba2V5XSA9IGl0ZW1bdGhpcy5yZXBsYWNlKHYpXTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGVtcE9ialtrZXldID0gdjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzdWx0LnB1c2godGVtcE9iaik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBvYmplY3RDb252ZXJzaW9uKG9iaiwgZGF0YXMsIGRhdGFNYXApIHtcclxuICAgIGxldCB0ZW1wT2JqOiBhbnk7XHJcbiAgICBpZiAob2JqKSB7XHJcbiAgICAgIGlmIChpc0FycmF5KG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0gWy4uLm9ial07XHJcbiAgICAgICAgdGVtcE9iai5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGlmIChpdGVtLmRhdGEpIHtcclxuICAgICAgICAgICAgaXRlbS5kYXRhID0gdGhpcy5kYXRhQ29udmVyc2lvbihpdGVtLmRhdGEsIGRhdGFzLCBkYXRhTWFwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU3RyaW5nKG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0gb2JqO1xyXG4gICAgICAgIHRlbXBPYmouZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odGVtcE9iaiwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0geyAuLi5vYmogfTtcclxuICAgICAgICB0ZW1wT2JqLmRhdGEgPSB0aGlzLmRhdGFDb252ZXJzaW9uKHRlbXBPYmouZGF0YSwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICAgIGlmICh0ZW1wT2JqLnR5cGUgPT09IFwicGllXCIgJiYgdGhpcy5wcm9wcy5sZWdlbmQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgbGV0IGFsbERhdGEgPSB0ZW1wT2JqLmRhdGE7XHJcbiAgICAgICAgICBjb25zdCBsZWdlbmREYXRhID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlcyhhbGxEYXRhKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBsZWdlbmREYXRhLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGVtcE9iajtcclxuICB9XHJcbiAgY2FsY3VsYXRlUGVyY2VudGFnZXMoXHJcbiAgICBhbGxEYXRhOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9PlxyXG4gICk6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogbnVtYmVyOyBwZXJjZW50OiBzdHJpbmcgfT4ge1xyXG4gICAgaWYgKCFhbGxEYXRhIHx8IGFsbERhdGEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvdGFsID0gYWxsRGF0YS5yZWR1Y2UoKHN1bSwgaXRlbSkgPT4gc3VtICsgKGl0ZW0udmFsdWUgfHwgMCksIDApO1xyXG4gICAgaWYgKHRvdGFsID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBhbGxEYXRhLm1hcCgoaXRlbSkgPT4gKHtcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXHJcbiAgICAgICAgcGVyY2VudDogXCIwJVwiLFxyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2FsY3VsYXRlIHBlcmNlbnRhZ2VzIGZvciBhbGwgYnV0IHRoZSBsYXN0IGl0ZW1cclxuICAgIGNvbnN0IHJlc3VsdCA9IGFsbERhdGEubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoaW5kZXggPT09IGFsbERhdGEubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIC8vIEZvciB0aGUgbGFzdCBpdGVtLCB3ZSdsbCBjYWxjdWxhdGUgYmFzZWQgb24gcmVtYWluaW5nIHBlcmNlbnRhZ2VcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXHJcbiAgICAgICAgICBwZXJjZW50OiBcIlwiLCAvLyBQbGFjZWhvbGRlciwgd2lsbCBiZSBjYWxjdWxhdGVkIGJlbG93XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgcGVyY2VudCA9IChpdGVtLnZhbHVlIC8gdG90YWwpICogMTAwO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBwZXJjZW50OiBgJHtwZXJjZW50LnRvRml4ZWQoMil9JWAsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBDYWxjdWxhdGUgdGhlIGxhc3QgaXRlbSdzIHBlcmNlbnRhZ2UgdG8gZW5zdXJlIHRvdGFsIGlzIDEwMCVcclxuICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBvdGhlcnNUb3RhbCA9IHJlc3VsdC5zbGljZSgwLCAtMSkucmVkdWNlKChzdW0sIGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gc3VtICsgcGFyc2VGbG9hdChpdGVtLnBlcmNlbnQpO1xyXG4gICAgICB9LCAwKTtcclxuXHJcbiAgICAgIGNvbnN0IGxhc3RQZXJjZW50ID0gMTAwIC0gb3RoZXJzVG90YWw7XHJcbiAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0ucGVyY2VudCA9IGAke2xhc3RQZXJjZW50LnRvRml4ZWQoMil9JWA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbiAgZ2V0TmV3T3B0aW9uKG5ld09wdGlvbikge1xyXG4gICAgbGV0IGNvbG9ycyA9IG5ld09wdGlvbi5jb2xvcjtcclxuICAgIGlmIChuZXdPcHRpb24uc2VyaWVzKSB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5ld09wdGlvbi5zZXJpZXMpKSB7XHJcbiAgICAgICAgbmV3T3B0aW9uLnRvb2x0aXAgPSBuZXdPcHRpb24udG9vbHRpcCB8fCB7IHRyaWdnZXI6IFwiYXhpc1wiIH07XHJcbiAgICAgICAgbmV3T3B0aW9uLnNlcmllcyA9IG5ld09wdGlvbi5zZXJpZXMubWFwKChzZXJpZXNJdGVtKSA9PiB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzmmK/mn7Hnirblm77kuJTmsqHmnInorr7nva4gYmFyV2lkdGjvvIzliJnorr7nva7pu5jorqTlgLzkuLoyMFxyXG4gICAgICAgICAgaWYgKHNlcmllc0l0ZW0udHlwZSA9PT0gXCJiYXJcIikge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGJhcldpZHRoOiAyMCxcclxuICAgICAgICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogWzUsIDUsIDAsIDBdLFxyXG4gICAgICAgICAgICAgICAgLi4uc2VyaWVzSXRlbS5pdGVtU3R5bGUsIC8vIOS/neeVmeeUqOaIt+iHquWumuS5ieeahCBpdGVtU3R5bGVcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIC4uLnNlcmllc0l0ZW0sXHJcbiAgICAgICAgICAgICAgLy8g5q2j56Gu6K6+572uIGJvcmRlclJhZGl1c++8jOmcgOimgeaUvuWcqCBpdGVtU3R5bGUg5LitXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHNlcmllc0l0ZW0udHlwZSA9PT0gXCJwaWVcIikge1xyXG4gICAgICAgICAgICBuZXdPcHRpb24udG9vbHRpcCA9IG5ld09wdGlvbi50b29sdGlwIHx8IHsgdHJpZ2dlcjogXCJpdGVtXCIgfTtcclxuICAgICAgICAgICAgbGV0IHBpZURhdGFDb3VudCA9IDE7XHJcbiAgICAgICAgICAgIGlmIChzZXJpZXNJdGVtLmRhdGEgJiYgQXJyYXkuaXNBcnJheShzZXJpZXNJdGVtLmRhdGEpKSB7XHJcbiAgICAgICAgICAgICAgcGllRGF0YUNvdW50ID0gc2VyaWVzSXRlbS5kYXRhLmxlbmd0aDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5Li66aW85Zu+55Sf5oiQ6YCC5b2T5pWw6YeP55qE6aKc6ImyXHJcbiAgICAgICAgICAgIGNvbnN0IHBpZUNvbG9ycyA9IHRoaXMuZ2VuZXJhdGVDb2xvcnMocGllRGF0YUNvdW50KTtcclxuICAgICAgICAgICAgY29sb3JzID0gY29sb3JzIHx8IHBpZUNvbG9ycztcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICByYWRpdXM6IFtcIjQwJVwiLCBcIjcwJVwiXSxcclxuICAgICAgICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogMTAsXHJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogXCIjZmZmXCIsXHJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aDogMixcclxuICAgICAgICAgICAgICAgIC4uLnNlcmllc0l0ZW0uaXRlbVN0eWxlLCAvLyDkv53nlZnnlKjmiLfoh6rlrprkuYnnmoQgaXRlbVN0eWxlXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAvLyBjb2xvcjogc2VyaWVzSXRlbS5jb2xvciB8fCBwaWVDb2xvcnMsXHJcbiAgICAgICAgICAgICAgLi4uc2VyaWVzSXRlbSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBzZXJpZXNJdGVtO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKG5ld09wdGlvbi5zZXJpZXMudHlwZSA9PT0gXCJiYXJcIikge1xyXG4gICAgICAgIC8vIOWkhOeQhuWNleS4qiBzZXJpZXMg5a+56LGh55qE5oOF5Ya1XHJcbiAgICAgICAgbmV3T3B0aW9uLnNlcmllcyA9IHtcclxuICAgICAgICAgIGJhcldpZHRoOiAyMCxcclxuICAgICAgICAgIC4uLm5ld09wdGlvbi5zZXJpZXMsXHJcbiAgICAgICAgICAvLyDmraPnoa7orr7nva4gYm9yZGVyUmFkaXVz77yM6ZyA6KaB5pS+5ZyoIGl0ZW1TdHlsZSDkuK1cclxuICAgICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IFs1LCA1LCAwLCAwXSxcclxuICAgICAgICAgICAgLi4ubmV3T3B0aW9uLnNlcmllcy5pdGVtU3R5bGUsIC8vIOS/neeVmeeUqOaIt+iHquWumuS5ieeahCBpdGVtU3R5bGVcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIGlmIChuZXdPcHRpb24uc2VyaWVzLnR5cGUgPT09IFwicGllXCIpIHtcclxuICAgICAgICAvLyDlpITnkIbljZXkuKogc2VyaWVzIOWvueixoeeahOaDheWGte+8iOmlvOWbvu+8iVxyXG4gICAgICAgIG5ld09wdGlvbi50b29sdGlwID0gbmV3T3B0aW9uLnRvb2x0aXAgfHwgeyB0cmlnZ2VyOiBcIml0ZW1cIiB9O1xyXG4gICAgICAgIGxldCBwaWVEYXRhQ291bnQgPSAxO1xyXG4gICAgICAgIGlmIChuZXdPcHRpb24uc2VyaWVzLmRhdGEgJiYgQXJyYXkuaXNBcnJheShuZXdPcHRpb24uc2VyaWVzLmRhdGEpKSB7XHJcbiAgICAgICAgICBwaWVEYXRhQ291bnQgPSBuZXdPcHRpb24uc2VyaWVzLmRhdGEubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyDkuLrppbzlm77nlJ/miJDpgILlvZPmlbDph4/nmoTpopzoibJcclxuICAgICAgICBjb25zdCBwaWVDb2xvcnMgPSB0aGlzLmdlbmVyYXRlQ29sb3JzKHBpZURhdGFDb3VudCk7XHJcbiAgICAgICAgY29sb3JzID0gY29sb3JzIHx8IHBpZUNvbG9ycztcclxuICAgICAgICBuZXdPcHRpb24uc2VyaWVzID0ge1xyXG4gICAgICAgICAgcmFkaXVzOiBbXCI0MCVcIiwgXCI3MCVcIl0sXHJcbiAgICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5uZXdPcHRpb24uc2VyaWVzLFxyXG4gICAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogMTAsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBcIiNmZmZcIixcclxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsXHJcbiAgICAgICAgICAgIC4uLm5ld09wdGlvbi5zZXJpZXMuaXRlbVN0eWxlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC8vIGNvbG9yOiBuZXdPcHRpb24uc2VyaWVzLmNvbG9yIHx8IHBpZUNvbG9ycyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBuZXdPcHRpb24uY29sb3IgPSBjb2xvcnM7XHJcbiAgICByZXR1cm4gbmV3T3B0aW9uO1xyXG4gIH1cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmNoYXJ0UmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBvcHRpb24sIGRhdGEsIE9uQ2xpY2ssIE9uWnJDbGljayB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBkYXRhTWFwOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IG5ld0RhdGFzID0gZGF0YSB8fCBkYXRhU291cmNlO1xyXG4gICAgbGV0IHNlcmllc0NvdW50ID0gMTsgLy8g6buY6K6k6Iez5bCR5LiA5Liq57O75YiXXHJcbiAgICBpZiAob3B0aW9uPy5zZXJpZXMpIHtcclxuICAgICAgc2VyaWVzQ291bnQgPSBBcnJheS5pc0FycmF5KG9wdGlvbi5zZXJpZXMpID8gb3B0aW9uLnNlcmllcy5sZW5ndGggOiAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOeUn+aIkOmAguW9k+aVsOmHj+eahOminOiJsu+8iOWmguaenOeUqOaIt+ayoeacieaPkOS+m+minOiJsu+8iVxyXG4gICAgbGV0IGRlZmF1bHRPcHRpb24gPSB7fTtcclxuXHJcbiAgICBsZXQgbmV3T3B0aW9uOiBhbnkgPSB7IC4uLmRlZmF1bHRPcHRpb24sIC4uLm9wdGlvbiB9O1xyXG5cclxuICAgIGlmIChpc0FycmF5KG5ld0RhdGFzKSkge1xyXG4gICAgICBuZXdEYXRhcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gaXRlbSkge1xyXG4gICAgICAgICAgaWYgKGRhdGFNYXBba2V5XSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGRhdGFNYXBba2V5XSA9IFtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGF0YU1hcFtrZXldLnB1c2goaXRlbVtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChpc09iamVjdChuZXdEYXRhcykpIHtcclxuICAgICAgZGF0YU1hcCA9IG5ld0RhdGFzO1xyXG4gICAgfVxyXG4gICAgbmV3T3B0aW9uLnhBeGlzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKG5ld09wdGlvbi54QXhpcywgbmV3RGF0YXMsIGRhdGFNYXApO1xyXG4gICAgbmV3T3B0aW9uLnlBeGlzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKG5ld09wdGlvbi55QXhpcywgbmV3RGF0YXMsIGRhdGFNYXApO1xyXG4gICAgbmV3T3B0aW9uLnNlcmllcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihcclxuICAgICAgbmV3T3B0aW9uLnNlcmllcyxcclxuICAgICAgbmV3RGF0YXMsXHJcbiAgICAgIGRhdGFNYXBcclxuICAgICk7XHJcbiAgICBjb25zdCBjaGFydENvbG9ycyA9IHRoaXMuZ2VuZXJhdGVDb2xvcnMoc2VyaWVzQ291bnQpO1xyXG4gICAgbmV3T3B0aW9uID0gdGhpcy5nZXROZXdPcHRpb24oeyAuLi5uZXdPcHRpb24gfSk7XHJcbiAgICBuZXdPcHRpb24gPSB7IC4uLm5ld09wdGlvbiwgY29sb3I6IG5ld09wdGlvbi5jb2xvciB8fCBjaGFydENvbG9ycyB9O1xyXG4gICAgaWYgKHRoaXMubXlDaGFydCkge1xyXG4gICAgICB0aGlzLm15Q2hhcnQuZGlzcG9zZSgpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbXlDaGFydCA9ICh0aGlzLm15Q2hhcnQgPSBlY2hhcnRzLmluaXQoXHJcbiAgICAgIHRoaXMuY2hhcnRSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudFxyXG4gICAgKSk7IC8v5Yid5aeL5YyWZWNoYXJ0c++8jOmAmui/h3JlZuWxnuaAp+iOt+WPlmRvbVxyXG4gICAgbXlDaGFydC5jbGVhcigpO1xyXG4gICAgbXlDaGFydC5vZmYoXCJjbGlja1wiKTtcclxuICAgIG15Q2hhcnQ/LmdldFpyKCk/Lm9mZihcImNsaWNrXCIpO1xyXG4gICAgbXlDaGFydC5zZXRPcHRpb24obmV3T3B0aW9uKTtcclxuICAgIG15Q2hhcnQub24oXCJjbGlja1wiLCBmdW5jdGlvbiAocGFyYW1zKSB7XHJcbiAgICAgIE9uQ2xpY2sgJiYgT25DbGljayhwYXJhbXMsIG15Q2hhcnQpO1xyXG4gICAgfSk7XHJcbiAgICBteUNoYXJ0Py5nZXRacigpPy5vbihcImNsaWNrXCIsIChwYXJhbXMpID0+IHtcclxuICAgICAgT25ackNsaWNrICYmIE9uWnJDbGljayhwYXJhbXMsIG15Q2hhcnQpO1xyXG4gICAgfSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMubXlDaGFydCkge1xyXG4gICAgICAgIHRoaXMubXlDaGFydC5yZXNpemUoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgY29sb3JzOiBuZXdPcHRpb24uY29sb3IsXHJcbiAgICB9KTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuaGFuZGxlQ2hhcnRSZXNpemUuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFydFJlc2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLm15Q2hhcnQpIHtcclxuICAgICAgdGhpcy5teUNoYXJ0LnJlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCBsZWdlbmQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxlZ2VuZERhdGEgPSBbXSwgY29sb3JzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgYm94U3R5bGUgPSB7XHJcbiAgICAgIHdpZHRoOiB0eXBlb2Ygd2lkdGggPT0gXCJudW1iZXJcIiA/IHB4MnZ3KHdpZHRoKSA6IHdpZHRoLFxyXG4gICAgICBoZWlnaHQ6IHR5cGVvZiBoZWlnaHQgPT0gXCJudW1iZXJcIiA/IHB4MnZ3KGhlaWdodCkgOiBoZWlnaHQsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsZWdlbmQgPT0gdHJ1ZSkge1xyXG4gICAgICBib3hTdHlsZS5kaXNwbGF5ID0gXCJmbGV4XCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IHN0eWxlPXtib3hTdHlsZX0+XHJcbiAgICAgICAgPGRpdiByZWY9e3RoaXMuY2hhcnRSZWZ9IHN0eWxlPXt7IGZsZXg6IDEsIGhlaWdodDogXCIxMDAlXCIgfX0+PC9kaXY+XHJcbiAgICAgICAge2xlZ2VuZCAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKFwibnNjLWNoYXJ0LWxlZ2VuZEJveFwiKX0+XHJcbiAgICAgICAgICAgIHtsZWdlbmREYXRhLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kSXRlbVwiIGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibnNjLWNoYXJ0LWxlZ2VuZEl0ZW0taWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvcnNbaW5kZXhdIH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kSXRlbS1uYW1lXCI+e2l0ZW0ubmFtZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kSXRlbS12YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHtpdGVtLnZhbHVlIHx8IDB9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1jaGFydC1sZWdlbmRJdGVtLXBlcmNlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5wZXJjZW50fVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTnNjQ2hhcnQ7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBUSxPQUFPO0FBQzVDLE9BQU8sS0FBS0MsT0FBTyxNQUFNLFNBQVM7QUFFbEMsT0FBT0MsS0FBSyxNQUFzQixhQUFhO0FBQy9DLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsU0FBb0JDLEtBQUssUUFBUSxhQUFhO0FBQzlDLFNBQVNDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLG1CQUFtQjtBQUNyRCxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUM1QixPQUFPLGNBQWM7QUFjckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQyxRQUFRLFNBQVNSLGFBQWEsQ0FBYTtFQW9CL0NTLFdBQVdBLENBQUNDLEtBQUssRUFBRTtJQUNqQixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUFDQyxlQUFBLGdDQXBCSlosS0FBSyxDQUFDYSxTQUFTLENBQWlCLENBQUM7SUFBQUQsZUFBQSxrQkFDbEIsSUFBSTtJQUFBQSxlQUFBLGdCQUN0QixDQUFDLENBQUM7SUFBQUEsZUFBQSx3QkFDTSxDQUNkLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLENBQ1Y7SUFBQUEsZUFBQSxnQkFD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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PureComponent","echarts","Store","utils","px2vw","isArray","isObject","cls","NscChart","constructor","props","console","log","_defineProperty","createRef","dataSource","legendData","colors","data","store","children","option","options","autoLoad","url","listeners","listenersPops","stores","_objectWithoutProperties","_excluded","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","modelData","setState","isFirst","init","dataChanged","componentDidMount","myChart","chartRef","current","componentDidUpdate","prevProps","prevState","snapshot","JSON","stringify","reSetChart","isString","v","chartLoad","params","chartReLoad","reload","componentWillUnmount","dispose","window","removeEventListener","handleChartResize","bind","isReplace","test","replace","substring","length","getRandomColor","color","Math","floor","random","toString","padStart","generateColors","count","defaultColors","slice","needed","i","push","dataConversion","datas","dataMap","result","map","item","value","tempObj","key","objectConversion","obj","type","legend","allData","calculatePercentages","total","reduce","sum","name","percent","index","concat","toFixed","othersTotal","parseFloat","lastPercent","getNewOption","newOption","series","Array","tooltip","trigger","seriesItem","barWidth","itemStyle","borderRadius","pieDataCount","pieColors","radius","label","show","borderColor","borderWidth","_myChart$getZr","_myChart$getZr2","OnClick","OnZrClick","state","newDatas","seriesCount","defaultOption","xAxis","yAxis","chartColors","clear","off","getZr","setOption","on","setTimeout","resize","addEventListener","render","width","height","boxStyle","display","createElement","style","ref","flex","className","backgroundColor"],"sources":["../../../src/components/base/chart/index.tsx"],"sourcesContent":["import React, { PureComponent } from \"react\";\r\nimport * as echarts from \"echarts\";\r\nimport { ECharts } from \"echarts/lib/echarts\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport { deepMerge, px2vw } from \"../../utils\";\r\nimport { isArray, isObject } from \"@bj-nsc/functions\";\r\nimport cls from \"classnames\";\r\nimport \"./index.less\";\r\nexport interface ChartProps {\r\n store?: StoreProps;\r\n option: any;\r\n data?: Array<Object> | Object;\r\n width: number | string; //图表宽度\r\n height: number | string; //图表长度\r\n autoLoad?: boolean; //数据改变,自动刷新图表,默认true\r\n OnClick?: (params: any, e?: any) => void; //图表点击事件\r\n OnZrClick?: (params: any, e?: any) => void; //图表点击事件\r\n legend?: boolean; //自定义图例是否显示 ,用于饼图\r\n [proNames: string]: any;\r\n}\r\n\r\n//data示例\r\n/**\r\n 数组:\r\n data=[{name:'1月',value:20},{name:'2月',value:10},{name:'3月',value:25}]\r\n 对象\r\n data={name:['1月','2月','3月'],value:[20,30,40]}\r\n */\r\nclass NscChart extends PureComponent<ChartProps> {\r\n chartRef = React.createRef<HTMLDivElement>();\r\n myChart: ECharts | null = null;\r\n store = {} as StoreProps;\r\n defaultColors = [\r\n \"#5B96F7\",\r\n \"#73C8FF\",\r\n \"#3C6CFE\",\r\n \"#818FFF\",\r\n \"#97DCFB\",\r\n \"#EF6F5B\",\r\n \"#F8BF70\",\r\n \"#57C39E\",\r\n ] as string[];\r\n state = {\r\n dataSource: null,\r\n legendData: [],\r\n colors: [],\r\n };\r\n isFirst = true;\r\n constructor(props) {\r\n console.log('constructor')\r\n super(props);\r\n const {\r\n data,\r\n store = {},\r\n children,\r\n option: options,\r\n autoLoad = true,\r\n } = props;\r\n const { url, listeners: listenersPops = {}, ...stores } = store;\r\n if (!children) {\r\n if (!(data || url || options)) {\r\n throw new Error(\"url、data、option不能都为空!\");\r\n }\r\n let _this = this;\r\n let storeProps = {\r\n model: \"model\",\r\n component: this,\r\n listeners: {\r\n onBeforeLoad: function (store, options) {\r\n utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);\r\n },\r\n load: function (data, modelData, store) {\r\n _this.setState({ dataSource: modelData }, () => {\r\n if (_this.isFirst && autoLoad) {\r\n _this.init();\r\n _this.isFirst = false;\r\n }\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n _this.setState({ dataSource: modelData }, () => {\r\n if (autoLoad) {\r\n _this.init();\r\n }\r\n });\r\n utils.callback(listenersPops.dataChanged, _this, [\r\n data,\r\n modelData,\r\n store,\r\n ]);\r\n },\r\n },\r\n ...stores,\r\n };\r\n if (url && data == null) {\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { data, autoLoad = true, store, option } = this.props;\r\n\r\n if (this.myChart || !this.chartRef.current) {\r\n return;\r\n }\r\n if (data && autoLoad) {\r\n this.init();\r\n } else if (!data && !store?.url && option) {\r\n this.init();\r\n }\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<ChartProps>,\r\n prevState: Readonly<{}>,\r\n snapshot?: any\r\n ): void {\r\n const { autoLoad = true } = this.props;\r\n if (autoLoad) {\r\n if (JSON.stringify(prevProps.data) !== JSON.stringify(this.props.data)) {\r\n this.init();\r\n } else if (\r\n JSON.stringify(prevProps.option) !== JSON.stringify(this.props.option)\r\n ) {\r\n this.init();\r\n }\r\n }\r\n }\r\n\r\n reSetChart() {\r\n this.init();\r\n }\r\n isString(v) {\r\n return typeof v === \"string\";\r\n }\r\n\r\n\r\n chartLoad(params){\r\n this.store.load({params})\r\n }\r\n chartReLoad(){\r\n this.store.reload();\r\n }\r\n componentWillUnmount() {\r\n // 清理 echarts 实例\r\n if (this.myChart) {\r\n this.myChart.dispose();\r\n this.myChart = null;\r\n }\r\n\r\n // 移除事件监听器\r\n window.removeEventListener(\"resize\", this.handleChartResize.bind(this));\r\n }\r\n\r\n isReplace(v) {\r\n return /^{.*}$/gi.test(v);\r\n }\r\n replace(v) {\r\n return v.substring(1, v.length - 1);\r\n }\r\n\r\n getRandomColor() {\r\n let color;\r\n do {\r\n color =\r\n \"#\" +\r\n Math.floor(Math.random() * 0xffffff)\r\n .toString(16)\r\n .padStart(6, \"0\");\r\n } while (color === \"#FFFFFF\" || color === \"#000000\");\r\n return color;\r\n }\r\n generateColors(count: number): string[] {\r\n // 如果需要的颜色数量少于或等于默认颜色数量,直接返回对应数量的默认颜色\r\n if (count <= this.defaultColors.length) {\r\n return this.defaultColors.slice(0, count);\r\n }\r\n\r\n // 否则,先复制所有默认颜色\r\n const colors = [...this.defaultColors];\r\n\r\n // 生成额外的随机颜色\r\n const needed = count - this.defaultColors.length;\r\n for (let i = 0; i < needed; i++) {\r\n colors.push(this.getRandomColor());\r\n }\r\n this.setState({ colors });\r\n return colors;\r\n }\r\n dataConversion(data, datas, dataMap) {\r\n let result;\r\n if (data) {\r\n if (this.isString(data) && this.isReplace(data)) {\r\n result = dataMap[this.replace(data)];\r\n } else if (isArray(data)) {\r\n data.map((item) => {\r\n let v = item?.value || null;\r\n if (v && this.isReplace(v)) {\r\n item.value = this.dataConversion(v, datas, dataMap);\r\n }\r\n });\r\n result = data;\r\n } else if (isObject(data)) {\r\n result = [];\r\n if (isArray(datas)) {\r\n datas.map((item) => {\r\n var tempObj = {};\r\n for (let key in data) {\r\n let v = data[key];\r\n if (this.isReplace(v)) {\r\n tempObj[key] = item[this.replace(v)];\r\n } else {\r\n tempObj[key] = v;\r\n }\r\n }\r\n result.push(tempObj);\r\n });\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n objectConversion(obj, datas, dataMap) {\r\n let tempObj: any;\r\n if (obj) {\r\n if (isArray(obj)) {\r\n tempObj = [...obj];\r\n tempObj.map((item) => {\r\n if (item.data) {\r\n item.data = this.dataConversion(item.data, datas, dataMap);\r\n }\r\n });\r\n } else if (this.isString(obj)) {\r\n tempObj = obj;\r\n tempObj.data = this.dataConversion(tempObj, datas, dataMap);\r\n } else if (isObject(obj)) {\r\n tempObj = { ...obj };\r\n tempObj.data = this.dataConversion(tempObj.data, datas, dataMap);\r\n if (tempObj.type === \"pie\" && this.props.legend == true) {\r\n let allData = tempObj.data;\r\n const legendData = this.calculatePercentages(allData);\r\n this.setState({\r\n legendData,\r\n });\r\n }\r\n }\r\n }\r\n return tempObj;\r\n }\r\n calculatePercentages(\r\n allData: Array<{ name: string; value: number }>\r\n ): Array<{ name: string; value: number; percent: string }> {\r\n if (!allData || allData.length === 0) {\r\n return [];\r\n }\r\n const total = allData.reduce((sum, item) => sum + (item.value || 0), 0);\r\n if (total === 0) {\r\n return allData.map((item) => ({\r\n name: item.name,\r\n value: item.value,\r\n percent: \"0%\",\r\n }));\r\n }\r\n\r\n // Calculate percentages for all but the last item\r\n const result = allData.map((item, index) => {\r\n if (index === allData.length - 1) {\r\n // For the last item, we'll calculate based on remaining percentage\r\n return {\r\n name: item.name,\r\n value: item.value,\r\n percent: \"\", // Placeholder, will be calculated below\r\n };\r\n }\r\n\r\n const percent = (item.value / total) * 100;\r\n return {\r\n name: item.name,\r\n value: item.value,\r\n percent: `${percent.toFixed(2)}%`,\r\n };\r\n });\r\n\r\n // Calculate the last item's percentage to ensure total is 100%\r\n if (result.length > 0) {\r\n const othersTotal = result.slice(0, -1).reduce((sum, item) => {\r\n return sum + parseFloat(item.percent);\r\n }, 0);\r\n\r\n const lastPercent = 100 - othersTotal;\r\n result[result.length - 1].percent = `${lastPercent.toFixed(2)}%`;\r\n }\r\n\r\n return result;\r\n }\r\n getNewOption(newOption) {\r\n let colors = newOption.color;\r\n if (newOption.series) {\r\n if (Array.isArray(newOption.series)) {\r\n newOption.tooltip = newOption.tooltip || { trigger: \"axis\" };\r\n newOption.series = newOption.series.map((seriesItem) => {\r\n // 如果是柱状图且没有设置 barWidth,则设置默认值为20\r\n if (seriesItem.type === \"bar\") {\r\n return {\r\n barWidth: 20,\r\n itemStyle: {\r\n borderRadius: [5, 5, 0, 0],\r\n ...seriesItem.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n ...seriesItem,\r\n // 正确设置 borderRadius,需要放在 itemStyle 中\r\n };\r\n } else if (seriesItem.type === \"pie\") {\r\n newOption.tooltip = newOption.tooltip || { trigger: \"item\" };\r\n let pieDataCount = 1;\r\n if (seriesItem.data && Array.isArray(seriesItem.data)) {\r\n pieDataCount = seriesItem.data.length;\r\n }\r\n\r\n // 为饼图生成适当数量的颜色\r\n const pieColors = this.generateColors(pieDataCount);\r\n colors = colors || pieColors;\r\n return {\r\n radius: [\"40%\", \"70%\"],\r\n label: {\r\n show: false,\r\n },\r\n itemStyle: {\r\n borderRadius: 10,\r\n borderColor: \"#fff\",\r\n borderWidth: 2,\r\n ...seriesItem.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n // color: seriesItem.color || pieColors,\r\n ...seriesItem,\r\n };\r\n }\r\n return seriesItem;\r\n });\r\n } else if (newOption.series.type === \"bar\") {\r\n // 处理单个 series 对象的情况\r\n newOption.series = {\r\n barWidth: 20,\r\n ...newOption.series,\r\n // 正确设置 borderRadius,需要放在 itemStyle 中\r\n itemStyle: {\r\n borderRadius: [5, 5, 0, 0],\r\n ...newOption.series.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n };\r\n } else if (newOption.series.type === \"pie\") {\r\n // 处理单个 series 对象的情况(饼图)\r\n newOption.tooltip = newOption.tooltip || { trigger: \"item\" };\r\n let pieDataCount = 1;\r\n if (newOption.series.data && Array.isArray(newOption.series.data)) {\r\n pieDataCount = newOption.series.data.length;\r\n }\r\n // 为饼图生成适当数量的颜色\r\n const pieColors = this.generateColors(pieDataCount);\r\n colors = colors || pieColors;\r\n newOption.series = {\r\n radius: [\"40%\", \"70%\"],\r\n label: {\r\n show: false,\r\n },\r\n ...newOption.series,\r\n itemStyle: {\r\n borderRadius: 10,\r\n borderColor: \"#fff\",\r\n borderWidth: 2,\r\n ...newOption.series.itemStyle,\r\n },\r\n // color: newOption.series.color || pieColors,\r\n };\r\n }\r\n }\r\n newOption.color = colors;\r\n return newOption;\r\n }\r\n init() {\r\n if (!this.chartRef.current) {\r\n return;\r\n }\r\n const { option, data, OnClick, OnZrClick } = this.props;\r\n const { dataSource } = this.state;\r\n let dataMap: any = {};\r\n const newDatas = data || dataSource;\r\n let seriesCount = 1; // 默认至少一个系列\r\n if (option?.series) {\r\n seriesCount = Array.isArray(option.series) ? option.series.length : 1;\r\n }\r\n\r\n // 生成适当数量的颜色(如果用户没有提供颜色)\r\n let defaultOption = {};\r\n\r\n let newOption: any = { ...defaultOption, ...option };\r\n\r\n if (isArray(newDatas)) {\r\n newDatas.map((item) => {\r\n for (let key in item) {\r\n if (dataMap[key] == null) {\r\n dataMap[key] = [];\r\n }\r\n dataMap[key].push(item[key]);\r\n }\r\n });\r\n } else if (isObject(newDatas)) {\r\n dataMap = newDatas;\r\n }\r\n newOption.xAxis = this.objectConversion(newOption.xAxis, newDatas, dataMap);\r\n newOption.yAxis = this.objectConversion(newOption.yAxis, newDatas, dataMap);\r\n newOption.series = this.objectConversion(\r\n newOption.series,\r\n newDatas,\r\n dataMap\r\n );\r\n const chartColors = this.generateColors(seriesCount);\r\n newOption = this.getNewOption({ ...newOption });\r\n newOption = { ...newOption, color: newOption.color || chartColors };\r\n if (this.myChart) {\r\n this.myChart.dispose();\r\n }\r\n const myChart = (this.myChart = echarts.init(\r\n this.chartRef.current as HTMLDivElement\r\n )); //初始化echarts,通过ref属性获取dom\r\n myChart.clear();\r\n myChart.off(\"click\");\r\n myChart?.getZr()?.off(\"click\");\r\n myChart.setOption(newOption);\r\n myChart.on(\"click\", function (params) {\r\n OnClick && OnClick(params, myChart);\r\n });\r\n myChart?.getZr()?.on(\"click\", (params) => {\r\n OnZrClick && OnZrClick(params, myChart);\r\n });\r\n setTimeout(() => {\r\n if (this.myChart) {\r\n this.myChart.resize();\r\n }\r\n }, 0);\r\n this.setState({\r\n colors: newOption.color,\r\n });\r\n window.addEventListener(\"resize\", this.handleChartResize.bind(this));\r\n }\r\n\r\n handleChartResize() {\r\n if (this.myChart) {\r\n this.myChart.resize();\r\n }\r\n }\r\n\r\n render() {\r\n const { width, height, legend } = this.props;\r\n const { legendData = [], colors } = this.state;\r\n const boxStyle = {\r\n width: typeof width == \"number\" ? px2vw(width) : width,\r\n height: typeof height == \"number\" ? px2vw(height) : height,\r\n } as any;\r\n if (legend == true) {\r\n boxStyle.display = \"flex\";\r\n }\r\n return (\r\n <div style={boxStyle}>\r\n <div ref={this.chartRef} style={{ flex: 1, height: \"100%\" }}></div>\r\n {legend && (\r\n <div className={cls(\"nsc-chart-legendBox\")}>\r\n {legendData.map((item, index) => {\r\n return (\r\n <div className=\"nsc-chart-legendItem\" key={index}>\r\n <div\r\n className=\"nsc-chart-legendItem-icon\"\r\n style={{ backgroundColor: colors[index] }}\r\n ></div>\r\n <div className=\"nsc-chart-legendItem-name\">{item.name}</div>\r\n <div className=\"nsc-chart-legendItem-value\">\r\n {item.value || 0}\r\n </div>\r\n <div className=\"nsc-chart-legendItem-percent\">\r\n {item.percent}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default NscChart;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PureComponent","echarts","Store","utils","px2vw","isArray","isObject","cls","NscChart","constructor","props","_defineProperty","createRef","dataSource","legendData","colors","data","store","children","option","options","autoLoad","url","listeners","listenersPops","stores","_objectWithoutProperties","_excluded","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","modelData","setState","isFirst","init","dataChanged","componentDidMount","myChart","chartRef","current","componentDidUpdate","prevProps","prevState","snapshot","JSON","stringify","reSetChart","isString","v","chartLoad","params","chartReLoad","reload","componentWillUnmount","dispose","window","removeEventListener","handleChartResize","bind","isReplace","test","replace","substring","length","getRandomColor","color","Math","floor","random","toString","padStart","generateColors","count","defaultColors","slice","needed","i","push","dataConversion","datas","dataMap","result","map","item","value","tempObj","key","objectConversion","obj","type","legend","allData","calculatePercentages","total","reduce","sum","name","percent","index","concat","toFixed","othersTotal","parseFloat","lastPercent","getNewOption","newOption","series","Array","tooltip","trigger","seriesItem","barWidth","itemStyle","borderRadius","pieDataCount","pieColors","radius","label","show","borderColor","borderWidth","_myChart$getZr","_myChart$getZr2","OnClick","OnZrClick","state","newDatas","seriesCount","defaultOption","xAxis","yAxis","chartColors","clear","off","getZr","setOption","on","setTimeout","resize","addEventListener","render","width","height","boxStyle","display","createElement","style","ref","flex","className","backgroundColor"],"sources":["../../../src/components/base/chart/index.tsx"],"sourcesContent":["import React, { PureComponent } from \"react\";\r\nimport * as echarts from \"echarts\";\r\nimport { ECharts } from \"echarts/lib/echarts\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport { deepMerge, px2vw } from \"../../utils\";\r\nimport { isArray, isObject } from \"@bj-nsc/functions\";\r\nimport cls from \"classnames\";\r\nimport \"./index.less\";\r\nexport interface ChartProps {\r\n store?: StoreProps;\r\n option: any;\r\n data?: Array<Object> | Object;\r\n width: number | string; //图表宽度\r\n height: number | string; //图表长度\r\n autoLoad?: boolean; //数据改变,自动刷新图表,默认true\r\n OnClick?: (params: any, e?: any) => void; //图表点击事件\r\n OnZrClick?: (params: any, e?: any) => void; //图表点击事件\r\n legend?: boolean; //自定义图例是否显示 ,用于饼图\r\n [proNames: string]: any;\r\n}\r\n\r\n//data示例\r\n/**\r\n 数组:\r\n data=[{name:'1月',value:20},{name:'2月',value:10},{name:'3月',value:25}]\r\n 对象\r\n data={name:['1月','2月','3月'],value:[20,30,40]}\r\n */\r\nclass NscChart extends PureComponent<ChartProps> {\r\n chartRef = React.createRef<HTMLDivElement>();\r\n myChart: ECharts | null = null;\r\n store = {} as StoreProps;\r\n defaultColors = [\r\n \"#5B96F7\",\r\n \"#73C8FF\",\r\n \"#3C6CFE\",\r\n \"#818FFF\",\r\n \"#97DCFB\",\r\n \"#EF6F5B\",\r\n \"#F8BF70\",\r\n \"#57C39E\",\r\n ] as string[];\r\n state = {\r\n dataSource: null,\r\n legendData: [],\r\n colors: [],\r\n };\r\n isFirst = true;\r\n constructor(props) {\r\n super(props);\r\n const {\r\n data,\r\n store = {},\r\n children,\r\n option: options,\r\n autoLoad = true,\r\n } = props;\r\n const { url, listeners: listenersPops = {}, ...stores } = store;\r\n if (!children) {\r\n if (!(data || url || options)) {\r\n throw new Error(\"url、data、option不能都为空!\");\r\n }\r\n let _this = this;\r\n let storeProps = {\r\n model: \"model\",\r\n component: this,\r\n listeners: {\r\n onBeforeLoad: function (store, options) {\r\n utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);\r\n },\r\n load: function (data, modelData, store) {\r\n _this.setState({ dataSource: modelData }, () => {\r\n if (_this.isFirst && autoLoad) {\r\n _this.init();\r\n _this.isFirst = false;\r\n }\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n _this.setState({ dataSource: modelData }, () => {\r\n if (autoLoad) {\r\n _this.init();\r\n }\r\n });\r\n utils.callback(listenersPops.dataChanged, _this, [\r\n data,\r\n modelData,\r\n store,\r\n ]);\r\n },\r\n },\r\n ...stores,\r\n };\r\n if (url && data == null) {\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { data, autoLoad = true, store, option } = this.props;\r\n\r\n if (this.myChart || !this.chartRef.current) {\r\n return;\r\n }\r\n if (data && autoLoad) {\r\n this.init();\r\n } else if (!data && !store?.url && option) {\r\n this.init();\r\n }\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<ChartProps>,\r\n prevState: Readonly<{}>,\r\n snapshot?: any\r\n ): void {\r\n const { autoLoad = true } = this.props;\r\n if (autoLoad) {\r\n if (JSON.stringify(prevProps.data) !== JSON.stringify(this.props.data)) {\r\n this.init();\r\n } else if (\r\n JSON.stringify(prevProps.option) !== JSON.stringify(this.props.option)\r\n ) {\r\n this.init();\r\n }\r\n }\r\n }\r\n\r\n reSetChart() {\r\n this.init();\r\n }\r\n isString(v) {\r\n return typeof v === \"string\";\r\n }\r\n\r\n\r\n chartLoad(params){\r\n this.store.load({params})\r\n }\r\n chartReLoad(){\r\n this.store.reload();\r\n }\r\n componentWillUnmount() {\r\n // 清理 echarts 实例\r\n if (this.myChart) {\r\n this.myChart.dispose();\r\n this.myChart = null;\r\n }\r\n\r\n // 移除事件监听器\r\n window.removeEventListener(\"resize\", this.handleChartResize.bind(this));\r\n }\r\n\r\n isReplace(v) {\r\n return /^{.*}$/gi.test(v);\r\n }\r\n replace(v) {\r\n return v.substring(1, v.length - 1);\r\n }\r\n\r\n getRandomColor() {\r\n let color;\r\n do {\r\n color =\r\n \"#\" +\r\n Math.floor(Math.random() * 0xffffff)\r\n .toString(16)\r\n .padStart(6, \"0\");\r\n } while (color === \"#FFFFFF\" || color === \"#000000\");\r\n return color;\r\n }\r\n generateColors(count: number): string[] {\r\n // 如果需要的颜色数量少于或等于默认颜色数量,直接返回对应数量的默认颜色\r\n if (count <= this.defaultColors.length) {\r\n return this.defaultColors.slice(0, count);\r\n }\r\n\r\n // 否则,先复制所有默认颜色\r\n const colors = [...this.defaultColors];\r\n\r\n // 生成额外的随机颜色\r\n const needed = count - this.defaultColors.length;\r\n for (let i = 0; i < needed; i++) {\r\n colors.push(this.getRandomColor());\r\n }\r\n this.setState({ colors });\r\n return colors;\r\n }\r\n dataConversion(data, datas, dataMap) {\r\n let result;\r\n if (data) {\r\n if (this.isString(data) && this.isReplace(data)) {\r\n result = dataMap[this.replace(data)];\r\n } else if (isArray(data)) {\r\n data.map((item) => {\r\n let v = item?.value || null;\r\n if (v && this.isReplace(v)) {\r\n item.value = this.dataConversion(v, datas, dataMap);\r\n }\r\n });\r\n result = data;\r\n } else if (isObject(data)) {\r\n result = [];\r\n if (isArray(datas)) {\r\n datas.map((item) => {\r\n var tempObj = {};\r\n for (let key in data) {\r\n let v = data[key];\r\n if (this.isReplace(v)) {\r\n tempObj[key] = item[this.replace(v)];\r\n } else {\r\n tempObj[key] = v;\r\n }\r\n }\r\n result.push(tempObj);\r\n });\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n objectConversion(obj, datas, dataMap) {\r\n let tempObj: any;\r\n if (obj) {\r\n if (isArray(obj)) {\r\n tempObj = [...obj];\r\n tempObj.map((item) => {\r\n if (item.data) {\r\n item.data = this.dataConversion(item.data, datas, dataMap);\r\n }\r\n });\r\n } else if (this.isString(obj)) {\r\n tempObj = obj;\r\n tempObj.data = this.dataConversion(tempObj, datas, dataMap);\r\n } else if (isObject(obj)) {\r\n tempObj = { ...obj };\r\n tempObj.data = this.dataConversion(tempObj.data, datas, dataMap);\r\n if (tempObj.type === \"pie\" && this.props.legend == true) {\r\n let allData = tempObj.data;\r\n const legendData = this.calculatePercentages(allData);\r\n this.setState({\r\n legendData,\r\n });\r\n }\r\n }\r\n }\r\n return tempObj;\r\n }\r\n calculatePercentages(\r\n allData: Array<{ name: string; value: number }>\r\n ): Array<{ name: string; value: number; percent: string }> {\r\n if (!allData || allData.length === 0) {\r\n return [];\r\n }\r\n const total = allData.reduce((sum, item) => sum + (item.value || 0), 0);\r\n if (total === 0) {\r\n return allData.map((item) => ({\r\n name: item.name,\r\n value: item.value,\r\n percent: \"0%\",\r\n }));\r\n }\r\n\r\n // Calculate percentages for all but the last item\r\n const result = allData.map((item, index) => {\r\n if (index === allData.length - 1) {\r\n // For the last item, we'll calculate based on remaining percentage\r\n return {\r\n name: item.name,\r\n value: item.value,\r\n percent: \"\", // Placeholder, will be calculated below\r\n };\r\n }\r\n\r\n const percent = (item.value / total) * 100;\r\n return {\r\n name: item.name,\r\n value: item.value,\r\n percent: `${percent.toFixed(2)}%`,\r\n };\r\n });\r\n\r\n // Calculate the last item's percentage to ensure total is 100%\r\n if (result.length > 0) {\r\n const othersTotal = result.slice(0, -1).reduce((sum, item) => {\r\n return sum + parseFloat(item.percent);\r\n }, 0);\r\n\r\n const lastPercent = 100 - othersTotal;\r\n result[result.length - 1].percent = `${lastPercent.toFixed(2)}%`;\r\n }\r\n\r\n return result;\r\n }\r\n getNewOption(newOption) {\r\n let colors = newOption.color;\r\n if (newOption.series) {\r\n if (Array.isArray(newOption.series)) {\r\n newOption.tooltip = newOption.tooltip || { trigger: \"axis\" };\r\n newOption.series = newOption.series.map((seriesItem) => {\r\n // 如果是柱状图且没有设置 barWidth,则设置默认值为20\r\n if (seriesItem.type === \"bar\") {\r\n return {\r\n barWidth: 20,\r\n itemStyle: {\r\n borderRadius: [5, 5, 0, 0],\r\n ...seriesItem.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n ...seriesItem,\r\n // 正确设置 borderRadius,需要放在 itemStyle 中\r\n };\r\n } else if (seriesItem.type === \"pie\") {\r\n newOption.tooltip = newOption.tooltip || { trigger: \"item\" };\r\n let pieDataCount = 1;\r\n if (seriesItem.data && Array.isArray(seriesItem.data)) {\r\n pieDataCount = seriesItem.data.length;\r\n }\r\n\r\n // 为饼图生成适当数量的颜色\r\n const pieColors = this.generateColors(pieDataCount);\r\n colors = colors || pieColors;\r\n return {\r\n radius: [\"40%\", \"70%\"],\r\n label: {\r\n show: false,\r\n },\r\n itemStyle: {\r\n borderRadius: 10,\r\n borderColor: \"#fff\",\r\n borderWidth: 2,\r\n ...seriesItem.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n // color: seriesItem.color || pieColors,\r\n ...seriesItem,\r\n };\r\n }\r\n return seriesItem;\r\n });\r\n } else if (newOption.series.type === \"bar\") {\r\n // 处理单个 series 对象的情况\r\n newOption.series = {\r\n barWidth: 20,\r\n ...newOption.series,\r\n // 正确设置 borderRadius,需要放在 itemStyle 中\r\n itemStyle: {\r\n borderRadius: [5, 5, 0, 0],\r\n ...newOption.series.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n };\r\n } else if (newOption.series.type === \"pie\") {\r\n // 处理单个 series 对象的情况(饼图)\r\n newOption.tooltip = newOption.tooltip || { trigger: \"item\" };\r\n let pieDataCount = 1;\r\n if (newOption.series.data && Array.isArray(newOption.series.data)) {\r\n pieDataCount = newOption.series.data.length;\r\n }\r\n // 为饼图生成适当数量的颜色\r\n const pieColors = this.generateColors(pieDataCount);\r\n colors = colors || pieColors;\r\n newOption.series = {\r\n radius: [\"40%\", \"70%\"],\r\n label: {\r\n show: false,\r\n },\r\n ...newOption.series,\r\n itemStyle: {\r\n borderRadius: 10,\r\n borderColor: \"#fff\",\r\n borderWidth: 2,\r\n ...newOption.series.itemStyle,\r\n },\r\n // color: newOption.series.color || pieColors,\r\n };\r\n }\r\n }\r\n newOption.color = colors;\r\n return newOption;\r\n }\r\n init() {\r\n if (!this.chartRef.current) {\r\n return;\r\n }\r\n const { option, data, OnClick, OnZrClick } = this.props;\r\n const { dataSource } = this.state;\r\n let dataMap: any = {};\r\n const newDatas = data || dataSource;\r\n let seriesCount = 1; // 默认至少一个系列\r\n if (option?.series) {\r\n seriesCount = Array.isArray(option.series) ? option.series.length : 1;\r\n }\r\n\r\n // 生成适当数量的颜色(如果用户没有提供颜色)\r\n let defaultOption = {};\r\n\r\n let newOption: any = { ...defaultOption, ...option };\r\n\r\n if (isArray(newDatas)) {\r\n newDatas.map((item) => {\r\n for (let key in item) {\r\n if (dataMap[key] == null) {\r\n dataMap[key] = [];\r\n }\r\n dataMap[key].push(item[key]);\r\n }\r\n });\r\n } else if (isObject(newDatas)) {\r\n dataMap = newDatas;\r\n }\r\n newOption.xAxis = this.objectConversion(newOption.xAxis, newDatas, dataMap);\r\n newOption.yAxis = this.objectConversion(newOption.yAxis, newDatas, dataMap);\r\n newOption.series = this.objectConversion(\r\n newOption.series,\r\n newDatas,\r\n dataMap\r\n );\r\n const chartColors = this.generateColors(seriesCount);\r\n newOption = this.getNewOption({ ...newOption });\r\n newOption = { ...newOption, color: newOption.color || chartColors };\r\n if (this.myChart) {\r\n this.myChart.dispose();\r\n }\r\n const myChart = (this.myChart = echarts.init(\r\n this.chartRef.current as HTMLDivElement\r\n )); //初始化echarts,通过ref属性获取dom\r\n myChart.clear();\r\n myChart.off(\"click\");\r\n myChart?.getZr()?.off(\"click\");\r\n myChart.setOption(newOption);\r\n myChart.on(\"click\", function (params) {\r\n OnClick && OnClick(params, myChart);\r\n });\r\n myChart?.getZr()?.on(\"click\", (params) => {\r\n OnZrClick && OnZrClick(params, myChart);\r\n });\r\n setTimeout(() => {\r\n if (this.myChart) {\r\n this.myChart.resize();\r\n }\r\n }, 0);\r\n this.setState({\r\n colors: newOption.color,\r\n });\r\n window.addEventListener(\"resize\", this.handleChartResize.bind(this));\r\n }\r\n\r\n handleChartResize() {\r\n if (this.myChart) {\r\n this.myChart.resize();\r\n }\r\n }\r\n\r\n render() {\r\n const { width, height, legend } = this.props;\r\n const { legendData = [], colors } = this.state;\r\n const boxStyle = {\r\n width: typeof width == \"number\" ? px2vw(width) : width,\r\n height: typeof height == \"number\" ? px2vw(height) : height,\r\n } as any;\r\n if (legend == true) {\r\n boxStyle.display = \"flex\";\r\n }\r\n return (\r\n <div style={boxStyle}>\r\n <div ref={this.chartRef} style={{ flex: 1, height: \"100%\" }}></div>\r\n {legend && (\r\n <div className={cls(\"nsc-chart-legendBox\")}>\r\n {legendData.map((item, index) => {\r\n return (\r\n <div className=\"nsc-chart-legendItem\" key={index}>\r\n <div\r\n className=\"nsc-chart-legendItem-icon\"\r\n style={{ backgroundColor: colors[index] }}\r\n ></div>\r\n <div className=\"nsc-chart-legendItem-name\">{item.name}</div>\r\n <div className=\"nsc-chart-legendItem-value\">\r\n {item.value || 0}\r\n </div>\r\n <div className=\"nsc-chart-legendItem-percent\">\r\n {item.percent}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default NscChart;\r\n"],"mappings":"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"}
@@ -16,6 +16,7 @@ interface SearchProps {
16
16
  searchFormProps?: object;
17
17
  buttonRevers?: boolean;
18
18
  className?: any;
19
+ buttons?: Array<string>;
19
20
  }
20
21
  declare class HeaderSearch extends PureComponent<SearchProps, any> {
21
22
  searchRef: React.RefObject<any>;
@@ -99,6 +99,7 @@ class HeaderSearch extends PureComponent {
99
99
  toolButtonPosition,
100
100
  onSearch,
101
101
  onReset,
102
+ buttons = ["search", "reset"],
102
103
  searchFormProps = {}
103
104
  } = this.props;
104
105
  let colSpan = 0;
@@ -234,7 +235,7 @@ class HeaderSearch extends PureComponent {
234
235
  marginLeft: 0
235
236
  },
236
237
  htmlType: "submit"
237
- }, "\u67E5\u8BE2"), searchForms.length > 1 && /*#__PURE__*/React.createElement(Button
238
+ }, "\u67E5\u8BE2"), searchForms.length > 1 && buttons.indexOf("reset") > -1 && /*#__PURE__*/React.createElement(Button
238
239
  // type={"primary"}
239
240
  , {
240
241
  onClick: this.resetSearch.bind(this),
@@ -253,4 +254,4 @@ class HeaderSearch extends PureComponent {
253
254
  }
254
255
  }
255
256
  export default HeaderSearch;
256
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwiQ29sIiwiUm93IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJkYXlqcyIsInN0eWxlcyIsIkhlYWRlclNlYXJjaCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZXhwYW5kIiwic2V0U2VhcmNoUGFyYW1zIiwicGFyYW1zIiwiY2FsbEJhY2siLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUiLCJuZXdQYXJhbXMiLCJfb2JqZWN0U3ByZWFkIiwiZGF0ZUZvcm1hdCIsImtleSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VhcmNoUmVmIiwiY3VycmVudCIsInNldEZpZWxkc1ZhbHVlIiwiZ2V0U2VhcmNoVmFsdWVzIiwiZm9ybVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUyIiwiZ2V0RmllbGRzVmFsdWUiLCJvbGRkYXRhIiwibGVuZ3RoIiwiZm9ybWF0IiwicmFuZ2VyRGF0ZSIsImUiLCJvblNlYXJjaCIsInByb3BzIiwiZnJvbVZhbHVlIiwicmVzZXRGaWVsZHMiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUzIiwicmVzZXRTZWFyY2giLCJfdGhpcyRzZWFyY2hSZWYkY3VycmU0Iiwib25SZXNldCIsInJlbmRlciIsInNlYXJjaEZvcm1zIiwidG9vbEJ1dHRvblBvc2l0aW9uIiwic2VhcmNoRm9ybVByb3BzIiwiY29sU3BhbiIsImhlYWRlckNvdW50IiwiaGVhZGVyUm91dCIsImNyZWF0ZUVsZW1lbnQiLCJndXR0ZXIiLCJ3cmFwIiwiY2xhc3NOYW1lIiwiX2V4dGVuZHMiLCJyZWYiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJzdHlsZSIsIndpZHRoIiwiZGlzcGxheSIsImZsZXhXcmFwIiwib25GaW5pc2giLCJiaW5kIiwibGF5b3V0IiwibWFwIiwiaXRlbSIsImluZGV4IiwiX2l0ZW0kcHJvcHMiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJzdGF0ZSIsImFsbG93Q2hhcnMiLCJzZWFyY2hEaXNhYmxlZCIsInR5cGUiLCJkZWZhdWx0SXRlbSIsImxhYmVsIiwicnVsZXMiLCJjb21wb25lbnROYW1lIiwicGxhY2Vob2xkZXIiLCJjb25jYXQiLCJzcGxpdCIsInJhbmdlckZpZWxkcyIsIm1kIiwic3BhbiIsInNtIiwibGciLCJwYWRkaW5nUmlnaHQiLCJJdGVtIiwib2Zmc2V0IiwibWFyZ2luVG9wIiwiYnV0dG9uUmV2ZXJzIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJodG1sVHlwZSIsIm9uQ2xpY2siLCJzZXRTdGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvSGVhZGVyU2VhcmNoL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7IGlzRW1wdHlPYmogfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHtcclxuICBEb3duT3V0bGluZWQsXHJcbiAgVXBPdXRsaW5lZCxcclxuICBSZWxvYWRPdXRsaW5lZCxcclxuICBTZWFyY2hPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmNvbnN0IHN0eWxlcyA9IG51bGw7XHJcbmludGVyZmFjZSBTZWFyY2hJdGVtUHJvcHMge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxhYmVsQ29sPzogYW55O1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgd3JhcHBlckNvbD86IGFueTtcclxuICBwcm9wcz86IGFueTtcclxufVxyXG5pbnRlcmZhY2UgU2VhcmNoUHJvcHMge1xyXG4gIHNlYXJjaEZvcm1zOiBBcnJheTxTZWFyY2hJdGVtUHJvcHM+OyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IHN0cmluZztcclxuICBvblNlYXJjaD86IGFueTtcclxuICBvblJlc2V0PzogYW55O1xyXG4gIHNlYXJjaEZvcm1Qcm9wcz86IG9iamVjdDtcclxuICBidXR0b25SZXZlcnM/OiBib29sZWFuO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxufVxyXG5cclxuY2xhc3MgSGVhZGVyU2VhcmNoIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxTZWFyY2hQcm9wcywgYW55PiB7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIHJhbmdlckRhdGUgPSB7fSBhcyBhbnk7XHJcbiAgc3RhdGUgPSB7IGV4cGFuZDogZmFsc2UgfTtcclxuICBzZXRTZWFyY2hQYXJhbXMocGFyYW1zLCBjYWxsQmFjaykge1xyXG4gICAgbGV0IG5ld1BhcmFtcyA9IHsgLi4ucGFyYW1zIH07XHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gbmV3UGFyYW1zW2tleV07XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgbmV3UGFyYW1zW2tleV0gPSBkYXlqcyh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWVbMF0gPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgbmV3UGFyYW1zW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anModmFsdWVbMF0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyh2YWx1ZVsxXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUobmV3UGFyYW1zKTtcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSgpO1xyXG4gICAgcmV0dXJuIGZvcm1WYWx1ZTtcclxuICB9XHJcbiAgZm9ybWF0VmFsdWUoKSB7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZUZvcm1hdCkpIHtcclxuICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuZGF0ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gZm9ybVZhbHVlW2tleV07XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgIGlmIChvbGRkYXRhLmxlbmd0aCA+IDAgJiYgb2xkZGF0YVswXSAmJiBvbGRkYXRhWzFdKSB7XHJcbiAgICAgICAgICAgIGZvcm1WYWx1ZVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIGZvcm1WYWx1ZVt0aGlzLnJhbmdlckRhdGVba2V5XVswXV0gPSBkYXlqcyhvbGRkYXRhWzBdKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRba2V5XSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGZvcm1WYWx1ZVt0aGlzLnJhbmdlckRhdGVba2V5XVsxXV0gPSBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRba2V5XSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGRlbGV0ZSBmb3JtVmFsdWVba2V5XTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG9sZGRhdGEpIHtcclxuICAgICAgICAgIGZvcm1WYWx1ZVtrZXldID0gZGF5anMob2xkZGF0YSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtVmFsdWU7XHJcbiAgfVxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgY29uc3QgeyBvblNlYXJjaCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIGlmIChvblNlYXJjaCkge1xyXG4gICAgICBvblNlYXJjaChmcm9tVmFsdWUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2V0RmllbGRzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgcmVzZXRTZWFyY2goKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5vblJlc2V0KSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25SZXNldCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHNlYXJjaEZvcm1zID0gW10sXHJcbiAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbixcclxuICAgICAgb25TZWFyY2gsXHJcbiAgICAgIG9uUmVzZXQsXHJcbiAgICAgIHNlYXJjaEZvcm1Qcm9wcyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgY29sU3BhbiA9IDA7XHJcbiAgICBjb25zdCBoZWFkZXJDb3VudCA9IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxIDogMjtcclxuICAgIGNvbnN0IGhlYWRlclJvdXQgPSBzZWFyY2hGb3Jtcy5sZW5ndGggJSA0O1xyXG4gICAgaWYgKGhlYWRlclJvdXQgPT0gMCkge1xyXG4gICAgICBjb2xTcGFuID0gMTg7XHJcbiAgICB9IGVsc2UgaWYgKGhlYWRlclJvdXQgPT0gMSkge1xyXG4gICAgICBjb2xTcGFuID0gMTI7XHJcbiAgICB9IGVsc2UgaWYgKGhlYWRlclJvdXQgPT0gMikge1xyXG4gICAgICBjb2xTcGFuID0gNjtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxSb3cgZ3V0dGVyPXsyNH0gd3JhcD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwibnNjLWhlYWRlcnNlYXJjaC1oZWFkZXJcIiksXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibnNjLWhlYWRlcnNlYXJjaC1oZWFkZXItcGFkZGluZ1wiKV06XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcy5sZW5ndGggPiAzLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmNsYXNzTmFtZSxcclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJuc2MtaGVhZGVyc2VhcmNoLWZvcm1cIikpfT5cclxuICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICB3cmFwcGVyQ29sPXt7fX1cclxuICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4V3JhcDogXCJ3cmFwXCIgfX1cclxuICAgICAgICAgICAgICBvbkZpbmlzaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIC8vIGxhYmVsQWxpZ249eydsZWZ0J31cclxuICAgICAgICAgICAgICBsYXlvdXQ9XCJob3Jpem9udGFsXCJcclxuICAgICAgICAgICAgICB7Li4uc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpc3BsYXkgPSBcImJsb2NrXCI7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2l0ZW0ubmFtZV0gPVxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gaGVhZGVyQ291bnQgJiYgIXRoaXMuc3RhdGUuZXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICAgICAgICAgICAgLy9yZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbT8ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7IC4uLml0ZW1Qcm9wcyB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy5zZWFyY2hEaXNhYmxlZDtcclxuICAgICAgICAgICAgICAgIGlmICghaXRlbS50eXBlIHx8IGl0ZW0udHlwZSA9PSBcIklucHV0XCIpIHtcclxuICAgICAgICAgICAgICAgICAgcHJvcHMuYWxsb3dDaGFycyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuYWxsb3dDaGFycztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBkZWZhdWx0SXRlbSA9IHtcclxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFyczogYWxsb3dDaGFycyxcclxuICAgICAgICAgICAgICAgICAgcnVsZXM6IGl0ZW0ucnVsZXMsXHJcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudE5hbWU6IGl0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IFwiSW5wdXRcIixcclxuICAgICAgICAgICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ubGFiZWxDb2wpIHtcclxuICAgICAgICAgICAgICAgICAgZGVmYXVsdEl0ZW0gPSB7IC4uLmRlZmF1bHRJdGVtLCBsYWJlbENvbDogaXRlbS5sYWJlbENvbCB9O1xyXG4gICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5sYWJlbENvbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLndyYXBwZXJDb2wpIHtcclxuICAgICAgICAgICAgICAgICAgZGVmYXVsdEl0ZW0gPSB7IC4uLmRlZmF1bHRJdGVtLCB3cmFwcGVyQ29sOiBpdGVtLndyYXBwZXJDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ud3JhcHBlckNvbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBwbGFjZWhvbGRlcjogYW55ID1cclxuICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID09IFwiU2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICA/IGDor7fpgInmi6kke2l0ZW0ubGFiZWx9YFxyXG4gICAgICAgICAgICAgICAgICAgIDogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gO1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSBcIlJhbmdlUGlja2VyXCIpIHtcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIgPSBbXCLlvIDlp4vml7bpl7RcIiwgXCLnu5PmnZ/ml7bpl7RcIl07XHJcbiAgICAgICAgICAgICAgICAgIGlmIChpdGVtLm5hbWUuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmdlckRhdGVbaXRlbS5uYW1lXSA9IGl0ZW0ubmFtZS5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy5yYW5nZXJGaWVsZHM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICAgICAgbWQ9e3sgc3BhbjogMTIgfX1cclxuICAgICAgICAgICAgICAgICAgICBzbT17eyBzcGFuOiAyNCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IDYgfX1cclxuICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCwgZGlzcGxheTogZGlzcGxheSB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZvcm0uSXRlbSB7Li4uZGVmYXVsdEl0ZW19PlxyXG4gICAgICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6IFwiMTAwJVwiIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxMiA6IDYgfX1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtcclxuICAgICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZXhwYW5kIHx8IHNlYXJjaEZvcm1zLmxlbmd0aCA8IDQpICYmXHJcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgICAgICAgICA/IGNvbFNwYW5cclxuICAgICAgICAgICAgICAgICAgICA6IDBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtc2VhcmNoLWJ1dHRvbnNcIiksXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtc2VhcmNoLWJ1dHRvbnMtZmxleFwiKV06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luVG9wOiAwIH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nscyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibnNjLWhlYWRlcnNlYXJjaC1idXR0b24tcmV2ZXJzZVwiKV06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuYnV0dG9uUmV2ZXJzID09IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIC8vIG9uQ2xpY2s9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgIGljb249ezxTZWFyY2hPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIGh0bWxUeXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICDmn6Xor6JcclxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubGVuZ3RoID4gMSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnJlc2V0U2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxSZWxvYWRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAg6YeN572uXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLmxlbmd0aCA+IDMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3MoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJuc2MtaGVhZGVyc2VhcmNoLWV4cGFuZC1zdHlsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBleHBhbmQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZDogIWV4cGFuZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IFwi5pS26LW3XCIgOiBcIuWxleW8gFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kID8gPFVwT3V0bGluZWQgLz4gOiA8RG93bk91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBIZWFkZXJTZWFyY2g7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU8sY0FBYztBQUNyQixPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUM5QyxTQUNFQyxZQUFZLEVBQ1pDLFVBQVUsRUFDVkMsY0FBYyxFQUNkQyxjQUFjLFFBQ1QsbUJBQW1CO0FBQzFCLFNBQVNDLE9BQU8sRUFBRUMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsTUFBTUMsTUFBTSxHQUFHLElBQUk7QUFtQm5CLE1BQU1DLFlBQVksU0FBU2YsYUFBYSxDQUFtQjtFQUFBZ0IsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxpQ0FDN0NuQixLQUFLLENBQUNvQixTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLHFCQUNyQixDQUFDLENBQUM7SUFBQUEsZUFBQSxxQkFDRixDQUFDLENBQUM7SUFBQUEsZUFBQSxnQkFDUDtNQUFFRSxNQUFNLEVBQUU7SUFBTSxDQUFDO0VBQUE7RUFDekJDLGVBQWVBLENBQUNDLE1BQU0sRUFBRUMsUUFBUSxFQUFFO0lBQUEsSUFBQUMscUJBQUE7SUFDaEMsSUFBSUMsU0FBUyxHQUFBQyxhQUFBLEtBQVFKLE1BQU0sQ0FBRTtJQUM3QixJQUFJLENB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
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+XHJcbiAgICAgICAgICAgIDwvRm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L1Jvdz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEhlYWRlclNlYXJjaDtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBbUIsT0FBTztBQUN2RCxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFDNUIsT0FBTyxjQUFjO0FBQ3JCLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLFNBQ0VDLFlBQVksRUFDWkMsVUFBVSxFQUNWQyxjQUFjLEVBQ2RDLGNBQWMsUUFDVCxtQkFBbUI7QUFDMUIsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixNQUFNQyxNQUFNLEdBQUcsSUFBSTtBQW9CbkIsTUFBTUMsWUFBWSxTQUFTZixhQUFhLENBQW1CO0VBQUFnQixZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLGlDQUM3Q25CLEtBQUssQ0FBQ29CLFNBQVMsQ0FBTSxDQUFDO0lBQUFELGVBQUEscUJBQ3JCLENBQUMsQ0FBQztJQUFBQSxlQUFBLHFCQUNGLENBQUMsQ0FBQztJQUFBQSxlQUFBLGdCQUNQO01BQUVFLE1BQU0sRUFBRTtJQUFNLENBQUM7RUFBQTtFQUN6QkMsZUFBZUEsQ0FBQ0MsTUFBTSxFQUFFQyxRQUFRLEVBQUU7SUFBQSxJQUFBQyxxQkFBQTtJQUNoQyxJQUFJQyxTQUFTLEdBQUFDLGFBQUEsS0FBUUosTUFBTSxDQUFFO0lBQzdCLElBQUksQ0FBQ2hCLFVBQVUsQ0FBQyxJQUFJLENBQUNxQixVQUFVLENBQUMsRUFBRTtNQUNoQyxLQUFLLElBQUlDLEdBQUcsSUFBSSxJQUFJLENBQUNELFVBQVUsRUFBRTtRQUMvQixJQUFJRSxLQUFLLEdBQUdKLFNBQVMsQ0FBQ0csR0FBRyxDQUFDO1FBQzFCLElBQUksT0FBT0MsS0FBSyxLQUFLLFFBQVEsRUFBRTtVQUM3QkosU0FBUyxDQUFDRyxHQUFHLENBQUMsR0FBR2YsS0FBSyxDQUFDZ0IsS0FBSyxFQUFFLElBQUksQ0FBQ0YsVUFBVSxDQUFDQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxDQUFDLE1BQU0sSUFBSUUsS0FBSyxDQUFDQyxPQUFPLENBQUNGLEtBQUssQ0FBQyxFQUFFO1VBQy9CLElBQUksT0FBT0EsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUNoQ0osU0FBUyxDQUFDRyxHQUFHLENBQUMsR0FBRyxDQUNmZixLQUFLLENBQUNnQixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDRixVQUFVLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQ3JDZixLQUFLLENBQUNnQixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDRixVQUFVLENBQUNDLEdBQUcsQ0FBQyxDQUFDLENBQ3RDO1VBQ0g7UUFDRjtNQUNGO0lBQ0Y7SUFDQSxDQUFBSixxQkFBQSxPQUFJLENBQUNRLFNBQVMsQ0FBQ0MsT0FBTyxjQUFBVCxxQkFBQSxlQUF0QkEscUJBQUEsQ0FBd0JVLGNBQWMsQ0FBQ1QsU0FBUyxDQUFDO0VBQ25EO0VBQ0FVLGVBQWVBLENBQUEsRUFBRztJQUNoQixNQUFNQyxTQUFTLEdBQUcsSUFBSSxDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUNwQyxPQUFPRCxTQUFTO0VBQ2xCO0VBQ0FDLFdBQVdBLENBQUEsRUFBRztJQUFBLElBQUFDLHNCQUFBO0lBQ1osTUFBTUYsU0FBUyxJQUFBRSxzQkFBQSxHQUFHLElBQUksQ0FBQ04sU0FBUyxDQUFDQyxPQUFPLGNBQUFLLHNCQUFBLHVCQUF0QkEsc0JBQUEsQ0FBd0JDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELElBQUksQ0FBQ2pDLFVBQVUsQ0FBQyxJQUFJLENBQUNxQixVQUFVLENBQUMsRUFBRTtNQUNoQyxLQUFLLElBQUlDLEdBQUcsSUFBSSxJQUFJLENBQUNELFVBQVUsRUFBRTtRQUMvQixJQUFJYSxPQUFPLEdBQUdKLFNBQVMsQ0FBQ1IsR0FBRyxDQUFDO1FBQzVCLElBQUlFLEtBQUssQ0FBQ0MsT0FBTyxDQUFDUyxPQUFPLENBQUMsRUFBRTtVQUMxQixJQUFJQSxPQUFPLENBQUNDLE1BQU0sR0FBRyxDQUFDLElBQUlELE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xESixTQUFTLENBQUNSLEdBQUcsQ0FBQyxHQUFHLENBQ2ZmLEtBQUssQ0FBQzJCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDZixVQUFVLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQzlDZixLQUFLLENBQUMyQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQ2YsVUFBVSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxDQUMvQztVQUNIO1VBQ0EsSUFBSSxJQUFJLENBQUNlLFVBQVUsQ0FBQ2YsR0FBRyxDQUFDLEVBQUU7WUFDeEIsSUFBSTtjQUNGUSxTQUFTLENBQUMsSUFBSSxDQUFDTyxVQUFVLENBQUNmLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUdmLEtBQUssQ0FBQzJCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRSxNQUFNLENBQzNELElBQUksQ0FBQ2YsVUFBVSxDQUFDQyxHQUFHLENBQ3JCLENBQUM7Y0FDRFEsU0FBUyxDQUFDLElBQUksQ0FBQ08sVUFBVSxDQUFDZixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHZixLQUFLLENBQUMyQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0UsTUFBTSxDQUMzRCxJQUFJLENBQUNmLFVBQVUsQ0FBQ0MsR0FBRyxDQUNyQixDQUFDO2NBQ0QsT0FBT1EsU0FBUyxDQUFDUixHQUFHLENBQUM7WUFDdkIsQ0FBQyxDQUFDLE9BQU9nQixDQUFDLEVBQUUsQ0FBQztVQUNmO1FBQ0YsQ0FBQyxNQUFNLElBQUlKLE9BQU8sRUFBRTtVQUNsQkosU0FBUyxDQUFDUixHQUFHLENBQUMsR0FBR2YsS0FBSyxDQUFDMkIsT0FBTyxDQUFDLENBQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUNmLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDLENBQUM7UUFDOUQ7TUFDRjtJQUNGO0lBQ0EsT0FBT1EsU0FBUztFQUNsQjtFQUNBUyxRQUFRQSxDQUFBLEVBQUc7SUFDVCxNQUFNO01BQUVBO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsS0FBSztJQUMvQixNQUFNQyxTQUFTLEdBQUcsSUFBSSxDQUFDVixXQUFXLENBQUMsQ0FBQztJQUNwQyxJQUFJUSxRQUFRLEVBQUU7TUFDWkEsUUFBUSxDQUFDRSxTQUFTLENBQUM7TUFDbkI7SUFDRjtFQUNGO0VBQ0FDLFdBQVdBLENBQUEsRUFBRztJQUFBLElBQUFDLHNCQUFBO0lBQ1osQ0FBQUEsc0JBQUEsT0FBSSxDQUFDakIsU0FBUyxDQUFDQyxPQUFPLGNBQUFnQixzQkFBQSxlQUF0QkEsc0JBQUEsQ0FBd0JELFdBQVcsQ0FBQyxDQUFDO0VBQ3ZDO0VBQ0FFLFdBQVdBLENBQUEsRUFBRztJQUFBLElBQUFDLHNCQUFBO0lBQ1osSUFBSSxJQUFJLENBQUNMLEtBQUssQ0FBQ00sT0FBTyxFQUFFO01BQ3RCLElBQUksQ0FBQ04sS0FBSyxDQUFDTSxPQUFPLENBQUMsQ0FBQztNQUNwQjtJQUNGO0lBQ0EsQ0FBQUQsc0JBQUEsT0FBSSxDQUFDbkIsU0FBUyxDQUFDQyxPQUFPLGNBQUFrQixzQkFBQSxlQUF0QkEsc0JBQUEsQ0FBd0JILFdBQVcsQ0FBQyxDQUFDO0VBQ3ZDO0VBQ0FLLE1BQU1BLENBQUEsRUFBRztJQUNQLE1BQU07TUFDSkMsV0FBVyxHQUFHLEVBQUU7TUFDaEJDLGtCQUFrQjtNQUNsQlYsUUFBUTtNQUNSTyxPQUFPO01BQ1BJLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7TUFDN0JDLGVBQWUsR0FBRyxDQUFDO0lBQ3JCLENBQUMsR0FBRyxJQUFJLENBQUNYLEtBQUs7SUFDZCxJQUFJWSxPQUFPLEdBQUcsQ0FBQztJQUNmLE1BQU1DLFdBQVcsR0FBR0osa0JBQWtCLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ3pELE1BQU1LLFVBQVUsR0FBR04sV0FBVyxDQUFDYixNQUFNLEdBQUcsQ0FBQztJQUN6QyxJQUFJbUIsVUFBVSxJQUFJLENBQUMsRUFBRTtNQUNuQkYsT0FBTyxHQUFHLEVBQUU7SUFDZCxDQUFDLE1BQU0sSUFBSUUsVUFBVSxJQUFJLENBQUMsRUFBRTtNQUMxQkYsT0FBTyxHQUFHLEVBQUU7SUFDZCxDQUFDLE1BQU0sSUFBSUUsVUFBVSxJQUFJLENBQUMsRUFBRTtNQUMxQkYsT0FBTyxHQUFHLENBQUM7SUFDYjtJQUNBLG9CQUNFM0QsS0FBQSxDQUFBOEQsYUFBQSxDQUFDeEQsR0FBRztNQUFDeUQsTUFBTSxFQUFFLEVBQUc7TUFBQ0MsSUFBSTtJQUFBLGdCQUNuQmhFLEtBQUEsQ0FBQThELGFBQUE7TUFDRUcsU0FBUyxFQUFFN0QsR0FBRyxDQUNaUSxPQUFPLENBQUNHLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxFQUMxQztRQUNFLENBQUNILE9BQU8sQ0FBQ0csTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEdBQ2pEd0MsV0FBVyxDQUFDYixNQUFNLEdBQUc7TUFDekIsQ0FBQyxFQUNELElBQUksQ0FBQ0ssS0FBSyxDQUFDa0IsU0FDYjtJQUFFLGdCQUVGakUsS0FBQSxDQUFBOEQsYUFBQTtNQUFLRyxTQUFTLEVBQUU3RCxHQUFHLENBQUNRLE9BQU8sQ0FBQ0csTUFBTSxFQUFFLHVCQUF1QixDQUFDO0lBQUUsZ0JBQzVEZixLQUFBLENBQUE4RCxhQUFBLENBQUM1RCxJQUFJLEVBQUFnRSxRQUFBO01BQ0hDLEdBQUcsRUFBRSxJQUFJLENBQUNsQyxTQUFVO01BQ3BCbUMsUUFBUSxFQUFFLENBQUMsQ0FBRTtNQUNiQyxVQUFVLEVBQUUsQ0FBQyxDQUFFO01BQ2ZDLEtBQUssRUFBRTtRQUFFQyxLQUFLLEVBQUUsTUFBTTtRQUFFQyxPQUFPLEVBQUUsTUFBTTtRQUFFQyxRQUFRLEVBQUU7TUFBTyxDQUFFO01BQzVEQyxRQUFRLEVBQUUsSUFBSSxDQUFDNUIsUUFBUSxDQUFDNkIsSUFBSSxDQUFDLElBQUk7TUFDakM7TUFBQTtNQUNBQyxNQUFNLEVBQUM7SUFBWSxHQUNmbEIsZUFBZSxHQUVsQkgsV0FBVyxDQUFDc0IsR0FBRyxDQUFDLENBQUNDLElBQVMsRUFBRUMsS0FBVSxLQUFLO01BQUEsSUFBQUMsV0FBQTtNQUMxQyxNQUFNQyxTQUFTLEdBQUdILElBQUksQ0FBQy9CLEtBQUssSUFBSSxDQUFDLENBQUM7TUFDbEMsSUFBSXlCLE9BQU8sR0FBRyxPQUFPO01BQ3JCLElBQUlTLFNBQVMsQ0FBQ3RDLE1BQU0sSUFBSXNDLFNBQVMsQ0FBQ0MsV0FBVyxFQUFFO1FBQzdDLElBQUksQ0FBQ3RELFVBQVUsQ0FBQ2tELElBQUksQ0FBQ0ssSUFBSSxDQUFDLEdBQ3hCRixTQUFTLENBQUN0QyxNQUFNLElBQUlzQyxTQUFTLENBQUNDLFdBQVc7TUFDN0M7TUFDQSxJQUFJSCxLQUFLLEdBQUduQixXQUFXLElBQUksQ0FBQyxJQUFJLENBQUN3QixLQUFLLENBQUMvRCxNQUFNLEVBQUU7UUFDN0NtRCxPQUFPLEdBQUcsTUFBTTtRQUNoQjtNQUNGO01BQ0EsSUFBSWEsVUFBVSxHQUFHLENBQUFQLElBQUksYUFBSkEsSUFBSSxnQkFBQUUsV0FBQSxHQUFKRixJQUFJLENBQUUvQixLQUFLLGNBQUFpQyxXQUFBLHVCQUFYQSxXQUFBLENBQWFLLFVBQVUsS0FBSSxLQUFLO01BQ2pELElBQUl0QyxLQUFLLEdBQUFwQixhQUFBLEtBQVFzRCxTQUFTLENBQUU7TUFFNUIsT0FBT2xDLEtBQUssQ0FBQ3VDLGNBQWM7TUFDM0IsSUFBSSxDQUFDUixJQUFJLENBQUNTLElBQUksSUFBSVQsSUFBSSxDQUFDUyxJQUFJLElBQUksT0FBTyxFQUFFO1FBQ3RDeEMsS0FBSyxDQUFDc0MsVUFBVSxHQUFHLElBQUk7TUFDekIsQ0FBQyxNQUFNO1FBQ0wsT0FBT3RDLEtBQUssQ0FBQ3NDLFVBQVU7TUFDekI7TUFDQSxJQUFJRyxXQUFXLEdBQUc7UUFDaEJDLEtBQUssRUFBRVgsSUFBSSxDQUFDVyxLQUFLO1FBQ2pCTixJQUFJLEVBQUVMLElBQUksQ0FBQ0ssSUFBSTtRQUNmRSxVQUFVLEVBQUVBLFVBQVU7UUFDdEJLLEtBQUssRUFBRVosSUFBSSxDQUFDWSxLQUFLO1FBQ2pCQyxhQUFhLEVBQUViLElBQUksQ0FBQ1MsSUFBSSxHQUFHVCxJQUFJLENBQUNTLElBQUksR0FBRztNQUN6QyxDQUFRO01BQ1IsSUFBSVQsSUFBSSxDQUFDVixRQUFRLEVBQUU7UUFDakJvQixXQUFXLEdBQUE3RCxhQUFBLENBQUFBLGFBQUEsS0FBUTZELFdBQVc7VUFBRXBCLFFBQVEsRUFBRVUsSUFBSSxDQUFDVjtRQUFRLEVBQUU7UUFDekQsT0FBT1UsSUFBSSxDQUFDVixRQUFRO01BQ3RCO01BQ0EsSUFBSVUsSUFBSSxDQUFDVCxVQUFVLEVBQUU7UUFDbkJtQixXQUFXLEdBQUE3RCxhQUFBLENBQUFBLGFBQUEsS0FBUTZELFdBQVc7VUFBRW5CLFVBQVUsRUFBRVMsSUFBSSxDQUFDVDtRQUFVLEVBQUU7UUFDN0QsT0FBT1MsSUFBSSxDQUFDVCxVQUFVO01BQ3hCO01BQ0EsSUFBSXVCLFdBQWdCLEdBQ2xCZCxJQUFJLENBQUNTLElBQUksSUFBSSxRQUFRLHdCQUFBTSxNQUFBLENBQ1hmLElBQUksQ0FBQ1csS0FBSyx5QkFBQUksTUFBQSxDQUNWZixJQUFJLENBQUNXLEtBQUssQ0FBRTtNQUN4QixJQUFJWCxJQUFJLENBQUNTLElBQUksSUFBSSxhQUFhLEVBQUU7UUFDOUJLLFdBQVcsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDOUIsSUFBSWQsSUFBSSxDQUFDSyxJQUFJLENBQUNXLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ3BELE1BQU0sR0FBRyxDQUFDLEVBQUU7VUFDbkMsSUFBSSxDQUFDRSxVQUFVLENBQUNrQyxJQUFJLENBQUNLLElBQUksQ0FBQyxHQUFHTCxJQUFJLENBQUNLLElBQUksQ0FBQ1csS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNuRDtNQUNGO01BQ0EsT0FBTy9DLEtBQUssQ0FBQ2dELFlBQVk7TUFDekIsb0JBQ0UvRixLQUFBLENBQUE4RCxhQUFBLENBQUN6RCxHQUFHO1FBQ0YyRixFQUFFLEVBQUU7VUFBRUMsSUFBSSxFQUFFO1FBQUcsQ0FBRTtRQUNqQkMsRUFBRSxFQUFFO1VBQUVELElBQUksRUFBRTtRQUFHLENBQUU7UUFDakJFLEVBQUUsRUFBRTtVQUFFRixJQUFJLEVBQUU7UUFBRSxDQUFFO1FBQ2hCcEUsR0FBRyxFQUFFa0QsS0FBTTtRQUNYVCxLQUFLLEVBQUU7VUFBRThCLFlBQVksRUFBRSxDQUFDO1VBQUU1QixPQUFPLEVBQUVBO1FBQVE7TUFBRSxnQkFFN0N4RSxLQUFBLENBQUE4RCxhQUFBLENBQUM1RCxJQUFJLENBQUNtRyxJQUFJLEVBQUtiLFdBQVcsRUFDdkIzRSxPQUFPLENBQUNpRSxJQUFJLENBQUNTLElBQUksRUFBQTVELGFBQUE7UUFDaEJpRSxXQUFXLEVBQUVBLFdBQVc7UUFDeEJ0QixLQUFLLEVBQUU7VUFBRUMsS0FBSyxFQUFFO1FBQU87TUFBQyxHQUNyQnhCLEtBQUssQ0FDVCxDQUNRLENBQ1IsQ0FBQztJQUVWLENBQUMsQ0FBQyxlQUNGL0MsS0FBQSxDQUFBOEQsYUFBQSxDQUFDekQsR0FBRztNQUNGMkYsRUFBRSxFQUFFO1FBQUVDLElBQUksRUFBRTtNQUFHLENBQUU7TUFDakJDLEVBQUUsRUFBRTtRQUFFRCxJQUFJLEVBQUU7TUFBRyxDQUFFO01BQ2pCRSxFQUFFLEVBQUU7UUFBRUYsSUFBSSxFQUFFekMsa0JBQWtCLElBQUksT0FBTyxHQUFHLEVBQUUsR0FBRztNQUFFLENBQUU7TUFDckRjLEtBQUssRUFBRTtRQUFFOEIsWUFBWSxFQUFFO01BQUUsQ0FBRTtNQUMzQkUsTUFBTSxFQUNKLENBQUMsSUFBSSxDQUFDbEIsS0FBSyxDQUFDL0QsTUFBTSxJQUFJa0MsV0FBVyxDQUFDYixNQUFNLEdBQUcsQ0FBQyxLQUM1Q2EsV0FBVyxDQUFDYixNQUFNLEdBQUcsQ0FBQyxHQUNsQmlCLE9BQU8sR0FDUDtJQUNMLGdCQUVEM0QsS0FBQSxDQUFBOEQsYUFBQTtNQUNFRyxTQUFTLEVBQUU3RCxHQUFHLENBQ1pRLE9BQU8sQ0FBQ0csTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEVBQ2xEO1FBQ0UsQ0FBQ0gsT0FBTyxDQUFDRyxNQUFNLEVBQUUsc0NBQXNDLENBQUMsR0FDdER3QyxXQUFXLENBQUNiLE1BQU0sR0FBRztNQUN6QixDQUNGLENBQUU7TUFDRjRCLEtBQUssRUFBRTtRQUFFaUMsU0FBUyxFQUFFO01BQUU7SUFBRSxnQkFFeEJ2RyxLQUFBLENBQUE4RCxhQUFBO01BQ0VHLFNBQVMsRUFBRTdELEdBQUcsQ0FBQztRQUNiLENBQUNRLE9BQU8sQ0FBQ0csTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEdBQ2pELElBQUksQ0FBQ2dDLEtBQUssQ0FBQ3lELFlBQVksSUFBSTtNQUMvQixDQUFDO0lBQUUsZ0JBRUh4RyxLQUFBLENBQUE4RCxhQUFBLENBQUMzRCxNQUFNO01BQ0xvRixJQUFJLEVBQUU7TUFDTjtNQUFBO01BQ0FrQixJQUFJLGVBQUV6RyxLQUFBLENBQUE4RCxhQUFBLENBQUNuRCxjQUFjLE1BQUUsQ0FBRTtNQUN6QjJELEtBQUssRUFBRTtRQUFFb0MsVUFBVSxFQUFFO01BQUUsQ0FBRTtNQUN6QkMsUUFBUSxFQUFDO0lBQVEsR0FDbEIsY0FFTyxDQUFDLEVBQ1JwRCxXQUFXLENBQUNiLE1BQU0sR0FBRyxDQUFDLElBQ3JCZSxPQUFPLENBQUNtRCxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGlCQUMzQjVHLEtBQUEsQ0FBQThELGFBQUEsQ0FBQzNEO0lBQ0M7SUFBQTtNQUNBMEcsT0FBTyxFQUFFLElBQUksQ0FBQzFELFdBQVcsQ0FBQ3dCLElBQUksQ0FBQyxJQUFJLENBQUU7TUFDckM4QixJQUFJLGVBQUV6RyxLQUFBLENBQUE4RCxhQUFBLENBQUNwRCxjQUFjLE1BQUU7SUFBRSxHQUMxQixjQUVPLENBRVQsQ0FBQyxFQUNMNkMsV0FBVyxDQUFDYixNQUFNLEdBQUcsQ0FBQyxpQkFDckIxQyxLQUFBLENBQUE4RCxhQUFBO01BQ0VHLFNBQVMsRUFBRXJELE9BQU8sQ0FDaEJHLE1BQU0sRUFDTiwrQkFDRixDQUFFO01BQ0Y4RixPQUFPLEVBQUVBLENBQUEsS0FBTTtRQUNiLE1BQU07VUFBRXhGO1FBQU8sQ0FBQyxHQUFHLElBQUksQ0FBQytELEtBQUs7UUFDN0IsSUFBSSxDQUFDMEIsUUFBUSxDQUFDO1VBQ1p6RixNQUFNLEVBQUUsQ0FBQ0E7UUFDWCxDQUFDLENBQUM7TUFDSjtJQUFFLEdBRUQsSUFBSSxDQUFDK0QsS0FBSyxDQUFDL0QsTUFBTSxHQUFHLElBQUksR0FBRyxJQUFJLEVBQy9CLElBQUksQ0FBQytELEtBQUssQ0FBQy9ELE1BQU0sZ0JBQUdyQixLQUFBLENBQUE4RCxhQUFBLENBQUNyRCxVQUFVLE1BQUUsQ0FBQyxnQkFBR1QsS0FBQSxDQUFBOEQsYUFBQSxDQUFDdEQsWUFBWSxNQUFFLENBQ3BELENBRUYsQ0FDRixDQUNELENBQ0gsQ0FDRixDQUNGLENBQUM7RUFFVjtBQUNGO0FBQ0EsZUFBZVEsWUFBWSJ9
@@ -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","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","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}\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 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 <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
+ {"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":"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"}
@@ -13,6 +13,11 @@
13
13
  cursor: pointer;
14
14
  }
15
15
  }
16
+ :global{
17
+ .ant-form-item {
18
+ width: 100%;
19
+ }
20
+ }
16
21
  }
17
22
  .header-padding {
18
23
  // padding-right: 24px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "4.5.9",
3
+ "version": "4.5.10",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {