nsc-react-component 4.0.4 → 4.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/base/cascader/index.js +2 -2
- package/lib/base/cascader/index.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/page/BasePage/index.d.ts +1 -0
- package/lib/page/BasePage/index.js +28 -26
- package/lib/page/BasePage/index.js.map +1 -1
- package/lib/page/BasePage/index.module.less +1 -1
- package/lib/page/SettingTab/index.d.ts +9 -0
- package/lib/page/SettingTab/index.js +81 -0
- package/lib/page/SettingTab/index.js.map +1 -0
- package/lib/page/SettingTab/index.less +42 -0
- package/lib/page/SettingTable/index.d.ts +20 -3
- package/lib/page/SettingTable/index.js +285 -102
- package/lib/page/SettingTable/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
5
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
7
7
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
-
import { useEffect, useState } from "react";
|
|
9
8
|
import BasePage from "../BasePage";
|
|
10
9
|
import Spin from "../../base/spin";
|
|
11
10
|
import Button from "../../base/button";
|
|
@@ -17,6 +16,7 @@ import NscRequest from "nsc-request";
|
|
|
17
16
|
import * as NscUtils from "@bj-nsc/functions";
|
|
18
17
|
import cls from "classnames";
|
|
19
18
|
import queryString from 'query-string';
|
|
19
|
+
import { getLocalStore } from '@bj-nsc/functions';
|
|
20
20
|
// import { history } from 'umi'
|
|
21
21
|
// import { getConfigData } from '../services';
|
|
22
22
|
const renderSelfToolButton = _ref => {
|
|
@@ -174,33 +174,61 @@ const jumpPage = (params, type) => {
|
|
|
174
174
|
window.history.go();
|
|
175
175
|
}
|
|
176
176
|
};
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
177
|
+
const getProject = () => {
|
|
178
|
+
const project = getLocalStore({
|
|
179
|
+
name: 'nsc-home-project'
|
|
180
|
+
}) || {};
|
|
181
|
+
return project;
|
|
182
|
+
};
|
|
183
|
+
export default class SettingTable extends React.Component {
|
|
184
|
+
constructor() {
|
|
185
|
+
super(...arguments);
|
|
186
|
+
_defineProperty(this, "state", {
|
|
187
|
+
pageProps: {},
|
|
188
|
+
treeProps: {
|
|
189
|
+
store: {
|
|
190
|
+
url: "",
|
|
191
|
+
autoLoad: false
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
tableProps: {},
|
|
195
|
+
selfToolButton: [],
|
|
196
|
+
selfColumnButton: [],
|
|
197
|
+
pageLoading: true,
|
|
198
|
+
defaultColumns: []
|
|
199
|
+
});
|
|
200
|
+
_defineProperty(this, "pageRef", /*#__PURE__*/React.createRef());
|
|
201
|
+
}
|
|
202
|
+
componentDidMount() {
|
|
203
|
+
this.getData();
|
|
204
|
+
}
|
|
205
|
+
componentDidUpdate(prevProps, prevState, snapshot) {
|
|
206
|
+
if (prevProps.tableCode != this.props.tableCode) {
|
|
207
|
+
this.getData();
|
|
189
208
|
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// 获取数据
|
|
212
|
+
getData() {
|
|
213
|
+
// 从props中获取tableCode、published、menuCode
|
|
214
|
+
const {
|
|
215
|
+
tableCode,
|
|
216
|
+
published = true,
|
|
217
|
+
menuCode
|
|
218
|
+
} = this.props;
|
|
219
|
+
// 如果tableCode存在
|
|
199
220
|
if (tableCode) {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
}
|
|
221
|
+
// 定义参数
|
|
222
|
+
let params = {
|
|
223
|
+
code: tableCode
|
|
224
|
+
};
|
|
225
|
+
// 如果published为true
|
|
226
|
+
if (published) {
|
|
227
|
+
// 设置参数isPublished为1
|
|
228
|
+
params.isPublished = 1;
|
|
229
|
+
}
|
|
230
|
+
// 调用getPageData方法获取数据
|
|
231
|
+
getPageData(_objectSpread({}, params)).then(res => {
|
|
204
232
|
if (res.code == 200 && res.data) {
|
|
205
233
|
var _page_props$permissio;
|
|
206
234
|
let table_props = JSON.parse(res.data.tableProps || "{}") || {};
|
|
@@ -209,86 +237,241 @@ export default (_ref3 => {
|
|
|
209
237
|
if (((_page_props$permissio = page_props.permission) === null || _page_props$permissio === void 0 ? void 0 : _page_props$permissio.has) == true) {
|
|
210
238
|
page_props.permission.menuCode = menuCode;
|
|
211
239
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
240
|
+
if (published == false) {
|
|
241
|
+
page_props.permission = false;
|
|
242
|
+
}
|
|
243
|
+
console.log('page_props', page_props);
|
|
244
|
+
console.log('table_props', table_props);
|
|
245
|
+
this.setState({
|
|
246
|
+
pageProps: _objectSpread({}, page_props),
|
|
247
|
+
treeProps: _objectSpread({}, tree_props),
|
|
248
|
+
tableProps: _objectSpread({}, table_props),
|
|
249
|
+
selfColumnButton: JSON.parse(res.data.columnButtons) || [],
|
|
250
|
+
selfToolButton: JSON.parse(res.data.toolButtons) || [],
|
|
251
|
+
defaultColumns: page_props.columns
|
|
252
|
+
}, () => {
|
|
253
|
+
this.setState({
|
|
254
|
+
pageLoading: false
|
|
255
|
+
});
|
|
256
|
+
});
|
|
221
257
|
} else if (res.code == 200 && res.data == null) {
|
|
222
258
|
_message.error("未找到配置信息!");
|
|
223
|
-
|
|
259
|
+
this.setState({
|
|
260
|
+
pageLoading: false
|
|
261
|
+
});
|
|
224
262
|
} else {
|
|
225
|
-
|
|
263
|
+
this.setState({
|
|
264
|
+
pageLoading: false
|
|
265
|
+
});
|
|
226
266
|
}
|
|
227
267
|
});
|
|
228
268
|
} else {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
const deaultFuncs = _objectSpread({
|
|
233
|
-
setFieldDisabled: (key, disabled) => {
|
|
234
|
-
const newData = setFieldDisabled(pageProps.columns, key, disabled);
|
|
235
|
-
setPageProps(_objectSpread(_objectSpread({}, pageProps), {}, {
|
|
236
|
-
columns: newData
|
|
237
|
-
}));
|
|
238
|
-
},
|
|
239
|
-
setFieldVisible: (key, disabled) => {
|
|
240
|
-
const newData = setFieldVisible(pageProps.columns, key, disabled);
|
|
241
|
-
setPageProps(_objectSpread(_objectSpread({}, pageProps), {}, {
|
|
242
|
-
columns: newData
|
|
243
|
-
}));
|
|
244
|
-
},
|
|
245
|
-
setFieldPropsData: (key, data) => {
|
|
246
|
-
const newData = setFieldPropsData(pageProps.columns, key, data);
|
|
247
|
-
setPageProps(_objectSpread(_objectSpread({}, pageProps), {}, {
|
|
248
|
-
columns: newData
|
|
249
|
-
}));
|
|
250
|
-
},
|
|
251
|
-
history: (params, type) => {
|
|
252
|
-
jumpPage(params, type);
|
|
253
|
-
}
|
|
254
|
-
}, funcs);
|
|
255
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
256
|
-
className: cls("nsc-framework-tablepage", className)
|
|
257
|
-
}, pageLoading ? /*#__PURE__*/React.createElement("div", {
|
|
258
|
-
style: {
|
|
259
|
-
width: "100%",
|
|
260
|
-
height: "100%"
|
|
269
|
+
this.setState({
|
|
270
|
+
pageLoading: false
|
|
271
|
+
});
|
|
261
272
|
}
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
columns
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
}
|
|
294
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIkJhc2VQYWdlIiwiU3BpbiIsIkJ1dHRvbiIsIlJlYWN0IiwiTnNjQ29tIiwiTnNjRmlsZSIsIk5zY1JlcXVlc3QiLCJOc2NVdGlscyIsImNscyIsInF1ZXJ5U3RyaW5nIiwicmVuZGVyU2VsZlRvb2xCdXR0b24iLCJfcmVmIiwic2VsZlRvb2xCdXR0b24iLCJwYWdlUmVmIiwiZnVuY3MiLCJsZW5ndGgiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJjcmVhdGVFbGVtZW50IiwicGFnZVR5cGUiLCJrZXkiLCJ0eXBlIiwib25DbGljayIsIlV0aWxzIiwiZXZlbnRPcHRpb24iLCJmdW5jIiwiRnVuY3Rpb24iLCJjb2RlIiwibmFtZSIsInJlbmRlclNlbGZDb2x1bW5CdXR0b24iLCJfcmVmMiIsInNlbGZDb2x1bW5CdXR0b24iLCJyZWNvcmQiLCJyZWNvcmRTaG93IiwiZ2V0UGFnZURhdGEiLCJwYXJhbXMiLCJnZXQiLCJ4c3NGaWx0ZXIiLCJhdXRvUHJlZml4Iiwic2V0RmllbGREaXNhYmxlZCIsImRhdGEiLCJkaXNhYmxlZCIsImNvbHVtbnMiLCJuZXdDb2x1bW5zIiwib2JqIiwiX29iamVjdFNwcmVhZCIsImRhdGFJbmRleCIsImluZGV4T2YiLCJwcm9wcyIsInB1c2giLCJzZXRGaWVsZFZpc2libGUiLCJ2aXNpYmxlIiwiZWRpdG9yIiwic2V0RmllbGRQcm9wc0RhdGEiLCJwcm9wc0RhdGEiLCJqdW1wUGFnZSIsInBhdGhuYW1lIiwicXVlcnkiLCJpZCIsInRpdGxlIiwic2VydmljZU5hbWUiLCJzZXJ2aWNlUGF0aCIsIm9wZW5UeXBlIiwibmV3UXVlcnkiLCJ1cmxQYXJhbXMiLCJzdHJpbmdpZnkiLCJwYXRoIiwiY29uY2F0Iiwid2luZG93IiwiX19QT1dFUkVEX0JZX1FJQU5LVU5fXyIsInBhcmVudCIsInBvc3RNZXNzYWdlIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImxvY2F0aW9uIiwib3JpZ2luIiwiaGlzdG9yeSIsInB1c2hTdGF0ZSIsImdvIiwiX3JlZjMiLCJ0YWJsZUNvZGUiLCJjbGFzc05hbWUiLCJtZW51Q29kZSIsInBhZ2VQcm9wcyIsInNldFBhZ2VQcm9wcyIsInRyZWVQcm9wcyIsInNldFRyZWVQcm9wcyIsInN0b3JlIiwidXJsIiwiYXV0b0xvYWQiLCJ0YWJsZVByb3BzIiwic2V0VGFibGVQcm9wcyIsInNldFNlbGZUb29sQnV0dG9uIiwic2V0U2VsZkNvbHVtbkJ1dHRvbiIsInBhZ2VMb2FkaW5nIiwic2V0UGFnZUxvYWRpbmciLCJ1c2VSZWYiLCJkZWZhdWx0Q29sdW1ucyIsInNldERlZmF1bHRDb2x1bW5zIiwiaXNQdWJsaXNoZWQiLCJ0aGVuIiwicmVzIiwiX3BhZ2VfcHJvcHMkcGVybWlzc2lvIiwidGFibGVfcHJvcHMiLCJKU09OIiwicGFyc2UiLCJ0cmVlX3Byb3BzIiwicGFnZV9wcm9wcyIsInBlcm1pc3Npb24iLCJoYXMiLCJjb2x1bW5CdXR0b25zIiwidG9vbEJ1dHRvbnMiLCJzZXRUaW1lb3V0IiwiX21lc3NhZ2UiLCJlcnJvciIsImRlYXVsdEZ1bmNzIiwibmV3RGF0YSIsInN0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJzcGlubmluZyIsIl9leHRlbmRzIiwiZm9ybVByb3BzIiwicmVmIiwib25IaWRlRm9ybSIsIl9wYWdlUmVmJGN1cnJlbnQiLCJjdXJyZW50IiwiaGlkZUZvcm0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdUYWJsZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgQmFzZVBhZ2UgZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi8uLi9iYXNlL3NwaW5cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0ICogYXMgTnNjQ29tIGZyb20gXCIuL2NvbVwiO1xyXG5pbXBvcnQgTnNjRmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IE5zY1JlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCAqIGFzIE5zY1V0aWxzIGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXVlcnktc3RyaW5nJ1xyXG4vLyBpbXBvcnQgeyBoaXN0b3J5IH0gZnJvbSAndW1pJ1xyXG4vLyBpbXBvcnQgeyBnZXRDb25maWdEYXRhIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5jb25zdCByZW5kZXJTZWxmVG9vbEJ1dHRvbiA9ICh7IHNlbGZUb29sQnV0dG9uLCBwYWdlUmVmLCBmdW5jcyB9KSA9PiB7XHJcbiAgaWYgKHNlbGZUb29sQnV0dG9uLmxlbmd0aCA9PSAwKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIHNlbGZUb29sQnV0dG9uLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgcGFnZVR5cGU9XCJ0b29sQnV0dG9uXCJcclxuICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICB0eXBlPXtpdGVtLnR5cGV9XHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBVdGlscyA9IHsgTnNjQ29tLCBOc2NGaWxlLCBOc2NSZXF1ZXN0LCBOc2NVdGlscyB9O1xyXG4gICAgICAgICAgICBsZXQgZXZlbnRPcHRpb24gPSB7IHBhZ2VSZWY6IHBhZ2VSZWYsIGZ1bmNzOiBmdW5jcyB9O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHMsZXZlbnRPcHRpb25cIiwgaXRlbS5vbkNsaWNrKTtcclxuICAgICAgICAgICAgZnVuYyhVdGlscywgZXZlbnRPcHRpb24pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGNvZGU9e2l0ZW0uY29kZX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7aXRlbS5uYW1lfVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgcmVuZGVyU2VsZkNvbHVtbkJ1dHRvbiA9ICh7IHNlbGZDb2x1bW5CdXR0b24sIHBhZ2VSZWYsIGZ1bmNzIH0pID0+IHtcclxuICBpZiAoc2VsZkNvbHVtbkJ1dHRvbi5sZW5ndGggPT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBzZWxmQ29sdW1uQnV0dG9uLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgcGFnZVR5cGU9XCJjb2x1bW5CdXR0b25cIlxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQpID0+IHtcclxuICAgICAgICAgICAgbGV0IFV0aWxzID0geyBOc2NDb20sIE5zY0ZpbGUsIE5zY1JlcXVlc3QsIE5zY1V0aWxzIH07XHJcbiAgICAgICAgICAgIGxldCBldmVudE9wdGlvbiA9IHsgcGFnZVJlZjogcGFnZVJlZiwgcmVjb3JkOiByZWNvcmQsIGZ1bmNzOiBmdW5jcyB9O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHMsZXZlbnRPcHRpb25cIiwgaXRlbS5vbkNsaWNrKTtcclxuICAgICAgICAgICAgZnVuYyhVdGlscywgZXZlbnRPcHRpb24pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGNvZGU9e2l0ZW0uY29kZX1cclxuICAgICAgICAgIHJlY29yZFNob3c9e2l0ZW0ucmVjb3JkU2hvd31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7aXRlbS5uYW1lfVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgZ2V0UGFnZURhdGEgPSAocGFyYW1zOiBhbnkpID0+IHtcclxuICByZXR1cm4gTnNjUmVxdWVzdC5nZXQoYC9qcXVpY2stc2V0dGluZy9zZXR0aW5nL3RhYmxlL2luZm8vYCwge1xyXG4gICAgcGFyYW1zLFxyXG4gICAgeHNzRmlsdGVyOiBmYWxzZSxcclxuICAgIGF1dG9QcmVmaXg6IHRydWUsXHJcbiAgfSk7XHJcbn07XHJcblxyXG4vL+iuvue9ruihqOWNleWtl+auteWPquivu1xyXG5jb25zdCBzZXRGaWVsZERpc2FibGVkID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgZGlzYWJsZWQpID0+IHtcclxuICBjb25zdCBjb2x1bW5zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdDb2x1bW5zID0gW10gYXMgYW55O1xyXG4gIGNvbHVtbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5kYXRhSW5kZXggPT0ga2V5IHx8IGtleS5pbmRleE9mKGl0ZW0uZGF0YUluZGV4KSA+IC0xKSB7XHJcbiAgICAgIGxldCBwcm9wcyA9IG9iai5wcm9wcyA/IHsgLi4ub2JqLnByb3BzIH0gOiB7fTtcclxuICAgICAgcHJvcHMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgICAgb2JqLnByb3BzID0gcHJvcHM7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuLy/orr7nva7ooajljZXlrZfmrrXpmpDol49cclxuY29uc3Qgc2V0RmllbGRWaXNpYmxlID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgdmlzaWJsZSkgPT4ge1xyXG4gIGNvbnN0IGNvbHVtbnMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0NvbHVtbnMgPSBbXSBhcyBhbnk7XHJcbiAgY29sdW1ucy5tYXAoKGl0ZW0pID0+IHtcclxuICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgIGlmIChpdGVtLmRhdGFJbmRleCA9PSBrZXkgfHwga2V5LmluZGV4T2YoaXRlbS5kYXRhSW5kZXgpID4gLTEpIHtcclxuICAgICAgb2JqLmVkaXRvciA9IHZpc2libGU7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuXHJcbmNvbnN0IHNldEZpZWxkUHJvcHNEYXRhID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgcHJvcHNEYXRhKSA9PiB7XHJcbiAgY29uc3QgY29sdW1ucyA9IFsuLi5kYXRhXTtcclxuICBsZXQgbmV3Q29sdW1ucyA9IFtdIGFzIGFueTtcclxuICBjb2x1bW5zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0uZGF0YUluZGV4ID09IGtleSkge1xyXG4gICAgICBsZXQgcHJvcHMgPSBvYmoucHJvcHMgPyB7IC4uLm9iai5wcm9wcyB9IDoge307XHJcbiAgICAgIHByb3BzLmRhdGEgPSBwcm9wc0RhdGE7XHJcbiAgICAgIG9iai5wcm9wcyA9IHByb3BzO1xyXG4gICAgfVxyXG4gICAgbmV3Q29sdW1ucy5wdXNoKG9iaik7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIG5ld0NvbHVtbnM7XHJcbn07XHJcbmludGVyZmFjZSBJUGFyYW1zIHtcclxuICBwYXRobmFtZT86IHN0cmluZztcclxuICBxdWVyeT86IGFueTtcclxuICBpZD86IHN0cmluZztcclxuICBzZXJ2aWNlTmFtZT86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBzZXJ2aWNlUGF0aD86IHN0cmluZztcclxuICBtZW51Q29kZT86IHN0cmluZztcclxuICBvcGVuVHlwZT86IG51bWJlcjtcclxufVxyXG5jb25zdCBqdW1wUGFnZSA9IChwYXJhbXM6IElQYXJhbXMsIHR5cGU/OiAnYWRkVGFiJyB8ICdqdW1wTWVudScpID0+IHtcclxuICBjb25zdCB7XHJcbiAgICBwYXRobmFtZSxcclxuICAgIHF1ZXJ5ID0ge30sXHJcbiAgICBpZCxcclxuICAgIHRpdGxlLFxyXG4gICAgc2VydmljZU5hbWUsXHJcbiAgICBzZXJ2aWNlUGF0aCxcclxuICAgIG9wZW5UeXBlLFxyXG4gIH0gPSBwYXJhbXM7XHJcbiAgY29uc3QgbmV3UXVlcnkgPSB7IC4uLnF1ZXJ5IH0gYXMgYW55O1xyXG4gIGNvbnN0IHVybFBhcmFtcyA9IHF1ZXJ5U3RyaW5nLnN0cmluZ2lmeShuZXdRdWVyeSk7XHJcbiAgY29uc3QgcGF0aCA9IHVybFBhcmFtcyA/IGAke3BhdGhuYW1lfT8ke3VybFBhcmFtc31gIDogcGF0aG5hbWU7XHJcbiAgLy9AdHMtaWdub3JlXHJcbiAgaWYgKHdpbmRvdy5fX1BPV0VSRURfQllfUUlBTktVTl9fKSB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICB0aXRsZTogdGl0bGUgfHwgJ+aWsOagh+etvicsXHJcbiAgICAgIHNlcnZpY2VOYW1lOiBzZXJ2aWNlTmFtZSwgLy/phY3nva7nmoTlvq7lupTnlKjlkI3np7BcclxuICAgICAgc2VydmljZVBhdGg6IHNlcnZpY2VQYXRoLCAvL+mFjee9rueahOW+ruW6lOeUqOWFpeWPo+WcsOWdgFxyXG4gICAgICBwYXRoOiBwYXRoLCAvL+aWsOagh+etvueahHVybCzmsqHphY3nva5zZXJ2aWNlTmFtZSBwYXRo5Li65a6M5pW06Lev5b6EXHJcbiAgICAgIGlkOiBpZCwgLy/oh6rlrprkuYnllK/kuIDlgLxcclxuICAgICAgb3BlblR5cGU6IG9wZW5UeXBlID8gb3BlblR5cGUgOiA0LCAvL+aJk+W8gOaWueW8jyA05L2N5b6u5YmN56uvLCAz5Li6aWZyYW1lICzpu5jorqQgM1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoXHJcbiAgICAgIHtcclxuICAgICAgICBldmVudFR5cGU6IHR5cGUgPyB0eXBlIDogJ2FkZFRhYicsXHJcbiAgICAgICAgc2VydmljZU5hbWU6IHNlcnZpY2VOYW1lID8gc2VydmljZU5hbWUgOiAnc2V0dGluZy13ZWInLFxyXG4gICAgICAgIHBheWxvYWQ6IHR5cGUgPyBwYXJhbXMgOiBkYXRhLFxyXG4gICAgICB9LFxyXG4gICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luLFxyXG4gICAgKTtcclxuICB9IGVsc2Uge1xyXG4gICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCAnJywgcGF0aCk7XHJcbiAgICB3aW5kb3cuaGlzdG9yeS5nbygpXHJcbiAgfVxyXG59O1xyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIHRhYmxlQ29kZTogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxuICBtZW51Q29kZT86IHN0cmluZztcclxuICBmdW5jcz86IGFueVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0ICh7IHRhYmxlQ29kZSwgY2xhc3NOYW1lLCBtZW51Q29kZSwgZnVuY3MgPSB7fSB9OiBQcm9wcykgPT4ge1xyXG4gIGNvbnN0IFtwYWdlUHJvcHMsIHNldFBhZ2VQcm9wc10gPSB1c2VTdGF0ZSh7fSBhcyBhbnkpO1xyXG4gIGNvbnN0IFt0cmVlUHJvcHMsIHNldFRyZWVQcm9wc10gPSB1c2VTdGF0ZSh7XHJcbiAgICBzdG9yZTogeyB1cmw6IFwiXCIsIGF1dG9Mb2FkOiBmYWxzZSB9LFxyXG4gIH0gYXMgYW55KTtcclxuICBjb25zdCBbdGFibGVQcm9wcywgc2V0VGFibGVQcm9wc10gPSB1c2VTdGF0ZSh7fSBhcyBhbnkpO1xyXG4gIGNvbnN0IFtzZWxmVG9vbEJ1dHRvbiwgc2V0U2VsZlRvb2xCdXR0b25dID0gdXNlU3RhdGUoW10gYXMgYW55KTtcclxuICBjb25zdCBbc2VsZkNvbHVtbkJ1dHRvbiwgc2V0U2VsZkNvbHVtbkJ1dHRvbl0gPSB1c2VTdGF0ZShbXSBhcyBhbnkpO1xyXG4gIGNvbnN0IFtwYWdlTG9hZGluZywgc2V0UGFnZUxvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XHJcbiAgY29uc3QgcGFnZVJlZjogYW55ID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIGNvbnN0IFtkZWZhdWx0Q29sdW1ucywgc2V0RGVmYXVsdENvbHVtbnNdID0gdXNlU3RhdGUoW10gYXMgYW55KTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHNldFBhZ2VMb2FkaW5nKHRydWUpO1xyXG4gICAgaWYgKHRhYmxlQ29kZSkge1xyXG4gICAgICBnZXRQYWdlRGF0YSh7IGNvZGU6IHRhYmxlQ29kZSwgaXNQdWJsaXNoZWQ6IDEgfSkudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhKSB7XHJcbiAgICAgICAgICBsZXQgdGFibGVfcHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLnRhYmxlUHJvcHMgfHwgXCJ7fVwiKSB8fCB7fTtcclxuICAgICAgICAgIGxldCB0cmVlX3Byb3BzID0gSlNPTi5wYXJzZShyZXMuZGF0YS50cmVlUHJvcHMgfHwgXCJ7fVwiKSB8fCB7fTtcclxuICAgICAgICAgIGxldCBwYWdlX3Byb3BzID0gSlNPTi5wYXJzZShyZXMuZGF0YS5wYWdlUHJvcHMgfHwgXCJ7fVwiKSB8fCB7fTtcclxuICAgICAgICAgIGlmIChwYWdlX3Byb3BzLnBlcm1pc3Npb24/LmhhcyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHBhZ2VfcHJvcHMucGVybWlzc2lvbi5tZW51Q29kZSA9IG1lbnVDb2RlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2V0VGFibGVQcm9wcyh7XHJcbiAgICAgICAgICAgIC4uLnRhYmxlX3Byb3BzLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBzZXRQYWdlUHJvcHMocGFnZV9wcm9wcyk7XHJcbiAgICAgICAgICBzZXRUcmVlUHJvcHMoe1xyXG4gICAgICAgICAgICAuLi50cmVlX3Byb3BzLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBzZXRTZWxmQ29sdW1uQnV0dG9uKEpTT04ucGFyc2UocmVzLmRhdGEuY29sdW1uQnV0dG9ucykgfHwgW10pO1xyXG4gICAgICAgICAgc2V0U2VsZlRvb2xCdXR0b24oSlNPTi5wYXJzZShyZXMuZGF0YS50b29sQnV0dG9ucykgfHwgW10pO1xyXG4gICAgICAgICAgc2V0RGVmYXVsdENvbHVtbnMocGFnZV9wcm9wcy5jb2x1bW5zKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBzZXRQYWdlTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICB9LCAzMDApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhID09IG51bGwpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmnKrmib7liLDphY3nva7kv6Hmga/vvIFcIik7XHJcbiAgICAgICAgICBzZXRQYWdlTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNldFBhZ2VMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2V0UGFnZUxvYWRpbmcoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH0sIFt0YWJsZUNvZGVdKTtcclxuICBjb25zdCBkZWF1bHRGdW5jcyA9IHtcclxuICAgIHNldEZpZWxkRGlzYWJsZWQ6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZERpc2FibGVkKFxyXG4gICAgICAgIHBhZ2VQcm9wcy5jb2x1bW5zLFxyXG4gICAgICAgIGtleSxcclxuICAgICAgICBkaXNhYmxlZFxyXG4gICAgICApO1xyXG4gICAgICBzZXRQYWdlUHJvcHMoeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSk7XHJcbiAgICB9LFxyXG4gICAgc2V0RmllbGRWaXNpYmxlOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gc2V0RmllbGRWaXNpYmxlKHBhZ2VQcm9wcy5jb2x1bW5zLCBrZXksIGRpc2FibGVkKTtcclxuICAgICAgc2V0UGFnZVByb3BzKHsgLi4ucGFnZVByb3BzLCBjb2x1bW5zOiBuZXdEYXRhIH0pO1xyXG4gICAgfSxcclxuICAgIHNldEZpZWxkUHJvcHNEYXRhOiAoa2V5LCBkYXRhKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShwYWdlUHJvcHMuY29sdW1ucywga2V5LCBkYXRhKTtcclxuICAgICAgc2V0UGFnZVByb3BzKHsgLi4ucGFnZVByb3BzLCBjb2x1bW5zOiBuZXdEYXRhIH0pO1xyXG4gICAgfSxcclxuICAgIGhpc3Rvcnk6IChwYXJhbXMsIHR5cGUpID0+IHtcclxuICAgICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKVxyXG4gICAgfSxcclxuICAgIC4uLmZ1bmNzXHJcbiAgfVxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKFwibnNjLWZyYW1ld29yay10YWJsZXBhZ2VcIiwgY2xhc3NOYW1lKX0+XHJcbiAgICAgIHtwYWdlTG9hZGluZyA/IChcclxuICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgaGVpZ2h0OiBcIjEwMCVcIiB9fT5cclxuICAgICAgICAgIDxTcGluIHNwaW5uaW5nPXtwYWdlTG9hZGluZ30+PC9TcGluPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApIDogKFxyXG4gICAgICAgIDxCYXNlUGFnZVxyXG4gICAgICAgICAgey4uLnBhZ2VQcm9wc31cclxuICAgICAgICAgIHRyZWVQcm9wcz17eyAuLi50cmVlUHJvcHMgfX1cclxuICAgICAgICAgIHRhYmxlUHJvcHM9e3sgLi4udGFibGVQcm9wcyB9fVxyXG4gICAgICAgICAgZm9ybVByb3BzPXt7fX1cclxuICAgICAgICAgIFV0aWxzPXt7IE5zY0NvbSwgTnNjRmlsZSwgTnNjUmVxdWVzdCwgTnNjVXRpbHMgfX1cclxuICAgICAgICAgIHJlZj17cGFnZVJlZn1cclxuICAgICAgICAgIHBhZ2VSZWY9e3BhZ2VSZWZ9XHJcbiAgICAgICAgICBvbkhpZGVGb3JtPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHNldFBhZ2VQcm9wcyh7IC4uLnBhZ2VQcm9wcywgY29sdW1uczogZGVmYXVsdENvbHVtbnMgfSk7XHJcbiAgICAgICAgICAgIHBhZ2VSZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBmdW5jcz17eyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7cmVuZGVyU2VsZlRvb2xCdXR0b24oeyBzZWxmVG9vbEJ1dHRvbiwgcGFnZVJlZiwgZnVuY3M6IHsgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH0gfSl9XHJcbiAgICAgICAgICB7cmVuZGVyU2VsZkNvbHVtbkJ1dHRvbih7IHNlbGZDb2x1bW5CdXR0b24sIHBhZ2VSZWYsIGZ1bmNzOiB7IC4uLmRlYXVsdEZ1bmNzLCAuLi5mdW5jcyB9IH0pfVxyXG4gICAgICAgIDwvQmFzZVBhZ2U+XHJcbiAgICAgICl9XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxTQUFTQSxTQUFTLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzNDLE9BQU9DLFFBQVEsTUFBTSxhQUFhO0FBQ2xDLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsT0FBT0MsTUFBTSxNQUFN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
|
|
273
|
+
}
|
|
274
|
+
render() {
|
|
275
|
+
const {
|
|
276
|
+
className,
|
|
277
|
+
funcs = {}
|
|
278
|
+
} = this.props;
|
|
279
|
+
const {
|
|
280
|
+
pageProps,
|
|
281
|
+
treeProps,
|
|
282
|
+
tableProps,
|
|
283
|
+
selfToolButton,
|
|
284
|
+
selfColumnButton,
|
|
285
|
+
pageLoading,
|
|
286
|
+
defaultColumns
|
|
287
|
+
} = this.state;
|
|
288
|
+
const deaultFuncs = {
|
|
289
|
+
setFieldDisabled: (key, disabled) => {
|
|
290
|
+
const newData = setFieldDisabled(pageProps.columns, key, disabled);
|
|
291
|
+
this.setState({
|
|
292
|
+
pageProps: _objectSpread(_objectSpread({}, pageProps), {}, {
|
|
293
|
+
columns: newData
|
|
294
|
+
})
|
|
295
|
+
});
|
|
296
|
+
},
|
|
297
|
+
setFieldVisible: (key, disabled) => {
|
|
298
|
+
const newData = setFieldVisible(pageProps.columns, key, disabled);
|
|
299
|
+
this.setState({
|
|
300
|
+
pageProps: _objectSpread(_objectSpread({}, pageProps), {}, {
|
|
301
|
+
columns: newData
|
|
302
|
+
})
|
|
303
|
+
});
|
|
304
|
+
},
|
|
305
|
+
setFieldPropsData: (key, data) => {
|
|
306
|
+
const newData = setFieldPropsData(pageProps.columns, key, data);
|
|
307
|
+
this.setState({
|
|
308
|
+
pageProps: _objectSpread(_objectSpread({}, pageProps), {}, {
|
|
309
|
+
columns: newData
|
|
310
|
+
})
|
|
311
|
+
});
|
|
312
|
+
},
|
|
313
|
+
history: (params, type) => {
|
|
314
|
+
jumpPage(params, type);
|
|
315
|
+
},
|
|
316
|
+
getCurrentProject: () => {
|
|
317
|
+
return getProject();
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
321
|
+
className: cls("nsc-framework-tablepage", className)
|
|
322
|
+
}, pageLoading ? /*#__PURE__*/React.createElement("div", {
|
|
323
|
+
style: {
|
|
324
|
+
width: "100%",
|
|
325
|
+
height: "100%"
|
|
326
|
+
}
|
|
327
|
+
}, /*#__PURE__*/React.createElement(Spin, {
|
|
328
|
+
spinning: pageLoading
|
|
329
|
+
})) : /*#__PURE__*/React.createElement(BasePage, _extends({}, pageProps, {
|
|
330
|
+
treeProps: _objectSpread({}, treeProps),
|
|
331
|
+
tableProps: _objectSpread({}, tableProps),
|
|
332
|
+
formProps: {},
|
|
333
|
+
Utils: {
|
|
334
|
+
NscCom,
|
|
335
|
+
NscFile,
|
|
336
|
+
NscRequest,
|
|
337
|
+
NscUtils
|
|
338
|
+
},
|
|
339
|
+
ref: this.pageRef,
|
|
340
|
+
pageRef: this.pageRef,
|
|
341
|
+
onHideForm: () => {
|
|
342
|
+
var _this$pageRef$current;
|
|
343
|
+
this.setState({
|
|
344
|
+
pageProps: _objectSpread(_objectSpread({}, pageProps), {}, {
|
|
345
|
+
columns: defaultColumns
|
|
346
|
+
})
|
|
347
|
+
});
|
|
348
|
+
// setPageProps({ ...pageProps, columns: defaultColumns });
|
|
349
|
+
(_this$pageRef$current = this.pageRef.current) === null || _this$pageRef$current === void 0 || _this$pageRef$current.hideForm();
|
|
350
|
+
},
|
|
351
|
+
funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs)
|
|
352
|
+
}), renderSelfToolButton({
|
|
353
|
+
selfToolButton,
|
|
354
|
+
pageRef: this.pageRef,
|
|
355
|
+
funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs)
|
|
356
|
+
}), renderSelfColumnButton({
|
|
357
|
+
selfColumnButton,
|
|
358
|
+
pageRef: this.pageRef,
|
|
359
|
+
funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs)
|
|
360
|
+
})));
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// const Index = ({ tableCode, className, menuCode, funcs = {}, published = true, instanceRef }: IProps) => {
|
|
365
|
+
// const [pageProps, setPageProps] = useState({} as any);
|
|
366
|
+
// const [treeProps, setTreeProps] = useState({
|
|
367
|
+
// store: { url: "", autoLoad: false },
|
|
368
|
+
// } as any);
|
|
369
|
+
// const [tableProps, setTableProps] = useState({} as any);
|
|
370
|
+
// const [selfToolButton, setSelfToolButton] = useState([] as any);
|
|
371
|
+
// const [selfColumnButton, setSelfColumnButton] = useState([] as any);
|
|
372
|
+
// const [pageLoading, setPageLoading] = useState(true);
|
|
373
|
+
// const pageRef: any = React.useRef(null);
|
|
374
|
+
// const [defaultColumns, setDefaultColumns] = useState([] as any);
|
|
375
|
+
|
|
376
|
+
// useEffect(() => {
|
|
377
|
+
// console.log("instanceRef", instanceRef)
|
|
378
|
+
// setPageLoading(true);
|
|
379
|
+
// if (tableCode) {
|
|
380
|
+
// let params = { code: tableCode } as any
|
|
381
|
+
// if (published) {
|
|
382
|
+
// params.isPublished = 1
|
|
383
|
+
// }
|
|
384
|
+
// getPageData({ ...params }).then((res: any) => {
|
|
385
|
+
// if (res.code == 200 && res.data) {
|
|
386
|
+
// let table_props = JSON.parse(res.data.tableProps || "{}") || {};
|
|
387
|
+
// let tree_props = JSON.parse(res.data.treeProps || "{}") || {};
|
|
388
|
+
// let page_props = JSON.parse(res.data.pageProps || "{}") || {};
|
|
389
|
+
// if (page_props.permission?.has == true) {
|
|
390
|
+
// page_props.permission.menuCode = menuCode;
|
|
391
|
+
// }
|
|
392
|
+
// setTableProps({
|
|
393
|
+
// ...table_props,
|
|
394
|
+
// });
|
|
395
|
+
// setPageProps(page_props);
|
|
396
|
+
// setTreeProps({
|
|
397
|
+
// ...tree_props,
|
|
398
|
+
// });
|
|
399
|
+
// setSelfColumnButton(JSON.parse(res.data.columnButtons) || []);
|
|
400
|
+
// setSelfToolButton(JSON.parse(res.data.toolButtons) || []);
|
|
401
|
+
// setDefaultColumns(page_props.columns);
|
|
402
|
+
// setTimeout(() => {
|
|
403
|
+
// setPageLoading(false);
|
|
404
|
+
// }, 300);
|
|
405
|
+
// } else if (res.code == 200 && res.data == null) {
|
|
406
|
+
// message.error("未找到配置信息!");
|
|
407
|
+
// setPageLoading(false);
|
|
408
|
+
// } else {
|
|
409
|
+
// setPageLoading(false);
|
|
410
|
+
// }
|
|
411
|
+
// });
|
|
412
|
+
// } else {
|
|
413
|
+
// setPageLoading(false);
|
|
414
|
+
// }
|
|
415
|
+
// }, [tableCode]);
|
|
416
|
+
// useImperativeHandle(instanceRef, () => ({
|
|
417
|
+
|
|
418
|
+
// }));
|
|
419
|
+
// const deaultFuncs = {
|
|
420
|
+
// setFieldDisabled: (key, disabled) => {
|
|
421
|
+
// const newData = setFieldDisabled(
|
|
422
|
+
// pageProps.columns,
|
|
423
|
+
// key,
|
|
424
|
+
// disabled
|
|
425
|
+
// );
|
|
426
|
+
// setPageProps({ ...pageProps, columns: newData });
|
|
427
|
+
// },
|
|
428
|
+
// setFieldVisible: (key, disabled) => {
|
|
429
|
+
// const newData = setFieldVisible(pageProps.columns, key, disabled);
|
|
430
|
+
// setPageProps({ ...pageProps, columns: newData });
|
|
431
|
+
// },
|
|
432
|
+
// setFieldPropsData: (key, data) => {
|
|
433
|
+
// const newData = setFieldPropsData(pageProps.columns, key, data);
|
|
434
|
+
// setPageProps({ ...pageProps, columns: newData });
|
|
435
|
+
// },
|
|
436
|
+
// history: (params, type) => {
|
|
437
|
+
// jumpPage(params, type)
|
|
438
|
+
// },
|
|
439
|
+
// getCurrentProject: () => {
|
|
440
|
+
// return getProject()
|
|
441
|
+
// },
|
|
442
|
+
// ...funcs
|
|
443
|
+
// }
|
|
444
|
+
// return (
|
|
445
|
+
// <div className={cls("nsc-framework-tablepage", className)}>
|
|
446
|
+
// {pageLoading ? (
|
|
447
|
+
// <div style={{ width: "100%", height: "100%" }}>
|
|
448
|
+
// <Spin spinning={pageLoading}></Spin>
|
|
449
|
+
// </div>
|
|
450
|
+
// ) : (
|
|
451
|
+
// <BasePage
|
|
452
|
+
// {...pageProps}
|
|
453
|
+
// treeProps={{ ...treeProps }}
|
|
454
|
+
// tableProps={{ ...tableProps }}
|
|
455
|
+
// formProps={{}}
|
|
456
|
+
// Utils={{ NscCom, NscFile, NscRequest, NscUtils }}
|
|
457
|
+
// ref={pageRef}
|
|
458
|
+
// pageRef={pageRef}
|
|
459
|
+
// onHideForm={() => {
|
|
460
|
+
// setPageProps({ ...pageProps, columns: defaultColumns });
|
|
461
|
+
// pageRef.current?.hideForm();
|
|
462
|
+
// }}
|
|
463
|
+
// funcs={{ ...deaultFuncs, ...funcs }}
|
|
464
|
+
// >
|
|
465
|
+
// {renderSelfToolButton({ selfToolButton, pageRef, funcs: { ...deaultFuncs, ...funcs } })}
|
|
466
|
+
// {renderSelfColumnButton({ selfColumnButton, pageRef, funcs: { ...deaultFuncs, ...funcs } })}
|
|
467
|
+
// </BasePage>
|
|
468
|
+
// )}
|
|
469
|
+
// </div>
|
|
470
|
+
// );
|
|
471
|
+
// };
|
|
472
|
+
// export default forwardRef<any, IProps>(
|
|
473
|
+
// (props, ref) => {
|
|
474
|
+
// return <Index {...props} instanceRef={ref} />;
|
|
475
|
+
// },
|
|
476
|
+
// );
|
|
477
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlUGFnZSIsIlNwaW4iLCJCdXR0b24iLCJSZWFjdCIsIk5zY0NvbSIsIk5zY0ZpbGUiLCJOc2NSZXF1ZXN0IiwiTnNjVXRpbHMiLCJjbHMiLCJxdWVyeVN0cmluZyIsImdldExvY2FsU3RvcmUiLCJyZW5kZXJTZWxmVG9vbEJ1dHRvbiIsIl9yZWYiLCJzZWxmVG9vbEJ1dHRvbiIsInBhZ2VSZWYiLCJmdW5jcyIsImxlbmd0aCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsImNyZWF0ZUVsZW1lbnQiLCJwYWdlVHlwZSIsImtleSIsInR5cGUiLCJvbkNsaWNrIiwiVXRpbHMiLCJldmVudE9wdGlvbiIsImZ1bmMiLCJGdW5jdGlvbiIsImNvZGUiLCJuYW1lIiwicmVuZGVyU2VsZkNvbHVtbkJ1dHRvbiIsIl9yZWYyIiwic2VsZkNvbHVtbkJ1dHRvbiIsInJlY29yZCIsInJlY29yZFNob3ciLCJnZXRQYWdlRGF0YSIsInBhcmFtcyIsImdldCIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJzZXRGaWVsZERpc2FibGVkIiwiZGF0YSIsImRpc2FibGVkIiwiY29sdW1ucyIsIm5ld0NvbHVtbnMiLCJvYmoiLCJfb2JqZWN0U3ByZWFkIiwiZGF0YUluZGV4IiwiaW5kZXhPZiIsInByb3BzIiwicHVzaCIsInNldEZpZWxkVmlzaWJsZSIsInZpc2libGUiLCJlZGl0b3IiLCJzZXRGaWVsZFByb3BzRGF0YSIsInByb3BzRGF0YSIsImp1bXBQYWdlIiwicGF0aG5hbWUiLCJxdWVyeSIsImlkIiwidGl0bGUiLCJzZXJ2aWNlTmFtZSIsInNlcnZpY2VQYXRoIiwib3BlblR5cGUiLCJuZXdRdWVyeSIsInVybFBhcmFtcyIsInN0cmluZ2lmeSIsInBhdGgiLCJjb25jYXQiLCJ3aW5kb3ciLCJfX1BPV0VSRURfQllfUUlBTktVTl9fIiwicGFyZW50IiwicG9zdE1lc3NhZ2UiLCJldmVudFR5cGUiLCJwYXlsb2FkIiwibG9jYXRpb24iLCJvcmlnaW4iLCJoaXN0b3J5IiwicHVzaFN0YXRlIiwiZ28iLCJnZXRQcm9qZWN0IiwicHJvamVjdCIsIlNldHRpbmdUYWJsZSIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwicGFnZVByb3BzIiwidHJlZVByb3BzIiwic3RvcmUiLCJ1cmwiLCJhdXRvTG9hZCIsInRhYmxlUHJvcHMiLCJwYWdlTG9hZGluZyIsImRlZmF1bHRDb2x1bW5zIiwiY3JlYXRlUmVmIiwiY29tcG9uZW50RGlkTW91bnQiLCJnZXREYXRhIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwic25hcHNob3QiLCJ0YWJsZUNvZGUiLCJwdWJsaXNoZWQiLCJtZW51Q29kZSIsImlzUHVibGlzaGVkIiwidGhlbiIsInJlcyIsIl9wYWdlX3Byb3BzJHBlcm1pc3NpbyIsInRhYmxlX3Byb3BzIiwiSlNPTiIsInBhcnNlIiwidHJlZV9wcm9wcyIsInBhZ2VfcHJvcHMiLCJwZXJtaXNzaW9uIiwiaGFzIiwiY29uc29sZSIsImxvZyIsInNldFN0YXRlIiwiY29sdW1uQnV0dG9ucyIsInRvb2xCdXR0b25zIiwiX21lc3NhZ2UiLCJlcnJvciIsInJlbmRlciIsImNsYXNzTmFtZSIsInN0YXRlIiwiZGVhdWx0RnVuY3MiLCJuZXdEYXRhIiwiZ2V0Q3VycmVudFByb2plY3QiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3Bpbm5pbmciLCJfZXh0ZW5kcyIsImZvcm1Qcm9wcyIsInJlZiIsIm9uSGlkZUZvcm0iLCJfdGhpcyRwYWdlUmVmJGN1cnJlbnQiLCJjdXJyZW50IiwiaGlkZUZvcm0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdUYWJsZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlRWZmZWN0LCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgQmFzZVBhZ2UgZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi8uLi9iYXNlL3NwaW5cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0ICogYXMgTnNjQ29tIGZyb20gXCIuL2NvbVwiO1xyXG5pbXBvcnQgTnNjRmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IE5zY1JlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCAqIGFzIE5zY1V0aWxzIGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXVlcnktc3RyaW5nJ1xyXG5pbXBvcnQgeyBnZXRMb2NhbFN0b3JlIH0gZnJvbSAnQGJqLW5zYy9mdW5jdGlvbnMnXHJcbi8vIGltcG9ydCB7IGhpc3RvcnkgfSBmcm9tICd1bWknXHJcbi8vIGltcG9ydCB7IGdldENvbmZpZ0RhdGEgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmNvbnN0IHJlbmRlclNlbGZUb29sQnV0dG9uID0gKHsgc2VsZlRvb2xCdXR0b24sIHBhZ2VSZWYsIGZ1bmNzIH0pID0+IHtcclxuICBpZiAoc2VsZlRvb2xCdXR0b24ubGVuZ3RoID09IDApIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gc2VsZlRvb2xCdXR0b24ubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICBwYWdlVHlwZT1cInRvb2xCdXR0b25cIlxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgbGV0IFV0aWxzID0geyBOc2NDb20sIE5zY0ZpbGUsIE5zY1JlcXVlc3QsIE5zY1V0aWxzIH07XHJcbiAgICAgICAgICAgIGxldCBldmVudE9wdGlvbiA9IHsgcGFnZVJlZjogcGFnZVJlZiwgZnVuY3M6IGZ1bmNzIH07XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlscyxldmVudE9wdGlvblwiLCBpdGVtLm9uQ2xpY2spO1xyXG4gICAgICAgICAgICBmdW5jKFV0aWxzLCBldmVudE9wdGlvbik7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgY29kZT17aXRlbS5jb2RlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtpdGVtLm5hbWV9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCByZW5kZXJTZWxmQ29sdW1uQnV0dG9uID0gKHsgc2VsZkNvbHVtbkJ1dHRvbiwgcGFnZVJlZiwgZnVuY3MgfSkgPT4ge1xyXG4gIGlmIChzZWxmQ29sdW1uQnV0dG9uLmxlbmd0aCA9PSAwKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIHNlbGZDb2x1bW5CdXR0b24ubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICBwYWdlVHlwZT1cImNvbHVtbkJ1dHRvblwiXHJcbiAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgdHlwZT17aXRlbS50eXBlfVxyXG4gICAgICAgICAgb25DbGljaz17KHJlY29yZCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgVXRpbHMgPSB7IE5zY0NvbSwgTnNjRmlsZSwgTnNjUmVxdWVzdCwgTnNjVXRpbHMgfTtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0geyBwYWdlUmVmOiBwYWdlUmVmLCByZWNvcmQ6IHJlY29yZCwgZnVuY3M6IGZ1bmNzIH07XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlscyxldmVudE9wdGlvblwiLCBpdGVtLm9uQ2xpY2spO1xyXG4gICAgICAgICAgICBmdW5jKFV0aWxzLCBldmVudE9wdGlvbik7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgY29kZT17aXRlbS5jb2RlfVxyXG4gICAgICAgICAgcmVjb3JkU2hvdz17aXRlbS5yZWNvcmRTaG93fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtpdGVtLm5hbWV9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBnZXRQYWdlRGF0YSA9IChwYXJhbXM6IGFueSkgPT4ge1xyXG4gIHJldHVybiBOc2NSZXF1ZXN0LmdldChgL2pxdWljay1zZXR0aW5nL3NldHRpbmcvdGFibGUvaW5mby9gLCB7XHJcbiAgICBwYXJhbXMsXHJcbiAgICB4c3NGaWx0ZXI6IGZhbHNlLFxyXG4gICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICB9KTtcclxufTtcclxuXHJcbi8v6K6+572u6KGo5Y2V5a2X5q615Y+q6K+7XHJcbmNvbnN0IHNldEZpZWxkRGlzYWJsZWQgPSAoZGF0YTogQXJyYXk8YW55Piwga2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gIGNvbnN0IGNvbHVtbnMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0NvbHVtbnMgPSBbXSBhcyBhbnk7XHJcbiAgY29sdW1ucy5tYXAoKGl0ZW0pID0+IHtcclxuICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgIGlmIChpdGVtLmRhdGFJbmRleCA9PSBrZXkgfHwga2V5LmluZGV4T2YoaXRlbS5kYXRhSW5kZXgpID4gLTEpIHtcclxuICAgICAgbGV0IHByb3BzID0gb2JqLnByb3BzID8geyAuLi5vYmoucHJvcHMgfSA6IHt9O1xyXG4gICAgICBwcm9wcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgICBvYmoucHJvcHMgPSBwcm9wcztcclxuICAgIH1cclxuICAgIG5ld0NvbHVtbnMucHVzaChvYmopO1xyXG4gIH0pO1xyXG4gIHJldHVybiBuZXdDb2x1bW5zO1xyXG59O1xyXG4vL+iuvue9ruihqOWNleWtl+autemakOiXj1xyXG5jb25zdCBzZXRGaWVsZFZpc2libGUgPSAoZGF0YTogQXJyYXk8YW55Piwga2V5LCB2aXNpYmxlKSA9PiB7XHJcbiAgY29uc3QgY29sdW1ucyA9IFsuLi5kYXRhXTtcclxuICBsZXQgbmV3Q29sdW1ucyA9IFtdIGFzIGFueTtcclxuICBjb2x1bW5zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0uZGF0YUluZGV4ID09IGtleSB8fCBrZXkuaW5kZXhPZihpdGVtLmRhdGFJbmRleCkgPiAtMSkge1xyXG4gICAgICBvYmouZWRpdG9yID0gdmlzaWJsZTtcclxuICAgIH1cclxuICAgIG5ld0NvbHVtbnMucHVzaChvYmopO1xyXG4gIH0pO1xyXG4gIHJldHVybiBuZXdDb2x1bW5zO1xyXG59O1xyXG5cclxuY29uc3Qgc2V0RmllbGRQcm9wc0RhdGEgPSAoZGF0YTogQXJyYXk8YW55Piwga2V5LCBwcm9wc0RhdGEpID0+IHtcclxuICBjb25zdCBjb2x1bW5zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdDb2x1bW5zID0gW10gYXMgYW55O1xyXG4gIGNvbHVtbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5kYXRhSW5kZXggPT0ga2V5KSB7XHJcbiAgICAgIGxldCBwcm9wcyA9IG9iai5wcm9wcyA/IHsgLi4ub2JqLnByb3BzIH0gOiB7fTtcclxuICAgICAgcHJvcHMuZGF0YSA9IHByb3BzRGF0YTtcclxuICAgICAgb2JqLnByb3BzID0gcHJvcHM7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuaW50ZXJmYWNlIElQYXJhbXMge1xyXG4gIHBhdGhuYW1lPzogc3RyaW5nO1xyXG4gIHF1ZXJ5PzogYW55O1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VQYXRoPzogc3RyaW5nO1xyXG4gIG1lbnVDb2RlPzogc3RyaW5nO1xyXG4gIG9wZW5UeXBlPzogbnVtYmVyO1xyXG59XHJcbmNvbnN0IGp1bXBQYWdlID0gKHBhcmFtczogSVBhcmFtcywgdHlwZT86ICdhZGRUYWInIHwgJ2p1bXBNZW51JykgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIHBhdGhuYW1lLFxyXG4gICAgcXVlcnkgPSB7fSxcclxuICAgIGlkLFxyXG4gICAgdGl0bGUsXHJcbiAgICBzZXJ2aWNlTmFtZSxcclxuICAgIHNlcnZpY2VQYXRoLFxyXG4gICAgb3BlblR5cGUsXHJcbiAgfSA9IHBhcmFtcztcclxuICBjb25zdCBuZXdRdWVyeSA9IHsgLi4ucXVlcnkgfSBhcyBhbnk7XHJcbiAgY29uc3QgdXJsUGFyYW1zID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KG5ld1F1ZXJ5KTtcclxuICBjb25zdCBwYXRoID0gdXJsUGFyYW1zID8gYCR7cGF0aG5hbWV9PyR7dXJsUGFyYW1zfWAgOiBwYXRobmFtZTtcclxuICAvL0B0cy1pZ25vcmVcclxuICBpZiAod2luZG93Ll9fUE9XRVJFRF9CWV9RSUFOS1VOX18pIHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIHRpdGxlOiB0aXRsZSB8fCAn5paw5qCH562+JyxcclxuICAgICAgc2VydmljZU5hbWU6IHNlcnZpY2VOYW1lLCAvL+mFjee9rueahOW+ruW6lOeUqOWQjeensFxyXG4gICAgICBzZXJ2aWNlUGF0aDogc2VydmljZVBhdGgsIC8v6YWN572u55qE5b6u5bqU55So5YWl5Y+j5Zyw5Z2AXHJcbiAgICAgIHBhdGg6IHBhdGgsIC8v5paw5qCH562+55qEdXJsLOayoemFjee9rnNlcnZpY2VOYW1lIHBhdGjkuLrlrozmlbTot6/lvoRcclxuICAgICAgaWQ6IGlkLCAvL+iHquWumuS5ieWUr+S4gOWAvFxyXG4gICAgICBvcGVuVHlwZTogb3BlblR5cGUgPyBvcGVuVHlwZSA6IDQsIC8v5omT5byA5pa55byPIDTkvY3lvq7liY3nq68sIDPkuLppZnJhbWUgLOm7mOiupCAzXHJcbiAgICB9O1xyXG4gICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShcclxuICAgICAge1xyXG4gICAgICAgIGV2ZW50VHlwZTogdHlwZSA/IHR5cGUgOiAnYWRkVGFiJyxcclxuICAgICAgICBzZXJ2aWNlTmFtZTogc2VydmljZU5hbWUgPyBzZXJ2aWNlTmFtZSA6ICdzZXR0aW5nLXdlYicsXHJcbiAgICAgICAgcGF5bG9hZDogdHlwZSA/IHBhcmFtcyA6IGRhdGEsXHJcbiAgICAgIH0sXHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sXHJcbiAgICApO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCBwYXRoKTtcclxuICAgIHdpbmRvdy5oaXN0b3J5LmdvKClcclxuICB9XHJcbn07XHJcbmNvbnN0IGdldFByb2plY3QgPSAoKSA9PiB7XHJcbiAgY29uc3QgcHJvamVjdCA9IGdldExvY2FsU3RvcmUoeyBuYW1lOiAnbnNjLWhvbWUtcHJvamVjdCcgfSkgfHwge31cclxuICByZXR1cm4gcHJvamVjdFxyXG59XHJcbmludGVyZmFjZSBJUHJvcHMge1xyXG4gIHRhYmxlQ29kZTogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxuICBtZW51Q29kZT86IHN0cmluZztcclxuICBmdW5jcz86IGFueVxyXG4gIHB1Ymxpc2hlZD86IGJvb2xlYW5cclxuICBpbnN0YW5jZVJlZj86IGFueVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldHRpbmdUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgcGFnZVByb3BzOiB7fSBhcyBhbnksXHJcbiAgICB0cmVlUHJvcHM6IHsgc3RvcmU6IHsgdXJsOiBcIlwiLCBhdXRvTG9hZDogZmFsc2UgfSwgfSBhcyBhbnksXHJcbiAgICB0YWJsZVByb3BzOiB7fSBhcyBhbnksXHJcbiAgICBzZWxmVG9vbEJ1dHRvbjogW10gYXMgYW55LFxyXG4gICAgc2VsZkNvbHVtbkJ1dHRvbjogW10gYXMgYW55LFxyXG4gICAgcGFnZUxvYWRpbmc6IHRydWUsXHJcbiAgICBkZWZhdWx0Q29sdW1uczogW10gYXMgYW55XHJcbiAgfVxyXG4gIHBhZ2VSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RGF0YSgpXHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzOiBSZWFkb25seTxJUHJvcHM+LCBwcmV2U3RhdGU6IFJlYWRvbmx5PGFueT4sIHNuYXBzaG90PzogYW55KTogdm9pZCB7XHJcbiAgICBpZiAocHJldlByb3BzLnRhYmxlQ29kZSAhPSB0aGlzLnByb3BzLnRhYmxlQ29kZSkge1xyXG4gICAgICB0aGlzLmdldERhdGEoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g6I635Y+W5pWw5o2uXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIC8vIOS7jnByb3Bz5Lit6I635Y+WdGFibGVDb2Rl44CBcHVibGlzaGVk44CBbWVudUNvZGVcclxuICAgIGNvbnN0IHsgdGFibGVDb2RlLCBwdWJsaXNoZWQgPSB0cnVlLCBtZW51Q29kZSB9ID0gdGhpcy5wcm9wc1xyXG4gICAgLy8g5aaC5p6cdGFibGVDb2Rl5a2Y5ZyoXHJcbiAgICBpZiAodGFibGVDb2RlKSB7XHJcbiAgICAgIC8vIOWumuS5ieWPguaVsFxyXG4gICAgICBsZXQgcGFyYW1zID0geyBjb2RlOiB0YWJsZUNvZGUgfSBhcyBhbnlcclxuICAgICAgLy8g5aaC5p6ccHVibGlzaGVk5Li6dHJ1ZVxyXG4gICAgICBpZiAocHVibGlzaGVkKSB7XHJcbiAgICAgICAgLy8g6K6+572u5Y+C5pWwaXNQdWJsaXNoZWTkuLoxXHJcbiAgICAgICAgcGFyYW1zLmlzUHVibGlzaGVkID0gMVxyXG4gICAgICB9XHJcbiAgICAgIC8vIOiwg+eUqGdldFBhZ2VEYXRh5pa55rOV6I635Y+W5pWw5o2uXHJcbiAgICAgIGdldFBhZ2VEYXRhKHsgLi4ucGFyYW1zIH0pLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YSkge1xyXG4gICAgICAgICAgbGV0IHRhYmxlX3Byb3BzID0gSlNPTi5wYXJzZShyZXMuZGF0YS50YWJsZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgdHJlZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEudHJlZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgcGFnZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEucGFnZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBpZiAocGFnZV9wcm9wcy5wZXJtaXNzaW9uPy5oYXMgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBwYWdlX3Byb3BzLnBlcm1pc3Npb24ubWVudUNvZGUgPSBtZW51Q29kZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChwdWJsaXNoZWQgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcGFnZV9wcm9wcy5wZXJtaXNzaW9uID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdwYWdlX3Byb3BzJywgcGFnZV9wcm9wcylcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCd0YWJsZV9wcm9wcycsIHRhYmxlX3Byb3BzKVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHBhZ2VQcm9wczoge1xyXG4gICAgICAgICAgICAgIC4uLnBhZ2VfcHJvcHMsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRyZWVQcm9wczoge1xyXG4gICAgICAgICAgICAgIC4uLnRyZWVfcHJvcHMsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRhYmxlUHJvcHM6IHtcclxuICAgICAgICAgICAgICAuLi50YWJsZV9wcm9wcyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2VsZkNvbHVtbkJ1dHRvbjogSlNPTi5wYXJzZShyZXMuZGF0YS5jb2x1bW5CdXR0b25zKSB8fCBbXSxcclxuICAgICAgICAgICAgc2VsZlRvb2xCdXR0b246IEpTT04ucGFyc2UocmVzLmRhdGEudG9vbEJ1dHRvbnMpIHx8IFtdLFxyXG4gICAgICAgICAgICBkZWZhdWx0Q29sdW1uczogcGFnZV9wcm9wcy5jb2x1bW5zLFxyXG4gICAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2VcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhID09IG51bGwpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmnKrmib7liLDphY3nva7kv6Hmga/vvIFcIik7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBwYWdlTG9hZGluZzogZmFsc2VcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBjbGFzc05hbWUsIGZ1bmNzID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHBhZ2VQcm9wcywgdHJlZVByb3BzLCB0YWJsZVByb3BzLCBzZWxmVG9vbEJ1dHRvbiwgc2VsZkNvbHVtbkJ1dHRvbiwgcGFnZUxvYWRpbmcsIGRlZmF1bHRDb2x1bW5zIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZGVhdWx0RnVuY3MgPSB7XHJcbiAgICAgIHNldEZpZWxkRGlzYWJsZWQ6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHNldEZpZWxkRGlzYWJsZWQoXHJcbiAgICAgICAgICBwYWdlUHJvcHMuY29sdW1ucyxcclxuICAgICAgICAgIGtleSxcclxuICAgICAgICAgIGRpc2FibGVkXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSxcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgfSxcclxuICAgICAgc2V0RmllbGRWaXNpYmxlOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFZpc2libGUocGFnZVByb3BzLmNvbHVtbnMsIGtleSwgZGlzYWJsZWQpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgcGFnZVByb3BzOiB7IC4uLnBhZ2VQcm9wcywgY29sdW1uczogbmV3RGF0YSB9LFxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICB9LFxyXG4gICAgICBzZXRGaWVsZFByb3BzRGF0YTogKGtleSwgZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShwYWdlUHJvcHMuY29sdW1ucywga2V5LCBkYXRhKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSxcclxuICAgICAgICB9KVxyXG4gICAgICB9LFxyXG4gICAgICBoaXN0b3J5OiAocGFyYW1zLCB0eXBlKSA9PiB7XHJcbiAgICAgICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKVxyXG4gICAgICB9LFxyXG4gICAgICBnZXRDdXJyZW50UHJvamVjdDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBnZXRQcm9qZWN0KClcclxuICAgICAgfSxcclxuXHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKFwibnNjLWZyYW1ld29yay10YWJsZXBhZ2VcIiwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3BhZ2VMb2FkaW5nID8gKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX0+XHJcbiAgICAgICAgICAgIDxTcGluIHNwaW5uaW5nPXtwYWdlTG9hZGluZ30+PC9TcGluPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxCYXNlUGFnZVxyXG4gICAgICAgICAgICB7Li4ucGFnZVByb3BzfVxyXG4gICAgICAgICAgICB0cmVlUHJvcHM9e3sgLi4udHJlZVByb3BzIH19XHJcbiAgICAgICAgICAgIHRhYmxlUHJvcHM9e3sgLi4udGFibGVQcm9wcyB9fVxyXG4gICAgICAgICAgICBmb3JtUHJvcHM9e3t9fVxyXG4gICAgICAgICAgICBVdGlscz17eyBOc2NDb20sIE5zY0ZpbGUsIE5zY1JlcXVlc3QsIE5zY1V0aWxzIH19XHJcbiAgICAgICAgICAgIHJlZj17dGhpcy5wYWdlUmVmfVxyXG4gICAgICAgICAgICBwYWdlUmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICAgIG9uSGlkZUZvcm09eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IGRlZmF1bHRDb2x1bW5zIH0sXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAvLyBzZXRQYWdlUHJvcHMoeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IGRlZmF1bHRDb2x1bW5zIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnZVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBmdW5jcz17eyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3JlbmRlclNlbGZUb29sQnV0dG9uKHsgc2VsZlRvb2xCdXR0b24sIHBhZ2VSZWY6IHRoaXMucGFnZVJlZiwgZnVuY3M6IHsgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH0gfSl9XHJcbiAgICAgICAgICAgIHtyZW5kZXJTZWxmQ29sdW1uQnV0dG9uKHsgc2VsZkNvbHVtbkJ1dHRvbiwgcGFnZVJlZjogdGhpcy5wYWdlUmVmLCBmdW5jczogeyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfSB9KX1cclxuICAgICAgICAgIDwvQmFzZVBhZ2U+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4vLyBjb25zdCBJbmRleCA9ICh7IHRhYmxlQ29kZSwgY2xhc3NOYW1lLCBtZW51Q29kZSwgZnVuY3MgPSB7fSwgcHVibGlzaGVkID0gdHJ1ZSwgaW5zdGFuY2VSZWYgfTogSVByb3BzKSA9PiB7XHJcbi8vICAgY29uc3QgW3BhZ2VQcm9wcywgc2V0UGFnZVByb3BzXSA9IHVzZVN0YXRlKHt9IGFzIGFueSk7XHJcbi8vICAgY29uc3QgW3RyZWVQcm9wcywgc2V0VHJlZVByb3BzXSA9IHVzZVN0YXRlKHtcclxuLy8gICAgIHN0b3JlOiB7IHVybDogXCJcIiwgYXV0b0xvYWQ6IGZhbHNlIH0sXHJcbi8vICAgfSBhcyBhbnkpO1xyXG4vLyAgIGNvbnN0IFt0YWJsZVByb3BzLCBzZXRUYWJsZVByb3BzXSA9IHVzZVN0YXRlKHt9IGFzIGFueSk7XHJcbi8vICAgY29uc3QgW3NlbGZUb29sQnV0dG9uLCBzZXRTZWxmVG9vbEJ1dHRvbl0gPSB1c2VTdGF0ZShbXSBhcyBhbnkpO1xyXG4vLyAgIGNvbnN0IFtzZWxmQ29sdW1uQnV0dG9uLCBzZXRTZWxmQ29sdW1uQnV0dG9uXSA9IHVzZVN0YXRlKFtdIGFzIGFueSk7XHJcbi8vICAgY29uc3QgW3BhZ2VMb2FkaW5nLCBzZXRQYWdlTG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcclxuLy8gICBjb25zdCBwYWdlUmVmOiBhbnkgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbi8vICAgY29uc3QgW2RlZmF1bHRDb2x1bW5zLCBzZXREZWZhdWx0Q29sdW1uc10gPSB1c2VTdGF0ZShbXSBhcyBhbnkpO1xyXG5cclxuLy8gICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4vLyAgICAgY29uc29sZS5sb2coXCJpbnN0YW5jZVJlZlwiLCBpbnN0YW5jZVJlZilcclxuLy8gICAgIHNldFBhZ2VMb2FkaW5nKHRydWUpO1xyXG4vLyAgICAgaWYgKHRhYmxlQ29kZSkge1xyXG4vLyAgICAgICBsZXQgcGFyYW1zID0geyBjb2RlOiB0YWJsZUNvZGUgfSBhcyBhbnlcclxuLy8gICAgICAgaWYgKHB1Ymxpc2hlZCkge1xyXG4vLyAgICAgICAgIHBhcmFtcy5pc1B1Ymxpc2hlZCA9IDFcclxuLy8gICAgICAgfVxyXG4vLyAgICAgICBnZXRQYWdlRGF0YSh7IC4uLnBhcmFtcyB9KS50aGVuKChyZXM6IGFueSkgPT4ge1xyXG4vLyAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEpIHtcclxuLy8gICAgICAgICAgIGxldCB0YWJsZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEudGFibGVQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4vLyAgICAgICAgICAgbGV0IHRyZWVfcHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLnRyZWVQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4vLyAgICAgICAgICAgbGV0IHBhZ2VfcHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLnBhZ2VQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4vLyAgICAgICAgICAgaWYgKHBhZ2VfcHJvcHMucGVybWlzc2lvbj8uaGFzID09IHRydWUpIHtcclxuLy8gICAgICAgICAgICAgcGFnZV9wcm9wcy5wZXJtaXNzaW9uLm1lbnVDb2RlID0gbWVudUNvZGU7XHJcbi8vICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICBzZXRUYWJsZVByb3BzKHtcclxuLy8gICAgICAgICAgICAgLi4udGFibGVfcHJvcHMsXHJcbi8vICAgICAgICAgICB9KTtcclxuLy8gICAgICAgICAgIHNldFBhZ2VQcm9wcyhwYWdlX3Byb3BzKTtcclxuLy8gICAgICAgICAgIHNldFRyZWVQcm9wcyh7XHJcbi8vICAgICAgICAgICAgIC4uLnRyZWVfcHJvcHMsXHJcbi8vICAgICAgICAgICB9KTtcclxuLy8gICAgICAgICAgIHNldFNlbGZDb2x1bW5CdXR0b24oSlNPTi5wYXJzZShyZXMuZGF0YS5jb2x1bW5CdXR0b25zKSB8fCBbXSk7XHJcbi8vICAgICAgICAgICBzZXRTZWxmVG9vbEJ1dHRvbihKU09OLnBhcnNlKHJlcy5kYXRhLnRvb2xCdXR0b25zKSB8fCBbXSk7XHJcbi8vICAgICAgICAgICBzZXREZWZhdWx0Q29sdW1ucyhwYWdlX3Byb3BzLmNvbHVtbnMpO1xyXG4vLyAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHNldFBhZ2VMb2FkaW5nKGZhbHNlKTtcclxuLy8gICAgICAgICAgIH0sIDMwMCk7XHJcbi8vICAgICAgICAgfSBlbHNlIGlmIChyZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEgPT0gbnVsbCkge1xyXG4vLyAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuacquaJvuWIsOmFjee9ruS/oeaBr++8gVwiKTtcclxuLy8gICAgICAgICAgIHNldFBhZ2VMb2FkaW5nKGZhbHNlKTtcclxuLy8gICAgICAgICB9IGVsc2Uge1xyXG4vLyAgICAgICAgICAgc2V0UGFnZUxvYWRpbmcoZmFsc2UpO1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfSk7XHJcbi8vICAgICB9IGVsc2Uge1xyXG4vLyAgICAgICBzZXRQYWdlTG9hZGluZyhmYWxzZSk7XHJcbi8vICAgICB9XHJcbi8vICAgfSwgW3RhYmxlQ29kZV0pO1xyXG4vLyAgIHVzZUltcGVyYXRpdmVIYW5kbGUoaW5zdGFuY2VSZWYsICgpID0+ICh7XHJcblxyXG4vLyAgIH0pKTtcclxuLy8gICBjb25zdCBkZWF1bHRGdW5jcyA9IHtcclxuLy8gICAgIHNldEZpZWxkRGlzYWJsZWQ6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbi8vICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZERpc2FibGVkKFxyXG4vLyAgICAgICAgIHBhZ2VQcm9wcy5jb2x1bW5zLFxyXG4vLyAgICAgICAgIGtleSxcclxuLy8gICAgICAgICBkaXNhYmxlZFxyXG4vLyAgICAgICApO1xyXG4vLyAgICAgICBzZXRQYWdlUHJvcHMoeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSk7XHJcbi8vICAgICB9LFxyXG4vLyAgICAgc2V0RmllbGRWaXNpYmxlOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4vLyAgICAgICBjb25zdCBuZXdEYXRhID0gc2V0RmllbGRWaXNpYmxlKHBhZ2VQcm9wcy5jb2x1bW5zLCBrZXksIGRpc2FibGVkKTtcclxuLy8gICAgICAgc2V0UGFnZVByb3BzKHsgLi4ucGFnZVByb3BzLCBjb2x1bW5zOiBuZXdEYXRhIH0pO1xyXG4vLyAgICAgfSxcclxuLy8gICAgIHNldEZpZWxkUHJvcHNEYXRhOiAoa2V5LCBkYXRhKSA9PiB7XHJcbi8vICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShwYWdlUHJvcHMuY29sdW1ucywga2V5LCBkYXRhKTtcclxuLy8gICAgICAgc2V0UGFnZVByb3BzKHsgLi4ucGFnZVByb3BzLCBjb2x1bW5zOiBuZXdEYXRhIH0pO1xyXG4vLyAgICAgfSxcclxuLy8gICAgIGhpc3Rvcnk6IChwYXJhbXMsIHR5cGUpID0+IHtcclxuLy8gICAgICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKVxyXG4vLyAgICAgfSxcclxuLy8gICAgIGdldEN1cnJlbnRQcm9qZWN0OiAoKSA9PiB7XHJcbi8vICAgICAgIHJldHVybiBnZXRQcm9qZWN0KClcclxuLy8gICAgIH0sXHJcbi8vICAgICAuLi5mdW5jc1xyXG4vLyAgIH1cclxuLy8gICByZXR1cm4gKFxyXG4vLyAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhcIm5zYy1mcmFtZXdvcmstdGFibGVwYWdlXCIsIGNsYXNzTmFtZSl9PlxyXG4vLyAgICAgICB7cGFnZUxvYWRpbmcgPyAoXHJcbi8vICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX0+XHJcbi8vICAgICAgICAgICA8U3BpbiBzcGlubmluZz17cGFnZUxvYWRpbmd9PjwvU3Bpbj5cclxuLy8gICAgICAgICA8L2Rpdj5cclxuLy8gICAgICAgKSA6IChcclxuLy8gICAgICAgICA8QmFzZVBhZ2VcclxuLy8gICAgICAgICAgIHsuLi5wYWdlUHJvcHN9XHJcbi8vICAgICAgICAgICB0cmVlUHJvcHM9e3sgLi4udHJlZVByb3BzIH19XHJcbi8vICAgICAgICAgICB0YWJsZVByb3BzPXt7IC4uLnRhYmxlUHJvcHMgfX1cclxuLy8gICAgICAgICAgIGZvcm1Qcm9wcz17e319XHJcbi8vICAgICAgICAgICBVdGlscz17eyBOc2NDb20sIE5zY0ZpbGUsIE5zY1JlcXVlc3QsIE5zY1V0aWxzIH19XHJcbi8vICAgICAgICAgICByZWY9e3BhZ2VSZWZ9XHJcbi8vICAgICAgICAgICBwYWdlUmVmPXtwYWdlUmVmfVxyXG4vLyAgICAgICAgICAgb25IaWRlRm9ybT17KCkgPT4ge1xyXG4vLyAgICAgICAgICAgICBzZXRQYWdlUHJvcHMoeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IGRlZmF1bHRDb2x1bW5zIH0pO1xyXG4vLyAgICAgICAgICAgICBwYWdlUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbi8vICAgICAgICAgICB9fVxyXG4vLyAgICAgICAgICAgZnVuY3M9e3sgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH19XHJcbi8vICAgICAgICAgPlxyXG4vLyAgICAgICAgICAge3JlbmRlclNlbGZUb29sQnV0dG9uKHsgc2VsZlRvb2xCdXR0b24sIHBhZ2VSZWYsIGZ1bmNzOiB7IC4uLmRlYXVsdEZ1bmNzLCAuLi5mdW5jcyB9IH0pfVxyXG4vLyAgICAgICAgICAge3JlbmRlclNlbGZDb2x1bW5CdXR0b24oeyBzZWxmQ29sdW1uQnV0dG9uLCBwYWdlUmVmLCBmdW5jczogeyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfSB9KX1cclxuLy8gICAgICAgICA8L0Jhc2VQYWdlPlxyXG4vLyAgICAgICApfVxyXG4vLyAgICAgPC9kaXY+XHJcbi8vICAgKTtcclxuLy8gfTtcclxuLy8gZXhwb3J0IGRlZmF1bHQgZm9yd2FyZFJlZjxhbnksIElQcm9wcz4oXHJcbi8vICAgKHByb3BzLCByZWYpID0+IHtcclxuLy8gICAgIHJldHVybiA8SW5kZXggey4uLnByb3BzfSBpbnN0YW5jZVJlZj17cmVmfSAvPjtcclxuLy8gICB9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Q0FBQSxLQUFNO1FBQUEsSUFBQUMscUJBQUE7UUFDaEIsSUFBSSxDQUFDbkIsUUFBUSxDQUFDO1VBQ1ovQixTQUFTLEVBQUF6QyxhQUFBLENBQUFBLGFBQUEsS0FBT3lDLFNBQVM7WUFBRTVDLE9BQU8sRUFBRW1EO1VBQWM7UUFDcEQsQ0FBQyxDQUFDO1FBQ0Y7UUFDQSxDQUFBMkMscUJBQUEsT0FBSSxDQUFDNUgsT0FBTyxDQUFDNkgsT0FBTyxjQUFBRCxxQkFBQSxlQUFwQkEscUJBQUEsQ0FBc0JFLFFBQVEsQ0FBQyxDQUFDO01BQ2xDLENBQUU7TUFDRjdILEtBQUssRUFBQWdDLGFBQUEsQ0FBQUEsYUFBQSxLQUFPZ0YsV0FBVyxHQUFLaEgsS0FBSztJQUFHLElBRW5DSixvQkFBb0IsQ0FBQztNQUFFRSxjQUFjO01BQUVDLE9BQU8sRUFBRSxJQUFJLENBQUNBLE9BQU87TUFBRUMsS0FBSyxFQUFBZ0MsYUFBQSxDQUFBQSxhQUFBLEtBQU9nRixXQUFXLEdBQUtoSCxLQUFLO0lBQUcsQ0FBQyxDQUFDLEVBQ3BHZ0Isc0JBQXNCLENBQUM7TUFBRUUsZ0JBQWdCO01BQUVuQixPQUFPLEVBQUUsSUFBSSxDQUFDQSxPQUFPO01BQUVDLEtBQUssRUFBQWdDLGFBQUEsQ0FBQUEsYUFBQSxLQUFPZ0YsV0FBVyxHQUFLaEgsS0FBSztJQUFHLENBQUMsQ0FDaEcsQ0FFVCxDQUFDO0VBRVY7QUFFRjs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSJ9
|