nsc-react-component 4.2.1 → 4.2.3
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.
- package/lib/base/chart/index.js +3 -2
- package/lib/base/chart/index.js.map +1 -1
- package/lib/page/BasePage/index.js +12 -7
- package/lib/page/BasePage/index.js.map +1 -1
- package/lib/page/FormPage/index.d.ts +4 -0
- package/lib/page/FormPage/index.js +50 -23
- package/lib/page/FormPage/index.js.map +1 -1
- package/lib/page/FormPage/index.module.less +2 -0
- package/lib/page/SettingForm/index.js +62 -46
- package/lib/page/SettingForm/index.js.map +1 -1
- package/lib/page/SettingTable/index.js +23 -21
- package/lib/page/SettingTable/index.js.map +1 -1
- package/package.json +1 -1
package/lib/base/chart/index.js
CHANGED
|
@@ -132,7 +132,7 @@ class NscChart extends PureComponent {
|
|
|
132
132
|
result = dataMap[this.replace(data)];
|
|
133
133
|
} else if (isArray(data)) {
|
|
134
134
|
data.map(item => {
|
|
135
|
-
let v = item.value;
|
|
135
|
+
let v = (item === null || item === void 0 ? void 0 : item.value) || null;
|
|
136
136
|
if (v && this.isReplace(v)) {
|
|
137
137
|
item.value = this.dataConversion(v, datas, dataMap);
|
|
138
138
|
}
|
|
@@ -204,6 +204,7 @@ class NscChart extends PureComponent {
|
|
|
204
204
|
} else if (isObject(newDatas)) {
|
|
205
205
|
dataMap = newDatas;
|
|
206
206
|
}
|
|
207
|
+
console.log('newDatas---', newDatas);
|
|
207
208
|
newOption.xAxis = this.objectConversion(newOption.xAxis, newDatas, dataMap);
|
|
208
209
|
newOption.yAxis = this.objectConversion(newOption.yAxis, newDatas, dataMap);
|
|
209
210
|
newOption.series = this.objectConversion(newOption.series, newDatas, dataMap);
|
|
@@ -243,4 +244,4 @@ class NscChart extends PureComponent {
|
|
|
243
244
|
}
|
|
244
245
|
}
|
|
245
246
|
export default NscChart;
|
|
246
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJlY2hhcnRzIiwiU3RvcmUiLCJ1dGlscyIsInB4MnZ3IiwiaXNBcnJheSIsImlzT2JqZWN0IiwiTnNjQ2hhcnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImRhdGEiLCJzdG9yZSIsImNoaWxkcmVuIiwib3B0aW9uIiwib3B0aW9ucyIsImF1dG9Mb2FkIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInN0b3JlcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJpc0ZpcnN0IiwiaW5pdCIsImRhdGFDaGFuZ2VkIiwiY29tcG9uZW50RGlkTW91bnQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJzbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZVNldENoYXJ0IiwiaXNTdHJpbmciLCJ2IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2hhcnRSZXNpemUiLCJiaW5kIiwiaXNSZXBsYWNlIiwidGVzdCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJkYXRhQ29udmVyc2lvbiIsImRhdGFzIiwiZGF0YU1hcCIsInJlc3VsdCIsIm1hcCIsIml0ZW0iLCJ2YWx1ZSIsInRlbXBPYmoiLCJrZXkiLCJwdXNoIiwib2JqZWN0Q29udmVyc2lvbiIsIm9iaiIsIl9teUNoYXJ0JGdldFpyIiwiX215Q2hhcnQkZ2V0WnIyIiwiT25DbGljayIsIk9uWnJDbGljayIsInN0YXRlIiwibmV3RGF0YXMiLCJuZXdPcHRpb24iLCJ4QXhpcyIsInlBeGlzIiwic2VyaWVzIiwibXlDaGFydCIsImNoYXJ0UmVmIiwiY3VycmVudCIsImNsZWFyIiwib2ZmIiwiZ2V0WnIiLCJzZXRPcHRpb24iLCJvbiIsInBhcmFtcyIsInJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW5kZXIiLCJ3aWR0aCIsImhlaWdodCIsImJveFN0eWxlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwicmVmIiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL2NoYXJ0L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgKiBhcyBlY2hhcnRzIGZyb20gXCJlY2hhcnRzXCI7XHJcbmltcG9ydCB7IEVDaGFydHMgfSBmcm9tIFwiZWNoYXJ0cy9saWIvZWNoYXJ0c1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHsgcHgydncgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNPYmplY3QgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW50ZXJmYWNlIENoYXJ0UHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBvcHRpb246IGFueTtcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PiB8IE9iamVjdDtcclxuICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nOyAvL+WbvuihqOWuveW6plxyXG4gIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nOyAvL+WbvuihqOmVv+W6plxyXG4gIGF1dG9Mb2FkPzogYm9vbGVhbjsgLy/mlbDmja7mlLnlj5jvvIzoh6rliqjliLfmlrDlm77ooags6buY6K6kdHJ1ZVxyXG4gIE9uQ2xpY2s/OiAocGFyYW1zOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7IC8v5Zu+6KGo54K55Ye75LqL5Lu2XHJcbiAgT25ackNsaWNrPzogKHBhcmFtczogYW55LCBlPzogYW55KSA9PiB2b2lkOyAvL+WbvuihqOeCueWHu+S6i+S7tlxyXG4gIFtwcm9OYW1lczogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vL2RhdGHnpLrkvotcclxuLyoqXHJcbiDmlbDnu4TvvJpcclxuIGRhdGE9W3tuYW1lOicx5pyIJyx2YWx1ZToyMH0se25hbWU6JzLmnIgnLHZhbHVlOjEwfSx7bmFtZTonM+aciCcsdmFsdWU6MjV9XVxyXG4g5a+56LGhXHJcbiBkYXRhPXtuYW1lOlsnMeaciCcsJzLmnIgnLCcz5pyIJ10sdmFsdWU6WzIwLDMwLDQwXX1cclxuICovXHJcbmNsYXNzIE5zY0NoYXJ0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxDaGFydFByb3BzPiB7XHJcbiAgY2hhcnRSZWYgPSBSZWFjdC5jcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcbiAgbXlDaGFydDogRUNoYXJ0cyB8IG51bGwgPSBudWxsO1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IG51bGwsXHJcbiAgfTtcclxuICBpc0ZpcnN0ID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9uOiBvcHRpb25zLFxyXG4gICAgICBhdXRvTG9hZCA9IHRydWUsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7IHVybCwgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sIC4uLnN0b3JlcyB9ID0gc3RvcmU7XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGlmICghKGRhdGEgfHwgdXJsIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBZGF0YeOAgW9wdGlvbuS4jeiDvemDveS4uuepuu+8gVwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgICBsZXQgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChfdGhpcy5pc0ZpcnN0ICYmIGF1dG9Mb2FkKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pbml0KCk7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pc0ZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKHVybCAmJiBkYXRhID09IG51bGwpIHtcclxuICAgICAgICBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICBhdXRvTG9hZDogdHJ1ZSxcclxuICAgICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgYXV0b0xvYWQgPSB0cnVlLCBzdG9yZSwgb3B0aW9uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKGRhdGEgJiYgYXV0b0xvYWQpIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9IGVsc2UgaWYgKCFkYXRhICYmICFzdG9yZT8udXJsICYmIG9wdGlvbikge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShcclxuICAgIHByZXZQcm9wczogUmVhZG9ubHk8Q2hhcnRQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PHt9PixcclxuICAgIHNuYXBzaG90PzogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGF1dG9Mb2FkID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLmRhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmRhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLm9wdGlvbikgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMub3B0aW9uKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVTZXRDaGFydCgpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBpc1N0cmluZyh2KSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCI7XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGlzUmVwbGFjZSh2KSB7XHJcbiAgICByZXR1cm4gL157Lip9JC9naS50ZXN0KHYpO1xyXG4gIH1cclxuICByZXBsYWNlKHYpIHtcclxuICAgIHJldHVybiB2LnN1YnN0cmluZygxLCB2Lmxlbmd0aCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgZGF0YUNvbnZlcnNpb24oZGF0YSwgZGF0YXMsIGRhdGFNYXApIHtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBpZiAodGhpcy5pc1N0cmluZyhkYXRhKSAmJiB0aGlzLmlzUmVwbGFjZShkYXRhKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IGRhdGFNYXBbdGhpcy5yZXBsYWNlKGRhdGEpXTtcclxuICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgZGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGxldCB2ID0gaXRlbS52YWx1ZTtcclxuICAgICAgICAgIGlmICh2ICYmIHRoaXMuaXNSZXBsYWNlKHYpKSB7XHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB0aGlzLmRhdGFDb252ZXJzaW9uKHYsIGRhdGFzLCBkYXRhTWFwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXN1bHQgPSBkYXRhO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGRhdGEpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gW107XHJcbiAgICAgICAgaWYgKGlzQXJyYXkoZGF0YXMpKSB7XHJcbiAgICAgICAgICBkYXRhcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgdmFyIHRlbXBPYmogPSB7fTtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIGl0ZW0pIHtcclxuICAgICAgICAgICAgICBsZXQgdiA9IGl0ZW1ba2V5XTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlcGxhY2UodikpIHtcclxuICAgICAgICAgICAgICAgIHRlbXBPYmpba2V5XSA9IGl0ZW1bdGhpcy5yZXBsYWNlKHYpXTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGVtcE9ialtrZXldID0gdjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzdWx0LnB1c2godGVtcE9iaik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gIG9iamVjdENvbnZlcnNpb24ob2JqLCBkYXRhcywgZGF0YU1hcCkge1xyXG4gICAgbGV0IHRlbXBPYmo6IGFueTtcclxuICAgIGlmIChvYmopIHtcclxuICAgICAgaWYgKGlzQXJyYXkob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBbLi4ub2JqXTtcclxuICAgICAgICB0ZW1wT2JqLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uZGF0YSkge1xyXG4gICAgICAgICAgICBpdGVtLmRhdGEgPSB0aGlzLmRhdGFDb252ZXJzaW9uKGl0ZW0uZGF0YSwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTdHJpbmcob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBvYmo7XHJcbiAgICAgICAgdGVtcE9iai5kYXRhID0gdGhpcy5kYXRhQ29udmVyc2lvbih0ZW1wT2JqLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSB7IC4uLm9iaiB9O1xyXG4gICAgICAgIHRlbXBPYmouZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odGVtcE9iai5kYXRhLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0ZW1wT2JqO1xyXG4gIH1cclxuICBpbml0KCkge1xyXG4gICAgY29uc3QgeyBvcHRpb24sIGRhdGEsIE9uQ2xpY2ssIE9uWnJDbGljayB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBkYXRhTWFwOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IG5ld0RhdGFzID0gZGF0YSB8fCBkYXRhU291cmNlO1xyXG4gICAgbGV0IG5ld09wdGlvbjogYW55ID0geyAuLi5vcHRpb24gfTtcclxuICAgIGlmIChpc0FycmF5KG5ld0RhdGFzKSkge1xyXG4gICAgICBuZXdEYXRhcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gaXRlbSkge1xyXG4gICAgICAgICAgaWYgKGRhdGFNYXBba2V5XSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGRhdGFNYXBba2V5XSA9IFtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGF0YU1hcFtrZXldLnB1c2goaXRlbVtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChpc09iamVjdChuZXdEYXRhcykpIHtcclxuICAgICAgZGF0YU1hcCA9IG5ld0RhdGFzO1xyXG4gICAgfVxyXG4gICAgbmV3T3B0aW9uLnhBeGlzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKG5ld09wdGlvbi54QXhpcywgbmV3RGF0YXMsIGRhdGFNYXApO1xyXG4gICAgbmV3T3B0aW9uLnlBeGlzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKG5ld09wdGlvbi55QXhpcywgbmV3RGF0YXMsIGRhdGFNYXApO1xyXG4gICAgbmV3T3B0aW9uLnNlcmllcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihcclxuICAgICAgbmV3T3B0aW9uLnNlcmllcyxcclxuICAgICAgbmV3RGF0YXMsXHJcbiAgICAgIGRhdGFNYXBcclxuICAgICk7XHJcbiAgICBjb25zdCBteUNoYXJ0ID0gKHRoaXMubXlDaGFydCA9IGVjaGFydHMuaW5pdChcclxuICAgICAgdGhpcy5jaGFydFJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50XHJcbiAgICApKTsgLy/liJ3lp4vljJZlY2hhcnRz77yM6YCa6L+HcmVm5bGe5oCn6I635Y+WZG9tXHJcbiAgICBteUNoYXJ0LmNsZWFyKCk7XHJcbiAgICBteUNoYXJ0Lm9mZihcImNsaWNrXCIpO1xyXG4gICAgbXlDaGFydD8uZ2V0WnIoKT8ub2ZmKFwiY2xpY2tcIik7XHJcbiAgICBteUNoYXJ0LnNldE9wdGlvbihuZXdPcHRpb24pO1xyXG4gICAgbXlDaGFydC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcclxuICAgICAgT25DbGljayAmJiBPbkNsaWNrKHBhcmFtcywgbXlDaGFydCk7XHJcbiAgICB9KTtcclxuICAgIG15Q2hhcnQ/LmdldFpyKCk/Lm9uKFwiY2xpY2tcIiwgKHBhcmFtcykgPT4ge1xyXG4gICAgICBPblpyQ2xpY2sgJiYgT25ackNsaWNrKHBhcmFtcywgbXlDaGFydCk7XHJcbiAgICB9KTtcclxuICAgIG15Q2hhcnQucmVzaXplKCk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLmhhbmRsZUNoYXJ0UmVzaXplLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hhcnRSZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5teUNoYXJ0KSB7XHJcbiAgICAgIHRoaXMubXlDaGFydC5yZXNpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGJveFN0eWxlID0ge1xyXG4gICAgICB3aWR0aDogdHlwZW9mIHdpZHRoID09IFwibnVtYmVyXCIgPyBweDJ2dyh3aWR0aCkgOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0eXBlb2YgaGVpZ2h0ID09IFwibnVtYmVyXCIgPyBweDJ2dyhoZWlnaHQpIDogaGVpZ2h0LFxyXG4gICAgfTtcclxuICAgIHJldHVybiA8ZGl2IHN0eWxlPXtib3hTdHlsZX0gcmVmPXt0aGlzLmNoYXJ0UmVmfSBpZD1cIm5zY19jaGFydHNcIj48L2Rpdj47XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOc2NDaGFydDtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFB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
|
|
247
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJlY2hhcnRzIiwiU3RvcmUiLCJ1dGlscyIsInB4MnZ3IiwiaXNBcnJheSIsImlzT2JqZWN0IiwiTnNjQ2hhcnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImRhdGEiLCJzdG9yZSIsImNoaWxkcmVuIiwib3B0aW9uIiwib3B0aW9ucyIsImF1dG9Mb2FkIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInN0b3JlcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJpc0ZpcnN0IiwiaW5pdCIsImRhdGFDaGFuZ2VkIiwiY29tcG9uZW50RGlkTW91bnQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJzbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZVNldENoYXJ0IiwiaXNTdHJpbmciLCJ2IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2hhcnRSZXNpemUiLCJiaW5kIiwiaXNSZXBsYWNlIiwidGVzdCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJkYXRhQ29udmVyc2lvbiIsImRhdGFzIiwiZGF0YU1hcCIsInJlc3VsdCIsIm1hcCIsIml0ZW0iLCJ2YWx1ZSIsInRlbXBPYmoiLCJrZXkiLCJwdXNoIiwib2JqZWN0Q29udmVyc2lvbiIsIm9iaiIsIl9teUNoYXJ0JGdldFpyIiwiX215Q2hhcnQkZ2V0WnIyIiwiT25DbGljayIsIk9uWnJDbGljayIsInN0YXRlIiwibmV3RGF0YXMiLCJuZXdPcHRpb24iLCJjb25zb2xlIiwibG9nIiwieEF4aXMiLCJ5QXhpcyIsInNlcmllcyIsIm15Q2hhcnQiLCJjaGFydFJlZiIsImN1cnJlbnQiLCJjbGVhciIsIm9mZiIsImdldFpyIiwic2V0T3B0aW9uIiwib24iLCJwYXJhbXMiLCJyZXNpemUiLCJhZGRFdmVudExpc3RlbmVyIiwicmVuZGVyIiwid2lkdGgiLCJoZWlnaHQiLCJib3hTdHlsZSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInJlZiIsImlkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9jaGFydC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0ICogYXMgZWNoYXJ0cyBmcm9tIFwiZWNoYXJ0c1wiO1xyXG5pbXBvcnQgeyBFQ2hhcnRzIH0gZnJvbSBcImVjaGFydHMvbGliL2VjaGFydHNcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCB7IHB4MnZ3IH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzT2JqZWN0IH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmludGVyZmFjZSBDaGFydFByb3BzIHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgb3B0aW9uOiBhbnk7XHJcbiAgZGF0YT86IEFycmF5PE9iamVjdD4gfCBPYmplY3Q7XHJcbiAgd2lkdGg6IG51bWJlciB8IHN0cmluZzsgLy/lm77ooajlrr3luqZcclxuICBoZWlnaHQ6IG51bWJlciB8IHN0cmluZzsgLy/lm77ooajplb/luqZcclxuICBhdXRvTG9hZD86IGJvb2xlYW47IC8v5pWw5o2u5pS55Y+Y77yM6Ieq5Yqo5Yi35paw5Zu+6KGoLOm7mOiupHRydWVcclxuICBPbkNsaWNrPzogKHBhcmFtczogYW55LCBlPzogYW55KSA9PiB2b2lkOyAvL+WbvuihqOeCueWHu+S6i+S7tlxyXG4gIE9uWnJDbGljaz86IChwYXJhbXM6IGFueSwgZT86IGFueSkgPT4gdm9pZDsgLy/lm77ooajngrnlh7vkuovku7ZcclxuICBbcHJvTmFtZXM6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLy9kYXRh56S65L6LXHJcbi8qKlxyXG4g5pWw57uE77yaXHJcbiBkYXRhPVt7bmFtZTonMeaciCcsdmFsdWU6MjB9LHtuYW1lOicy5pyIJyx2YWx1ZToxMH0se25hbWU6JzPmnIgnLHZhbHVlOjI1fV1cclxuIOWvueixoVxyXG4gZGF0YT17bmFtZTpbJzHmnIgnLCcy5pyIJywnM+aciCddLHZhbHVlOlsyMCwzMCw0MF19XHJcbiAqL1xyXG5jbGFzcyBOc2NDaGFydCBleHRlbmRzIFB1cmVDb21wb25lbnQ8Q2hhcnRQcm9wcz4ge1xyXG4gIGNoYXJ0UmVmID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xyXG4gIG15Q2hhcnQ6IEVDaGFydHMgfCBudWxsID0gbnVsbDtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBudWxsLFxyXG4gIH07XHJcbiAgaXNGaXJzdCA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGF0YSxcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIG9wdGlvbjogb3B0aW9ucyxcclxuICAgICAgYXV0b0xvYWQgPSB0cnVlLFxyXG4gICAgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgeyB1cmwsIGxpc3RlbmVyczogbGlzdGVuZXJzUG9wcyA9IHt9LCAuLi5zdG9yZXMgfSA9IHN0b3JlO1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgWRhdGHjgIFvcHRpb27kuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoX3RoaXMuaXNGaXJzdCAmJiBhdXRvTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaXNGaXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYXV0b0xvYWQpIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLmluaXQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh1cmwgJiYgZGF0YSA9PSBudWxsKSB7XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGF1dG9Mb2FkID0gdHJ1ZSwgc3RvcmUsIG9wdGlvbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChkYXRhICYmIGF1dG9Mb2FkKSB7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSBlbHNlIGlmICghZGF0YSAmJiAhc3RvcmU/LnVybCAmJiBvcHRpb24pIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoXHJcbiAgICBwcmV2UHJvcHM6IFJlYWRvbmx5PENoYXJ0UHJvcHM+LFxyXG4gICAgcHJldlN0YXRlOiBSZWFkb25seTx7fT4sXHJcbiAgICBzbmFwc2hvdD86IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBhdXRvTG9hZCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoYXV0b0xvYWQpIHtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHByZXZQcm9wcy5kYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5kYXRhKSkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHByZXZQcm9wcy5vcHRpb24pICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLm9wdGlvbilcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlU2V0Q2hhcnQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcbiAgaXNTdHJpbmcodikge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiO1xyXG4gIH1cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuaGFuZGxlQ2hhcnRSZXNpemUuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBpc1JlcGxhY2Uodikge1xyXG4gICAgcmV0dXJuIC9eey4qfSQvZ2kudGVzdCh2KTtcclxuICB9XHJcbiAgcmVwbGFjZSh2KSB7XHJcbiAgICByZXR1cm4gdi5zdWJzdHJpbmcoMSwgdi5sZW5ndGggLSAxKTtcclxuICB9XHJcblxyXG4gIGRhdGFDb252ZXJzaW9uKGRhdGEsIGRhdGFzLCBkYXRhTWFwKSB7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgaWYgKHRoaXMuaXNTdHJpbmcoZGF0YSkgJiYgdGhpcy5pc1JlcGxhY2UoZGF0YSkpIHtcclxuICAgICAgICByZXN1bHQgPSBkYXRhTWFwW3RoaXMucmVwbGFjZShkYXRhKV07XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdiA9IGl0ZW0/LnZhbHVlIHx8IG51bGw7XHJcbiAgICAgICAgICBpZiAodiAmJiB0aGlzLmlzUmVwbGFjZSh2KSkge1xyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gdGhpcy5kYXRhQ29udmVyc2lvbih2LCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmVzdWx0ID0gZGF0YTtcclxuICAgICAgfSBlbHNlIGlmIChpc09iamVjdChkYXRhKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IFtdO1xyXG4gICAgICAgIGlmIChpc0FycmF5KGRhdGFzKSkge1xyXG4gICAgICAgICAgZGF0YXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciB0ZW1wT2JqID0ge307XHJcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBpdGVtKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHYgPSBpdGVtW2tleV07XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaXNSZXBsYWNlKHYpKSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wT2JqW2tleV0gPSBpdGVtW3RoaXMucmVwbGFjZSh2KV07XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRlbXBPYmpba2V5XSA9IHY7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRlbXBPYmopO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuICBvYmplY3RDb252ZXJzaW9uKG9iaiwgZGF0YXMsIGRhdGFNYXApIHtcclxuICAgIGxldCB0ZW1wT2JqOiBhbnk7XHJcbiAgICBpZiAob2JqKSB7XHJcbiAgICAgIGlmIChpc0FycmF5KG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0gWy4uLm9ial07XHJcbiAgICAgICAgdGVtcE9iai5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGlmIChpdGVtLmRhdGEpIHtcclxuICAgICAgICAgICAgaXRlbS5kYXRhID0gdGhpcy5kYXRhQ29udmVyc2lvbihpdGVtLmRhdGEsIGRhdGFzLCBkYXRhTWFwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU3RyaW5nKG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0gb2JqO1xyXG4gICAgICAgIHRlbXBPYmouZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odGVtcE9iaiwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0geyAuLi5vYmogfTtcclxuICAgICAgICB0ZW1wT2JqLmRhdGEgPSB0aGlzLmRhdGFDb252ZXJzaW9uKHRlbXBPYmouZGF0YSwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGVtcE9iajtcclxuICB9XHJcbiAgaW5pdCgpIHtcclxuICAgIGNvbnN0IHsgb3B0aW9uLCBkYXRhLCBPbkNsaWNrLCBPblpyQ2xpY2sgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgZGF0YU1hcDogYW55ID0ge307XHJcbiAgICBjb25zdCBuZXdEYXRhcyA9IGRhdGEgfHwgZGF0YVNvdXJjZTtcclxuICAgXHJcbiAgICBsZXQgbmV3T3B0aW9uOiBhbnkgPSB7IC4uLm9wdGlvbiB9O1xyXG4gICAgaWYgKGlzQXJyYXkobmV3RGF0YXMpKSB7XHJcbiAgICAgIG5ld0RhdGFzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBpdGVtKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YU1hcFtrZXldID09IG51bGwpIHtcclxuICAgICAgICAgICAgZGF0YU1hcFtrZXldID0gW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhTWFwW2tleV0ucHVzaChpdGVtW2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG5ld0RhdGFzKSkge1xyXG4gICAgICBkYXRhTWFwID0gbmV3RGF0YXM7XHJcbiAgICB9XHJcbiAgICAgY29uc29sZS5sb2coJ25ld0RhdGFzLS0tJyxuZXdEYXRhcylcclxuICAgIG5ld09wdGlvbi54QXhpcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihuZXdPcHRpb24ueEF4aXMsIG5ld0RhdGFzLCBkYXRhTWFwKTtcclxuICAgIG5ld09wdGlvbi55QXhpcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihuZXdPcHRpb24ueUF4aXMsIG5ld0RhdGFzLCBkYXRhTWFwKTtcclxuICAgIG5ld09wdGlvbi5zZXJpZXMgPSB0aGlzLm9iamVjdENvbnZlcnNpb24oXHJcbiAgICAgIG5ld09wdGlvbi5zZXJpZXMsXHJcbiAgICAgIG5ld0RhdGFzLFxyXG4gICAgICBkYXRhTWFwXHJcbiAgICApO1xyXG4gICAgY29uc3QgbXlDaGFydCA9ICh0aGlzLm15Q2hhcnQgPSBlY2hhcnRzLmluaXQoXHJcbiAgICAgIHRoaXMuY2hhcnRSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudFxyXG4gICAgKSk7IC8v5Yid5aeL5YyWZWNoYXJ0c++8jOmAmui/h3JlZuWxnuaAp+iOt+WPlmRvbVxyXG4gICAgbXlDaGFydC5jbGVhcigpO1xyXG4gICAgbXlDaGFydC5vZmYoXCJjbGlja1wiKTtcclxuICAgIG15Q2hhcnQ/LmdldFpyKCk/Lm9mZihcImNsaWNrXCIpO1xyXG4gICAgbXlDaGFydC5zZXRPcHRpb24obmV3T3B0aW9uKTtcclxuICAgIG15Q2hhcnQub24oXCJjbGlja1wiLCBmdW5jdGlvbiAocGFyYW1zKSB7XHJcbiAgICAgIE9uQ2xpY2sgJiYgT25DbGljayhwYXJhbXMsIG15Q2hhcnQpO1xyXG4gICAgfSk7XHJcbiAgICBteUNoYXJ0Py5nZXRacigpPy5vbihcImNsaWNrXCIsIChwYXJhbXMpID0+IHtcclxuICAgICAgT25ackNsaWNrICYmIE9uWnJDbGljayhwYXJhbXMsIG15Q2hhcnQpO1xyXG4gICAgfSk7XHJcbiAgICBteUNoYXJ0LnJlc2l6ZSgpO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNoYXJ0UmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMubXlDaGFydCkge1xyXG4gICAgICB0aGlzLm15Q2hhcnQucmVzaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBib3hTdHlsZSA9IHtcclxuICAgICAgd2lkdGg6IHR5cGVvZiB3aWR0aCA9PSBcIm51bWJlclwiID8gcHgydncod2lkdGgpIDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogdHlwZW9mIGhlaWdodCA9PSBcIm51bWJlclwiID8gcHgydncoaGVpZ2h0KSA6IGhlaWdodCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gPGRpdiBzdHlsZT17Ym94U3R5bGV9IHJlZj17dGhpcy5jaGFydFJlZn0gaWQ9XCJuc2NfY2hhcnRzXCI+PC9kaXY+O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTnNjQ2hhcnQ7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBUSxPQUFPO0FBQzVDLE9BQU8sS0FBS0MsT0FBTyxNQUFNLFNBQVM7QUFFbEMsT0FBT0MsS0FBSyxNQUFzQixhQUFhO0FBQy9DLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsU0FBU0MsS0FBSyxRQUFRLGFBQWE7QUFDbkMsU0FBU0MsT0FBTyxFQUFFQyxRQUFRLFFBQVEsbUJBQW1CO0FBYXJEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsUUFBUSxTQUFTUCxhQUFhLENBQWE7RUFRL0NRLFdBQVdBLENBQUNDLEtBQUssRUFBRTtJQUNqQixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUFDQyxlQUFBLGdDQVJKWCxLQUFLLENBQUNZLFNBQVMsQ0FBaUIsQ0FBQztJQUFBRCxlQUFBLGtCQUNsQixJQUFJO0lBQUFBLGVBQUEsZ0JBQ3RCLENBQUMsQ0FBQztJQUFBQSxlQUFBLGdCQUNGO01BQ05FLFVBQVUsRUFBRTtJQUNkLENBQUM7SUFBQUYsZUFBQSxrQkFDUyxJQUFJO0lBR1osTUFBTTtNQUNKRyxJQUFJO01BQ0pDLEtBQUssR0FBRyxDQUFDLENBQUM7TUFDVkMsUUFBUTtNQUNSQyxNQUFNLEVBQUVDLE9BQU87TUFDZkMsUUFBUSxHQUFHO0lBQ2IsQ0FBQyxHQUFHVCxLQUFLO0lBQ1QsTUFBTTtRQUFFVSxHQUFHO1FBQUVDLFNBQVMsRUFBRUMsYUFBYSxHQUFHLENBQUM7TUFBYSxDQUFDLEdBQUdQLEtBQUs7TUFBaEJRLE1BQU0sR0FBQUMsd0JBQUEsQ0FBS1QsS0FBSyxFQUFBVSxTQUFBO0lBQy9ELElBQUksQ0FBQ1QsUUFBUSxFQUFFO01BQ2IsSUFBSSxFQUFFRixJQUFJLElBQUlNLEdBQUcsSUFBSUYsT0FBTyxDQUFDLEVBQUU7UUFDN0IsTUFBTSxJQUFJUSxLQUFLLENBQUMsdUJBQXVCLENBQUM7TUFDMUM7TUFDQSxJQUFJQyxLQUFLLEdBQUcsSUFBSTtNQUNoQixJQUFJQyxVQUFVLEdBQUFDLGFBQUE7UUFDWkMsS0FBSyxFQUFFLE9BQU87UUFDZEMsU0FBUyxFQUFFLElBQUk7UUFDZlYsU0FBUyxFQUFFO1VBQ1RXLFlBQVksRUFBRSxTQUFBQSxDQUFVakIsS0FBSyxFQUFFRyxPQUFPLEVBQUU7WUFDdENkLEtBQUssQ0FBQzZCLFFBQVEsQ0FBQ1gsYUFBYSxDQUFDVSxZQUFZLEVBQUVMLEtBQUssRUFBRSxDQUFDWixLQUFLLEVBQUVHLE9BQU8sQ0FBQyxDQUFDO1VBQ3JFLENBQUM7VUFDRGdCLElBQUksRUFBRSxTQUFBQSxDQUFVcEIsSUFBSSxFQUFFcUIsU0FBUyxFQUFFcEIsS0FBSyxFQUFFO1lBQ3RDWSxLQUFLLENBQUNTLFFBQVEsQ0FBQztjQUFFdkIsVUFBVSxFQUFFc0I7WUFBVSxDQUFDLEVBQUUsTUFBTTtjQUM5QyxJQUFJUixLQUFLLENBQUNVLE9BQU8sSUFBSWxCLFFBQVEsRUFBRTtnQkFDN0JRLEtBQUssQ0FBQ1csSUFBSSxDQUFDLENBQUM7Z0JBQ1pYLEtBQUssQ0FBQ1UsT0FBTyxHQUFHLEtBQUs7Y0FDdkI7WUFDRixDQUFDLENBQUM7WUFDRmpDLEtBQUssQ0FBQzZCLFFBQVEsQ0FBQ1gsYUFBYSxDQUFDWSxJQUFJLEVBQUVQLEtBQUssRUFBRSxDQUFDYixJQUFJLEVBQUVxQixTQUFTLEVBQUVwQixLQUFLLENBQUMsQ0FBQztVQUNyRSxDQUFDO1VBQ0R3QixXQUFXLEVBQUUsU0FBQUEsQ0FBVXpCLElBQUksRUFBRXFCLFNBQVMsRUFBRXBCLEtBQUssRUFBRTtZQUM3Q1ksS0FBSyxDQUFDUyxRQUFRLENBQUM7Y0FBRXZCLFVBQVUsRUFBRXNCO1lBQVUsQ0FBQyxFQUFFLE1BQU07Y0FDOUMsSUFBSWhCLFFBQVEsRUFBRTtnQkFDWlEsS0FBSyxDQUFDVyxJQUFJLENBQUMsQ0FBQztjQUNkO1lBQ0YsQ0FBQyxDQUFDO1lBQ0ZsQyxLQUFLLENBQUM2QixRQUFRLENBQUNYLGFBQWEsQ0FBQ2lCLFdBQVcsRUFBRVosS0FBSyxFQUFFLENBQy9DYixJQUFJLEVBQ0pxQixTQUFTLEVBQ1RwQixLQUFLLENBQ04sQ0FBQztVQUNKO1FBQ0Y7TUFBQyxHQUNFUSxNQUFNLENBQ1Y7TUFDRCxJQUFJSCxHQUFHLElBQUlOLElBQUksSUFBSSxJQUFJLEVBQUU7UUFDdkJjLFVBQVUsR0FBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQ0w7VUFDRFYsUUFBUSxFQUFFLElBQUk7VUFDZEMsR0FBRyxFQUFFQTtRQUNQLENBQUMsR0FDRVEsVUFBVSxDQUNkO01BQ0g7TUFDQSxJQUFJLENBQUNiLEtBQUssR0FBRyxJQUFJWixLQUFLLENBQUN5QixVQUFVLENBQUM7SUFDcEM7RUFDRjtFQUVBWSxpQkFBaUJBLENBQUEsRUFBRztJQUNsQixNQUFNO01BQUUxQixJQUFJO01BQUVLLFFBQVEsR0FBRyxJQUFJO01BQUVKLEtBQUs7TUFBRUU7SUFBTyxDQUFDLEdBQUcsSUFBSSxDQUFDUCxLQUFLO0lBQzNELElBQUlJLElBQUksSUFBSUssUUFBUSxFQUFFO01BQ3BCLElBQUksQ0FBQ21CLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQyxNQUFNLElBQUksQ0FBQ3hCLElBQUksSUFBSSxFQUFDQyxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFSyxHQUFHLEtBQUlILE1BQU0sRUFBRTtNQUN6QyxJQUFJLENBQUNxQixJQUFJLENBQUMsQ0FBQztJQUNiO0VBQ0Y7RUFFQUcsa0JBQWtCQSxDQUNoQkMsU0FBK0IsRUFDL0JDLFNBQXVCLEVBQ3ZCQyxRQUFjLEVBQ1I7SUFDTixNQUFNO01BQUV6QixRQUFRLEdBQUc7SUFBSyxDQUFDLEdBQUcsSUFBSSxDQUFDVCxLQUFLO0lBQ3RDLElBQUlTLFFBQVEsRUFBRTtNQUNaLElBQUkwQixJQUFJLENBQUNDLFNBQVMsQ0FBQ0osU0FBUyxDQUFDNUIsSUFBSSxDQUFDLEtBQUsrQixJQUFJLENBQUNDLFNBQVMsQ0FBQyxJQUFJLENBQUNwQyxLQUFLLENBQUNJLElBQUksQ0FBQyxFQUFFO1FBQ3RFLElBQUksQ0FBQ3dCLElBQUksQ0FBQyxDQUFDO01BQ2IsQ0FBQyxNQUFNLElBQ0xPLElBQUksQ0FBQ0MsU0FBUyxDQUFDSixTQUFTLENBQUN6QixNQUFNLENBQUMsS0FBSzRCLElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQ3BDLEtBQUssQ0FBQ08sTUFBTSxDQUFDLEVBQ3RFO1FBQ0EsSUFBSSxDQUFDcUIsSUFBSSxDQUFDLENBQUM7TUFDYjtJQUNGO0VBQ0Y7RUFFQVMsVUFBVUEsQ0FBQSxFQUFHO0lBQ1gsSUFBSSxDQUFDVCxJQUFJLENBQUMsQ0FBQztFQUNiO0VBQ0FVLFFBQVFBLENBQUNDLENBQUMsRUFBRTtJQUNWLE9BQU8sT0FBT0EsQ0FBQyxLQUFLLFFBQVE7RUFDOUI7RUFDQUMsb0JBQW9CQSxDQUFBLEVBQUc7SUFDckJDLE1BQU0sQ0FBQ0MsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQ0MsaUJBQWlCLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztFQUN6RTtFQUVBQyxTQUFTQSxDQUFDTixDQUFDLEVBQUU7SUFDWCxPQUFPLFVBQVUsQ0FBQ08sSUFBSSxDQUFDUCxDQUFDLENBQUM7RUFDM0I7RUFDQVEsT0FBT0EsQ0FBQ1IsQ0FBQyxFQUFFO0lBQ1QsT0FBT0EsQ0FBQyxDQUFDUyxTQUFTLENBQUMsQ0FBQyxFQUFFVCxDQUFDLENBQUNVLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDckM7RUFFQUMsY0FBY0EsQ0FBQzlDLElBQUksRUFBRStDLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ25DLElBQUlDLE1BQU07SUFDVixJQUFJakQsSUFBSSxFQUFFO01BQ1IsSUFBSSxJQUFJLENBQUNrQyxRQUFRLENBQUNsQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUN5QyxTQUFTLENBQUN6QyxJQUFJLENBQUMsRUFBRTtRQUMvQ2lELE1BQU0sR0FBR0QsT0FBTyxDQUFDLElBQUksQ0FBQ0wsT0FBTyxDQUFDM0MsSUFBSSxDQUFDLENBQUM7TUFDdEMsQ0FBQyxNQUFNLElBQUlSLE9BQU8sQ0FBQ1EsSUFBSSxDQUFDLEVBQUU7UUFDeEJBLElBQUksQ0FBQ2tELEdBQUcsQ0FBRUMsSUFBSSxJQUFLO1VBQ2pCLElBQUloQixDQUFDLEdBQUcsQ0FBQWdCLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFQyxLQUFLLEtBQUksSUFBSTtVQUMzQixJQUFJakIsQ0FBQyxJQUFJLElBQUksQ0FBQ00sU0FBUyxDQUFDTixDQUFDLENBQUMsRUFBRTtZQUMxQmdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHLElBQUksQ0FBQ04sY0FBYyxDQUFDWCxDQUFDLEVBQUVZLEtBQUssRUFBRUMsT0FBTyxDQUFDO1VBQ3JEO1FBQ0YsQ0FBQyxDQUFDO1FBQ0ZDLE1BQU0sR0FBR2pELElBQUk7TUFDZixDQUFDLE1BQU0sSUFBSVAsUUFBUSxDQUFDTyxJQUFJLENBQUMsRUFBRTtRQUN6QmlELE1BQU0sR0FBRyxFQUFFO1FBQ1gsSUFBSXpELE9BQU8sQ0FBQ3VELEtBQUssQ0FBQyxFQUFFO1VBQ2xCQSxLQUFLLENBQUNHLEdBQUcsQ0FBRUMsSUFBSSxJQUFLO1lBQ2xCLElBQUlFLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDaEIsS0FBSyxJQUFJQyxHQUFHLElBQUlILElBQUksRUFBRTtjQUNwQixJQUFJaEIsQ0FBQyxHQUFHZ0IsSUFBSSxDQUFDRyxHQUFHLENBQUM7Y0FDakIsSUFBSSxJQUFJLENBQUNiLFNBQVMsQ0FBQ04sQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JCa0IsT0FBTyxDQUFDQyxHQUFHLENBQUMsR0FBR0gsSUFBSSxDQUFDLElBQUksQ0FBQ1IsT0FBTyxDQUFDUixDQUFDLENBQUMsQ0FBQztjQUN0QyxDQUFDLE1BQU07Z0JBQ0xrQixPQUFPLENBQUNDLEdBQUcsQ0FBQyxHQUFHbkIsQ0FBQztjQUNsQjtZQUNGO1lBQ0FjLE1BQU0sQ0FBQ00sSUFBSSxDQUFDRixPQUFPLENBQUM7VUFDdEIsQ0FBQyxDQUFDO1FBQ0o7TUFDRjtJQUNGO0lBQ0EsT0FBT0osTUFBTTtFQUNmO0VBQ0FPLGdCQUFnQkEsQ0FBQ0MsR0FBRyxFQUFFVixLQUFLLEVBQUVDLE9BQU8sRUFBRTtJQUNwQyxJQUFJSyxPQUFZO0lBQ2hCLElBQUlJLEdBQUcsRUFBRTtNQUNQLElBQUlqRSxPQUFPLENBQUNpRSxHQUFHLENBQUMsRUFBRTtRQUNoQkosT0FBTyxHQUFHLENBQUMsR0FBR0ksR0FBRyxDQUFDO1FBQ2xCSixPQUFPLENBQUNILEdBQUcsQ0FBRUMsSUFBSSxJQUFLO1VBQ3BCLElBQUlBLElBQUksQ0FBQ25ELElBQUksRUFBRTtZQUNibUQsSUFBSSxDQUFDbkQsSUFBSSxHQUFHLElBQUksQ0FBQzhDLGNBQWMsQ0FBQ0ssSUFBSSxDQUFDbkQsSUFBSSxFQUFFK0MsS0FBSyxFQUFFQyxPQUFPLENBQUM7VUFDNUQ7UUFDRixDQUFDLENBQUM7TUFDSixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUNkLFFBQVEsQ0FBQ3VCLEdBQUcsQ0FBQyxFQUFFO1FBQzdCSixPQUFPLEdBQUdJLEdBQUc7UUFDYkosT0FBTyxDQUFDckQsSUFBSSxHQUFHLElBQUksQ0FBQzhDLGNBQWMsQ0FBQ08sT0FBTyxFQUFFTixLQUFLLEVBQUVDLE9BQU8sQ0FBQztNQUM3RCxDQUFDLE1BQU0sSUFBSXZELFFBQVEsQ0FBQ2dFLEdBQUcsQ0FBQyxFQUFFO1FBQ3hCSixPQUFPLEdBQUF0QyxhQUFBLEtBQVEwQyxHQUFHLENBQUU7UUFDcEJKLE9BQU8sQ0FBQ3JELElBQUksR0FBRyxJQUFJLENBQUM4QyxjQUFjLENBQUNPLE9BQU8sQ0FBQ3JELElBQUksRUFBRStDLEtBQUssRUFBRUMsT0FBTyxDQUFDO01BQ2xFO0lBQ0Y7SUFDQSxPQUFPSyxPQUFPO0VBQ2hCO0VBQ0E3QixJQUFJQSxDQUFBLEVBQUc7SUFBQSxJQUFBa0MsY0FBQSxFQUFBQyxlQUFBO0lBQ0wsTUFBTTtNQUFFeEQsTUFBTTtNQUFFSCxJQUFJO01BQUU0RCxPQUFPO01BQUVDO0lBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQ2pFLEtBQUs7SUFDdkQsTUFBTTtNQUFFRztJQUFXLENBQUMsR0FBRyxJQUFJLENBQUMrRCxLQUFLO0lBQ2pDLElBQUlkLE9BQVksR0FBRyxDQUFDLENBQUM7SUFDckIsTUFBTWUsUUFBUSxHQUFHL0QsSUFBSSxJQUFJRCxVQUFVO0lBRW5DLElBQUlpRSxTQUFjLEdBQUFqRCxhQUFBLEtBQVFaLE1BQU0sQ0FBRTtJQUNsQyxJQUFJWCxPQUFPLENBQUN1RSxRQUFRLENBQUMsRUFBRTtNQUNyQkEsUUFBUSxDQUFDYixHQUFHLENBQUVDLElBQUksSUFBSztRQUNyQixLQUFLLElBQUlHLEdBQUcsSUFBSUgsSUFBSSxFQUFFO1VBQ3BCLElBQUlILE9BQU8sQ0FBQ00sR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3hCTixPQUFPLENBQUNNLEdBQUcsQ0FBQyxHQUFHLEVBQUU7VUFDbkI7VUFDQU4sT0FBTyxDQUFDTSxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDSixJQUFJLENBQUNHLEdBQUcsQ0FBQyxDQUFDO1FBQzlCO01BQ0YsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxNQUFNLElBQUk3RCxRQUFRLENBQUNzRSxRQUFRLENBQUMsRUFBRTtNQUM3QmYsT0FBTyxHQUFHZSxRQUFRO0lBQ3BCO0lBQ0NFLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLGFBQWEsRUFBQ0gsUUFBUSxDQUFDO0lBQ3BDQyxTQUFTLENBQUNHLEtBQUssR0FBRyxJQUFJLENBQUNYLGdCQUFnQixDQUFDUSxTQUFTLENBQUNHLEtBQUssRUFBRUosUUFBUSxFQUFFZixPQUFPLENBQUM7SUFDM0VnQixTQUFTLENBQUNJLEtBQUssR0FBRyxJQUFJLENBQUNaLGdCQUFnQixDQUFDUSxTQUFTLENBQUNJLEtBQUssRUFBRUwsUUFBUSxFQUFFZixPQUFPLENBQUM7SUFDM0VnQixTQUFTLENBQUNLLE1BQU0sR0FBRyxJQUFJLENBQUNiLGdCQUFnQixDQUN0Q1EsU0FBUyxDQUFDSyxNQUFNLEVBQ2hCTixRQUFRLEVBQ1JmLE9BQ0YsQ0FBQztJQUNELE1BQU1zQixPQUFPLEdBQUksSUFBSSxDQUFDQSxPQUFPLEdBQUdsRixPQUFPLENBQUNvQyxJQUFJLENBQzFDLElBQUksQ0FBQytDLFFBQVEsQ0FBQ0MsT0FDaEIsQ0FBRSxDQUFDLENBQUM7SUFDSkYsT0FBTyxDQUFDRyxLQUFLLENBQUMsQ0FBQztJQUNmSCxPQUFPLENBQUNJLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDcEJKLE9BQU8sYUFBUEEsT0FBTyxnQkFBQVosY0FBQSxHQUFQWSxPQUFPLENBQUVLLEtBQUssQ0FBQyxDQUFDLGNBQUFqQixjQUFBLGVBQWhCQSxjQUFBLENBQWtCZ0IsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUM5QkosT0FBTyxDQUFDTSxTQUFTLENBQUNaLFNBQVMsQ0FBQztJQUM1Qk0sT0FBTyxDQUFDTyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVVDLE1BQU0sRUFBRTtNQUNwQ2xCLE9BQU8sSUFBSUEsT0FBTyxDQUFDa0IsTUFBTSxFQUFFUixPQUFPLENBQUM7SUFDckMsQ0FBQyxDQUFDO0lBQ0ZBLE9BQU8sYUFBUEEsT0FBTyxnQkFBQVgsZUFBQSxHQUFQVyxPQUFPLENBQUVLLEtBQUssQ0FBQyxDQUFDLGNBQUFoQixlQUFBLGVBQWhCQSxlQUFBLENBQWtCa0IsRUFBRSxDQUFDLE9BQU8sRUFBR0MsTUFBTSxJQUFLO01BQ3hDakIsU0FBUyxJQUFJQSxTQUFTLENBQUNpQixNQUFNLEVBQUVSLE9BQU8sQ0FBQztJQUN6QyxDQUFDLENBQUM7SUFDRkEsT0FBTyxDQUFDUyxNQUFNLENBQUMsQ0FBQztJQUNoQjFDLE1BQU0sQ0FBQzJDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUN6QyxpQkFBaUIsQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0VBQ3RFO0VBRUFELGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ2xCLElBQUksSUFBSSxDQUFDK0IsT0FBTyxFQUFFO01BQ2hCLElBQUksQ0FBQ0EsT0FBTyxDQUFDUyxNQUFNLENBQUMsQ0FBQztJQUN2QjtFQUNGO0VBRUFFLE1BQU1BLENBQUEsRUFBRztJQUNQLE1BQU07TUFBRUMsS0FBSztNQUFFQztJQUFPLENBQUMsR0FBRyxJQUFJLENBQUN2RixLQUFLO0lBQ3BDLE1BQU13RixRQUFRLEdBQUc7TUFDZkYsS0FBSyxFQUFFLE9BQU9BLEtBQUssSUFBSSxRQUFRLEdBQUczRixLQUFLLENBQUMyRixLQUFLLENBQUMsR0FBR0EsS0FBSztNQUN0REMsTUFBTSxFQUFFLE9BQU9BLE1BQU0sSUFBSSxRQUFRLEdBQUc1RixLQUFLLENBQUM0RixNQUFNLENBQUMsR0FBR0E7SUFDdEQsQ0FBQztJQUNELG9CQUFPakcsS0FBQSxDQUFBbUcsYUFBQTtNQUFLQyxLQUFLLEVBQUVGLFFBQVM7TUFBQ0csR0FBRyxFQUFFLElBQUksQ0FBQ2hCLFFBQVM7TUFBQ2lCLEVBQUUsRUFBQztJQUFZLENBQU0sQ0FBQztFQUN6RTtBQUNGO0FBRUEsZUFBZTlGLFFBQVEifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PureComponent","echarts","Store","utils","px2vw","isArray","isObject","NscChart","constructor","props","_defineProperty","createRef","dataSource","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","componentDidUpdate","prevProps","prevState","snapshot","JSON","stringify","reSetChart","isString","v","componentWillUnmount","window","removeEventListener","handleChartResize","bind","isReplace","test","replace","substring","length","dataConversion","datas","dataMap","result","map","item","value","tempObj","key","push","objectConversion","obj","_myChart$getZr","_myChart$getZr2","OnClick","OnZrClick","state","newDatas","newOption","xAxis","yAxis","series","myChart","chartRef","current","clear","off","getZr","setOption","on","params","resize","addEventListener","render","width","height","boxStyle","createElement","style","ref","id"],"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 { px2vw } from \"../../utils\";\r\nimport { isArray, isObject } from \"@bj-nsc/functions\";\r\ninterface 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 [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 state = {\r\n dataSource: null,\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 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 componentWillUnmount() {\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 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;\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 item) {\r\n let v = item[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 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 }\r\n }\r\n return tempObj;\r\n }\r\n init() {\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 newOption: any = { ...option };\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 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 myChart.resize();\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 } = this.props;\r\n const boxStyle = {\r\n width: typeof width == \"number\" ? px2vw(width) : width,\r\n height: typeof height == \"number\" ? px2vw(height) : height,\r\n };\r\n return <div style={boxStyle} ref={this.chartRef} id=\"nsc_charts\"></div>;\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","NscChart","constructor","props","_defineProperty","createRef","dataSource","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","componentDidUpdate","prevProps","prevState","snapshot","JSON","stringify","reSetChart","isString","v","componentWillUnmount","window","removeEventListener","handleChartResize","bind","isReplace","test","replace","substring","length","dataConversion","datas","dataMap","result","map","item","value","tempObj","key","push","objectConversion","obj","_myChart$getZr","_myChart$getZr2","OnClick","OnZrClick","state","newDatas","newOption","console","log","xAxis","yAxis","series","myChart","chartRef","current","clear","off","getZr","setOption","on","params","resize","addEventListener","render","width","height","boxStyle","createElement","style","ref","id"],"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 { px2vw } from \"../../utils\";\r\nimport { isArray, isObject } from \"@bj-nsc/functions\";\r\ninterface 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 [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 state = {\r\n dataSource: null,\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 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 componentWillUnmount() {\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 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 item) {\r\n let v = item[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 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 }\r\n }\r\n return tempObj;\r\n }\r\n init() {\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 \r\n let newOption: any = { ...option };\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 console.log('newDatas---',newDatas)\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 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 myChart.resize();\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 } = this.props;\r\n const boxStyle = {\r\n width: typeof width == \"number\" ? px2vw(width) : width,\r\n height: typeof height == \"number\" ? px2vw(height) : height,\r\n };\r\n return <div style={boxStyle} ref={this.chartRef} id=\"nsc_charts\"></div>;\r\n }\r\n}\r\n\r\nexport default NscChart;\r\n"],"mappings":"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"}
|