nsc-react-component 1.3.5 → 1.3.6

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.
@@ -6,6 +6,8 @@ interface ICheckboxGroupProps extends CheckboxProps {
6
6
  data?: Array<string | Object>;
7
7
  labelField?: string;
8
8
  valueField?: string;
9
+ addData?: Array<string | Object>;
10
+ deleteData?: Array<string>;
9
11
  [propName: string]: any;
10
12
  }
11
13
  declare class NSCCheckboxGroup extends PureComponent<ICheckboxGroupProps> {
@@ -5,12 +5,24 @@ var _excluded = ["url", "listeners", "viewname", "cached", "cacheKey"],
5
5
 
6
6
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
7
7
 
8
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
9
-
10
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
9
 
12
10
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
11
 
12
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
13
+
14
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
+
16
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+
20
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
+
22
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
+
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+
14
26
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
27
 
16
28
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -77,7 +89,13 @@ var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
77
89
  store = _props$store === void 0 ? {} : _props$store,
78
90
  options = props.options,
79
91
  data = props.data,
80
- children = props.children;
92
+ children = props.children,
93
+ _props$addData = props.addData,
94
+ addData = _props$addData === void 0 ? [] : _props$addData,
95
+ _props$deleteData = props.deleteData,
96
+ deleteData = _props$deleteData === void 0 ? [] : _props$deleteData,
97
+ _props$valueField = props.valueField,
98
+ valueField = _props$valueField === void 0 ? "value" : _props$valueField;
81
99
 
82
100
  var _config = config(),
83
101
  viewUrl = _config.viewUrl;
@@ -93,6 +111,37 @@ var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
93
111
 
94
112
  if (!url && !options && !data && !viewname) throw new Error("url、viewname、data和options不能都为空!");
95
113
 
114
+ var getAllData = function getAllData(data) {
115
+ var newData = _toConsumableArray(data);
116
+
117
+ if (addData.length > 0) {
118
+ newData = [].concat(_toConsumableArray(addData), _toConsumableArray(newData));
119
+ }
120
+
121
+ if (deleteData.length > 0) {
122
+ var valueFields = valueField.split(",");
123
+ newData.map(function (item, i) {
124
+ if (_typeof(item) === "object") {
125
+ var value = "";
126
+ valueFields.map(function (v, index) {
127
+ value = index == 0 ? value + item[v] : value + "," + item[v];
128
+ });
129
+
130
+ if (deleteData.indexOf(value) > -1) {
131
+ newData.splice(i, 1);
132
+ }
133
+ } else if (typeof item === "string") {
134
+ if (deleteData.indexOf(item) > -1) {
135
+ newData.splice(i, 1);
136
+ }
137
+ }
138
+ });
139
+ }
140
+
141
+ console.log("newData", newData);
142
+ return newData;
143
+ };
144
+
96
145
  var storeProps = _objectSpread({
97
146
  model: "model",
98
147
  component: _assertThisInitialized(_this2),
@@ -101,7 +150,7 @@ var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
101
150
  utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);
102
151
  },
103
152
  load: function load(data, modelData, store) {
104
- var dataSource = _this.convertData(modelData);
153
+ var dataSource = _this.convertData(getAllData(data));
105
154
 
106
155
  _this.setState({
107
156
  dataSource: dataSource
@@ -111,8 +160,10 @@ var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
111
160
  },
112
161
  dataChanged: function dataChanged(data, modelData, store) {
113
162
  _this.setState({
114
- dataSource: modelData
163
+ dataSource: _this.convertData(getAllData(data))
115
164
  });
165
+
166
+ utils.callback(listenersPops.dataChanged, _this, [data, modelData, store]);
116
167
  }
117
168
  }
118
169
  }, stores);
@@ -157,12 +208,34 @@ var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
157
208
  store = _this$props$store === void 0 ? {} : _this$props$store;
158
209
  var dataSoure = [];
159
210
 
