nsc-react-component 3.2.21 → 3.3.0

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.
@@ -0,0 +1,42 @@
1
+ .nsc-form-page {
2
+ :gloabl {
3
+ .ant-picker {
4
+ width: 100%;
5
+ }
6
+ }
7
+ .nsc-form-pane {
8
+ margin-bottom: 20px;
9
+ background: #fff;
10
+ padding: 20px;
11
+ border-radius: 8px;
12
+ .nsc-form-title {
13
+ font-size: 22px;
14
+ font-weight: 600;
15
+ color: #333;
16
+ position: relative;
17
+ }
18
+ .nsc-form-content{
19
+ margin-top: 16px;
20
+ }
21
+ }
22
+ .nsc-form-page-footer{
23
+ height: 45px;
24
+ background: #fff;
25
+ padding: 0px 20px;
26
+ align-items: center;
27
+ position: fixed;
28
+ width: calc(100% - 220px);
29
+ left: 220px;
30
+ bottom: 0;
31
+ display: flex;
32
+ align-items: center;
33
+ box-shadow: 0px -1px 20px 0px rgba(0, 0, 0, 0.06);
34
+ transition: all 0.2s;
35
+ z-index: 99;
36
+ justify-content: end;
37
+ .nsc-form-page-footer-btn{
38
+ margin-left: 20px;
39
+
40
+ }
41
+ }
42
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "3.2.21",
3
+ "version": "3.3.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -1,29 +0,0 @@
1
- import React, { PureComponent } from "react";
2
- declare class EditorForm extends PureComponent<any> {
3
- formRef: React.RefObject<any>;
4
- state: {
5
- loading: boolean;
6
- label: string;
7
- editorFlag: boolean;
8
- value: any;
9
- dictNames: any;
10
- fileList: any;
11
- };
12
- valid: any;
13
- dateValueFormat: any;
14
- dateFormat: any;
15
- show(orgValue?: any, editorflag?: string): void;
16
- hide(hide?: boolean): void;
17
- hideForm(): void;
18
- setLoading(loading: boolean): void;
19
- setFieldsValue(values: any): void;
20
- getFieldsValue(): any;
21
- doSubmit(formdata: any, label: any): void;
22
- onSubmit(): void;
23
- valueChange({ type, dictName }: {
24
- type: any;
25
- dictName: any;
26
- }, props: any, value: any, valueOption: any, data: any): void;
27
- render(): React.JSX.Element;
28
- }
29
- export default EditorForm;
@@ -1,333 +0,0 @@
1
- const _excluded = ["data"];
2
- function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
3
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- 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; }
6
- 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; }
7
- 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; }
8
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
9
- 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); }
10
- import React, { PureComponent } from "react";
11
- import Form from "../../base/form";
12
- import { getLess, getNode } from "../../utils";
13
- import message from "../../base/message";
14
- import Col from "../../base/grid/Col";
15
- import Row from "../../base/grid/Row";
16
- import { isEmptyObj } from "@bj-nsc/functions";
17
- import dayjs from "dayjs";
18
- import styles from "./index.module.less";
19
- import lodash from "lodash";
20
- import Button from "../../base/button";
21
- import Upload from '../../base/upload';
22
- class EditorForm extends PureComponent {
23
- constructor() {
24
- super(...arguments);
25
- _defineProperty(this, "formRef", /*#__PURE__*/React.createRef());
26
- _defineProperty(this, "state", {
27
- loading: false,
28
- label: "",
29
- editorFlag: true,
30
- value: {},
31
- dictNames: {},
32
- fileList: {}
33
- });
34
- _defineProperty(this, "valid", []);
35
- _defineProperty(this, "dateValueFormat", {});
36
- _defineProperty(this, "dateFormat", {});
37
- }
38
- //表单显示
39
- show(orgValue) {
40
- let editorflag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "add";
41
- let label = "新增";
42
- if (orgValue && editorflag == "editor") {
43
- label = "编辑";
44
- } else if (orgValue && editorflag == "detail") {
45
- label = "查看";
46
- }
47
- if (orgValue) {
48
- this.setState({
49
- label: label,
50
- value: orgValue
51
- }, () => {
52
- var _this$formRef$current;
53
- let value = lodash.cloneDeep(orgValue);
54
- if (!isEmptyObj(this.dateFormat)) {
55
- for (let key in this.dateFormat) {
56
- let olddata = value[key];
57
- if (olddata) {
58
- if (Array.isArray(olddata)) {
59
- value[key] = [dayjs(olddata[0], this.dateFormat[key]), dayjs(olddata[1], this.dateFormat[key])];
60
- } else {
61
- value[key] = dayjs(olddata, this.dateFormat[key]);
62
- }
63
- }
64
- }
65
- }
66
- // console.log("value", value);
67
- (_this$formRef$current = this.formRef.current) === null || _this$formRef$current === void 0 || _this$formRef$current.showForm(value);
68
- });
69
- } else {
70
- this.setState({
71
- label: label
72
- }, () => {
73
- var _this$formRef$current2;
74
- (_this$formRef$current2 = this.formRef.current) === null || _this$formRef$current2 === void 0 || _this$formRef$current2.showForm(this.props.defaultValue);
75
- });
76
- }
77
- }
78
- hide() {
79
- var _this$formRef$current3;
80
- let hide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
81
- const {
82
- onHideForm
83
- } = this.props;
84
- if (onHideForm) {
85
- onHideForm && onHideForm();
86
- return;
87
- }
88
- this.setState({
89
- loading: false
90
- });
91
- hide && ((_this$formRef$current3 = this.formRef.current) === null || _this$formRef$current3 === void 0 ? void 0 : _this$formRef$current3.hideForm());
92
- }
93
- hideForm() {
94
- var _this$formRef$current4;
95
- this.setState({
96
- loading: false
97
- });
98
- (_this$formRef$current4 = this.formRef.current) === null || _this$formRef$current4 === void 0 || _this$formRef$current4.hideForm();
99
- }
100
- setLoading(loading) {
101
- this.setState({
102
- loading: loading
103
- });
104
- }
105
- setFieldsValue(values) {
106
- var _this$formRef$current5;
107
- (_this$formRef$current5 = this.formRef.current) === null || _this$formRef$current5 === void 0 || _this$formRef$current5.setFieldsValue(values);
108
- }
109
- getFieldsValue() {
110
- var _this$formRef$current6;
111
- return (_this$formRef$current6 = this.formRef.current) === null || _this$formRef$current6 === void 0 ? void 0 : _this$formRef$current6.getFieldsValue();
112
- }
113
- doSubmit(formdata, label) {
114
- var _this$formRef$current7;
115
- const {
116
- submitUrl,
117
- submitParams,
118
- callBack
119
- } = this.props;
120
- if (!submitUrl) {
121
- throw new Error("url不能为空!");
122
- }
123
- const {
124
- data = {}
125
- } = submitParams,
126
- otherParams = _objectWithoutProperties(submitParams, _excluded);
127
- (_this$formRef$current7 = this.formRef.current) === null || _this$formRef$current7 === void 0 || _this$formRef$current7.onSubmit(submitUrl, _objectSpread({
128
- data: _objectSpread(_objectSpread({}, formdata), data),
129
- noUndefined: label == "编辑"
130
- }, otherParams), res => {
131
- const {
132
- code
133
- } = res;
134
- this.setState({
135
- loading: false
136
- });
137
- if (code === 200) {
138
- message.success(label + "成功");
139
- this.hide(true);
140
- callBack && callBack();
141
- return;
142
- }
143
- this.hide(false);
144
- });
145
- }
146
- onSubmit() {
147
- var _this$formRef$current8, _this$formRef$current9;
148
- const {
149
- onSubmit
150
- } = this.props;
151
- const {
152
- label,
153
- value,
154
- dictNames
155
- } = this.state;
156
- const formValue = (_this$formRef$current8 = this.formRef.current) === null || _this$formRef$current8 === void 0 ? void 0 : _this$formRef$current8.getFieldsValue();
157
- let valid = this.valid;
158
- (_this$formRef$current9 = this.formRef.current) === null || _this$formRef$current9 === void 0 || _this$formRef$current9.validateFields(valid).then(() => {
159
- this.setState({
160
- loading: true
161
- });
162
- let data = _objectSpread(_objectSpread({}, formValue), dictNames);
163
- if (!isEmptyObj(this.dateValueFormat)) {
164
- for (let key in this.dateValueFormat) {
165
- let olddata = data[key];
166
- if (olddata) {
167
- if (Array.isArray(olddata)) {
168
- data[key] = [dayjs(olddata[0]).format(this.dateValueFormat[key]), dayjs(olddata[1]).format(this.dateValueFormat[key])];
169
- } else {
170
- data[key] = dayjs(olddata).format(this.dateValueFormat[key]);
171
- }
172
- }
173
- }
174
- }
175
- if (label == "编辑") {
176
- data = _objectSpread(_objectSpread({}, data), {}, {
177
- id: value === null || value === void 0 ? void 0 : value.id
178
- });
179
- }
180
- if (onSubmit) {
181
- onSubmit && onSubmit(data, label);
182
- return;
183
- }
184
- this.doSubmit(data, label);
185
- }).catch(errorInfo => {});
186
- }
187
- valueChange(_ref, props, value, valueOption, data) {
188
- let {
189
- type,
190
- dictName
191
- } = _ref;
192
- if (valueOption) {
193
- if (dictName) {
194
- const {
195
- dictNames
196
- } = this.state;
197
- const newNames = _objectSpread({}, dictNames);
198
- newNames[dictName] = valueOption.label;
199
- this.setState({
200
- dictNames: newNames
201
- });
202
- }
203
- }
204
- if (props.onChange) {
205
- props.onChange(value, valueOption, data);
206
- }
207
- }
208
- render() {
209
- const {
210
- formProps = [],
211
- otherProps = {}
212
- } = this.props;
213
- const {
214
- loading,
215
- label
216
- } = this.state;
217
- let modalProps = {
218
- title: label,
219
- onOk: this.onSubmit.bind(this),
220
- onCancel: this.hide.bind(this),
221
- okButtonProps: {
222
- loading: loading
223
- },
224
- centered: true,
225
- width: "50vw"
226
- };
227
- const newValid = [];
228
- let drawerProps = {
229
- title: label,
230
- onOk: this.onSubmit.bind(this),
231
- onClose: this.hide.bind(this),
232
- width: "50vw"
233
- };
234
- if (label == "查看") {
235
- modalProps.footer = null;
236
- drawerProps.footer = null;
237
- }
238
- this.dateValueFormat = {};
239
- this.dateFormat = {};
240
- return /*#__PURE__*/React.createElement(Form, _extends({
241
- ref: this.formRef,
242
- showModel: this.props.formType,
243
- modalProps: _objectSpread({}, modalProps),
244
- drawerProps: _objectSpread({}, drawerProps),
245
- labelCol: {
246
- flex: "100px"
247
- },
248
- wrapperCol: {
249
- flex: "15vw"
250
- },
251
- onValuesChange: (changedValues, allValues) => {
252
- const {
253
- onFormChange
254
- } = this.props;
255
- onFormChange && onFormChange(changedValues, allValues);
256
- },
257
- changeValid: this.props.changeValid
258
- }, otherProps), /*#__PURE__*/React.createElement("div", {
259
- className: getLess(styles, "form")
260
- }, /*#__PURE__*/React.createElement(Row, {
261
- gutter: 24
262
- }, formProps.map((item, index) => {
263
- const itemProps = item.props || {};
264
- if (itemProps.format || itemProps.valueFormat) {
265
- this.dateValueFormat[item.name] = itemProps.format || itemProps.valueFormat;
266
- }
267
- if (itemProps.format) {
268
- this.dateFormat[item.name] = itemProps.format;
269
- }
270
- let allowChars = item.props.allowChars || false;
271
- let props = _objectSpread(_objectSpread({
272
- placeholder: "\u8BF7\u8F93\u5165".concat(item.label)
273
- }, item.props), {}, {
274
- onChange: this.valueChange.bind(this, {
275
- type: item.type,
276
- dictName: item.dictName
277
- }, _objectSpread({}, item.props))
278
- });
279
- if (!item.type || item.type == "Input") {
280
- props.allowChars = true;
281
- props.showCount = true;
282
- }
283
- delete props.valueFormat;
284
- delete props.format;
285
- if (label == "查看") {
286
- props.disabled = true;
287
- }
288
- if (item.rules && item.rules.length > 0) {
289
- newValid.push(item.name);
290
- }
291
- if (index + 1 === formProps.length) {
292
- this.valid = newValid;
293
- }
294
- if (item.type !== 'Upload') {
295
- return /*#__PURE__*/React.createElement(Col, {
296
- span: item.span || 12,
297
- key: index
298
- }, /*#__PURE__*/React.createElement(Form.Item, {
299
- label: item.label,
300
- name: item.name,
301
- rules: item.rules,
302
- allowChars: allowChars,
303
- componentName: item.type ? item.type : "Input"
304
- }, getNode(item.type, _objectSpread({}, props))));
305
- } else {
306
- return /*#__PURE__*/React.createElement(Col, {
307
- span: item.span || 12,
308
- key: index
309
- }, /*#__PURE__*/React.createElement(Form.Item, {
310
- label: item.label,
311
- name: item.name,
312
- rules: item.rules,
313
- allowChars: allowChars,
314
- componentName: item.type ? item.type : "Input"
315
- }, /*#__PURE__*/React.createElement(Upload, _extends({
316
- fileList: this.state.fileList[item.name] || [],
317
- onListChange: list => {
318
- const {
319
- fileList
320
- } = this.state;
321
- this.setState({
322
- fileList: _objectSpread(_objectSpread({}, fileList), {}, {
323
- [item.name]: list
324
- })
325
- });
326
- }
327
- }, props), /*#__PURE__*/React.createElement(Button, null, "\u4E0A\u4F20\u6587\u4EF6"))));
328
- }
329
- }))));
330
- }
331
- }
332
- export default EditorForm;
333
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJtZXNzYWdlIiwiQ29sIiwiUm93IiwiaXNFbXB0eU9iaiIsImRheWpzIiwic3R5bGVzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiRWRpdG9yRm9ybSIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibG9hZGluZyIsImxhYmVsIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJzaG93Iiwib3JnVmFsdWUiLCJlZGl0b3JmbGFnIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwic2V0U3RhdGUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQiLCJjbG9uZURlZXAiLCJkYXRlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2hvd0Zvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQyIiwicHJvcHMiLCJkZWZhdWx0VmFsdWUiLCJoaWRlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsIm9uSGlkZUZvcm0iLCJoaWRlRm9ybSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDQiLCJzZXRMb2FkaW5nIiwic2V0RmllbGRzVmFsdWUiLCJ2YWx1ZXMiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ1IiwiZ2V0RmllbGRzVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2IiwiZG9TdWJtaXQiLCJmb3JtZGF0YSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJjYWxsQmFjayIsIkVycm9yIiwiZGF0YSIsIm90aGVyUGFyYW1zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwib25TdWJtaXQiLCJfb2JqZWN0U3ByZWFkIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsIl90aGlzJGZvcm1SZWYkY3VycmVudDgiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ5Iiwic3RhdGUiLCJmb3JtVmFsdWUiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwidGhlbiIsImRhdGVWYWx1ZUZvcm1hdCIsImZvcm1hdCIsImlkIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsInR5cGUiLCJkaWN0TmFtZSIsIm5ld05hbWVzIiwib25DaGFuZ2UiLCJyZW5kZXIiLCJmb3JtUHJvcHMiLCJvdGhlclByb3BzIiwibW9kYWxQcm9wcyIsInRpdGxlIiwib25PayIsImJpbmQiLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsIndpZHRoIiwibmV3VmFsaWQiLCJkcmF3ZXJQcm9wcyIsIm9uQ2xvc2UiLCJmb290ZXIiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJyZWYiLCJzaG93TW9kZWwiLCJmb3JtVHlwZSIsImxhYmVsQ29sIiwiZmxleCIsIndyYXBwZXJDb2wiLCJvblZhbHVlc0NoYW5nZSIsImNoYW5nZWRWYWx1ZXMiLCJhbGxWYWx1ZXMiLCJvbkZvcm1DaGFuZ2UiLCJjaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsImd1dHRlciIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIml0ZW1Qcm9wcyIsInZhbHVlRm9ybWF0IiwibmFtZSIsImFsbG93Q2hhcnMiLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsInNob3dDb3VudCIsImRpc2FibGVkIiwicnVsZXMiLCJwdXNoIiwic3BhbiIsIkl0ZW0iLCJjb21wb25lbnROYW1lIiwib25MaXN0Q2hhbmdlIiwibGlzdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvRm9ybS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi8uLi9iYXNlL21lc3NhZ2VcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7IGlzRW1wdHlPYmogfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5tb2R1bGUubGVzc1wiO1xyXG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBsb2Rhc2ggZnJvbSBcImxvZGFzaFwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgVXBsb2FkIGZyb20gJy4uLy4uL2Jhc2UvdXBsb2FkJ1xyXG5jbGFzcyBFZGl0b3JGb3JtIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxhbnk+IHtcclxuICBmb3JtUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzdGF0ZSA9IHtcclxuICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgbGFiZWw6IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueVxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIGxldCBsYWJlbCA9IFwi5paw5aKeXCI7XHJcbiAgICBpZiAob3JnVmFsdWUgJiYgZWRpdG9yZmxhZyA9PSBcImVkaXRvclwiKSB7XHJcbiAgICAgIGxhYmVsID0gXCLnvJbovpFcIjtcclxuICAgIH0gZWxzZSBpZiAob3JnVmFsdWUgJiYgZWRpdG9yZmxhZyA9PSBcImRldGFpbFwiKSB7XHJcbiAgICAgIGxhYmVsID0gXCLmn6XnnItcIjtcclxuICAgIH1cclxuICAgIGlmIChvcmdWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiBvcmdWYWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIGxldCB2YWx1ZSA9IGxvZGFzaC5jbG9uZURlZXAob3JnVmFsdWUpO1xyXG4gICAgICAgICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZUZvcm1hdCkpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuZGF0ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICAgIGxldCBvbGRkYXRhID0gdmFsdWVba2V5XTtcclxuICAgICAgICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgICAgICAgdmFsdWVba2V5XSA9IFtcclxuICAgICAgICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdmFsdWVba2V5XSA9IGRheWpzKG9sZGRhdGEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwidmFsdWVcIiwgdmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBoaWRlKGhpZGUgPSB0cnVlKSB7XHJcbiAgICBjb25zdCB7IG9uSGlkZUZvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25IaWRlRm9ybSkge1xyXG4gICAgICBvbkhpZGVGb3JtICYmIG9uSGlkZUZvcm0oKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgaGlkZSAmJiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogbG9hZGluZyB9KTtcclxuICB9XHJcbiAgc2V0RmllbGRzVmFsdWUodmFsdWVzKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWVzKTtcclxuICB9XHJcbiAgZ2V0RmllbGRzVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBkb1N1Ym1pdChmb3JtZGF0YSwgbGFiZWwpIHtcclxuICAgIGNvbnN0IHsgc3VibWl0VXJsLCBzdWJtaXRQYXJhbXMsIGNhbGxCYWNrIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFzdWJtaXRVcmwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBkYXRhID0ge30sIC4uLm90aGVyUGFyYW1zIH0gPSBzdWJtaXRQYXJhbXNcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5vblN1Ym1pdChcclxuICAgICAgc3VibWl0VXJsLFxyXG4gICAgICB7XHJcbiAgICAgICAgZGF0YTogeyAuLi5mb3JtZGF0YSwuLi5kYXRhIH0sXHJcbiAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgLi4ub3RoZXJQYXJhbXMsXHJcbiAgICAgIH0sXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MobGFiZWwgKyBcIuaIkOWKn1wiKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaGlkZShmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgeyBvblN1Ym1pdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKHZhbGlkKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7IC4uLmZvcm1WYWx1ZSwgLi4uZGljdE5hbWVzIH07XHJcbiAgICAgICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkgeyAgICAgICAgXHJcbiAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgbGV0IG9sZGRhdGEgPSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgICAgIGRhdGFba2V5XSA9IFtcclxuICAgICAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvblN1Ym1pdCkge1xyXG4gICAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQoZGF0YSwgbGFiZWwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRvU3VibWl0KGRhdGEsIGxhYmVsKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4geyB9KTtcclxuICB9XHJcbiAgdmFsdWVDaGFuZ2UoeyB0eXBlLCBkaWN0TmFtZSB9LCBwcm9wcywgdmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKSB7XHJcbiAgICBpZiAodmFsdWVPcHRpb24pIHtcclxuICAgICAgaWYgKGRpY3ROYW1lKSB7XHJcbiAgICAgICAgY29uc3QgeyBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgY29uc3QgbmV3TmFtZXMgPSB7IC4uLmRpY3ROYW1lcyB9IGFzIGFueTtcclxuICAgICAgICBuZXdOYW1lc1tkaWN0TmFtZV0gPSB2YWx1ZU9wdGlvbi5sYWJlbDtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRpY3ROYW1lczogbmV3TmFtZXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5vbkNoYW5nZSkge1xyXG4gICAgICBwcm9wcy5vbkNoYW5nZSh2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBmb3JtUHJvcHMgPSBbXSwgb3RoZXJQcm9wcyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBtb2RhbFByb3BzID0ge1xyXG4gICAgICB0aXRsZTogbGFiZWwsXHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DYW5jZWw6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICBva0J1dHRvblByb3BzOiB7IGxvYWRpbmc6IGxvYWRpbmcgfSxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgIH0gYXMgYW55O1xyXG5cclxuICAgIGNvbnN0IG5ld1ZhbGlkOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IGRyYXdlclByb3BzID0ge1xyXG4gICAgICB0aXRsZTogbGFiZWwsXHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DbG9zZTogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgIH0gYXMgYW55O1xyXG4gICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgbW9kYWxQcm9wcy5mb290ZXIgPSBudWxsO1xyXG4gICAgICBkcmF3ZXJQcm9wcy5mb290ZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlVmFsdWVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZGF0ZUZvcm1hdCA9IHt9O1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxGb3JtXHJcbiAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XHJcbiAgICAgICAgc2hvd01vZGVsPXt0aGlzLnByb3BzLmZvcm1UeXBlfVxyXG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxyXG4gICAgICAgIGRyYXdlclByb3BzPXt7IC4uLmRyYXdlclByb3BzIH19XHJcbiAgICAgICAgbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XHJcbiAgICAgICAgd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxyXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlPXsoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IG9uRm9ybUNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIG9uRm9ybUNoYW5nZSAmJiBvbkZvcm1DaGFuZ2UoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIGNoYW5nZVZhbGlkPXt0aGlzLnByb3BzLmNoYW5nZVZhbGlkfVxyXG4gICAgICAgIHsuLi5vdGhlclByb3BzfVxyXG4gICAgICA+XHJcbiAgICAgICAgey8qIDxkaXY+ICovfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJmb3JtXCIpfT5cclxuICAgICAgICAgIDxSb3cgZ3V0dGVyPXsyNH0+XHJcbiAgICAgICAgICAgIHtmb3JtUHJvcHMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgICAgIGlmIChpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2l0ZW0ubmFtZV0gPSBpdGVtUHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgYWxsb3dDaGFycyA9IGl0ZW0ucHJvcHMuYWxsb3dDaGFycyB8fCBmYWxzZTtcclxuICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7XHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gLFxyXG5cclxuICAgICAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZS5iaW5kKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpY3ROYW1lOiBpdGVtLmRpY3ROYW1lLFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB7IC4uLml0ZW0ucHJvcHMgfVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIGlmICghaXRlbS50eXBlIHx8IGl0ZW0udHlwZSA9PSBcIklucHV0XCIpIHtcclxuICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcHJvcHMuc2hvd0NvdW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgICAgICAgIHByb3BzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGlmIChpdGVtLnJ1bGVzICYmIGl0ZW0ucnVsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV3VmFsaWQucHVzaChpdGVtLm5hbWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBmb3JtUHJvcHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkID0gbmV3VmFsaWQ7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgIT09ICdVcGxvYWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8Q29sIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn0ga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM9e2FsbG93Q2hhcnN9XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lPXtpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3RbaXRlbS5uYW1lXSB8fCBbXX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25MaXN0Q2hhbmdlPXsobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbj7kuIrkvKDmlofku7Y8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvVXBsb2FkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvUm93PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0Zvcm0+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yRm9ybTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBUSxPQUFPO0FBQzVDLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sb0JBQW9CO0FBQ3hDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBRTlDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLE1BQU0sTUFBTSxxQkFBcUI7QUFFeEMsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE1BQU1DLFVBQVUsU0FBU2IsYUFBYSxDQUFNO0VBQUFjLFlBQUE7SUFBQSxTQUFBQyxTQUFBO0lBQUFDLGVBQUEsK0JBQ2hDakIsS0FBSyxDQUFDa0IsU0FBUyxDQUFNLENBQUM7SUFBQUQsZUFBQSxnQkFDeEI7TUFDTkUsT0FBTyxFQUFFLEtBQUs7TUFDZEMsS0FBSyxFQUFFLEVBQUU7TUFDVEMsVUFBVSxFQUFFLElBQUk7TUFDaEJDLEtBQUssRUFBRSxDQUFDLENBQVE7TUFDaEJDLFNBQVMsRUFBRSxDQUFDLENBQVE7TUFDcEJDLFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUFBUCxlQUFBLGdCQUNZLEVBQUU7SUFBQUEsZUFBQSwwQkFDRyxDQUFDLENBQUM7SUFBQUEsZUFBQSxxQkFDUCxDQUFDLENBQUM7RUFBQTtFQUNmO0VBQ0FRLElBQUlBLENBQUNDLFFBQWMsRUFBc0I7SUFBQSxJQUFwQkMsVUFBVSxHQUFBWCxTQUFBLENBQUFZLE1BQUEsUUFBQVosU0FBQSxRQUFBYSxTQUFBLEdBQUFiLFNBQUEsTUFBRyxLQUFLO0lBQ3JDLElBQUlJLEtBQUssR0FBRyxJQUFJO0lBQ2hCLElBQUlNLFFBQVEsSUFBSUMsVUFBVSxJQUFJLFFBQVEsRUFBRTtNQUN0Q1AsS0FBSyxHQUFHLElBQUk7SUFDZCxDQUFDLE1BQU0sSUFBSU0sUUFBUSxJQUFJQyxVQUFVLElBQUksUUFBUSxFQUFFO01BQzdDUCxLQUFLLEdBQUcsSUFBSTtJQUNkO0lBQ0EsSUFBSU0sUUFBUSxFQUFFO01BQ1osSUFBSSxDQUFDSSxRQUFRLENBQ1g7UUFDRVYsS0FBSyxFQUFFQSxLQUFLO1FBQ1pFLEtBQUssRUFBRUk7TUFDVCxDQUFDLEVBQ0QsTUFBTTtRQUFBLElBQUFLLHFCQUFBO1FBQ0osSUFBSVQsS0FBSyxHQUFHWCxNQUFNLENBQUNxQixTQUFTLENBQUNOLFFBQVEsQ0FBQztRQUN0QyxJQUFJLENBQUNsQixVQUFVLENBQUMsSUFBSSxDQUFDeUIsVUFBVSxDQUFDLEVBQUU7VUFDaEMsS0FBSyxJQUFJQyxHQUFHLElBQUksSUFBSSxDQUFDRCxVQUFVLEVBQUU7WUFDL0IsSUFBSUUsT0FBTyxHQUFHYixLQUFLLENBQUNZLEdBQUcsQ0FBQztZQUN4QixJQUFJQyxPQUFPLEVBQUU7Y0FDWCxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsT0FBTyxDQUFDLEVBQUU7Z0JBQzFCYixLQUFLLENBQUNZLEdBQUcsQ0FBQyxHQUFHLENBQ1h6QixLQUFLLENBQUMwQixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDRixVQUFVLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQ3ZDekIsS0FBSyxDQUFDMEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0YsVUFBVSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxDQUN4QztjQUNILENBQUMsTUFBTTtnQkFDTFosS0FBSyxDQUFDWSxHQUFHLENBQUMsR0FBR3pCLEtBQUssQ0FBQzBCLE9BQU8sRUFBRSxJQUFJLENBQUNGLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDLENBQUM7Y0FDbkQ7WUFDRjtVQUNGO1FBQ0Y7UUFDQTtRQUNBLENBQUFILHFCQUFBLE9BQUksQ0FBQ08sT0FBTyxDQUFDQyxPQUFPLGNBQUFSLHFCQUFBLGVBQXBCQSxxQkFBQSxDQUFzQlMsUUFBUSxDQUFDbEIsS0FBSyxDQUFDO01BQ3ZDLENBQ0YsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQ1EsUUFBUSxDQUNYO1FBQ0VWLEtBQUssRUFBRUE7TUFDVCxDQUFDLEVBQ0QsTUFBTTtRQUFBLElBQUFxQixzQkFBQTtRQUNKLENBQUFBLHNCQUFBLE9BQUksQ0FBQ0gsT0FBTyxDQUFDQyxPQUFPLGNBQUFFLHNCQUFBLGVBQXBCQSxzQkFBQSxDQUFzQkQsUUFBUSxDQUFDLElBQUksQ0FBQ0UsS0FBSyxDQUFDQyxZQUFZLENBQUM7TUFDekQsQ0FDRixDQUFDO0lBQ0g7RUFDRjtFQUNBQyxJQUFJQSxDQUFBLEVBQWM7SUFBQSxJQUFBQyxzQkFBQTtJQUFBLElBQWJELElBQUksR0FBQTVCLFNBQUEsQ0FBQVksTUFBQSxRQUFBWixTQUFBLFFBQUFhLFNBQUEsR0FBQWIsU0FBQSxNQUFHLElBQUk7SUFDZCxNQUFNO01BQUU4QjtJQUFXLENBQUMsR0FBRyxJQUFJLENBQUNKLEtBQUs7SUFDakMsSUFBSUksVUFBVSxFQUFFO01BQ2RBLFVBQVUsSUFBSUEsVUFBVSxDQUFDLENBQUM7TUFDMUI7SUFDRjtJQUNBLElBQUksQ0FBQ2hCLFFBQVEsQ0FBQztNQUFFWCxPQUFPLEVBQUU7SUFBTSxDQUFDLENBQUM7SUFDakN5QixJQUFJLE1BQUFDLHNCQUFBLEdBQUksSUFBSSxDQUFDUCxPQUFPLENBQUNDLE9BQU8sY0FBQU0sc0JBQUEsdUJBQXBCQSxzQkFBQSxDQUFzQkUsUUFBUSxDQUFDLENBQUM7RUFDMUM7RUFDQUEsUUFBUUEsQ0FBQSxFQUFHO0lBQUEsSUFBQUMsc0JBQUE7SUFDVCxJQUFJLENBQUNsQixRQUFRLENBQUM7TUFBRVgsT0FBTyxFQUFFO0lBQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUE2QixzQkFBQSxPQUFJLENBQUNWLE9BQU8sQ0FBQ0MsT0FBTyxjQUFBUyxzQkFBQSxlQUFwQkEsc0JBQUEsQ0FBc0JELFFBQVEsQ0FBQyxDQUFDO0VBQ2xDO0VBQ0FFLFVBQVVBLENBQUM5QixPQUFnQixFQUFFO0lBQzNCLElBQUksQ0FBQ1csUUFBUSxDQUFDO01BQUVYLE9BQU8sRUFBRUE7SUFBUSxDQUFDLENBQUM7RUFDckM7RUFDQStCLGNBQWNBLENBQUNDLE1BQU0sRUFBRTtJQUFBLElBQUFDLHNCQUFBO0lBQ3JCLENBQUFBLHNCQUFBLE9BQUksQ0FBQ2QsT0FBTyxDQUFDQyxPQUFPLGNBQUFhLHNCQUFBLGVBQXBCQSxzQkFBQSxDQUFzQkYsY0FBYyxDQUFDQyxNQUFNLENBQUM7RUFDOUM7RUFDQUUsY0FBY0EsQ0FBQSxFQUFHO0lBQUEsSUFBQUMsc0JBQUE7SUFDZixRQUFBQSxzQkFBQSxHQUFPLElBQUksQ0FBQ2hCLE9BQU8sQ0FBQ0MsT0FBTyxjQUFBZSxzQkFBQSx1QkFBcEJBLHNCQUFBLENBQXNCRCxjQUFjLENBQUMsQ0FBQztFQUMvQztFQUVBRSxRQUFRQSxDQUFDQyxRQUFRLEVBQUVwQyxLQUFLLEVBQUU7SUFBQSxJQUFBcUMsc0JBQUE7SUFDeEIsTUFBTTtNQUFFQyxTQUFTO01BQUVDLFlBQVk7TUFBRUM7SUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDbEIsS0FBSztJQUN4RCxJQUFJLENBQUNnQixTQUFTLEVBQUU7TUFDZCxNQUFNLElBQUlHLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDN0I7SUFDQSxNQUFNO1FBQUVDLElBQUksR0FBRyxDQUFDO01BQWtCLENBQUMsR0FBR0gsWUFBWTtNQUE1QkksV0FBVyxHQUFBQyx3QkFBQSxDQUFLTCxZQUFZLEVBQUFNLFNBQUE7SUFDbEQsQ0FBQVIsc0JBQUEsT0FBSSxDQUFDbkIsT0FBTyxDQUFDQyxPQUFPLGNBQUFrQixzQkFBQSxlQUFwQkEsc0JBQUEsQ0FBc0JTLFFBQVEsQ0FDNUJSLFNBQVMsRUFBQVMsYUFBQTtNQUVQTCxJQUFJLEVBQUFLLGFBQUEsQ0FBQUEsYUFBQSxLQUFPWCxRQUFRLEdBQUlNLElBQUksQ0FBRTtNQUM3Qk0sV0FBVyxFQUFFaEQsS0FBSyxJQUFJO0lBQUksR0FDdkIyQyxXQUFXLEdBRWZNLEdBQVEsSUFBSztNQUNaLE1BQU07UUFBRUM7TUFBSyxDQUFDLEdBQUdELEdBQUc7TUFDcEIsSUFBSSxDQUFDdkMsUUFBUSxDQUFDO1FBQUVYLE9BQU8sRUFBRTtNQUFNLENBQUMsQ0FBQztNQUNqQyxJQUFJbUQsSUFBSSxLQUFLLEdBQUcsRUFBRTtRQUNoQmpFLE9BQU8sQ0FBQ2tFLE9BQU8sQ0FBQ25ELEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDd0IsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNmZ0IsUUFBUSxJQUFJQSxRQUFRLENBQUMsQ0FBQztRQUN0QjtNQUNGO01BQ0EsSUFBSSxDQUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNsQixDQUNGLENBQUM7RUFDSDtFQUNBc0IsUUFBUUEsQ0FBQSxFQUFHO0lBQUEsSUFBQU0sc0JBQUEsRUFBQUMsc0JBQUE7SUFDVCxNQUFNO01BQUVQO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ3hCLEtBQUs7SUFDL0IsTUFBTTtNQUFFdEIsS0FBSztNQUFFRSxLQUFLO01BQUVDO0lBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQ21ELEtBQUs7SUFDOUMsTUFBTUMsU0FBUyxJQUFBSCxzQkFBQSxHQUFHLElBQUksQ0FBQ2xDLE9BQU8sQ0FBQ0MsT0FBTyxjQUFBaUMsc0JBQUEsdUJBQXBCQSxzQkFBQSxDQUFzQm5CLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELElBQUl1QixLQUFLLEdBQUcsSUFBSSxDQUFDQSxLQUFLO0lBQ3RCLENBQUFILHNCQUFBLE9BQUksQ0FBQ25DLE9BQU8sQ0FBQ0MsT0FBTyxjQUFBa0Msc0JBQUEsZUFBcEJBLHNCQUFBLENBQ0lJLGNBQWMsQ0FBQ0QsS0FBSyxDQUFDLENBQ3RCRSxJQUFJLENBQUMsTUFBTTtNQUNWLElBQUksQ0FBQ2hELFFBQVEsQ0FBQztRQUFFWCxPQUFPLEVBQUU7TUFBSyxDQUFDLENBQUM7TUFDaEMsSUFBSTJDLElBQUksR0FBQUssYUFBQSxDQUFBQSxhQUFBLEtBQVFRLFNBQVMsR0FBS3BELFNBQVMsQ0FBRTtNQUN6QyxJQUFJLENBQUNmLFVBQVUsQ0FBQyxJQUFJLENBQUN1RSxlQUFlLENBQUMsRUFBRTtRQUNyQyxLQUFLLElBQUk3QyxHQUFHLElBQUksSUFBSSxDQUFDNkMsZUFBZSxFQUFFO1VBQ3BDLElBQUk1QyxPQUFPLEdBQUcyQixJQUFJLENBQUM1QixHQUFHLENBQUM7VUFDdkIsSUFBSUMsT0FBTyxFQUFFO1lBQ1gsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNGLE9BQU8sQ0FBQyxFQUFFO2NBQzFCMkIsSUFBSSxDQUFDNUIsR0FBRyxDQUFDLEdBQUcsQ0FDVnpCLEtBQUssQ0FBQzBCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDNkMsTUFBTSxDQUFDLElBQUksQ0FBQ0QsZUFBZSxDQUFDN0MsR0FBRyxDQUFDLENBQUMsRUFDbkR6QixLQUFLLENBQUMwQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzZDLE1BQU0sQ0FBQyxJQUFJLENBQUNELGVBQWUsQ0FBQzdDLEdBQUcsQ0FBQyxDQUFDLENBQ3BEO1lBQ0gsQ0FBQyxNQUFNO2NBQ0w0QixJQUFJLENBQUM1QixHQUFHLENBQUMsR0FBR3pCLEtBQUssQ0FBQzBCLE9BQU8sQ0FBQyxDQUFDNkMsTUFBTSxDQUFDLElBQUksQ0FBQ0QsZUFBZSxDQUFDN0MsR0FBRyxDQUFDLENBQUM7WUFDOUQ7VUFDRjtRQUNGO01BQ0Y7TUFDQSxJQUFJZCxLQUFLLElBQUksSUFBSSxFQUFFO1FBQ2pCMEMsSUFBSSxHQUFBSyxhQUFBLENBQUFBLGFBQUEsS0FBUUwsSUFBSTtVQUFFbUIsRUFBRSxFQUFFM0QsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUUyRDtRQUFFLEVBQUU7TUFDbkM7TUFDQSxJQUFJZixRQUFRLEVBQUU7UUFDWkEsUUFBUSxJQUFJQSxRQUFRLENBQUNKLElBQUksRUFBRTFDLEtBQUssQ0FBQztRQUNqQztNQUNGO01BQ0EsSUFBSSxDQUFDbUMsUUFBUSxDQUFDTyxJQUFJLEVBQUUxQyxLQUFLLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQ0Q4RCxLQUFLLENBQUVDLFNBQWMsSUFBSyxDQUFFLENBQUMsQ0FBQztFQUNuQztFQUNBQyxXQUFXQSxDQUFBQyxJQUFBLEVBQXFCM0MsS0FBSyxFQUFFcEIsS0FBSyxFQUFFZ0UsV0FBVyxFQUFFeEIsSUFBSSxFQUFFO0lBQUEsSUFBckQ7TUFBRXlCLElBQUk7TUFBRUM7SUFBUyxDQUFDLEdBQUFILElBQUE7SUFDNUIsSUFBSUMsV0FBVyxFQUFFO01BQ2YsSUFBSUUsUUFBUSxFQUFFO1FBQ1osTUFBTTtVQUFFakU7UUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDbUQsS0FBSztRQUNoQyxNQUFNZSxRQUFRLEdBQUF0QixhQUFBLEtBQVE1QyxTQUFTLENBQVM7UUFDeENrRSxRQUFRLENBQUNELFFBQVEsQ0FBQyxHQUFHRixXQUFXLENBQUNsRSxLQUFLO1FBQ3RDLElBQUksQ0FBQ1UsUUFBUSxDQUFDO1VBQ1pQLFNBQVMsRUFBRWtFO1FBQ2IsQ0FBQyxDQUFDO01BQ0o7SUFDRjtJQUNBLElBQUkvQyxLQUFLLENBQUNnRCxRQUFRLEVBQUU7TUFDbEJoRCxLQUFLLENBQUNnRCxRQUFRLENBQUNwRSxLQUFLLEVBQUVnRSxXQUFXLEVBQUV4QixJQUFJLENBQUM7SUFDMUM7RUFDRjtFQUVBNkIsTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFFQyxTQUFTLEdBQUcsRUFBRTtNQUFFQyxVQUFVLEdBQUcsQ0FBQztJQUFFLENBQUMsR0FBRyxJQUFJLENBQUNuRCxLQUFLO0lBQ3RELE1BQU07TUFBRXZCLE9BQU87TUFBRUM7SUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDc0QsS0FBSztJQUNyQyxJQUFJb0IsVUFBVSxHQUFHO01BQ2ZDLEtBQUssRUFBRTNFLEtBQUs7TUFDWjRFLElBQUksRUFBRSxJQUFJLENBQUM5QixRQUFRLENBQUMrQixJQUFJLENBQUMsSUFBSSxDQUFDO01BQzlCQyxRQUFRLEVBQUUsSUFBSSxDQUFDdEQsSUFBSSxDQUFDcUQsSUFBSSxDQUFDLElBQUksQ0FBQztNQUM5QkUsYUFBYSxFQUFFO1FBQUVoRixPQUFPLEVBQUVBO01BQVEsQ0FBQztNQUNuQ2lGLFFBQVEsRUFBRSxJQUFJO01BQ2RDLEtBQUssRUFBRTtJQUNULENBQVE7SUFFUixNQUFNQyxRQUFlLEdBQUcsRUFBRTtJQUMxQixJQUFJQyxXQUFXLEdBQUc7TUFDaEJSLEtBQUssRUFBRTNFLEtBQUs7TUFDWjRFLElBQUksRUFBRSxJQUFJLENBQUM5QixRQUFRLENBQUMrQixJQUFJLENBQUMsSUFBSSxDQUFDO01BQzlCTyxPQUFPLEVBQUUsSUFBSSxDQUFDNUQsSUFBSSxDQUFDcUQsSUFBSSxDQUFDLElBQUksQ0FBQztNQUM3QkksS0FBSyxFQUFFO0lBQ1QsQ0FBUTtJQUNSLElBQUlqRixLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCMEUsVUFBVSxDQUFDVyxNQUFNLEdBQUcsSUFBSTtNQUN4QkYsV0FBVyxDQUFDRSxNQUFNLEdBQUcsSUFBSTtJQUMzQjtJQUNBLElBQUksQ0FBQzFCLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDekIsSUFBSSxDQUFDOUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUVwQixvQkFDRWpDLEtBQUEsQ0FBQTBHLGFBQUEsQ0FBQ3hHLElBQUksRUFBQXlHLFFBQUE7TUFDSEMsR0FBRyxFQUFFLElBQUksQ0FBQ3RFLE9BQVE7TUFDbEJ1RSxTQUFTLEVBQUUsSUFBSSxDQUFDbkUsS0FBSyxDQUFDb0UsUUFBUztNQUMvQmhCLFVBQVUsRUFBQTNCLGFBQUEsS0FBTzJCLFVBQVUsQ0FBRztNQUM5QlMsV0FBVyxFQUFBcEMsYUFBQSxLQUFPb0MsV0FBVyxDQUFHO01BQ2hDUSxRQUFRLEVBQUU7UUFBRUMsSUFBSSxFQUFFO01BQVEsQ0FBRTtNQUM1QkMsVUFBVSxFQUFFO1FBQUVELElBQUksRUFBRTtNQUFPLENBQUU7TUFDN0JFLGNBQWMsRUFBRUEsQ0FBQ0MsYUFBYSxFQUFFQyxTQUFTLEtBQUs7UUFDNUMsTUFBTTtVQUFFQztRQUFhLENBQUMsR0FBRyxJQUFJLENBQUMzRSxLQUFLO1FBQ25DMkUsWUFBWSxJQUFJQSxZQUFZLENBQUNGLGFBQWEsRUFBRUMsU0FBUyxDQUFDO01BQ3hELENBQUU7TUFDRkUsV0FBVyxFQUFFLElBQUksQ0FBQzVFLEtBQUssQ0FBQzRFO0lBQVksR0FDaEN6QixVQUFVLGdCQUdkN0YsS0FBQSxDQUFBMEcsYUFBQTtNQUFLYSxTQUFTLEVBQUVwSCxPQUFPLENBQUNPLE1BQU0sRUFBRSxNQUFNO0lBQUUsZ0JBQ3RDVixLQUFBLENBQUEwRyxhQUFBLENBQUNuRyxHQUFHO01BQUNpSCxNQUFNLEVBQUU7SUFBRyxHQUNiNUIsU0FBUyxDQUFDNkIsR0FBRyxDQUFDLENBQUNDLElBQVMsRUFBRUMsS0FBYSxLQUFLO01BQzNDLE1BQU1DLFNBQVMsR0FBR0YsSUFBSSxDQUFDaEYsS0FBSyxJQUFJLENBQUMsQ0FBQztNQUNsQyxJQUFJa0YsU0FBUyxDQUFDNUMsTUFBTSxJQUFJNEMsU0FBUyxDQUFDQyxXQUFXLEVBQUU7UUFDN0MsSUFBSSxDQUFDOUMsZUFBZSxDQUFDMkMsSUFBSSxDQUFDSSxJQUFJLENBQUMsR0FDN0JGLFNBQVMsQ0FBQzVDLE1BQU0sSUFBSTRDLFNBQVMsQ0FBQ0MsV0FBVztNQUM3QztNQUNBLElBQUlELFNBQVMsQ0FBQzVDLE1BQU0sRUFBRTtRQUNwQixJQUFJLENBQUMvQyxVQUFVLENBQUN5RixJQUFJLENBQUNJLElBQUksQ0FBQyxHQUFHRixTQUFTLENBQUM1QyxNQUFNO01BQy9DO01BQ0EsSUFBSStDLFVBQVUsR0FBR0wsSUFBSSxDQUFDaEYsS0FBSyxDQUFDcUYsVUFBVSxJQUFJLEtBQUs7TUFDL0MsSUFBSXJGLEtBQUssR0FBQXlCLGFBQUEsQ0FBQUEsYUFBQTtRQUNQNkQsV0FBVyx1QkFBQUMsTUFBQSxDQUFRUCxJQUFJLENBQUN0RyxLQUFLO01BQUUsR0FFNUJzRyxJQUFJLENBQUNoRixLQUFLO1FBQ2JnRCxRQUFRLEVBQUUsSUFBSSxDQUFDTixXQUFXLENBQUNhLElBQUksQ0FDN0IsSUFBSSxFQUNKO1VBQ0VWLElBQUksRUFBRW1DLElBQUksQ0FBQ25DLElBQUk7VUFDZkMsUUFBUSxFQUFFa0MsSUFBSSxDQUFDbEM7UUFDakIsQ0FBQyxFQUFBckIsYUFBQSxLQUNJdUQsSUFBSSxDQUFDaEYsS0FBSyxDQUNqQjtNQUFDLEVBQ0Y7TUFDRCxJQUFJLENBQUNnRixJQUFJLENBQUNuQyxJQUFJLElBQUltQyxJQUFJLENBQUNuQyxJQUFJLElBQUksT0FBTyxFQUFFO1FBQ3RDN0MsS0FBSyxDQUFDcUYsVUFBVSxHQUFHLElBQUk7UUFDdkJyRixLQUFLLENBQUN3RixTQUFTLEdBQUcsSUFBSTtNQUN4QjtNQUNBLE9BQU94RixLQUFLLENBQUNtRixXQUFXO01BQ3hCLE9BQU9uRixLQUFLLENBQUNzQyxNQUFNO01BQ25CLElBQUk1RCxLQUFLLElBQUksSUFBSSxFQUFFO1FBQ2pCc0IsS0FBSyxDQUFDeUYsUUFBUSxHQUFHLElBQUk7TUFDdkI7TUFFQSxJQUFJVCxJQUFJLENBQUNVLEtBQUssSUFBSVYsSUFBSSxDQUFDVSxLQUFLLENBQUN4RyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZDMEUsUUFBUSxDQUFDK0IsSUFBSSxDQUFDWCxJQUFJLENBQUNJLElBQUksQ0FBQztNQUMxQjtNQUNBLElBQUlILEtBQUssR0FBRyxDQUFDLEtBQUsvQixTQUFTLENBQUNoRSxNQUFNLEVBQUU7UUFDbEMsSUFBSSxDQUFDZ0QsS0FBSyxHQUFHMEIsUUFBUTtNQUN2QjtNQUNBLElBQUlvQixJQUFJLENBQUNuQyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzFCLG9CQUNFdkYsS0FBQSxDQUFBMEcsYUFBQSxDQUFDcEcsR0FBRztVQUFDZ0ksSUFBSSxFQUFFWixJQUFJLENBQUNZLElBQUksSUFBSSxFQUFHO1VBQUNwRyxHQUFHLEVBQUV5RjtRQUFNLGdCQUNyQzNILEtBQUEsQ0FBQTBHLGFBQUEsQ0FBQ3hHLElBQUksQ0FBQ3FJLElBQUk7VUFDUm5ILEtBQUssRUFBRXNHLElBQUksQ0FBQ3RHLEtBQU07VUFDbEIwRyxJQUFJLEVBQUVKLElBQUksQ0FBQ0ksSUFBSztVQUNoQk0sS0FBSyxFQUFFVixJQUFJLENBQUNVLEtBQU07VUFDbEJMLFVBQVUsRUFBRUEsVUFBVztVQUN2QlMsYUFBYSxFQUFFZCxJQUFJLENBQUNuQyxJQUFJLEdBQUdtQyxJQUFJLENBQUNuQyxJQUFJLEdBQUc7UUFBUSxHQUU5Q25GLE9BQU8sQ0FBQ3NILElBQUksQ0FBQ25DLElBQUksRUFBQXBCLGFBQUEsS0FDYnpCLEtBQUssQ0FDVCxDQUNRLENBQ1IsQ0FBQztNQUVWLENBQUMsTUFBTTtRQUNMLG9CQUNFMUMsS0FBQSxDQUFBMEcsYUFBQSxDQUFDcEcsR0FBRztVQUFDZ0ksSUFBSSxFQUFFWixJQUFJLENBQUNZLElBQUksSUFBSSxFQUFHO1VBQUNwRyxHQUFHLEVBQUV5RjtRQUFNLGdCQUNyQzNILEtBQUEsQ0FBQTBHLGFBQUEsQ0FBQ3hHLElBQUksQ0FBQ3FJLElBQUk7VUFDUm5ILEtBQUssRUFBRXNHLElBQUksQ0FBQ3RHLEtBQU07VUFDbEIwRyxJQUFJLEVBQUVKLElBQUksQ0FBQ0ksSUFBSztVQUNoQk0sS0FBSyxFQUFFVixJQUFJLENBQUNVLEtBQU07VUFDbEJMLFVBQVUsRUFBRUEsVUFBVztVQUN2QlMsYUFBYSxFQUFFZCxJQUFJLENBQUNuQyxJQUFJLEdBQUdtQyxJQUFJLENBQUNuQyxJQUFJLEdBQUc7UUFBUSxnQkFFL0N2RixLQUFBLENBQUEwRyxhQUFBLENBQUM3RixNQUFNLEVBQUE4RixRQUFBO1VBQ0xuRixRQUFRLEVBQUUsSUFBSSxDQUFDa0QsS0FBSyxDQUFDbEQsUUFBUSxDQUFDa0csSUFBSSxDQUFDSSxJQUFJLENBQUMsSUFBSSxFQUFHO1VBQy9DVyxZQUFZLEVBQUdDLElBQUksSUFBSztZQUN0QixNQUFNO2NBQUVsSDtZQUFTLENBQUMsR0FBRyxJQUFJLENBQUNrRCxLQUFLO1lBQy9CLElBQUksQ0FBQzVDLFFBQVEsQ0FBQztjQUNaTixRQUFRLEVBQUEyQyxhQUFBLENBQUFBLGFBQUEsS0FBTzNDLFFBQVE7Z0JBQUUsQ0FBQ2tHLElBQUksQ0FBQ0ksSUFBSSxHQUFHWTtjQUFJO1lBQzVDLENBQUMsQ0FBQztVQUNKO1FBQUUsR0FDRWhHLEtBQUssZ0JBQ1QxQyxLQUFBLENBQUEwRyxhQUFBLENBQUM5RixNQUFNLFFBQUMsMEJBQVksQ0FDZCxDQUNDLENBQ1IsQ0FBQztNQUVWO0lBQ0YsQ0FBQyxDQUNFLENBQ0YsQ0FDRCxDQUFDO0VBRVg7QUFDRjtBQUVBLGVBQWVFLFVBQVUifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"Form.js","names":["React","PureComponent","Form","getLess","getNode","message","Col","Row","isEmptyObj","dayjs","styles","lodash","Button","Upload","EditorForm","constructor","arguments","_defineProperty","createRef","loading","label","editorFlag","value","dictNames","fileList","show","orgValue","editorflag","length","undefined","setState","_this$formRef$current","cloneDeep","dateFormat","key","olddata","Array","isArray","formRef","current","showForm","_this$formRef$current2","props","defaultValue","hide","_this$formRef$current3","onHideForm","hideForm","_this$formRef$current4","setLoading","setFieldsValue","values","_this$formRef$current5","getFieldsValue","_this$formRef$current6","doSubmit","formdata","_this$formRef$current7","submitUrl","submitParams","callBack","Error","data","otherParams","_objectWithoutProperties","_excluded","onSubmit","_objectSpread","noUndefined","res","code","success","_this$formRef$current8","_this$formRef$current9","state","formValue","valid","validateFields","then","dateValueFormat","format","id","catch","errorInfo","valueChange","_ref","valueOption","type","dictName","newNames","onChange","render","formProps","otherProps","modalProps","title","onOk","bind","onCancel","okButtonProps","centered","width","newValid","drawerProps","onClose","footer","createElement","_extends","ref","showModel","formType","labelCol","flex","wrapperCol","onValuesChange","changedValues","allValues","onFormChange","changeValid","className","gutter","map","item","index","itemProps","valueFormat","name","allowChars","placeholder","concat","showCount","disabled","rules","push","span","Item","componentName","onListChange","list"],"sources":["../../../src/components/page/BasePage/Form.tsx"],"sourcesContent":["import React, { PureComponent } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport message from \"../../base/message\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport moment from \"moment\";\r\nimport dayjs from \"dayjs\";\r\nimport styles from \"./index.module.less\";\r\nimport utils from \"../../utils\";\r\nimport lodash from \"lodash\";\r\nimport Button from \"../../base/button\";\r\nimport Upload from '../../base/upload'\r\nclass EditorForm extends PureComponent<any> {\r\n formRef = React.createRef<any>();\r\n state = {\r\n loading: false,\r\n label: \"\",\r\n editorFlag: true,\r\n value: {} as any,\r\n dictNames: {} as any,\r\n fileList: {} as any\r\n };\r\n valid: any = [];\r\n dateValueFormat = {} as any;\r\n dateFormat = {} as any;\r\n //表单显示\r\n show(orgValue?: any, editorflag = \"add\") {\r\n let label = \"新增\";\r\n if (orgValue && editorflag == \"editor\") {\r\n label = \"编辑\";\r\n } else if (orgValue && editorflag == \"detail\") {\r\n label = \"查看\";\r\n }\r\n if (orgValue) {\r\n this.setState(\r\n {\r\n label: label,\r\n value: orgValue,\r\n },\r\n () => {\r\n let value = lodash.cloneDeep(orgValue);\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = value[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n value[key] = [\r\n dayjs(olddata[0], this.dateFormat[key]),\r\n dayjs(olddata[1], this.dateFormat[key]),\r\n ];\r\n } else {\r\n value[key] = dayjs(olddata, this.dateFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n // console.log(\"value\", value);\r\n this.formRef.current?.showForm(value);\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n label: label,\r\n },\r\n () => {\r\n this.formRef.current?.showForm(this.props.defaultValue);\r\n }\r\n );\r\n }\r\n }\r\n hide(hide = true) {\r\n const { onHideForm } = this.props;\r\n if (onHideForm) {\r\n onHideForm && onHideForm();\r\n return;\r\n }\r\n this.setState({ loading: false });\r\n hide && this.formRef.current?.hideForm();\r\n }\r\n hideForm() {\r\n this.setState({ loading: false });\r\n this.formRef.current?.hideForm();\r\n }\r\n setLoading(loading: boolean) {\r\n this.setState({ loading: loading });\r\n }\r\n setFieldsValue(values) {\r\n this.formRef.current?.setFieldsValue(values);\r\n }\r\n getFieldsValue() {\r\n return this.formRef.current?.getFieldsValue();\r\n }\r\n\r\n doSubmit(formdata, label) {\r\n const { submitUrl, submitParams, callBack } = this.props;\r\n if (!submitUrl) {\r\n throw new Error(\"url不能为空!\");\r\n }\r\n const { data = {}, ...otherParams } = submitParams\r\n this.formRef.current?.onSubmit(\r\n submitUrl,\r\n {\r\n data: { ...formdata,...data },\r\n noUndefined: label == \"编辑\",\r\n ...otherParams,\r\n },\r\n (res: any) => {\r\n const { code } = res;\r\n this.setState({ loading: false });\r\n if (code === 200) {\r\n message.success(label + \"成功\");\r\n this.hide(true);\r\n callBack && callBack();\r\n return;\r\n }\r\n this.hide(false);\r\n }\r\n );\r\n }\r\n onSubmit() {\r\n const { onSubmit } = this.props;\r\n const { label, value, dictNames } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let valid = this.valid;\r\n this.formRef.current\r\n ?.validateFields(valid)\r\n .then(() => {\r\n this.setState({ loading: true });\r\n let data = { ...formValue, ...dictNames };\r\n if (!isEmptyObj(this.dateValueFormat)) { \r\n for (let key in this.dateValueFormat) {\r\n let olddata = data[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n data[key] = [\r\n dayjs(olddata[0]).format(this.dateValueFormat[key]),\r\n dayjs(olddata[1]).format(this.dateValueFormat[key]),\r\n ];\r\n } else {\r\n data[key] = dayjs(olddata).format(this.dateValueFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n if (label == \"编辑\") {\r\n data = { ...data, id: value?.id };\r\n }\r\n if (onSubmit) {\r\n onSubmit && onSubmit(data, label);\r\n return;\r\n }\r\n this.doSubmit(data, label);\r\n })\r\n .catch((errorInfo: any) => { });\r\n }\r\n valueChange({ type, dictName }, props, value, valueOption, data) {\r\n if (valueOption) {\r\n if (dictName) {\r\n const { dictNames } = this.state;\r\n const newNames = { ...dictNames } as any;\r\n newNames[dictName] = valueOption.label;\r\n this.setState({\r\n dictNames: newNames,\r\n });\r\n }\r\n }\r\n if (props.onChange) {\r\n props.onChange(value, valueOption, data);\r\n }\r\n }\r\n\r\n render() {\r\n const { formProps = [], otherProps = {} } = this.props;\r\n const { loading, label } = this.state;\r\n let modalProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onCancel: this.hide.bind(this),\r\n okButtonProps: { loading: loading },\r\n centered: true,\r\n width: \"50vw\",\r\n } as any;\r\n\r\n const newValid: any[] = [];\r\n let drawerProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onClose: this.hide.bind(this),\r\n width: \"50vw\",\r\n } as any;\r\n if (label == \"查看\") {\r\n modalProps.footer = null;\r\n drawerProps.footer = null;\r\n }\r\n this.dateValueFormat = {};\r\n this.dateFormat = {};\r\n\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n showModel={this.props.formType}\r\n modalProps={{ ...modalProps }}\r\n drawerProps={{ ...drawerProps }}\r\n labelCol={{ flex: \"100px\" }}\r\n wrapperCol={{ flex: \"15vw\" }}\r\n onValuesChange={(changedValues, allValues) => {\r\n const { onFormChange } = this.props;\r\n onFormChange && onFormChange(changedValues, allValues);\r\n }}\r\n changeValid={this.props.changeValid}\r\n {...otherProps}\r\n >\r\n {/* <div> */}\r\n <div className={getLess(styles, \"form\")}>\r\n <Row gutter={24}>\r\n {formProps.map((item: any, index: number) => {\r\n const itemProps = item.props || {};\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateValueFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (itemProps.format) {\r\n this.dateFormat[item.name] = itemProps.format;\r\n }\r\n let allowChars = item.props.allowChars || false;\r\n let props = {\r\n placeholder: `请输入${item.label}`,\r\n\r\n ...item.props,\r\n onChange: this.valueChange.bind(\r\n this,\r\n {\r\n type: item.type,\r\n dictName: item.dictName,\r\n },\r\n { ...item.props }\r\n ),\r\n };\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true;\r\n props.showCount = true;\r\n }\r\n delete props.valueFormat;\r\n delete props.format;\r\n if (label == \"查看\") {\r\n props.disabled = true;\r\n }\r\n\r\n if (item.rules && item.rules.length > 0) {\r\n newValid.push(item.name);\r\n }\r\n if (index + 1 === formProps.length) {\r\n this.valid = newValid;\r\n }\r\n if (item.type !== 'Upload') {\r\n return (\r\n <Col span={item.span || 12} key={index}>\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n >\r\n {getNode(item.type, {\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n } else {\r\n return (\r\n <Col span={item.span || 12} key={index}>\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n >\r\n <Upload\r\n fileList={this.state.fileList[item.name] || []}\r\n onListChange={(list) => {\r\n const { fileList } = this.state\r\n this.setState({\r\n fileList: { ...fileList, [item.name]: list }\r\n })\r\n }}\r\n {...props}>\r\n <Button>上传文件</Button>\r\n </Upload>\r\n </Form.Item>\r\n </Col>\r\n );\r\n }\r\n })}\r\n </Row>\r\n </div>\r\n </Form>\r\n );\r\n }\r\n}\r\n\r\nexport default EditorForm;\r\n"],"mappings":"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"}
@@ -1,107 +0,0 @@
1
- import React, { PureComponent, ReactNode } from "react";
2
- import "./index.module.less";
3
- import { StoreProps } from "@bj-nsc/msn";
4
- import { IFormProps } from "../../base/form/Form";
5
- import { PaginationProps } from "antd";
6
- interface TableProps {
7
- actionColumn?: boolean;
8
- store?: StoreProps;
9
- filterColumn?: boolean;
10
- showRowSelection?: boolean;
11
- pagination?: boolean | PaginationProps;
12
- columnOrder?: boolean;
13
- [propsName: string]: any;
14
- }
15
- interface TreeProps {
16
- store?: StoreProps;
17
- showSearch?: boolean;
18
- searchKey?: string;
19
- searchField?: string;
20
- titleAlias?: string;
21
- nodePorps?: object;
22
- parantSelect?: boolean;
23
- [propsName: string]: any;
24
- }
25
- interface FormProps extends IFormProps {
26
- }
27
- interface NSCBaseBageProps {
28
- showSearch?: boolean;
29
- tableProps?: TableProps;
30
- treeProps?: TreeProps;
31
- submitParams?: Object;
32
- submitUrl?: string;
33
- onSubmit?: (value?: any, label?: any) => void;
34
- columns: Array<Object>;
35
- showLeft?: boolean;
36
- showToolButton?: boolean;
37
- editorForm?: boolean;
38
- deleteUrl?: string;
39
- onDelete?: (selectedKeys?: Array<string>) => void;
40
- deletePosition?: "toolbar" | "row";
41
- deleteParams?: Object;
42
- children?: React.ReactNode;
43
- onSearch?: (value?: any) => void;
44
- onReset?: () => void;
45
- initData?: any;
46
- buttons?: Array<string>;
47
- onShowForm?: (value?: any, editorFlag?: string) => void;
48
- onHideForm?: () => void;
49
- onFormChange?: (changedValues?: any, allValues?: any) => void;
50
- formType?: "modal" | "drawer";
51
- formChangeValid?: boolean;
52
- className?: any;
53
- toolButtonPosition?: "right" | "buttom";
54
- pageTitle?: string | ReactNode;
55
- formProps?: FormProps;
56
- actionPorps?: {
57
- textAlign?: string;
58
- showIcon?: boolean;
59
- width?: number;
60
- };
61
- searchFormProps?: {
62
- wrapperCol?: any;
63
- labelCol?: any;
64
- };
65
- onTreeSelect?: (value?: any, editorFlag?: string) => void;
66
- onCallBacks?: {
67
- treeSelectCallBack?: any;
68
- onSearchCallBack?: any;
69
- onSumbitCallBack?: any;
70
- onDeleteCallBack?: any;
71
- };
72
- }
73
- declare class BasePage extends PureComponent<NSCBaseBageProps, any> {
74
- tableRef: React.RefObject<any>;
75
- treeRef: React.RefObject<any>;
76
- searchRef: React.RefObject<any>;
77
- editorRef: React.RefObject<any>;
78
- dateFormat: any;
79
- constructor(props: any);
80
- componentDidMount(): void;
81
- setSearchParams(params: any, callBack: any): void;
82
- onSelect: (checkedTreeKeys: any) => void;
83
- showForm(value?: any, editorflag?: string): void;
84
- hideForm(): void;
85
- setLoading(loading: boolean): void;
86
- setEditFormValues(value: any): void;
87
- getEditFormValues(): any;
88
- onDelete(data?: any): void;
89
- tableLoad(params: any, requestConfig?: {}): void;
90
- onSearch(params: any): void;
91
- tableReload(params?: {}, autoLoad?: boolean): void;
92
- getSelectedRowKeys(): any;
93
- getSelectedRowDatas(): any;
94
- resetSelectedRowKeys(): any;
95
- getSearchValues(): any;
96
- getChildrenData(data: any, keys?: any[]): any[];
97
- renderToolButtons(toolbuttons: any, marginflag?: boolean): React.JSX.Element;
98
- renderCloumnButton(columnButtons: any, record: any): React.JSX.Element[];
99
- treeSelect(selectedKeys: any, obj: any): void;
100
- resetSearch(): void;
101
- getText(props: any, text: any): any;
102
- setTableData(data: any): void;
103
- setTreeData(data: any): void;
104
- getSelectedKey: (selected: any) => any[];
105
- render(): React.JSX.Element;
106
- }
107
- export default BasePage;