160
- for (var i = 0; i < data.length; i++) {
211
+ var _loop = function _loop(i) {
161
212
  if (_typeof(data[i]) === "object") {
162
213
  var obj = _objectSpread({}, data[i]);
163
214
 
164
- obj.label = data[i][labelField];
165
- obj.value = data[i][valueField];
215
+ var value = "";
216
+
217
+ if (valueField.split(",").length == 1) {
218
+ value = data[i][valueField];
219
+ } else {
220
+ var valueFields = valueField.split(",");
221
+ valueFields.map(function (v, index) {
222
+ value = index == 0 ? value + data[i][v] : value + "," + data[i][v];
223
+ });
224
+ }
225
+
226
+ var label = "";
227
+
228
+ if (labelField.split(",").length == 1) {
229
+ label = data[i][labelField];
230
+ } else {
231
+ var labelFields = labelField.split(",");
232
+ labelFields.map(function (l, index) {
233
+ label = index == 0 ? label + data[i][l] : label + "-" + data[i][l];
234
+ });
235
+ }
236
+
237
+ obj.label = label;
238
+ obj.value = value;
166
239
  obj.disabled = data[i].disabled ? data[i].disabled : false;
167
240
  dataSoure.push(obj);
168
241
  } else {
@@ -172,6 +245,10 @@ var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
172
245
  _obj.disabled = false;
173
246
  dataSoure.push(_obj);
174
247
  }
248
+ };
249
+
250
+ for (var i = 0; i < data.length; i++) {
251
+ _loop(i);
175
252
  }
176
253
 
177
254
  return dataSoure;
@@ -241,8 +318,7 @@ var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
241
318
  options = _this$props4.options,
242
319
  params = _objectWithoutProperties(_this$props4, _excluded2);
243
320
 
244
- var CheckBoxProps = omit(_objectSpread({}, params), ["store", "valueField", "labelField", "data", "onChange"]);
245
- console.log("dataSource", this.state.dataSource);
321
+ var CheckBoxProps = omit(_objectSpread({}, params), ["store", "valueField", "labelField", "data", "onChange", "addData", "deleteData"]);
246
322
  return /*#__PURE__*/React.createElement(_Checkbox.Group, _extends({
247
323
  value: this.state.value,
248
324
  options: this.state.dataSource,
@@ -255,4 +331,4 @@ var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
255
331
  }(PureComponent);
256
332
 
257
333
  export default NSCCheckboxGroup;
258
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2NoZWNrYm94L0NoZWNrYm94R3JvdXAudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlN0b3JlIiwidXRpbHMiLCJvbWl0IiwiY29uZmlnIiwiTlNDQ2hlY2tib3hHcm91cCIsInByb3BzIiwiZGF0YVNvdXJjZSIsImRhdGFTdG9yZSIsInZhbHVlIiwiX3RoaXMiLCJzdG9yZSIsIm9wdGlvbnMiLCJkYXRhIiwiY2hpbGRyZW4iLCJ2aWV3VXJsIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInZpZXduYW1lIiwiY2FjaGVkIiwiY2FjaGVLZXkiLCJzdG9yZXMiLCJFcnJvciIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsImNvbnZlcnREYXRhIiwic2V0U3RhdGUiLCJkYXRhQ2hhbmdlZCIsImlzQ2FjaGVkIiwiaXNDYWNoZUtleSIsImF1dG9Mb2FkIiwibGFiZWxGaWVsZCIsInZhbHVlRmllbGQiLCJkYXRhU291cmUiLCJpIiwibGVuZ3RoIiwib2JqIiwibGFiZWwiLCJkaXNhYmxlZCIsInB1c2giLCJjaGVja2VkVmFsdWUiLCJvbkNoYW5nZSIsInN0YXRlIiwibmV3RGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJwYXJhbXMiLCJDaGVja0JveFByb3BzIiwiY29uc29sZSIsImxvZyIsImJpbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUVBLE9BQU9DLEtBQVAsTUFBa0MsYUFBbEM7QUFDQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsU0FBakI7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Q0FDeEMsT0FEd0MsRUFFeEMsWUFGd0MsRUFHeEMsWUFId0MsRUFJeEMsTUFKd0MsRUFLeEMsVUFMd0MsQ0FBaEIsQ0FBMUI7QUFPQUUsTUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksWUFBWixFQUEwQixLQUFLUCxLQUFMLENBQVd6QyxVQUFyQztBQUNBLDBCQUNFLDhCQUFVLEtBQVY7QUFDRSxRQUFBLEtBQUssRUFBRSxLQUFLeUMsS0FBTCxDQUFXdkMsS0FEcEI7QUFFRSxRQUFBLE9BQU8sRUFBRSxLQUFLdUMsS0FBTCxDQUFXekMsVUFGdEI7QUFHRSxRQUFBLFFBQVEsRUFBRSxLQUFLd0MsUUFBTCxDQUFjUyxJQUFkLENBQW1CLElBQW5CO0FBSFosU0FJTUgsYUFKTixFQURGO0FBUUQ7Ozs7RUE5STRCckQsYTs7QUFpSi9CLGVBQWVLLGdCQUFmIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTA0LTE0IDA4OjU5OjE5XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0yMyAxNjo0NjozM1xyXG4gKi9cclxuaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgQ2hlY2tib3gsIENoZWNrYm94UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vY29uZmlnXCI7XHJcblxyXG5pbnRlcmZhY2UgSUNoZWNrYm94R3JvdXBQcm9wcyBleHRlbmRzIENoZWNrYm94UHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8c3RyaW5nIHwgT2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmNsYXNzIE5TQ0NoZWNrYm94R3JvdXAgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElDaGVja2JveEdyb3VwUHJvcHM+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgZGF0YVN0b3JlOiBbXSxcclxuICAgIHZhbHVlOiBbXSxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3QgeyBzdG9yZSA9IHt9LCBvcHRpb25zLCBkYXRhLCBjaGlsZHJlbiB9ID0gcHJvcHM7XHJcbiAgICBsZXQgeyB2aWV3VXJsIH0gPSBjb25maWcoKTtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHVybCxcclxuICAgICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgICB2aWV3bmFtZSxcclxuICAgICAgICBjYWNoZWQsXHJcbiAgICAgICAgY2FjaGVLZXksXHJcbiAgICAgICAgLi4uc3RvcmVzXHJcbiAgICAgIH0gPSBzdG9yZTtcclxuICAgICAgaWYgKCF1cmwgJiYgIW9wdGlvbnMgJiYgIWRhdGEgJiYgIXZpZXduYW1lKVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeWSjG9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIHZhciBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBsZXQgZGF0YVNvdXJjZSA9IF90aGlzLmNvbnZlcnREYXRhKG1vZGVsRGF0YSk7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4uc3RvcmVzLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgICBpZiAoKHZpZXduYW1lIHx8IHVybCkgJiYgZGF0YSA9PSBudWxsICYmIG9wdGlvbnMgPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBpc0NhY2hlZCA9IGNhY2hlZDtcclxuICAgICAgICBsZXQgaXNDYWNoZUtleSA9IGNhY2hlS2V5O1xyXG4gICAgICAgIGlmICh2aWV3bmFtZSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZWQgIT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaXNDYWNoZUtleSA9IGlzQ2FjaGVLZXkgPyBpc0NhY2hlS2V5IDogdmlld25hbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCB2aWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnZlcnREYXRhKGRhdGEpIHtcclxuICAgIGxldCB7IGxhYmVsRmllbGQgPSBcImxhYmVsXCIsIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsIHN0b3JlID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgZGF0YVNvdXJlID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2ldID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHsgLi4uZGF0YVtpXSB9O1xyXG4gICAgICAgIG9iai5sYWJlbCA9IGRhdGFbaV1bbGFiZWxGaWVsZF07XHJcbiAgICAgICAgb2JqLnZhbHVlID0gZGF0YVtpXVt2YWx1ZUZpZWxkXTtcclxuICAgICAgICBvYmouZGlzYWJsZWQgPSBkYXRhW2ldLmRpc2FibGVkID8gZGF0YVtpXS5kaXNhYmxlZCA6IGZhbHNlO1xyXG4gICAgICAgIGRhdGFTb3VyZS5wdXNoKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9IGFzIHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueTsgZGlzYWJsZWQ/OiBib29sZWFuIH07XHJcbiAgICAgICAgb2JqLmxhYmVsID0gZGF0YVtpXTtcclxuICAgICAgICBvYmoudmFsdWUgPSBkYXRhW2ldO1xyXG4gICAgICAgIG9iai5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGRhdGFTb3VyZS5wdXNoKG9iaik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhU291cmU7XHJcbiAgfVxyXG4gIG9uQ2hhbmdlKGNoZWNrZWRWYWx1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHZhbHVlOiBjaGVja2VkVmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25DaGFuZ2UpIHtcclxuICAgICAgb25DaGFuZ2UoY2hlY2tlZFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS52YWx1ZTtcclxuICB9XHJcbiAgc2V0VmFsdWUodmFsdWUpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkYXRhU291cmNlOiB0aGlzLmNvbnZlcnREYXRhKGRhdGEgPyBkYXRhIDogb3B0aW9ucyksXHJcbiAgICAgICAgZGF0YVN0b3JlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XHJcbiAgICBjb25zdCB7IGRhdGFTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0RhdGEgPSBkYXRhID8gZGF0YSA6IG9wdGlvbnM7XHJcbiAgICBpZiAoZGF0YSB8fCBvcHRpb25zKSB7XHJcbiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhU3RvcmUpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5jb252ZXJ0RGF0YShuZXdEYXRhKSxcclxuICAgICAgICAgIGRhdGFTdG9yZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCAuLi5wYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBDaGVja0JveFByb3BzID0gb21pdCh7IC4uLnBhcmFtcyB9LCBbXHJcbiAgICAgIFwic3RvcmVcIixcclxuICAgICAgXCJ2YWx1ZUZpZWxkXCIsXHJcbiAgICAgIFwibGFiZWxGaWVsZFwiLFxyXG4gICAgICBcImRhdGFcIixcclxuICAgICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgXSk7XHJcbiAgICBjb25zb2xlLmxvZyhcImRhdGFTb3VyY2VcIiwgdGhpcy5zdGF0ZS5kYXRhU291cmNlKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxDaGVja2JveC5Hcm91cFxyXG4gICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnZhbHVlfVxyXG4gICAgICAgIG9wdGlvbnM9e3RoaXMuc3RhdGUuZGF0YVNvdXJjZX1cclxuICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgIHsuLi5DaGVja0JveFByb3BzfVxyXG4gICAgICAvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5TQ0NoZWNrYm94R3JvdXA7XHJcbiJdfQ==
334
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2NoZWNrYm94L0NoZWNrYm94R3JvdXAudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlN0b3JlIiwidXRpbHMiLCJvbWl0IiwiY29uZmlnIiwiTlNDQ2hlY2tib3hHcm91cCIsInByb3BzIiwiZGF0YVNvdXJjZSIsImRhdGFTdG9yZSIsInZhbHVlIiwiX3RoaXMiLCJzdG9yZSIsIm9wdGlvbnMiLCJkYXRhIiwiY2hpbGRyZW4iLCJhZGREYXRhIiwiZGVsZXRlRGF0YSIsInZhbHVlRmllbGQiLCJ2aWV3VXJsIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInZpZXduYW1lIiwiY2FjaGVkIiwiY2FjaGVLZXkiLCJzdG9yZXMiLCJFcnJvciIsImdldEFsbERhdGEiLCJuZXdEYXRhIiwibGVuZ3RoIiwidmFsdWVGaWVsZHMiLCJzcGxpdCIsIm1hcCIsIml0ZW0iLCJpIiwidiIsImluZGV4IiwiaW5kZXhPZiIsInNwbGljZSIsImNvbnNvbGUiLCJsb2ciLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvbkJlZm9yZUxvYWQiLCJjYWxsYmFjayIsImxvYWQiLCJtb2RlbERhdGEiLCJjb252ZXJ0RGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsImxhYmVsRmllbGQiLCJkYXRhU291cmUiLCJvYmoiLCJsYWJlbCIsImxhYmVsRmllbGRzIiwibCIsImRpc2FibGVkIiwicHVzaCIsImNoZWNrZWRWYWx1ZSIsIm9uQ2hhbmdlIiwic3RhdGUiLCJKU09OIiwic3RyaW5naWZ5IiwicGFyYW1zIiwiQ2hlY2tCb3hQcm9wcyIsImJpbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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TSxJQUFkLENBQW1CLElBQW5CO0FBSFosU0FJTUQsYUFKTixFQURGO0FBUUQ7Ozs7RUF6TTRCcEUsYTs7QUE0TS9CLGVBQWVLLGdCQUFmIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTA0LTE0IDA4OjU5OjE5XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0yMyAxNjo0NjozM1xyXG4gKi9cclxuaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgQ2hlY2tib3gsIENoZWNrYm94UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vY29uZmlnXCI7XHJcblxyXG5pbnRlcmZhY2UgSUNoZWNrYm94R3JvdXBQcm9wcyBleHRlbmRzIENoZWNrYm94UHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8c3RyaW5nIHwgT2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgYWRkRGF0YT86IEFycmF5PHN0cmluZyB8IE9iamVjdD47XHJcbiAgZGVsZXRlRGF0YT86IEFycmF5PHN0cmluZz47XHJcbiAgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmNsYXNzIE5TQ0NoZWNrYm94R3JvdXAgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElDaGVja2JveEdyb3VwUHJvcHM+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgZGF0YVN0b3JlOiBbXSxcclxuICAgIHZhbHVlOiBbXSxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICAgIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBsZXQgeyB2aWV3VXJsIH0gPSBjb25maWcoKTtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHVybCxcclxuICAgICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgICB2aWV3bmFtZSxcclxuICAgICAgICBjYWNoZWQsXHJcbiAgICAgICAgY2FjaGVLZXksXHJcblxyXG4gICAgICAgIC4uLnN0b3Jlc1xyXG4gICAgICB9ID0gc3RvcmU7XHJcbiAgICAgIGlmICghdXJsICYmICFvcHRpb25zICYmICFkYXRhICYmICF2aWV3bmFtZSlcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzjgIF2aWV3bmFtZeOAgWRhdGHlkoxvcHRpb25z5LiN6IO96YO95Li656m677yBXCIpO1xyXG4gICAgICBjb25zdCBnZXRBbGxEYXRhID0gKGRhdGEpID0+IHtcclxuICAgICAgICBsZXQgbmV3RGF0YSA9IFsuLi5kYXRhXTtcclxuICAgICAgICBpZiAoYWRkRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBuZXdEYXRhID0gWy4uLmFkZERhdGEsIC4uLm5ld0RhdGFdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGVsZXRlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZUZpZWxkczogYW55ID0gdmFsdWVGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICBuZXdEYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGlmIChkZWxldGVEYXRhLmluZGV4T2YodmFsdWUpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIG5ld0RhdGEuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICAgIGlmIChkZWxldGVEYXRhLmluZGV4T2YoaXRlbSkgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgbmV3RGF0YS5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJuZXdEYXRhXCIsIG5ld0RhdGEpO1xyXG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgICB9O1xyXG4gICAgICB2YXIgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgbGV0IGRhdGFTb3VyY2UgPSBfdGhpcy5jb252ZXJ0RGF0YShnZXRBbGxEYXRhKGRhdGEpKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBkYXRhU291cmNlIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IF90aGlzLmNvbnZlcnREYXRhKGdldEFsbERhdGEoZGF0YSkpIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsIHx8IHZpZXdVcmwgKyB2aWV3bmFtZSwgLy/or7vlrZflhbjvvIx1cmzlm7rlrprvvIx2aWV3bmFtZVxyXG4gICAgICAgICAgICBjYWNoZWQ6IGlzQ2FjaGVkLFxyXG4gICAgICAgICAgICBjYWNoZUtleTogaXNDYWNoZUtleSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5zdG9yZVByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBTdG9yZShzdG9yZVByb3BzKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydERhdGEoZGF0YSkge1xyXG4gICAgbGV0IHsgbGFiZWxGaWVsZCA9IFwibGFiZWxcIiwgdmFsdWVGaWVsZCA9IFwidmFsdWVcIiwgc3RvcmUgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBkYXRhU291cmUgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodHlwZW9mIGRhdGFbaV0gPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICBsZXQgb2JqID0geyAuLi5kYXRhW2ldIH07XHJcbiAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICBpZiAodmFsdWVGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgIHZhbHVlID0gZGF0YVtpXVt2YWx1ZUZpZWxkXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGRhdGFbaV1bdl0gOiB2YWx1ZSArIFwiLFwiICsgZGF0YVtpXVt2XTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbGFiZWwgPSBcIlwiO1xyXG4gICAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgbGFiZWwgPSBkYXRhW2ldW2xhYmVsRmllbGRdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGwsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGxhYmVsID0gaW5kZXggPT0gMCA/IGxhYmVsICsgZGF0YVtpXVtsXSA6IGxhYmVsICsgXCItXCIgKyBkYXRhW2ldW2xdO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9iai5sYWJlbCA9IGxhYmVsO1xyXG4gICAgICAgIG9iai52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIG9iai5kaXNhYmxlZCA9IGRhdGFbaV0uZGlzYWJsZWQgPyBkYXRhW2ldLmRpc2FibGVkIDogZmFsc2U7XHJcbiAgICAgICAgZGF0YVNvdXJlLnB1c2gob2JqKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgb2JqID0ge30gYXMgeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55OyBkaXNhYmxlZD86IGJvb2xlYW4gfTtcclxuICAgICAgICBvYmoubGFiZWwgPSBkYXRhW2ldO1xyXG4gICAgICAgIG9iai52YWx1ZSA9IGRhdGFbaV07XHJcbiAgICAgICAgb2JqLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgZGF0YVNvdXJlLnB1c2gob2JqKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGFTb3VyZTtcclxuICB9XHJcbiAgb25DaGFuZ2UoY2hlY2tlZFZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgdmFsdWU6IGNoZWNrZWRWYWx1ZSxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBvbkNoYW5nZShjaGVja2VkVmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnZhbHVlO1xyXG4gIH1cclxuICBzZXRWYWx1ZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IHRoaXMuY29udmVydERhdGEoZGF0YSA/IGRhdGEgOiBvcHRpb25zKSxcclxuICAgICAgICBkYXRhU3RvcmU6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IHsgZGF0YVN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RGF0YSA9IGRhdGEgPyBkYXRhIDogb3B0aW9ucztcclxuICAgIGlmIChkYXRhIHx8IG9wdGlvbnMpIHtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGRhdGFTdG9yZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiB0aGlzLmNvbnZlcnREYXRhKG5ld0RhdGEpLFxyXG4gICAgICAgICAgZGF0YVN0b3JlOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIC4uLnBhcmFtcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IENoZWNrQm94UHJvcHMgPSBvbWl0KHsgLi4ucGFyYW1zIH0sIFtcclxuICAgICAgXCJzdG9yZVwiLFxyXG4gICAgICBcInZhbHVlRmllbGRcIixcclxuICAgICAgXCJsYWJlbEZpZWxkXCIsXHJcbiAgICAgIFwiZGF0YVwiLFxyXG4gICAgICBcIm9uQ2hhbmdlXCIsXHJcbiAgICAgIFwiYWRkRGF0YVwiLFxyXG4gICAgICBcImRlbGV0ZURhdGFcIixcclxuICAgIF0pO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPENoZWNrYm94Lkdyb3VwXHJcbiAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUudmFsdWV9XHJcbiAgICAgICAgb3B0aW9ucz17dGhpcy5zdGF0ZS5kYXRhU291cmNlfVxyXG4gICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgey4uLkNoZWNrQm94UHJvcHN9XHJcbiAgICAgIC8+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTlNDQ2hlY2tib3hHcm91cDtcclxuIl19
@@ -7,6 +7,8 @@ interface IRadioGroupProps extends RadioGroupProps {
7
7
  data?: Array<string | Object>;
8
8
  labelField?: string;
9
9
  valueField?: string;
10
+ addData?: Array<string | Object>;
11
+ deleteData?: Array<string>;
10
12
  onChange?: (value: any, e?: any) => void;
11
13
  }
12
14
  export default class RadioGroup extends Component<IRadioGroupProps> {
@@ -5,12 +5,24 @@ var _excluded = ["url", "listeners", "viewname", "cached", "cacheKey"],
5
5
 
6
6
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
7
7
 
8
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
9
-
10
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
9
 
12
10
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
11
 
12
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
13
+
14
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
+
16
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+
20
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
+
22
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
+
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+
14
26
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
27
 
16
28
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -77,7 +89,13 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
77
89
  store = _props$store === void 0 ? {} : _props$store,
78
90
  options = props.options,
79
91
  data = props.data,
80
- children = props.children;
92
+ children = props.children,
93
+ _props$addData = props.addData,
94
+ addData = _props$addData === void 0 ? [] : _props$addData,
95
+ _props$deleteData = props.deleteData,
96
+ deleteData = _props$deleteData === void 0 ? [] : _props$deleteData,
97
+ _props$valueField = props.valueField,
98
+ valueField = _props$valueField === void 0 ? "value" : _props$valueField;
81
99
 
82
100
  var _config = config(),
83
101
  viewUrl = _config.viewUrl;
@@ -93,6 +111,36 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
93
111
 
94
112
  if (!url && !options && !data && !viewname) throw new Error("url、viewname、data和options不能都为空!");
95
113
 
114
+ var getAllData = function getAllData(data) {
115
+ var newData = _toConsumableArray(data);
116
+
117
+ if (addData.length > 0) {
118
+ newData = [].concat(_toConsumableArray(addData), _toConsumableArray(newData));
119
+ }
120
+
121
+ if (deleteData.length > 0) {
122
+ var valueFields = valueField.split(",");
123
+ newData.map(function (item, i) {
124
+ if (_typeof(item) === "object") {
125
+ var _value = "";
126
+ valueFields.map(function (v, index) {
127
+ _value = index == 0 ? _value + item[v] : _value + "," + item[v];
128
+ });
129
+
130
+ if (deleteData.indexOf(_value) > -1) {
131
+ newData.splice(i, 1);
132
+ }
133
+ } else if (typeof item === "string") {
134
+ if (deleteData.indexOf(item) > -1) {
135
+ newData.splice(i, 1);
136
+ }
137
+ }
138
+ });
139
+ }
140
+
141
+ return newData;
142
+ };
143
+
96
144
  var storeProps = _objectSpread({
97
145
  model: "model",
98
146
  component: _assertThisInitialized(_this2),
@@ -101,7 +149,7 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
101
149
  utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);
102
150
  },
103
151
  load: function load(data, modelData, store) {
104
- var dataSource = _this.convertData(modelData);
152
+ var dataSource = _this.convertData(getAllData(data));
105
153
 
106
154
  _this.setState({
107
155
  dataSource: dataSource
@@ -111,7 +159,7 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
111
159
  },
112
160
  dataChanged: function dataChanged(data, modelData, store) {
113
161
  _this.setState({
114
- dataSource: _this.convertData(modelData)
162
+ dataSource: _this.convertData(getAllData(data))
115
163
  });
116
164
 
117
165
  utils.callback(listenersPops.dataChanged, _this, [data, modelData, store]);
@@ -152,18 +200,16 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
152
200
  customize = _this$props.customize,
153
201
  onChange = _this$props.onChange;
154
202
 
155
- if (onChange) {
156
- if (customize) {
157
- onChange(e);
158
- this.setState({
159
- value: e
160
- });
161
- } else {
162
- onChange(e.target.value, e);
163
- this.setState({
164
- value: e.target.value
165
- });
166
- }
203
+ if (customize) {
204
+ onChange && onChange(e);
205
+ this.setState({
206
+ value: e
207
+ });
208
+ } else {
209
+ this.setState({
210
+ value: e.target.value
211
+ });
212
+ onChange && onChange(e.target.value, e);
167
213
  }
168
214
  }
169
215
  }, {
@@ -190,12 +236,34 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
190
236
  store = _this$props2$store === void 0 ? {} : _this$props2$store;
191
237
  var dataSoure = [];
192
238
 
193
- for (var i = 0; i < data.length; i++) {
239
+ var _loop = function _loop(i) {
194
240
  if (_typeof(data[i]) === "object") {
195
241
  var obj = _objectSpread({}, data[i]);
196
242
 
197
- obj.label = data[i][labelField];
198
- obj.value = data[i][valueField];
243
+ var _value2 = "";
244
+
245
+ if (valueField.split(",").length == 1) {
246
+ _value2 = data[i][valueField];
247
+ } else {
248
+ var valueFields = valueField.split(",");
249
+ valueFields.map(function (v, index) {
250
+ _value2 = index == 0 ? _value2 + data[i][v] : _value2 + "," + data[i][v];
251
+ });
252
+ }
253
+
254
+ var label = "";
255
+
256
+ if (labelField.split(",").length == 1) {
257
+ label = data[i][labelField];
258
+ } else {
259
+ var labelFields = labelField.split(",");
260
+ labelFields.map(function (l, index) {
261
+ label = index == 0 ? label + data[i][l] : label + "-" + data[i][l];
262
+ });
263
+ }
264
+
265
+ obj.label = label;
266
+ obj.value = _value2;
199
267
  obj.disabled = data[i].disabled ? data[i].disabled : false;
200
268
  dataSoure.push(obj);
201
269
  } else {
@@ -205,6 +273,10 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
205
273
  _obj.disabled = false;
206
274
  dataSoure.push(_obj);
207
275
  }
276
+ };
277
+
278
+ for (var i = 0; i < data.length; i++) {
279
+ _loop(i);
208
280
  }
209
281
 
210
282
  return dataSoure;
@@ -282,7 +354,8 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
282
354
  options = _this$props6.options,
283
355
  params = _objectWithoutProperties(_this$props6, _excluded2);
284
356
 
285
- var RadioProps = omit(_objectSpread({}, params), ["store", "labelField", "valueField", "customize", "onChange"]);
357
+ var RadioProps = omit(_objectSpread({}, params), ["store", "labelField", "valueField", "customize", "onChange", "addData", "deleteData"]);
358
+ console.log("value", this.state.value);
286
359
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Radio.Group, _extends({
287
360
  value: this.state.value,
288
361
  options: this.state.dataSource,
@@ -296,4 +369,4 @@ var RadioGroup = /*#__PURE__*/function (_Component) {
296
369
  }(Component);
297
370
 
298
371
  export { RadioGroup as default };
299
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3JhZGlvL1JhZGlvR3JvdXAudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiQ29tcG9uZW50Iiwib21pdCIsIlN0b3JlIiwidXRpbHMiLCJjb25maWciLCJSYWRpb0dyb3VwIiwicHJvcHMiLCJkYXRhU291cmNlIiwiZGF0YVN0b3JlIiwidmFsdWUiLCJfdGhpcyIsInN0b3JlIiwib3B0aW9ucyIsImRhdGEiLCJjaGlsZHJlbiIsInZpZXdVcmwiLCJ1cmwiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQb3BzIiwidmlld25hbWUiLCJjYWNoZWQiLCJjYWNoZUtleSIsInN0b3JlcyIsIkVycm9yIiwic3RvcmVQcm9wcyIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwiY29udmVydERhdGEiLCJzZXRTdGF0ZSIsImRhdGFDaGFuZ2VkIiwiaXNDYWNoZWQiLCJpc0NhY2hlS2V5IiwiYXV0b0xvYWQiLCJlIiwiY3VzdG9taXplIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJzdGF0ZSIsImxhYmVsRmllbGQiLCJ2YWx1ZUZpZWxkIiwiZGF0YVNvdXJlIiwiaSIsImxlbmd0aCIsIm9iaiIsImxhYmVsIiwiZGlzYWJsZWQiLCJwdXNoIiwibmV3RGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyYWRpb3MiLCJpc0FycmF5IiwiQXJyYXkiLCJtYXAiLCJjaGlsZCIsImluZGV4IiwiaXNBY3RpdmUiLCJjbG9uZUVsZW1lbnQiLCJhY3RpdmUiLCJvbkNsaWNrIiwiaGFuZGxlQWN0aXZlQ2hhbmdlIiwiYmluZCIsImtleSIsInBhcmFtcyIsIlJhZGlvUHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFQLElBQWdCQyxTQUFoQixR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QjtBQUVFLFVBQUEsT0FBTyxFQUFFLEtBQUtnQyxLQUFMLENBQVdsQyxVQUZ0QjtBQUdFLFVBQUEsUUFBUSxFQUFFLEtBQUt5RCxrQkFBTCxDQUF3QkMsSUFBeEIsQ0FBNkIsSUFBN0I7QUFIWixXQUlNRyxVQUpOLEVBREYsQ0FERjtBQVVEO0FBQ0Y7Ozs7RUExTHFDcEUsUzs7U0FBbkJLLFUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHR0aW9uOlxyXG4gKiBAdmVyc2lvbjpcclxuICogQEF1dGhvcjogcnh6aHVcclxuICogQERhdGU6IDIwMjEtMDMtMjQgMTQ6MzM6MzVcclxuICogQExhc3RFZGl0b3JzOiByeHpodVxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTA0LTIzIDE2OjQ2OjE3XHJcbiAqL1xyXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFJhZGlvLCBSYWRpb0dyb3VwUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vY29uZmlnXCI7XHJcblxyXG5pbnRlcmZhY2UgSVJhZGlvR3JvdXBQcm9wcyBleHRlbmRzIFJhZGlvR3JvdXBQcm9wcyB7XHJcbiAgY3VzdG9taXplPzogYm9vbGVhbjtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZGF0YT86IEFycmF5PHN0cmluZyB8IE9iamVjdD47IC8v6buY6K6k5pWw5o2uXHJcbiAgbGFiZWxGaWVsZD86IHN0cmluZztcclxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xyXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFkaW9Hcm91cCBleHRlbmRzIENvbXBvbmVudDxJUmFkaW9Hcm91cFByb3BzPiB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIGRhdGFTdG9yZTogW10sXHJcbiAgICB2YWx1ZTogXCJcIixcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3QgeyBzdG9yZSA9IHt9LCBvcHRpb25zLCBkYXRhLCBjaGlsZHJlbiB9ID0gcHJvcHM7XHJcbiAgICBsZXQgeyB2aWV3VXJsIH0gPSBjb25maWcoKTtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHVybCxcclxuICAgICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgICB2aWV3bmFtZSxcclxuICAgICAgICBjYWNoZWQsXHJcbiAgICAgICAgY2FjaGVLZXksXHJcbiAgICAgICAgLi4uc3RvcmVzXHJcbiAgICAgIH0gPSBzdG9yZTtcclxuICAgICAgaWYgKCF1cmwgJiYgIW9wdGlvbnMgJiYgIWRhdGEgJiYgIXZpZXduYW1lKVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeWSjG9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIHZhciBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBsZXQgZGF0YVNvdXJjZSA9IF90aGlzLmNvbnZlcnREYXRhKG1vZGVsRGF0YSk7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IF90aGlzLmNvbnZlcnREYXRhKG1vZGVsRGF0YSksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsID8gdXJsIDogdmlld1VybCArIHZpZXduYW1lLCAvL+ivu+Wtl+WFuO+8jHVybOWbuuWumu+8jHZpZXduYW1lXHJcbiAgICAgICAgICAgIGNhY2hlZDogaXNDYWNoZWQsXHJcbiAgICAgICAgICAgIGNhY2hlS2V5OiBpc0NhY2hlS2V5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQWN0aXZlQ2hhbmdlKGUpIHtcclxuICAgIGNvbnN0IHsgY3VzdG9taXplLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBpZiAob25DaGFuZ2UpIHtcclxuICAgICAgaWYgKGN1c3RvbWl6ZSkge1xyXG4gICAgICAgIG9uQ2hhbmdlKGUpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgdmFsdWU6IGUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb25DaGFuZ2UoZS50YXJnZXQudmFsdWUsIGUpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgdmFsdWU6IGUudGFyZ2V0LnZhbHVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUudmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnZlcnREYXRhKGRhdGEpIHtcclxuICAgIGxldCB7IGxhYmVsRmllbGQgPSBcImxhYmVsXCIsIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsIHN0b3JlID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgZGF0YVNvdXJlID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2ldID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHsgLi4uZGF0YVtpXSB9O1xyXG4gICAgICAgIG9iai5sYWJlbCA9IGRhdGFbaV1bbGFiZWxGaWVsZF07XHJcbiAgICAgICAgb2JqLnZhbHVlID0gZGF0YVtpXVt2YWx1ZUZpZWxkXTtcclxuICAgICAgICBvYmouZGlzYWJsZWQgPSBkYXRhW2ldLmRpc2FibGVkID8gZGF0YVtpXS5kaXNhYmxlZCA6IGZhbHNlO1xyXG4gICAgICAgIGRhdGFTb3VyZS5wdXNoKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9IGFzIHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueTsgZGlzYWJsZWQ/OiBib29sZWFuIH07XHJcbiAgICAgICAgb2JqLmxhYmVsID0gZGF0YVtpXTtcclxuICAgICAgICBvYmoudmFsdWUgPSBkYXRhW2ldO1xyXG4gICAgICAgIG9iai5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGRhdGFTb3VyZS5wdXNoKG9iaik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhU291cmU7XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghY2hpbGRyZW4gJiYgKGRhdGEgfHwgb3B0aW9ucykpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5jb252ZXJ0RGF0YShkYXRhID8gZGF0YSA6IG9wdGlvbnMpLFxyXG4gICAgICAgIGRhdGFTdG9yZTogZGF0YSA/IGRhdGEgOiBvcHRpb25zLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IHsgZGF0YVN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RGF0YSA9IGRhdGEgPyBkYXRhIDogb3B0aW9ucztcclxuICAgIGlmIChkYXRhIHx8IG9wdGlvbnMpIHtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGRhdGFTdG9yZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiB0aGlzLmNvbnZlcnREYXRhKG5ld0RhdGEpLFxyXG4gICAgICAgICAgZGF0YVN0b3JlOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjdXN0b21pemUgPSBmYWxzZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCByYWRpb3M6IGFueTtcclxuICAgIHJhZGlvcyA9IGNoaWxkcmVuO1xyXG4gICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pO1xyXG4gICAgaWYgKGN1c3RvbWl6ZSkge1xyXG4gICAgICBpZiAoaXNBcnJheSkge1xyXG4gICAgICAgIHJldHVybiByYWRpb3MubWFwKChjaGlsZCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGxldCBpc0FjdGl2ZSA9IHRoaXMucHJvcHMudmFsdWUgPT09IGNoaWxkLnByb3BzLnZhbHVlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICBsYWJlbDogY2hpbGQucHJvcHMuY2hpbGRyZW4sXHJcbiAgICAgICAgICAgIHZhbHVlOiBjaGlsZC5wcm9wcy52YWx1ZSxcclxuICAgICAgICAgICAgYWN0aXZlOiBpc0FjdGl2ZSxcclxuICAgICAgICAgICAgb25DbGljazogdGhpcy5oYW5kbGVBY3RpdmVDaGFuZ2UuYmluZCh0aGlzLCBjaGlsZC5wcm9wcy52YWx1ZSksXHJcbiAgICAgICAgICAgIGtleTogaW5kZXgsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgaXNBY3RpdmUgPSB0aGlzLnByb3BzLnZhbHVlID09PSByYWRpb3MucHJvcHMudmFsdWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChyYWRpb3MsIHtcclxuICAgICAgICAgIGxhYmVsOiByYWRpb3MucHJvcHMuY2hpbGRyZW4sXHJcbiAgICAgICAgICB2YWx1ZTogcmFkaW9zLnByb3BzLnZhbHVlLFxyXG4gICAgICAgICAgYWN0aXZlOiBpc0FjdGl2ZSxcclxuICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQWN0aXZlQ2hhbmdlLmJpbmQodGhpcywgcmFkaW9zLnByb3BzLnZhbHVlKSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCAuLi5wYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IFJhZGlvUHJvcHMgPSBvbWl0KHsgLi4ucGFyYW1zIH0sIFtcclxuICAgICAgICBcInN0b3JlXCIsXHJcbiAgICAgICAgXCJsYWJlbEZpZWxkXCIsXHJcbiAgICAgICAgXCJ2YWx1ZUZpZWxkXCIsXHJcbiAgICAgICAgXCJjdXN0b21pemVcIixcclxuICAgICAgICBcIm9uQ2hhbmdlXCIsXHJcbiAgICAgIF0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICA8UmFkaW8uR3JvdXBcclxuICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUudmFsdWV9XHJcbiAgICAgICAgICAgIG9wdGlvbnM9e3RoaXMuc3RhdGUuZGF0YVNvdXJjZX1cclxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQWN0aXZlQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIHsuLi5SYWRpb1Byb3BzfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
372
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3JhZGlvL1JhZGlvR3JvdXAudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiQ29tcG9uZW50Iiwib21pdCIsIlN0b3JlIiwidXRpbHMiLCJjb25maWciLCJSYWRpb0dyb3VwIiwicHJvcHMiLCJkYXRhU291cmNlIiwiZGF0YVN0b3JlIiwidmFsdWUiLCJfdGhpcyIsInN0b3JlIiwib3B0aW9ucyIsImRhdGEiLCJjaGlsZHJlbiIsImFkZERhdGEiLCJkZWxldGVEYXRhIiwidmFsdWVGaWVsZCIsInZpZXdVcmwiLCJ1cmwiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQb3BzIiwidmlld25hbWUiLCJjYWNoZWQiLCJjYWNoZUtleSIsInN0b3JlcyIsIkVycm9yIiwiZ2V0QWxsRGF0YSIsIm5ld0RhdGEiLCJsZW5ndGgiLCJ2YWx1ZUZpZWxkcyIsInNwbGl0IiwibWFwIiwiaXRlbSIsImkiLCJ2IiwiaW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIiwic3RvcmVQcm9wcyIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwiY29udmVydERhdGEiLCJzZXRTdGF0ZSIsImRhdGFDaGFuZ2VkIiwiaXNDYWNoZWQiLCJpc0NhY2hlS2V5IiwiYXV0b0xvYWQiLCJlIiwiY3VzdG9taXplIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJzdGF0ZSIsImxhYmVsRmllbGQiLCJkYXRhU291cmUiLCJvYmoiLCJsYWJlbCIsImxhYmVsRmllbGRzIiwibCIsImRpc2FibGVkIiwicHVzaCIsIkpTT04iLCJzdHJpbmdpZnkiLCJyYWRpb3MiLCJpc0FycmF5IiwiQXJyYXkiLCJjaGlsZCIsImlzQWN0aXZlIiwiY2xvbmVFbGVtZW50IiwiYWN0aXZlIiwib25DbGljayIsImhhbmRsZUFjdGl2ZUNoYW5nZSIsImJpbmQiLCJrZXkiLCJwYXJhbXMiLCJSYWRpb1Byb3BzIiwiY29uc29sZSIsImxvZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU9BLEtBQVAsSUFBZ0JDLFNBQWhCLFFBQWlDLE9BQWpDO0FBRUEsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLE9BQU9DLEtBQVAsTUFBa0MsYUFBbEM7QUFDQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsV0FBbkI7O0lBWXFCQyxVOzs7OztBQU9uQixzQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBOztBQUNqQiwrQkFBTUEsS0FBTjs7QUFEaUIsNkRBTlg7QUFDTkMsTUFBQUEsVUFBVSxFQUFFLEVBRE47QUFFTkMsTUFBQUEsU0FBUyxFQUFFLEVBRkw7QUFHTkMsTUFBQUEsS0FBSyxFQUFFO0FBSEQsS0FNVzs7QUFBQSw2REFEWCxFQUNXOztBQUVqQixRQUFNQyxLQUFLLGlDQUFYOztBQUNBLHVCQVFJSixLQVJKLENBQ0VLLEtBREY7QUFBQSxRQUNFQSxLQURGLDZCQUNVLEVBRFY7QUFBQSxRQUVFQyxPQUZGLEdBUUlOLEtBUkosQ0FFRU0sT0FGRjtBQUFBLFFBR0VDLElBSEYsR0FRSVAsS0FSSixDQUdFTyxJQUhGO0FBQUEsUUFJRUMsUUFKRixHQVFJUixLQVJKLENBSUVRLFFBSkY7QUFBQSx5QkFRSVIsS0FSSixDQUtFUyxPQUxGO0FBQUEsUUFLRUEsT0FMRiwrQkFLWSxFQUxaO0FBQUEsNEJBUUlULEtBUkosQ0FNRVUsVUFORjtBQUFBLFFBTUVBLFVBTkYsa0NBTWUsRUFOZjtBQUFBLDRCQVFJVixLQVJKLENBT0VXLFVBUEY7QUFBQSxRQU9FQSxVQVBGLGtDQU9lLE9BUGY7O0FBU0Esa0JBQWtCYixNQUFNLEVBQXhCO0FBQUEsUUFBTWMsT0FBTixXQUFNQSxPQUFOOztBQUNBLFFBQUksQ0FBQ0osUUFBTCxFQUFlO0FBQ2IsVUFDRUssR0FERixHQU9JUixLQVBKLENBQ0VRLEdBREY7QUFBQSw2QkFPSVIsS0FQSixDQUVFUyxTQUZGO0FBQUEsVUFFYUMsYUFGYixpQ0FFNkIsRUFGN0I7QUFBQSxVQUdFQyxRQUhGLEdBT0lYLEtBUEosQ0FHRVcsUUFIRjtBQUFBLFVBSUVDLE1BSkYsR0FPSVosS0FQSixDQUlFWSxNQUpGO0FBQUEsVUFLRUMsUUFMRixHQU9JYixLQVBKLENBS0VhLFFBTEY7QUFBQSxVQU1LQyxNQU5MLDRCQU9JZCxLQVBKOztBQVFBLFVBQUksQ0FBQ1EsR0FBRCxJQUFRLENBQUNQLE9BQVQsSUFBb0IsQ0FBQ0MsSUFBckIsSUFBNkIsQ0FBQ1MsUUFBbEMsRUFDRSxNQUFNLElBQUlJLEtBQUosQ0FBVSxpQ0FBVixDQUFOOztBQUNGLFVBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNkLElBQUQsRUFBVTtBQUMzQixZQUFJZSxPQUFPLHNCQUFPZixJQUFQLENBQVg7O0FBQ0EsWUFBSUUsT0FBTyxDQUFDYyxNQUFSLEdBQWlCLENBQXJCLEVBQXdCO0FBQ3RCRCxVQUFBQSxPQUFPLGdDQUFPYixPQUFQLHNCQUFtQmEsT0FBbkIsRUFBUDtBQUNEOztBQUNELFlBQUlaLFVBQVUsQ0FBQ2EsTUFBWCxHQUFvQixDQUF4QixFQUEyQjtBQUN6QixjQUFNQyxXQUFnQixHQUFHYixVQUFVLENBQUNjLEtBQVgsQ0FBaUIsR0FBakIsQ0FBekI7QUFDQUgsVUFBQUEsT0FBTyxDQUFDSSxHQUFSLENBQVksVUFBQ0MsSUFBRCxFQUFPQyxDQUFQLEVBQWE7QUFDdkIsZ0JBQUksUUFBT0QsSUFBUCxNQUFnQixRQUFwQixFQUE4QjtBQUM1QixrQkFBSXhCLE1BQUssR0FBRyxFQUFaO0FBQ0FxQixjQUFBQSxXQUFXLENBQUNFLEdBQVosQ0FBZ0IsVUFBQ0csQ0FBRCxFQUFJQyxLQUFKLEVBQWM7QUFDNUIzQixnQkFBQUEsTUFBSyxHQUFHMkIsS0FBSyxJQUFJLENBQVQsR0FBYTNCLE1BQUssR0FBR3dCLElBQUksQ0FBQ0UsQ0FBRCxDQUF6QixHQUErQjFCLE1BQUssR0FBRyxHQUFSLEdBQWN3QixJQUFJLENBQUNFLENBQUQsQ0FBekQ7QUFDRCxlQUZEOztBQUdBLGtCQUFJbkIsVUFBVSxDQUFDcUIsT0FBWCxDQUFtQjVCLE1BQW5CLElBQTRCLENBQUMsQ0FBakMsRUFBb0M7QUFDbENtQixnQkFBQUEsT0FBTyxDQUFDVSxNQUFSLENBQWVKLENBQWYsRUFBa0IsQ0FBbEI7QUFDRDtBQUNGLGFBUkQsTUFRTyxJQUFJLE9BQU9ELElBQVAsS0FBZ0IsUUFBcEIsRUFBOEI7QUFDbkMsa0JBQUlqQixVQUFVLENBQUNxQixPQUFYLENBQW1CSixJQUFuQixJQUEyQixDQUFDLENBQWhDLEVBQW1DO0FBQ2pDTCxnQkFBQUEsT0FBTyxDQUFDVSxNQUFSLENBQWVKLENBQWYsRUFBa0IsQ0FBbEI7QUFDRDtBQUNGO0FBQ0YsV0FkRDtBQWVEOztBQUNELGVBQU9OLE9BQVA7QUFDRCxPQXhCRDs7QUF5QkEsVUFBSVcsVUFBVTtBQUNaQyxRQUFBQSxLQUFLLEVBQUUsT0FESztBQUVaQyxRQUFBQSxTQUFTLGdDQUZHO0FBR1pyQixRQUFBQSxTQUFTLEVBQUU7QUFDVHNCLFVBQUFBLFlBQVksRUFBRSxzQkFBVS9CLEtBQVYsRUFBaUJDLE9BQWpCLEVBQTBCO0FBQ3RDVCxZQUFBQSxLQUFLLENBQUN3QyxRQUFOLENBQWV0QixhQUFhLENBQUNxQixZQUE3QixFQUEyQ2hDLEtBQTNDLEVBQWtELENBQUNDLEtBQUQsRUFBUUMsT0FBUixDQUFsRDtBQUNELFdBSFE7QUFJVGdDLFVBQUFBLElBQUksRUFBRSxjQUFVL0IsSUFBVixFQUFnQmdDLFNBQWhCLEVBQTJCbEMsS0FBM0IsRUFBa0M7QUFDdEMsZ0JBQUlKLFVBQVUsR0FBR0csS0FBSyxDQUFDb0MsV0FBTixDQUFrQm5CLFVBQVUsQ0FBQ2QsSUFBRCxDQUE1QixDQUFqQjs7QUFDQUgsWUFBQUEsS0FBSyxDQUFDcUMsUUFBTixDQUFlO0FBQUV4QyxjQUFBQSxVQUFVLEVBQUVBO0FBQWQsYUFBZjs7QUFDQUosWUFBQUEsS0FBSyxDQUFDd0MsUUFBTixDQUFldEIsYUFBYSxDQUFDdUIsSUFBN0IsRUFBbUNsQyxLQUFuQyxFQUEwQyxDQUFDRyxJQUFELEVBQU9nQyxTQUFQLEVBQWtCbEMsS0FBbEIsQ0FBMUM7QUFDRCxXQVJRO0FBU1RxQyxVQUFBQSxXQUFXLEVBQUUscUJBQVVuQyxJQUFWLEVBQWdCZ0MsU0FBaEIsRUFBMkJsQyxLQUEzQixFQUFrQztBQUM3Q0QsWUFBQUEsS0FBSyxDQUFDcUMsUUFBTixDQUFlO0FBQ2J4QyxjQUFBQSxVQUFVLEVBQUVHLEtBQUssQ0FBQ29DLFdBQU4sQ0FBa0JuQixVQUFVLENBQUNkLElBQUQsQ0FBNUI7QUFEQyxhQUFmOztBQUdBVixZQUFBQSxLQUFLLENBQUN3QyxRQUFOLENBQWV0QixhQUFhLENBQUMyQixXQUE3QixFQUEwQ3RDLEtBQTFDLEVBQWlELENBQy9DRyxJQUQrQyxFQUUvQ2dDLFNBRitDLEVBRy9DbEMsS0FIK0MsQ0FBakQ7QUFLRDtBQWxCUTtBQUhDLFNBdUJUYyxNQXZCUyxDQUFkOztBQXlCQSxVQUFJLENBQUNILFFBQVEsSUFBSUgsR0FBYixLQUFxQk4sSUFBSSxJQUFJLElBQTdCLElBQXFDRCxPQUFPLElBQUksSUFBcEQsRUFBMEQ7QUFDeEQsWUFBSXFDLFFBQVEsR0FBRzFCLE1BQWY7QUFDQSxZQUFJMkIsVUFBVSxHQUFHMUIsUUFBakI7O0FBQ0EsWUFBSUYsUUFBSixFQUFjO0FBQ1osY0FBSSxPQUFPQyxNQUFQLEtBQWtCLFNBQXRCLEVBQWlDO0FBQy9CMEIsWUFBQUEsUUFBUSxHQUFHLElBQVg7QUFDQUMsWUFBQUEsVUFBVSxHQUFHQSxVQUFVLEdBQUdBLFVBQUgsR0FBZ0I1QixRQUF2QztBQUNEO0FBQ0Y7O0FBQ0RpQixRQUFBQSxVQUFVLG1DQUNMO0FBQ0RZLFVBQUFBLFFBQVEsRUFBRSxJQURUO0FBRURoQyxVQUFBQSxHQUFHLEVBQUVBLEdBQUcsR0FBR0EsR0FBSCxHQUFTRCxPQUFPLEdBQUdJLFFBRjFCO0FBRW9DO0FBQ3JDQyxVQUFBQSxNQUFNLEVBQUUwQixRQUhQO0FBSUR6QixVQUFBQSxRQUFRLEVBQUUwQjtBQUpULFNBREssR0FPTFgsVUFQSyxDQUFWO0FBU0Q7O0FBQ0QsYUFBSzVCLEtBQUwsR0FBYSxJQUFJVCxLQUFKLENBQVVxQyxVQUFWLENBQWI7QUFDRDs7QUE5RmdCO0FBK0ZsQjs7OztXQUVELDRCQUFtQmEsQ0FBbkIsRUFBc0I7QUFDcEIsd0JBQWdDLEtBQUs5QyxLQUFyQztBQUFBLFVBQVErQyxTQUFSLGVBQVFBLFNBQVI7QUFBQSxVQUFtQkMsUUFBbkIsZUFBbUJBLFFBQW5COztBQUNBLFVBQUlELFNBQUosRUFBZTtBQUNiQyxRQUFBQSxRQUFRLElBQUlBLFFBQVEsQ0FBQ0YsQ0FBRCxDQUFwQjtBQUNBLGFBQUtMLFFBQUwsQ0FBYztBQUNadEMsVUFBQUEsS0FBSyxFQUFFMkM7QUFESyxTQUFkO0FBR0QsT0FMRCxNQUtPO0FBQ0wsYUFBS0wsUUFBTCxDQUFjO0FBQ1p0QyxVQUFBQSxLQUFLLEVBQUUyQyxDQUFDLENBQUNHLE1BQUYsQ0FBUzlDO0FBREosU0FBZDtBQUdBNkMsUUFBQUEsUUFBUSxJQUFJQSxRQUFRLENBQUNGLENBQUMsQ0FBQ0csTUFBRixDQUFTOUMsS0FBVixFQUFpQjJDLENBQWpCLENBQXBCO0FBQ0Q7QUFDRjs7O1dBQ0Qsb0JBQVc7QUFDVCxhQUFPLEtBQUtJLEtBQUwsQ0FBVy9DLEtBQWxCO0FBQ0Q7OztXQUNELGtCQUFTQSxLQUFULEVBQWdCO0FBQ2QsV0FBS3NDLFFBQUwsQ0FBYztBQUNadEMsUUFBQUEsS0FBSyxFQUFFQTtBQURLLE9BQWQ7QUFHRDs7O1dBQ0QscUJBQVlJLElBQVosRUFBa0I7QUFDaEIseUJBQWlFLEtBQUtQLEtBQXRFO0FBQUEsK0NBQU1tRCxVQUFOO0FBQUEsVUFBTUEsVUFBTixzQ0FBbUIsT0FBbkI7QUFBQSwrQ0FBNEJ4QyxVQUE1QjtBQUFBLFVBQTRCQSxVQUE1QixzQ0FBeUMsT0FBekM7QUFBQSw0Q0FBa0ROLEtBQWxEO0FBQUEsVUFBa0RBLEtBQWxELG1DQUEwRCxFQUExRDtBQUNBLFVBQUkrQyxTQUFTLEdBQUcsRUFBaEI7O0FBRmdCLGlDQUdQeEIsQ0FITztBQUlkLFlBQUksUUFBT3JCLElBQUksQ0FBQ3FCLENBQUQsQ0FBWCxNQUFtQixRQUF2QixFQUFpQztBQUMvQixjQUFJeUIsR0FBRyxxQkFBUTlDLElBQUksQ0FBQ3FCLENBQUQsQ0FBWixDQUFQOztBQUNBLGNBQUl6QixPQUFLLEdBQUcsRUFBWjs7QUFDQSxjQUFJUSxVQUFVLENBQUNjLEtBQVgsQ0FBaUIsR0FBakIsRUFBc0JGLE1BQXRCLElBQWdDLENBQXBDLEVBQXVDO0FBQ3JDcEIsWUFBQUEsT0FBSyxHQUFHSSxJQUFJLENBQUNxQixDQUFELENBQUosQ0FBUWpCLFVBQVIsQ0FBUjtBQUNELFdBRkQsTUFFTztBQUNMLGdCQUFNYSxXQUFnQixHQUFHYixVQUFVLENBQUNjLEtBQVgsQ0FBaUIsR0FBakIsQ0FBekI7QUFDQUQsWUFBQUEsV0FBVyxDQUFDRSxHQUFaLENBQWdCLFVBQUNHLENBQUQsRUFBSUMsS0FBSixFQUFjO0FBQzVCM0IsY0FBQUEsT0FBSyxHQUFHMkIsS0FBSyxJQUFJLENBQVQsR0FBYTNCLE9BQUssR0FBR0ksSUFBSSxDQUFDcUIsQ0FBRCxDQUFKLENBQVFDLENBQVIsQ0FBckIsR0FBa0MxQixPQUFLLEdBQUcsR0FBUixHQUFjSSxJQUFJLENBQUNxQixDQUFELENBQUosQ0FBUUMsQ0FBUixDQUF4RDtBQUNELGFBRkQ7QUFHRDs7QUFDRCxjQUFJeUIsS0FBSyxHQUFHLEVBQVo7O0FBQ0EsY0FBSUgsVUFBVSxDQUFDMUIsS0FBWCxDQUFpQixHQUFqQixFQUFzQkYsTUFBdEIsSUFBZ0MsQ0FBcEMsRUFBdUM7QUFDckMrQixZQUFBQSxLQUFLLEdBQUcvQyxJQUFJLENBQUNxQixDQUFELENBQUosQ0FBUXVCLFVBQVIsQ0FBUjtBQUNELFdBRkQsTUFFTztBQUNMLGdCQUFNSSxXQUFnQixHQUFHSixVQUFVLENBQUMxQixLQUFYLENBQWlCLEdBQWpCLENBQXpCO0FBQ0E4QixZQUFBQSxXQUFXLENBQUM3QixHQUFaLENBQWdCLFVBQUM4QixDQUFELEVBQUkxQixLQUFKLEVBQWM7QUFDNUJ3QixjQUFBQSxLQUFLLEdBQUd4QixLQUFLLElBQUksQ0FBVCxHQUFhd0IsS0FBSyxHQUFHL0MsSUFBSSxDQUFDcUIsQ0FBRCxDQUFKLENBQVE0QixDQUFSLENBQXJCLEdBQWtDRixLQUFLLEdBQUcsR0FBUixHQUFjL0MsSUFBSSxDQUFDcUIsQ0FBRCxDQUFKLENBQVE0QixDQUFSLENBQXhEO0FBQ0QsYUFGRDtBQUdEOztBQUNESCxVQUFBQSxHQUFHLENBQUNDLEtBQUosR0FBWUEsS0FBWjtBQUNBRCxVQUFBQSxHQUFHLENBQUNsRCxLQUFKLEdBQVlBLE9BQVo7QUFDQWtELFVBQUFBLEdBQUcsQ0FBQ0ksUUFBSixHQUFlbEQsSUFBSSxDQUFDcUIsQ0FBRCxDQUFKLENBQVE2QixRQUFSLEdBQW1CbEQsSUFBSSxDQUFDcUIsQ0FBRCxDQUFKLENBQVE2QixRQUEzQixHQUFzQyxLQUFyRDtBQUNBTCxVQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUwsR0FBZjtBQUNELFNBeEJELE1Bd0JPO0FBQ0wsY0FBSUEsSUFBRyxHQUFHLEVBQVY7QUFDQUEsVUFBQUEsSUFBRyxDQUFDQyxLQUFKLEdBQVkvQyxJQUFJLENBQUNxQixDQUFELENBQWhCO0FBQ0F5QixVQUFBQSxJQUFHLENBQUNsRCxLQUFKLEdBQVlJLElBQUksQ0FBQ3FCLENBQUQsQ0FBaEI7QUFDQXlCLFVBQUFBLElBQUcsQ0FBQ0ksUUFBSixHQUFlLEtBQWY7QUFDQUwsVUFBQUEsU0FBUyxDQUFDTSxJQUFWLENBQWVMLElBQWY7QUFDRDtBQWxDYTs7QUFHaEIsV0FBSyxJQUFJekIsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR3JCLElBQUksQ0FBQ2dCLE1BQXpCLEVBQWlDSyxDQUFDLEVBQWxDLEVBQXNDO0FBQUEsY0FBN0JBLENBQTZCO0FBZ0NyQzs7QUFDRCxhQUFPd0IsU0FBUDtBQUNEOzs7V0FDRCw2QkFBb0I7QUFDbEIseUJBQW9DLEtBQUtwRCxLQUF6QztBQUFBLFVBQVFPLElBQVIsZ0JBQVFBLElBQVI7QUFBQSxVQUFjRCxPQUFkLGdCQUFjQSxPQUFkO0FBQUEsVUFBdUJFLFFBQXZCLGdCQUF1QkEsUUFBdkI7O0FBQ0EsVUFBSSxDQUFDQSxRQUFELEtBQWNELElBQUksSUFBSUQsT0FBdEIsQ0FBSixFQUFvQztBQUNsQyxhQUFLbUMsUUFBTCxDQUFjO0FBQ1p4QyxVQUFBQSxVQUFVLEVBQUUsS0FBS3VDLFdBQUwsQ0FBaUJqQyxJQUFJLEdBQUdBLElBQUgsR0FBVUQsT0FBL0IsQ0FEQTtBQUVaSixVQUFBQSxTQUFTLEVBQUVLLElBQUksR0FBR0EsSUFBSCxHQUFVRDtBQUZiLFNBQWQ7QUFJRDtBQUNGOzs7V0FFRCw4QkFBcUI7QUFDbkIsVUFBUUosU0FBUixHQUFzQixLQUFLZ0QsS0FBM0IsQ0FBUWhELFNBQVI7QUFDQSx5QkFBMEIsS0FBS0YsS0FBL0I7QUFBQSxVQUFRTyxJQUFSLGdCQUFRQSxJQUFSO0FBQUEsVUFBY0QsT0FBZCxnQkFBY0EsT0FBZDtBQUNBLFVBQU1nQixPQUFPLEdBQUdmLElBQUksR0FBR0EsSUFBSCxHQUFVRCxPQUE5Qjs7QUFDQSxVQUFJQyxJQUFJLElBQUlELE9BQVosRUFBcUI7QUFDbkIsWUFBSXFELElBQUksQ0FBQ0MsU0FBTCxDQUFlMUQsU0FBZixNQUE4QnlELElBQUksQ0FBQ0MsU0FBTCxDQUFldEMsT0FBZixDQUFsQyxFQUEyRDtBQUN6RCxlQUFLbUIsUUFBTCxDQUFjO0FBQ1p4QyxZQUFBQSxVQUFVLEVBQUUsS0FBS3VDLFdBQUwsQ0FBaUJsQixPQUFqQixDQURBO0FBRVpwQixZQUFBQSxTQUFTLEVBQUVvQjtBQUZDLFdBQWQ7QUFJRDtBQUNGO0FBQ0Y7OztXQUVELGtCQUFTO0FBQUE7O0FBQ1AseUJBQXdDLEtBQUt0QixLQUE3QztBQUFBLFVBQVFRLFFBQVIsZ0JBQVFBLFFBQVI7QUFBQSwrQ0FBa0J1QyxTQUFsQjtBQUFBLFVBQWtCQSxTQUFsQixzQ0FBOEIsS0FBOUI7QUFDQSxVQUFJYyxNQUFKO0FBQ0FBLE1BQUFBLE1BQU0sR0FBR3JELFFBQVQ7QUFDQSxVQUFNc0QsT0FBTyxHQUFHQyxLQUFLLENBQUNELE9BQU4sQ0FBY3RELFFBQWQsQ0FBaEI7O0FBQ0EsVUFBSXVDLFNBQUosRUFBZTtBQUNiLFlBQUllLE9BQUosRUFBYTtBQUNYLGlCQUFPRCxNQUFNLENBQUNuQyxHQUFQLENBQVcsVUFBQ3NDLEtBQUQsRUFBUWxDLEtBQVIsRUFBa0I7QUFDbEMsZ0JBQUltQyxRQUFRLEdBQUcsTUFBSSxDQUFDakUsS0FBTCxDQUFXRyxLQUFYLEtBQXFCNkQsS0FBSyxDQUFDaEUsS0FBTixDQUFZRyxLQUFqQyxHQUF5QyxJQUF6QyxHQUFnRCxLQUEvRDtBQUNBLGdDQUFPVixLQUFLLENBQUN5RSxZQUFOLENBQW1CRixLQUFuQixFQUEwQjtBQUMvQlYsY0FBQUEsS0FBSyxFQUFFVSxLQUFLLENBQUNoRSxLQUFOLENBQVlRLFFBRFk7QUFFL0JMLGNBQUFBLEtBQUssRUFBRTZELEtBQUssQ0FBQ2hFLEtBQU4sQ0FBWUcsS0FGWTtBQUcvQmdFLGNBQUFBLE1BQU0sRUFBRUYsUUFIdUI7QUFJL0JHLGNBQUFBLE9BQU8sRUFBRSxNQUFJLENBQUNDLGtCQUFMLENBQXdCQyxJQUF4QixDQUE2QixNQUE3QixFQUFtQ04sS0FBSyxDQUFDaEUsS0FBTixDQUFZRyxLQUEvQyxDQUpzQjtBQUsvQm9FLGNBQUFBLEdBQUcsRUFBRXpDO0FBTDBCLGFBQTFCLENBQVA7QUFPRCxXQVRNLENBQVA7QUFVRCxTQVhELE1BV087QUFDTCxjQUFJbUMsUUFBUSxHQUFHLEtBQUtqRSxLQUFMLENBQVdHLEtBQVgsS0FBcUIwRCxNQUFNLENBQUM3RCxLQUFQLENBQWFHLEtBQWxDLEdBQTBDLElBQTFDLEdBQWlELEtBQWhFO0FBQ0EsOEJBQU9WLEtBQUssQ0FBQ3lFLFlBQU4sQ0FBbUJMLE1BQW5CLEVBQTJCO0FBQ2hDUCxZQUFBQSxLQUFLLEVBQUVPLE1BQU0sQ0FBQzdELEtBQVAsQ0FBYVEsUUFEWTtBQUVoQ0wsWUFBQUEsS0FBSyxFQUFFMEQsTUFBTSxDQUFDN0QsS0FBUCxDQUFhRyxLQUZZO0FBR2hDZ0UsWUFBQUEsTUFBTSxFQUFFRixRQUh3QjtBQUloQ0csWUFBQUEsT0FBTyxFQUFFLEtBQUtDLGtCQUFMLENBQXdCQyxJQUF4QixDQUE2QixJQUE3QixFQUFtQ1QsTUFBTSxDQUFDN0QsS0FBUCxDQUFhRyxLQUFoRDtBQUp1QixXQUEzQixDQUFQO0FBTUQ7QUFDRixPQXJCRCxNQXFCTztBQUNMLDJCQUFxQyxLQUFLSCxLQUExQztBQUFBLFlBQVFPLElBQVIsZ0JBQVFBLElBQVI7QUFBQSxZQUFjRCxPQUFkLGdCQUFjQSxPQUFkO0FBQUEsWUFBMEJrRSxNQUExQjs7QUFDQSxZQUFNQyxVQUFVLEdBQUc5RSxJQUFJLG1CQUFNNkUsTUFBTixHQUFnQixDQUNyQyxPQURxQyxFQUVyQyxZQUZxQyxFQUdyQyxZQUhxQyxFQUlyQyxXQUpxQyxFQUtyQyxVQUxxQyxFQU1yQyxTQU5xQyxFQU9yQyxZQVBxQyxDQUFoQixDQUF2QjtBQVNBRSxRQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxPQUFaLEVBQXFCLEtBQUt6QixLQUFMLENBQVcvQyxLQUFoQztBQUNBLDRCQUNFLHVEQUNFLDJCQUFPLEtBQVA7QUFDRSxVQUFBLEtBQUssRUFBRSxLQUFLK0MsS0FBTCxDQUFXL0MsS0FEcEI7QUFFRSxVQUFBLE9BQU8sRUFBRSxLQUFLK0MsS0FBTCxDQUFXakQsVUFGdEI7QUFHRSxVQUFBLFFBQVEsRUFBRSxLQUFLb0Usa0JBQUwsQ0FBd0JDLElBQXhCLENBQTZCLElBQTdCO0FBSFosV0FJTUcsVUFKTixFQURGLENBREY7QUFVRDtBQUNGOzs7O0VBN09xQy9FLFM7O1NBQW5CSyxVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTI0IDE0OjMzOjM1XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0yMyAxNjo0NjoxN1xyXG4gKi9cclxuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBSYWRpbywgUmFkaW9Hcm91cFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uL2NvbmZpZ1wiO1xyXG5cclxuaW50ZXJmYWNlIElSYWRpb0dyb3VwUHJvcHMgZXh0ZW5kcyBSYWRpb0dyb3VwUHJvcHMge1xyXG4gIGN1c3RvbWl6ZT86IGJvb2xlYW47XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGRhdGE/OiBBcnJheTxzdHJpbmcgfCBPYmplY3Q+OyAvL+m7mOiupOaVsOaNrlxyXG4gIGxhYmVsRmllbGQ/OiBzdHJpbmc7XHJcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcclxuICBhZGREYXRhPzogQXJyYXk8c3RyaW5nIHwgT2JqZWN0PjsgLy/kuI5zdG9yZeS4gOi1t+eUqFxyXG4gIGRlbGV0ZURhdGE/OiBBcnJheTxzdHJpbmc+O1xyXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFkaW9Hcm91cCBleHRlbmRzIENvbXBvbmVudDxJUmFkaW9Hcm91cFByb3BzPiB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIGRhdGFTdG9yZTogW10sXHJcbiAgICB2YWx1ZTogXCJcIixcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICAgIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBsZXQgeyB2aWV3VXJsIH0gPSBjb25maWcoKTtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHVybCxcclxuICAgICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgICB2aWV3bmFtZSxcclxuICAgICAgICBjYWNoZWQsXHJcbiAgICAgICAgY2FjaGVLZXksXHJcbiAgICAgICAgLi4uc3RvcmVzXHJcbiAgICAgIH0gPSBzdG9yZTtcclxuICAgICAgaWYgKCF1cmwgJiYgIW9wdGlvbnMgJiYgIWRhdGEgJiYgIXZpZXduYW1lKVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeWSjG9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIGNvbnN0IGdldEFsbERhdGEgPSAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGxldCBuZXdEYXRhID0gWy4uLmRhdGFdO1xyXG4gICAgICAgIGlmIChhZGREYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIG5ld0RhdGEgPSBbLi4uYWRkRGF0YSwgLi4ubmV3RGF0YV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkZWxldGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIG5ld0RhdGEubWFwKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgIGxldCB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBpdGVtW3ZdIDogdmFsdWUgKyBcIixcIiArIGl0ZW1bdl07XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZih2YWx1ZSkgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgbmV3RGF0YS5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZihpdGVtKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdEYXRhLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgICAgfTtcclxuICAgICAgdmFyIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhU291cmNlID0gX3RoaXMuY29udmVydERhdGEoZ2V0QWxsRGF0YShkYXRhKSk7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IF90aGlzLmNvbnZlcnREYXRhKGdldEFsbERhdGEoZGF0YSkpLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5kYXRhQ2hhbmdlZCwgX3RoaXMsIFtcclxuICAgICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICAgIG1vZGVsRGF0YSxcclxuICAgICAgICAgICAgICBzdG9yZSxcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4uc3RvcmVzLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoKHZpZXduYW1lIHx8IHVybCkgJiYgZGF0YSA9PSBudWxsICYmIG9wdGlvbnMgPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBpc0NhY2hlZCA9IGNhY2hlZDtcclxuICAgICAgICBsZXQgaXNDYWNoZUtleSA9IGNhY2hlS2V5O1xyXG4gICAgICAgIGlmICh2aWV3bmFtZSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZWQgIT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaXNDYWNoZUtleSA9IGlzQ2FjaGVLZXkgPyBpc0NhY2hlS2V5IDogdmlld25hbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCA/IHVybCA6IHZpZXdVcmwgKyB2aWV3bmFtZSwgLy/or7vlrZflhbjvvIx1cmzlm7rlrprvvIx2aWV3bmFtZVxyXG4gICAgICAgICAgICBjYWNoZWQ6IGlzQ2FjaGVkLFxyXG4gICAgICAgICAgICBjYWNoZUtleTogaXNDYWNoZUtleSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5zdG9yZVByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBTdG9yZShzdG9yZVByb3BzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUFjdGl2ZUNoYW5nZShlKSB7XHJcbiAgICBjb25zdCB7IGN1c3RvbWl6ZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoY3VzdG9taXplKSB7XHJcbiAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKGUpO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB2YWx1ZTogZSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB2YWx1ZTogZS50YXJnZXQudmFsdWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShlLnRhcmdldC52YWx1ZSwgZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUudmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnZlcnREYXRhKGRhdGEpIHtcclxuICAgIGxldCB7IGxhYmVsRmllbGQgPSBcImxhYmVsXCIsIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsIHN0b3JlID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgZGF0YVNvdXJlID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2ldID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHsgLi4uZGF0YVtpXSB9O1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgaWYgKHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaV1bdmFsdWVGaWVsZF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBkYXRhW2ldW3ZdIDogdmFsdWUgKyBcIixcIiArIGRhdGFbaV1bdl07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgIGxhYmVsID0gZGF0YVtpXVtsYWJlbEZpZWxkXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBsYWJlbCArIGRhdGFbaV1bbF0gOiBsYWJlbCArIFwiLVwiICsgZGF0YVtpXVtsXTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvYmoubGFiZWwgPSBsYWJlbDtcclxuICAgICAgICBvYmoudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICBvYmouZGlzYWJsZWQgPSBkYXRhW2ldLmRpc2FibGVkID8gZGF0YVtpXS5kaXNhYmxlZCA6IGZhbHNlO1xyXG4gICAgICAgIGRhdGFTb3VyZS5wdXNoKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9IGFzIHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueTsgZGlzYWJsZWQ/OiBib29sZWFuIH07XHJcbiAgICAgICAgb2JqLmxhYmVsID0gZGF0YVtpXTtcclxuICAgICAgICBvYmoudmFsdWUgPSBkYXRhW2ldO1xyXG4gICAgICAgIG9iai5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGRhdGFTb3VyZS5wdXNoKG9iaik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhU291cmU7XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghY2hpbGRyZW4gJiYgKGRhdGEgfHwgb3B0aW9ucykpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5jb252ZXJ0RGF0YShkYXRhID8gZGF0YSA6IG9wdGlvbnMpLFxyXG4gICAgICAgIGRhdGFTdG9yZTogZGF0YSA/IGRhdGEgOiBvcHRpb25zLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IHsgZGF0YVN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RGF0YSA9IGRhdGEgPyBkYXRhIDogb3B0aW9ucztcclxuICAgIGlmIChkYXRhIHx8IG9wdGlvbnMpIHtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGRhdGFTdG9yZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiB0aGlzLmNvbnZlcnREYXRhKG5ld0RhdGEpLFxyXG4gICAgICAgICAgZGF0YVN0b3JlOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjdXN0b21pemUgPSBmYWxzZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCByYWRpb3M6IGFueTtcclxuICAgIHJhZGlvcyA9IGNoaWxkcmVuO1xyXG4gICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pO1xyXG4gICAgaWYgKGN1c3RvbWl6ZSkge1xyXG4gICAgICBpZiAoaXNBcnJheSkge1xyXG4gICAgICAgIHJldHVybiByYWRpb3MubWFwKChjaGlsZCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGxldCBpc0FjdGl2ZSA9IHRoaXMucHJvcHMudmFsdWUgPT09IGNoaWxkLnByb3BzLnZhbHVlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICBsYWJlbDogY2hpbGQucHJvcHMuY2hpbGRyZW4sXHJcbiAgICAgICAgICAgIHZhbHVlOiBjaGlsZC5wcm9wcy52YWx1ZSxcclxuICAgICAgICAgICAgYWN0aXZlOiBpc0FjdGl2ZSxcclxuICAgICAgICAgICAgb25DbGljazogdGhpcy5oYW5kbGVBY3RpdmVDaGFuZ2UuYmluZCh0aGlzLCBjaGlsZC5wcm9wcy52YWx1ZSksXHJcbiAgICAgICAgICAgIGtleTogaW5kZXgsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgaXNBY3RpdmUgPSB0aGlzLnByb3BzLnZhbHVlID09PSByYWRpb3MucHJvcHMudmFsdWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChyYWRpb3MsIHtcclxuICAgICAgICAgIGxhYmVsOiByYWRpb3MucHJvcHMuY2hpbGRyZW4sXHJcbiAgICAgICAgICB2YWx1ZTogcmFkaW9zLnByb3BzLnZhbHVlLFxyXG4gICAgICAgICAgYWN0aXZlOiBpc0FjdGl2ZSxcclxuICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQWN0aXZlQ2hhbmdlLmJpbmQodGhpcywgcmFkaW9zLnByb3BzLnZhbHVlKSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCAuLi5wYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IFJhZGlvUHJvcHMgPSBvbWl0KHsgLi4ucGFyYW1zIH0sIFtcclxuICAgICAgICBcInN0b3JlXCIsXHJcbiAgICAgICAgXCJsYWJlbEZpZWxkXCIsXHJcbiAgICAgICAgXCJ2YWx1ZUZpZWxkXCIsXHJcbiAgICAgICAgXCJjdXN0b21pemVcIixcclxuICAgICAgICBcIm9uQ2hhbmdlXCIsXHJcbiAgICAgICAgXCJhZGREYXRhXCIsXHJcbiAgICAgICAgXCJkZWxldGVEYXRhXCIsXHJcbiAgICAgIF0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhcInZhbHVlXCIsIHRoaXMuc3RhdGUudmFsdWUpO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICA8UmFkaW8uR3JvdXBcclxuICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUudmFsdWV9XHJcbiAgICAgICAgICAgIG9wdGlvbnM9e3RoaXMuc3RhdGUuZGF0YVNvdXJjZX1cclxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQWN0aXZlQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIHsuLi5SYWRpb1Byb3BzfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -8,6 +8,8 @@ interface ISelectProps extends SelectProps<any> {
8
8
  valueField?: string;
9
9
  defaultStyle?: boolean;
10
10
  showGroup?: boolean;
11
+ addData: Array<Object>;
12
+ deleteData?: Array<String>;
11
13
  }
12
14
  export default class NSCSelect extends PureComponent<ISelectProps> {
13
15
  static Option: import("rc-select/lib/Option").OptionFC;
@@ -15,16 +17,20 @@ export default class NSCSelect extends PureComponent<ISelectProps> {
15
17
  state: {
16
18
  dataSource: any[];
17
19
  selectValue: any;
20
+ allDataSource: any[];
21
+ children: any;
18
22
  };
19
23
  store: any;
20
24
  static getDerivedStateFromProps(nextProps: any, prevState: any): {
21
25
  dataSource: any;
26
+ allDataSource: any;
22
27
  };
23
28
  constructor(props: any);
24
29
  getData(): any[];
25
30
  getValue(): any;
26
31
  setValue(value: any): void;
27
32
  componentDidMount(): void;
33
+ onSearch(value: any): void;
28
34
  renderOption(optionData: any): any;
29
35
  renderChildren(): JSX.Element;
30
36
  onChange(value: any, options: any): void;
@@ -3,7 +3,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
3
3
  import "antd/es/select/style/css";
4
4
  import _Select from "antd/es/select";
5
5
  var _excluded = ["url", "listeners", "viewname", "cached", "cacheKey"],
6
- _excluded2 = ["children", "store", "data", "onChange", "options", "labelField", "valueField", "defaultStyle", "showGroup"];
6
+ _excluded2 = ["children", "store", "data", "onChange", "options", "labelField", "valueField", "defaultStyle", "showGroup", "addData", "deleteData"];
7
7
 
8
8
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
9
9
 
@@ -11,6 +11,18 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
11
11
 
12
12
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
13
 
14
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
+
16
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+
20
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
+
22
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
+
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+
14
26
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
27
 
16
28
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -43,6 +55,7 @@ import { utils } from "@bj-nsc/msn/lib/utils";
43
55
  import config from "../config";
44
56
  import styles from "./index.less";
45
57
  import cls from "classnames";
58
+ import PinyinMatch from "pinyin-match";
46
59
  var Option = _Select.Option,
47
60
  OptGroup = _Select.OptGroup;
48
61
 
@@ -60,7 +73,9 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
60
73
 
61
74
  _defineProperty(_assertThisInitialized(_this2), "state", {
62
75
  dataSource: [],
63
- selectValue: null
76
+ selectValue: null,
77
+ allDataSource: [],
78
+ children: null
64
79
  });
65
80
 
66
81
  _defineProperty(_assertThisInitialized(_this2), "store", {});
@@ -69,7 +84,13 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
69
84
  _props$store = props.store,
70
85
  store = _props$store === void 0 ? {} : _props$store,
71
86
  children = props.children,
72
- options = props.options;
87
+ options = props.options,
88
+ _props$addData = props.addData,
89
+ addData = _props$addData === void 0 ? [] : _props$addData,
90
+ _props$deleteData = props.deleteData,
91
+ deleteData = _props$deleteData === void 0 ? [] : _props$deleteData,
92
+ _props$valueField = props.valueField,
93
+ valueField = _props$valueField === void 0 ? "value" : _props$valueField;
73
94
 
74
95
  var url = store.url,
75
96
  _store$listeners = store.listeners,
@@ -82,6 +103,30 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
82
103
  var _config = config(),
83
104
  viewUrl = _config.viewUrl;
84
105
 
106
+ var getAllData = function getAllData(data) {
107
+ var newData = _toConsumableArray(data);
108
+
109
+ if (addData.length > 0) {
110
+ newData = [].concat(_toConsumableArray(addData), _toConsumableArray(newData));
111
+ }
112
+
113
+ if (deleteData.length > 0) {
114
+ var valueFields = valueField.split(",");
115
+ newData.map(function (item, i) {
116
+ var value = "";
117
+ valueFields.map(function (v, index) {
118
+ value = index == 0 ? value + item[v] : value + "," + item[v];
119
+ });
120
+
121
+ if (deleteData.indexOf(value) > -1) {
122
+ newData.splice(i, 1);
123
+ }
124
+ });
125
+ }
126
+
127
+ return newData;
128
+ };
129
+
85
130
  if (!children) {
86
131
  if (!(data || viewname || url || options)) {
87
132
  throw new Error("url、viewname、data、options不能都为空!");
@@ -97,15 +142,21 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
97
142
  utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);
98
143
  },
99
144
  load: function load(data, modelData, store) {
145
+ var newData = getAllData(data);
146
+
100
147
  _this.setState({
101
- dataSource: modelData
148
+ dataSource: newData,
149
+ allDataSource: newData
102
150
  });
103
151
 
104
152
  utils.callback(listenersPops.load, _this, [data, modelData, store]);
105
153
  },
106
154
  dataChanged: function dataChanged(data, modelData, store) {
155
+ var newData = getAllData(data);
156
+
107
157
  _this.setState({
108
- dataSource: modelData
158
+ dataSource: newData,
159
+ allDataSource: newData
109
160
  });
110
161
 
111
162
  utils.callback(listenersPops.dataChanged, _this, [data, modelData, store]);
@@ -142,7 +193,7 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
142
193
  _createClass(NSCSelect, [{
143
194
  key: "getData",
144
195
  value: function getData() {
145
- return this.state.dataSource;
196
+ return this.state.allDataSource;
146
197
  }
147
198
  }, {
148
199
  key: "getValue",
@@ -166,20 +217,96 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
166
217
 
167
218
  if (!children && (data || options)) {
168
219
  this.setState({
169
- dataSource: data ? data : options
220
+ dataSource: data ? data : options,
221
+ allDataSource: data ? data : options
222
+ });
223
+ } else if (children) {
224
+ this.setState({
225
+ children: children
170
226
  });
171
227
  }
172
228
  }
173
229
  }, {
174
- key: "renderOption",
175
- value: function renderOption(optionData) {
230
+ key: "onSearch",
231
+ value: function onSearch(value) {
232
+ var allDataSource = this.state.allDataSource;
176
233
  var _this$props2 = this.props,
177
234
  _this$props2$labelFie = _this$props2.labelField,
178
235
  labelField = _this$props2$labelFie === void 0 ? "label" : _this$props2$labelFie,
179
- _this$props2$valueFie = _this$props2.valueField,
180
- valueField = _this$props2$valueFie === void 0 ? "value" : _this$props2$valueFie,
181
- _this$props2$store = _this$props2.store,
182
- store = _this$props2$store === void 0 ? {} : _this$props2$store;
236
+ _this$props2$filterOp = _this$props2.filterOption,
237
+ filterOption = _this$props2$filterOp === void 0 ? true : _this$props2$filterOp,
238
+ onSearch = _this$props2.onSearch,
239
+ children = _this$props2.children;
240
+
241
+ if (filterOption) {
242
+ var result = [];
243
+
244
+ if (!children) {
245
+ if (value) {
246
+ allDataSource.forEach(function (item) {
247
+ var label = "";
248
+
249
+ if (labelField.split(",").length == 1) {
250
+ label = item[labelField];
251
+ } else {
252
+ var labelFields = labelField.split(",");
253
+ labelFields.map(function (l, index) {
254
+ label = index == 0 ? label + item[l] : label + "-" + item[l];
255
+ });
256
+ }
257
+
258
+ var flag = PinyinMatch.match(label, value);
259
+
260
+ if (flag) {
261
+ result.push(item);
262
+ }
263
+ });
264
+ this.setState({
265
+ dataSource: result
266
+ });
267
+ } else {
268
+ this.setState({
269
+ dataSource: allDataSource
270
+ });
271
+ }
272
+ } else {
273
+ if (value) {
274
+ if (Array.isArray(children)) {
275
+ children.map(function (child, index) {
276
+ var _child$props;
277
+
278
+ var label = child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children;
279
+ var flag = PinyinMatch.match(label, value);
280
+
281
+ if (flag) {
282
+ result.push(child);
283
+ }
284
+ });
285
+ }
286
+
287
+ this.setState({
288
+ children: result
289
+ });
290
+ } else {
291
+ this.setState({
292
+ children: children
293
+ });
294
+ }
295
+ }
296
+ }
297
+
298
+ onSearch && onSearch(value);
299
+ }
300
+ }, {
301
+ key: "renderOption",
302
+ value: function renderOption(optionData) {
303
+ var _this$props3 = this.props,
304
+ _this$props3$labelFie = _this$props3.labelField,
305
+ labelField = _this$props3$labelFie === void 0 ? "label" : _this$props3$labelFie,
306
+ _this$props3$valueFie = _this$props3.valueField,
307
+ valueField = _this$props3$valueFie === void 0 ? "value" : _this$props3$valueFie,
308
+ _this$props3$store = _this$props3.store,
309
+ store = _this$props3$store === void 0 ? {} : _this$props3$store;
183
310
  return optionData.map(function (item) {
184
311
  var value = "";
185
312
 
@@ -217,11 +344,11 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
217
344
  value: function renderChildren() {
218
345
  var _this3 = this;
219
346
 
220
- var _this$props3 = this.props,
221
- children = _this$props3.children,
222
- _this$props3$showGrou = _this$props3.showGroup,
223
- showGroup = _this$props3$showGrou === void 0 ? true : _this$props3$showGrou;
224
- var dataSource = this.state.dataSource;
347
+ var _this$props$showGroup = this.props.showGroup,
348
+ showGroup = _this$props$showGroup === void 0 ? true : _this$props$showGroup;
349
+ var _this$state = this.state,
350
+ dataSource = _this$state.dataSource,
351
+ children = _this$state.children;
225
352
 
226
353
  if (children) {
227
354
  return /*#__PURE__*/React.createElement(React.Fragment, null, children);
@@ -275,9 +402,12 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
275
402
  defaultStyle = _this$props4$defaultS === void 0 ? true : _this$props4$defaultS,
276
403
  _this$props4$showGrou = _this$props4.showGroup,
277
404
  showGroup = _this$props4$showGrou === void 0 ? true : _this$props4$showGrou,
405
+ addData = _this$props4.addData,
406
+ deleteData = _this$props4.deleteData,
278
407
  params = _objectWithoutProperties(_this$props4, _excluded2);
279
408
 
280
409
  var props = {
410
+ filterOption: false,
281
411
  showSearch: true,
282
412
  optionFilterProp: "label",
283
413
  placeholder: "请选择",
@@ -288,22 +418,22 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
288
418
  return /*#__PURE__*/React.createElement("div", {
289
419
  className: cls(styles["nsc_select"], this.props.className)
290
420
  }, /*#__PURE__*/React.createElement(_Select, _extends({
291
- value: this.state.selectValue
292
- }, props, params, {
293
- onChange: this.onChange.bind(this)
294
- }), this.renderChildren()));
421
+ value: this.state.selectValue,
422
+ onChange: this.onChange.bind(this),
423
+ onSearch: this.onSearch.bind(this)
424
+ }, props, params), this.renderChildren()));
295
425
  } else {
296
426
  return /*#__PURE__*/React.createElement(_Select, _extends({
297
- value: this.state.selectValue
298
- }, props, params, {
427
+ value: this.state.selectValue,
428
+ onSearch: this.onSearch.bind(this),
299
429
  onChange: this.onChange.bind(this)
300
- }), this.renderChildren());
430
+ }, props, params), this.renderChildren());
301
431
  }
302
432
  }
303
433
  }], [{
304
434
  key: "getDerivedStateFromProps",
305
435
  value: function getDerivedStateFromProps(nextProps, prevState) {
306
- var dataSource = prevState.dataSource;
436
+ var allDataSource = prevState.allDataSource;
307
437
  var data = nextProps.data,
308
438
  options = nextProps.options,
309
439
  store = nextProps.store;
@@ -311,9 +441,10 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
311
441
  if (data || options) {
312
442
  var newData = data ? data : options;
313
443
 
314
- if (JSON.stringify(dataSource) !== JSON.stringify(newData)) {
444
+ if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {
315
445
  return {
316
- dataSource: newData
446
+ dataSource: newData,
447
+ allDataSource: newData
317
448
  };
318
449
  }
319
450
  }
@@ -330,4 +461,4 @@ _defineProperty(NSCSelect, "Option", Option);
330
461
  _defineProperty(NSCSelect, "OptGroup", OptGroup);
331
462
 
332
463
  export { NSCSelect as default };
333
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NlbGVjdC9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiU3RvcmUiLCJ1dGlscyIsImNvbmZpZyIsInN0eWxlcyIsImNscyIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiTlNDU2VsZWN0IiwicHJvcHMiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJkYXRhIiwic3RvcmUiLCJjaGlsZHJlbiIsIm9wdGlvbnMiLCJ1cmwiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQb3BzIiwidmlld25hbWUiLCJjYWNoZWQiLCJjYWNoZUtleSIsInN0b3JlcyIsInZpZXdVcmwiLCJFcnJvciIsIl90aGlzIiwic3RvcmVQcm9wcyIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJkYXRhQ2hhbmdlZCIsImlzQ2FjaGVkIiwiaXNDYWNoZUtleSIsImF1dG9Mb2FkIiwic3RhdGUiLCJ2YWx1ZSIsIm9wdGlvbkRhdGEiLCJsYWJlbEZpZWxkIiwidmFsdWVGaWVsZCIsIm1hcCIsIml0ZW0iLCJzcGxpdCIsImxlbmd0aCIsInZhbHVlRmllbGRzIiwidiIsImluZGV4Iiwia2V5IiwiaWQiLCJsYWJlbCIsImxhYmVsRmllbGRzIiwibCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZm9yRWFjaCIsImdyb3VwTmFtZSIsInB1c2giLCJvcHRpb24iLCJyZW5kZXJPcHRpb24iLCJvcHRHcm91cCIsIk9iamVjdCIsImtleXMiLCJvbkNoYW5nZSIsImRlZmF1bHRTdHlsZSIsInBhcmFtcyIsInNob3dTZWFyY2giLCJvcHRpb25GaWx0ZXJQcm9wIiwicGxhY2Vob2xkZXIiLCJhbGxvd0NsZWFyIiwiY2xhc3NOYW1lIiwiYmluZCIsInJlbmRlckNoaWxkcmVuIiwibmV4dFByb3BzIiwicHJldlN0YXRlIiwi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S0MsY0FBTCxFQU5ILENBREYsQ0FERjtBQVlELE9BYkQsTUFhTztBQUNMLDRCQUNFO0FBQ0UsVUFBQSxLQUFLLEVBQUUsS0FBS3JDLEtBQUwsQ0FBVzNCO0FBRHBCLFdBRU1GLEtBRk4sRUFHTTJELE1BSE47QUFJRSxVQUFBLFFBQVEsRUFBRSxLQUFLRixRQUFMLENBQWNRLElBQWQsQ0FBbUIsSUFBbkI7QUFKWixZQU1HLEtBQUtDLGNBQUwsRUFOSCxDQURGO0FBVUQ7QUFDRjs7O1dBek5ELGtDQUFnQ0MsU0FBaEMsRUFBMkNDLFNBQTNDLEVBQTJEO0FBQ3pELFVBQVFuRSxVQUFSLEdBQXVCbUUsU0FBdkIsQ0FBUW5FLFVBQVI7QUFDQSxVQUFRRSxJQUFSLEdBQWlDZ0UsU0FBakMsQ0FBUWhFLElBQVI7QUFBQSxVQUFjRyxPQUFkLEdBQWlDNkQsU0FBakMsQ0FBYzdELE9BQWQ7QUFBQSxVQUF1QkYsS0FBdkIsR0FBaUMrRCxTQUFqQyxDQUF1Qi9ELEtBQXZCOztBQUNBLFVBQUlELElBQUksSUFBSUcsT0FBWixFQUFxQjtBQUNuQixZQUFNK0QsT0FBTyxHQUFHbEUsSUFBSSxHQUFHQSxJQUFILEdBQVVHLE9BQTlCOztBQUNBLFlBQUlnRSxJQUFJLENBQUNDLFNBQUwsQ0FBZXRFLFVBQWYsTUFBK0JxRSxJQUFJLENBQUNDLFNBQUwsQ0FBZUYsT0FBZixDQUFuQyxFQUE0RDtBQUMxRCxpQkFBTztBQUNMcEUsWUFBQUEsVUFBVSxFQUFFb0U7QUFEUCxXQUFQO0FBR0Q7QUFDRjs7QUFDRCxhQUFPLElBQVA7QUFDRDs7OztFQXBCb0M5RSxhOztnQkFBbEJRLFMsWUFDSEYsTTs7Z0JBREdFLFMsY0FFREQsUTs7U0FGQ0MsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vY29uZmlnXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmNvbnN0IHsgT3B0aW9uLCBPcHRHcm91cCB9ID0gU2VsZWN0O1xyXG5cclxuaW50ZXJmYWNlIElTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdFN0eWxlPzogYm9vbGVhbjtcclxuICBzaG93R3JvdXA/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWIhue7hFxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5TQ1NlbGVjdCBleHRlbmRzIFB1cmVDb21wb25lbnQ8SVNlbGVjdFByb3BzPiB7XHJcbiAgc3RhdGljIE9wdGlvbiA9IE9wdGlvbjtcclxuICBzdGF0aWMgT3B0R3JvdXAgPSBPcHRHcm91cDtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgc2VsZWN0VmFsdWU6IG51bGwsXHJcbiAgfTtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZTogYW55KSB7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UgfSA9IHByZXZTdGF0ZTtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgc3RvcmUgfSA9IG5leHRQcm9wcztcclxuICAgIGlmIChkYXRhIHx8IG9wdGlvbnMpIHtcclxuICAgICAgY29uc3QgbmV3RGF0YSA9IGRhdGEgPyBkYXRhIDogb3B0aW9ucztcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGRhdGFTb3VyY2UpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgeyBkYXRhLCBzdG9yZSA9IHt9LCBjaGlsZHJlbiwgb3B0aW9ucyB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIHZpZXduYW1lLFxyXG4gICAgICBjYWNoZWQsXHJcbiAgICAgIGNhY2hlS2V5LFxyXG4gICAgICAuLi5zdG9yZXNcclxuICAgIH0gPSBzdG9yZTtcclxuICAgIGxldCB7IHZpZXdVcmwgfSA9IGNvbmZpZygpO1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHZpZXduYW1lIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeOAgW9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG1vZGVsRGF0YSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5kYXRhQ2hhbmdlZCwgX3RoaXMsIFtcclxuICAgICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICAgIG1vZGVsRGF0YSxcclxuICAgICAgICAgICAgICBzdG9yZSxcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4uc3RvcmVzLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoKHZpZXduYW1lIHx8IHVybCkgJiYgZGF0YSA9PSBudWxsICYmIG9wdGlvbnMgPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBpc0NhY2hlZCA9IGNhY2hlZDtcclxuICAgICAgICBsZXQgaXNDYWNoZUtleSA9IGNhY2hlS2V5O1xyXG4gICAgICAgIGlmICh2aWV3bmFtZSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZWQgIT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaXNDYWNoZUtleSA9IGlzQ2FjaGVLZXkgPyBpc0NhY2hlS2V5IDogdmlld25hbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCB2aWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXJPcHRpb24ob3B0aW9uRGF0YSkge1xyXG4gICAgbGV0IHsgbGFiZWxGaWVsZCA9IFwibGFiZWxcIiwgdmFsdWVGaWVsZCA9IFwidmFsdWVcIiwgc3RvcmUgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBvcHRpb25EYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICBpZiAodmFsdWVGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICB2YWx1ZSA9IGl0ZW1bdmFsdWVGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkID8gKGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCIgPyBpdGVtLmlkIDogdmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8T3B0aW9uXHJcbiAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICA8L09wdGlvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJDaGlsZHJlbigpIHtcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4sIHNob3dHcm91cCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcHRHcm91cERhdGEgPSB7fSxcclxuICAgICAgICBvcHRpb25EYXRhID0gW107XHJcbiAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBsYWJlbCA9IGl0ZW0uZ3JvdXBOYW1lO1xyXG4gICAgICAgIGlmIChsYWJlbCAmJiBzaG93R3JvdXApIHtcclxuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xyXG4gICAgICAgICAgb3B0R3JvdXBEYXRhW2xhYmVsXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xyXG4gICAgICBsZXQgb3B0R3JvdXAgPSBPYmplY3Qua2V5cyhvcHRHcm91cERhdGEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlck9wdGlvbihvcHRHcm91cERhdGFba2V5XSl9XHJcbiAgICAgICAgICA8L09wdEdyb3VwPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAge29wdEdyb3VwfVxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBvbkNoYW5nZSxcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgbGFiZWxGaWVsZCxcclxuICAgICAgdmFsdWVGaWVsZCxcclxuICAgICAgZGVmYXVsdFN0eWxlID0gdHJ1ZSxcclxuICAgICAgc2hvd0dyb3VwID0gdHJ1ZSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHByb3BzID0ge1xyXG4gICAgICBzaG93U2VhcmNoOiB0cnVlLFxyXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBcIuivt+mAieaLqVwiLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGlmIChkZWZhdWx0U3R5bGUpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKHN0eWxlc1tcIm5zY19zZWxlY3RcIl0sIHRoaXMucHJvcHMuY2xhc3NOYW1lKX0+XHJcbiAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
464
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NlbGVjdC9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiU3RvcmUiLCJ1dGlscyIsImNvbmZpZyIsInN0eWxlcyIsImNscyIsIlBpbnlpbk1hdGNoIiwiT3B0aW9uIiwiT3B0R3JvdXAiLCJOU0NTZWxlY3QiLCJwcm9wcyIsImRhdGFTb3VyY2UiLCJzZWxlY3RWYWx1ZSIsImFsbERhdGFTb3VyY2UiLCJjaGlsZHJlbiIsImRhdGEiLCJzdG9yZSIsIm9wdGlvbnMiLCJhZGREYXRhIiwiZGVsZXRlRGF0YSIsInZhbHVlRmllbGQiLCJ1cmwiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQb3BzIiwidmlld25hbWUiLCJjYWNoZWQiLCJjYWNoZUtleSIsInN0b3JlcyIsInZpZXdVcmwiLCJnZXRBbGxEYXRhIiwibmV3RGF0YSIsImxlbmd0aCIsInZhbHVlRmllbGRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiaSIsInZhbHVlIiwidiIsImluZGV4IiwiaW5kZXhPZiIsInNwbGljZSIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvbkJlZm9yZUxvYWQiLCJjYWxsYmFjayIsImxvYWQiLCJtb2RlbERhdGEiLCJzZXRTdGF0ZSIsImRhdGFDaGFuZ2VkIiwiaXNDYWNoZWQiLCJpc0NhY2hlS2V5IiwiYXV0b0xvYWQiLCJzdGF0ZSIsImxhYmVsRmllbGQiLCJmaWx0ZXJPcHRpb24iLCJvblNlYXJjaCIsInJlc3VsdCIsImZvckVhY2giLCJsYWJlbCIsImxhYmVsRmllbGRzIiwibCIsImZsYWciLCJtYXRjaCIsInB1c2giLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZCIsIm9wdGlvbkRhdGEiLCJrZXkiLCJpZCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZ3JvdXBOYW1lIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwib25DaGFuZ2UiLCJkZWZhdWx0U3R5bGUiLCJwYXJhbXMiLCJzaG93U2VhcmNoIiwib3B0aW9uRmlsdGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiYWxsb3dDbGVhciIsImNsYXNzTmFtZSIsImJpbmQiLCJyZW5kZXJDaGlsZHJlbiIsIm5leHRQcm9wcyIsInByZXZTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQXFDLE9BQXJDO0FBRUEsT0FBT0MsS0FBUCxNQUFrQyxhQUFsQztBQUNBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixXQUFuQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBRUEsT0FBT0MsV0FBUCxNQUF3QixjQUF4QjtBQUNBLElBQVFDLE1BQVIsV0FBUUEsTUFBUjtBQUFBLElBQWdCQyxRQUFoQixXQUFnQkEsUUFBaEI7O0lBWXFCQyxTOzs7OztBQXdCbkIscUJBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQTs7QUFDakIsK0JBQU1BLEtBQU47O0FBRGlCLDZEQXJCWDtBQUNOQyxNQUFBQSxVQUFVLEVBQUUsRUFETjtBQUVOQyxNQUFBQSxXQUFXLEVBQUUsSUFGUDtBQUdOQyxNQUFBQSxhQUFhLEVBQUUsRUFIVDtBQUlOQyxNQUFBQSxRQUFRLEVBQUU7QUFKSixLQXFCVzs7QUFBQSw2REFmWCxFQWVXOztBQUVqQixRQUNFQyxJQURGLEdBUUlMLEtBUkosQ0FDRUssSUFERjtBQUFBLHVCQVFJTCxLQVJKLENBRUVNLEtBRkY7QUFBQSxRQUVFQSxLQUZGLDZCQUVVLEVBRlY7QUFBQSxRQUdFRixRQUhGLEdBUUlKLEtBUkosQ0FHRUksUUFIRjtBQUFBLFFBSUVHLE9BSkYsR0FRSVAsS0FSSixD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QUpOLEVBS00yRSxNQUxOLEdBT0csS0FBS08sY0FBTCxFQVBILENBREY7QUFXRDtBQUNGOzs7V0ExVEQsa0NBQWdDQyxTQUFoQyxFQUEyQ0MsU0FBM0MsRUFBMkQ7QUFDekQsVUFBUWpGLGFBQVIsR0FBMEJpRixTQUExQixDQUFRakYsYUFBUjtBQUNBLFVBQVFFLElBQVIsR0FBaUM4RSxTQUFqQyxDQUFROUUsSUFBUjtBQUFBLFVBQWNFLE9BQWQsR0FBaUM0RSxTQUFqQyxDQUFjNUUsT0FBZDtBQUFBLFVBQXVCRCxLQUF2QixHQUFpQzZFLFNBQWpDLENBQXVCN0UsS0FBdkI7O0FBQ0EsVUFBSUQsSUFBSSxJQUFJRSxPQUFaLEVBQXFCO0FBQ25CLFlBQU1hLE9BQU8sR0FBR2YsSUFBSSxHQUFHQSxJQUFILEdBQVVFLE9BQTlCOztBQUNBLFlBQUk4RSxJQUFJLENBQUNDLFNBQUwsQ0FBZW5GLGFBQWYsTUFBa0NrRixJQUFJLENBQUNDLFNBQUwsQ0FBZWxFLE9BQWYsQ0FBdEMsRUFBK0Q7QUFDN0QsaUJBQU87QUFDTG5CLFlBQUFBLFVBQVUsRUFBRW1CLE9BRFA7QUFFTGpCLFlBQUFBLGFBQWEsRUFBRWlCO0FBRlYsV0FBUDtBQUlEO0FBQ0Y7O0FBQ0QsYUFBTyxJQUFQO0FBQ0Q7Ozs7RUF2Qm9DOUIsYTs7Z0JBQWxCUyxTLFlBQ0hGLE07O2dCQURHRSxTLGNBRURELFE7O1NBRkNDLFMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBTZWxlY3QsIFNlbGVjdFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgUGlueWluTWF0Y2ggZnJvbSBcInBpbnlpbi1tYXRjaFwiO1xyXG5jb25zdCB7IE9wdGlvbiwgT3B0R3JvdXAgfSA9IFNlbGVjdDtcclxuXHJcbmludGVyZmFjZSBJU2VsZWN0UHJvcHMgZXh0ZW5kcyBTZWxlY3RQcm9wczxhbnk+IHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZGF0YT86IEFycmF5PE9iamVjdD47IC8v6buY6K6k5pWw5o2uXHJcbiAgbGFiZWxGaWVsZD86IHN0cmluZztcclxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xyXG4gIGRlZmF1bHRTdHlsZT86IGJvb2xlYW47XHJcbiAgc2hvd0dyb3VwPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrliIbnu4RcclxuICBhZGREYXRhOiBBcnJheTxPYmplY3Q+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5LuO5aKe5Yqg6aKd5aSW55qE5pWw5o2uXHJcbiAgZGVsZXRlRGF0YT86IEFycmF5PFN0cmluZz47IC8v6YWN5ZCIc3RvcmXkvb/nlKjvvIzliKDpmaTku47mlbDmja7lupPkuK3ojrflj5bliLDnmoTmjIflrprmlbDmja5cclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOU0NTZWxlY3QgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElTZWxlY3RQcm9wcz4ge1xyXG4gIHN0YXRpYyBPcHRpb24gPSBPcHRpb247XHJcbiAgc3RhdGljIE9wdEdyb3VwID0gT3B0R3JvdXA7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIHNlbGVjdFZhbHVlOiBudWxsLFxyXG4gICAgYWxsRGF0YVNvdXJjZTogW10sXHJcbiAgICBjaGlsZHJlbjogbnVsbCxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSB9ID0gcHJldlN0YXRlO1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCBzdG9yZSB9ID0gbmV4dFByb3BzO1xyXG4gICAgaWYgKGRhdGEgfHwgb3B0aW9ucykge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGRhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgICBhbGxEYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICAgIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIHZpZXduYW1lLFxyXG4gICAgICBjYWNoZWQsXHJcbiAgICAgIGNhY2hlS2V5LFxyXG4gICAgICAuLi5zdG9yZXNcclxuICAgIH0gPSBzdG9yZTtcclxuICAgIGxldCB7IHZpZXdVcmwgfSA9IGNvbmZpZygpO1xyXG4gICAgY29uc3QgZ2V0QWxsRGF0YSA9IChkYXRhKSA9PiB7XHJcbiAgICAgIGxldCBuZXdEYXRhID0gWy4uLmRhdGFdO1xyXG4gICAgICBpZiAoYWRkRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbmV3RGF0YSA9IFsuLi5hZGREYXRhLCAuLi5uZXdEYXRhXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZGVsZXRlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIG5ld0RhdGEubWFwKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZih2YWx1ZSkgPiAtMSkge1xyXG4gICAgICAgICAgICBuZXdEYXRhLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgIH07XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGlmICghKGRhdGEgfHwgdmlld25hbWUgfHwgdXJsIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBdmlld25hbWXjgIFkYXRh44CBb3B0aW9uc+S4jeiDvemDveS4uuepuu+8gVwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgICBsZXQgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGdldEFsbERhdGEoZGF0YSk7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbmV3RGF0YSwgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGdldEFsbERhdGEoZGF0YSk7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbmV3RGF0YSwgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5kYXRhQ2hhbmdlZCwgX3RoaXMsIFtcclxuICAgICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICAgIG1vZGVsRGF0YSxcclxuICAgICAgICAgICAgICBzdG9yZSxcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4uc3RvcmVzLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoKHZpZXduYW1lIHx8IHVybCkgJiYgZGF0YSA9PSBudWxsICYmIG9wdGlvbnMgPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBpc0NhY2hlZCA9IGNhY2hlZDtcclxuICAgICAgICBsZXQgaXNDYWNoZUtleSA9IGNhY2hlS2V5O1xyXG4gICAgICAgIGlmICh2aWV3bmFtZSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZWQgIT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaXNDYWNoZUtleSA9IGlzQ2FjaGVLZXkgPyBpc0NhY2hlS2V5IDogdmlld25hbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCB2aWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuYWxsRGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBvblNlYXJjaCh2YWx1ZSkge1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBsYWJlbEZpZWxkID0gXCJsYWJlbFwiLFxyXG4gICAgICBmaWx0ZXJPcHRpb24gPSB0cnVlLFxyXG4gICAgICBvblNlYXJjaCxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChmaWx0ZXJPcHRpb24pIHtcclxuICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBhbGxEYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgbGFiZWwgPSBpdGVtW2xhYmVsRmllbGRdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGwsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBsYWJlbCArIGl0ZW1bbF0gOiBsYWJlbCArIFwiLVwiICsgaXRlbVtsXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHJlc3VsdCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICBjaGlsZHJlbi5tYXAoKGNoaWxkOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGxhYmVsID0gY2hpbGQ/LnByb3BzPy5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TZWFyY2ggJiYgb25TZWFyY2godmFsdWUpO1xyXG4gIH1cclxuICByZW5kZXJPcHRpb24ob3B0aW9uRGF0YSkge1xyXG4gICAgbGV0IHsgbGFiZWxGaWVsZCA9IFwibGFiZWxcIiwgdmFsdWVGaWVsZCA9IFwidmFsdWVcIiwgc3RvcmUgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBvcHRpb25EYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICBpZiAodmFsdWVGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICB2YWx1ZSA9IGl0ZW1bdmFsdWVGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkID8gKGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCIgPyBpdGVtLmlkIDogdmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8T3B0aW9uXHJcbiAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICA8L09wdGlvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJDaGlsZHJlbigpIHtcclxuICAgIGNvbnN0IHsgc2hvd0dyb3VwID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSwgY2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcHRHcm91cERhdGEgPSB7fSxcclxuICAgICAgICBvcHRpb25EYXRhID0gW107XHJcbiAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBsYWJlbCA9IGl0ZW0uZ3JvdXBOYW1lO1xyXG4gICAgICAgIGlmIChsYWJlbCAmJiBzaG93R3JvdXApIHtcclxuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xyXG4gICAgICAgICAgb3B0R3JvdXBEYXRhW2xhYmVsXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xyXG4gICAgICBsZXQgb3B0R3JvdXAgPSBPYmplY3Qua2V5cyhvcHRHcm91cERhdGEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlck9wdGlvbihvcHRHcm91cERhdGFba2V5XSl9XHJcbiAgICAgICAgICA8L09wdEdyb3VwPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAge29wdEdyb3VwfVxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBvbkNoYW5nZSxcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgbGFiZWxGaWVsZCxcclxuICAgICAgdmFsdWVGaWVsZCxcclxuICAgICAgZGVmYXVsdFN0eWxlID0gdHJ1ZSxcclxuICAgICAgc2hvd0dyb3VwID0gdHJ1ZSxcclxuICAgICAgYWRkRGF0YSxcclxuICAgICAgZGVsZXRlRGF0YSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHByb3BzID0ge1xyXG4gICAgICBmaWx0ZXJPcHRpb246IGZhbHNlLFxyXG4gICAgICBzaG93U2VhcmNoOiB0cnVlLFxyXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBcIuivt+mAieaLqVwiLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGlmIChkZWZhdWx0U3R5bGUpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKHN0eWxlc1tcIm5zY19zZWxlY3RcIl0sIHRoaXMucHJvcHMuY2xhc3NOYW1lKX0+XHJcbiAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucmVuZGVyQ2hpbGRyZW4oKX1cclxuICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "1.3.5",
3
+ "version": "1.3.6",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -42,7 +42,7 @@
42
42
  "less-loader": "^8.1.1",
43
43
  "lodash": "^4.17.21",
44
44
  "mini-css-extract-plugin": "^1.5.0",
45
- "nsc-request": "^2.2.1",
45
+ "nsc-request": "^2.2.2",
46
46
  "react": "^17.0.1",
47
47
  "react-dom": "^17.0.1",
48
48
  "rimraf": "^3.0.2",
@@ -67,6 +67,7 @@
67
67
  "core-js": "3",
68
68
  "echarts": "^5.2.2",
69
69
  "omit.js": "^2.0.2",
70
+ "pinyin-match": "^1.2.2",
70
71
  "react-dnd": "^14.0.2",
71
72
  "react-dnd-html5-backend": "^14.0.0",
72
73
  "react-resizable": "^3.0.4"