ls-pro-common 1.0.4 → 1.0.8

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.
Files changed (40) hide show
  1. package/dist/common.css +2276 -0
  2. package/dist/common.js +1 -1
  3. package/dist/common.less +1 -0
  4. package/dist/common.min.css +2276 -0
  5. package/dist/common.min.js +1 -1
  6. package/es/components/DtlLayout.d.ts +20 -0
  7. package/es/components/DtlLayout.js +64 -0
  8. package/es/components/InputTable.d.ts +18 -0
  9. package/es/components/InputTable.js +225 -0
  10. package/es/components/common.less +64 -0
  11. package/es/hooks/useDtl/index.d.ts +29 -0
  12. package/es/hooks/useDtl/index.js +654 -0
  13. package/es/hooks/useSingle/index.d.ts +19 -7
  14. package/es/hooks/useSingle/index.js +282 -85
  15. package/es/http/index.d.ts +1 -1
  16. package/es/http/index.js +7 -3
  17. package/es/index.d.ts +6 -3
  18. package/es/index.js +4 -2
  19. package/es/utils/index.d.ts +45 -1
  20. package/es/utils/index.js +90 -1
  21. package/lib/components/DtlLayout.d.ts +20 -0
  22. package/lib/components/DtlLayout.js +81 -0
  23. package/lib/components/InputTable.d.ts +18 -0
  24. package/lib/components/InputTable.js +254 -0
  25. package/lib/components/common.less +64 -0
  26. package/lib/hooks/useDtl/index.d.ts +29 -0
  27. package/lib/hooks/useDtl/index.js +675 -0
  28. package/lib/hooks/useSingle/index.d.ts +19 -7
  29. package/lib/hooks/useSingle/index.js +283 -86
  30. package/lib/http/index.d.ts +1 -1
  31. package/lib/http/index.js +7 -3
  32. package/lib/index.d.ts +6 -3
  33. package/lib/index.js +20 -4
  34. package/lib/utils/index.d.ts +45 -1
  35. package/lib/utils/index.js +114 -3
  36. package/package.json +3 -3
  37. package/es/components/EditModalForm.d.ts +0 -5
  38. package/es/components/EditModalForm.js +0 -29
  39. package/lib/components/EditModalForm.d.ts +0 -5
  40. package/lib/components/EditModalForm.js +0 -42
package/es/utils/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
1
2
  import "antd/es/modal/style";
2
3
  import _Modal from "antd/es/modal";
3
4
  import "antd/es/message/style";
@@ -37,6 +38,19 @@ export var setUrlQuery = function setUrlQuery(url) {
37
38
 
38
39
  return newUrl;
39
40
  };
41
+ /**
42
+ * 给 url 添加网关
43
+ * @param url 原url,以 / 打头
44
+ * @param defGateway 默认网关 /petrel
45
+ * @returns
46
+ */
47
+
48
+ export var toGatewayUrl = function toGatewayUrl(url) {
49
+ var defGateway = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '/petrel';
50
+ if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith('//')) return url;
51
+ var gateway = getUrlQuery('gateway') || location.origin + defGateway;
52
+ return gateway + url;
53
+ };
40
54
  /**
41
55
  * 设置文档title
42
56
  * @param {*} title
@@ -202,4 +216,79 @@ export var yesnoList = [{
202
216
  value: 0,
203
217
  text: '否',
204
218
  label: '0→否'
205
- }];
219
+ }];
220
+ /**
221
+ * 遍历树
222
+ * @param list 树对象
223
+ * @param fn 回调函数
224
+ * @param children 树属性字段
225
+ */
226
+
227
+ export var treeEach = function treeEach(list, fn) {
228
+ var children = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "children";
229
+ list.forEach(function (item, index) {
230
+ fn(item, index, list); // @ts-ignore
231
+
232
+ if (Array.isArray(list[children]) && list[children].length) {
233
+ // @ts-ignore
234
+ treeEach(list[children], fn, children);
235
+ }
236
+ });
237
+ };
238
+ /**
239
+ * 查询数
240
+ * @param list 树对象
241
+ * @param key 查询属性
242
+ * @param val 查询值
243
+ * @param children 树属性字段
244
+ * @returns 返回符合条件的第一条对象
245
+ */
246
+
247
+ export var treeFind = function treeFind(list, key, val) {
248
+ var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "children";
249
+ var item = null;
250
+
251
+ var _iterator = _createForOfIteratorHelper(list),
252
+ _step;
253
+
254
+ try {
255
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
256
+ var row = _step.value;
257
+
258
+ if (row[key] === val) {
259
+ item = row;
260
+ break;
261
+ } else if (row[children] && row[children].length) {
262
+ item = treeFind(row[children], key, val);
263
+
264
+ if (item) {
265
+ break;
266
+ }
267
+ }
268
+ }
269
+ } catch (err) {
270
+ _iterator.e(err);
271
+ } finally {
272
+ _iterator.f();
273
+ }
274
+
275
+ return item;
276
+ };
277
+ export var getUserInfo = function getUserInfo() {
278
+ return getCache('user');
279
+ };
280
+ export var getUserName = function getUserName() {
281
+ var _getUserInfo;
282
+
283
+ return (_getUserInfo = getUserInfo()) === null || _getUserInfo === void 0 ? void 0 : _getUserInfo.userName;
284
+ };
285
+ export var getLoginName = function getLoginName() {
286
+ var _getUserInfo2;
287
+
288
+ return (_getUserInfo2 = getUserInfo()) === null || _getUserInfo2 === void 0 ? void 0 : _getUserInfo2.loginName;
289
+ };
290
+ export var getCompanyId = function getCompanyId() {
291
+ var _getUserInfo3;
292
+
293
+ return (_getUserInfo3 = getUserInfo()) === null || _getUserInfo3 === void 0 ? void 0 : _getUserInfo3.companyId;
294
+ };
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { ProFormInstance } from 'ls-pro-form';
3
+ import './common.less';
4
+ export declare type DtlLyaoutProps = Record<string, any> & {
5
+ onExit: (visible?: boolean) => void;
6
+ onSave?: () => void;
7
+ renderButton?: (defaultBtn: JSX.Element[]) => JSX.Element[];
8
+ btnSaveText?: string;
9
+ btnExitText?: string;
10
+ title?: string;
11
+ masterObject?: any;
12
+ keyField?: string;
13
+ bodyClass?: string;
14
+ headerClass?: string;
15
+ bodyStyle?: React.CSSProperties;
16
+ headerStyle?: React.CSSProperties;
17
+ formRef?: React.MutableRefObject<ProFormInstance | undefined>;
18
+ };
19
+ declare function DtlLayout(props: DtlLyaoutProps): JSX.Element;
20
+ export default DtlLayout;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ require("antd/es/button/style");
13
+
14
+ var _button = _interopRequireDefault(require("antd/es/button"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _icons = require("@ant-design/icons");
21
+
22
+ require("./common.less");
23
+
24
+ function DtlLayout(props) {
25
+ var renderButton = props.renderButton,
26
+ title = props.title,
27
+ _props$keyField = props.keyField,
28
+ keyField = _props$keyField === void 0 ? 'id' : _props$keyField,
29
+ masterObject = props.masterObject,
30
+ children = props.children,
31
+ headerClass = props.headerClass,
32
+ headerStyle = props.headerStyle,
33
+ bodyClass = props.bodyClass,
34
+ bodyStyle = props.bodyStyle,
35
+ formRef = props.formRef,
36
+ _props$btnSaveText = props.btnSaveText,
37
+ btnSaveText = _props$btnSaveText === void 0 ? '保存' : _props$btnSaveText,
38
+ _props$btnExitText = props.btnExitText,
39
+ btnExitText = _props$btnExitText === void 0 ? '返回' : _props$btnExitText;
40
+ var dtlTitle = (0, _react.useMemo)(function () {
41
+ if (title) return title;
42
+ if (!masterObject) return '';
43
+ return masterObject[keyField] ? '编辑' : '新增';
44
+ }, [title, masterObject, keyField]);
45
+ var btns = [/*#__PURE__*/_react.default.createElement(_button.default, {
46
+ key: "btnSave",
47
+ onClick: function onClick() {
48
+ var _formRef$current;
49
+
50
+ if (props.onSave) {
51
+ return props.onSave();
52
+ }
53
+
54
+ formRef === null || formRef === void 0 ? void 0 : (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.submit();
55
+ },
56
+ icon: /*#__PURE__*/_react.default.createElement(_icons.SaveOutlined, null)
57
+ }, " ", btnSaveText, " "), /*#__PURE__*/_react.default.createElement(_button.default, {
58
+ key: "btnBack",
59
+ onClick: function onClick() {
60
+ return props.onExit(false);
61
+ },
62
+ icon: /*#__PURE__*/_react.default.createElement(_icons.ArrowLeftOutlined, null)
63
+ }, " ", btnExitText, " ")];
64
+ var buttons = renderButton ? renderButton(btns) : btns;
65
+ return /*#__PURE__*/_react.default.createElement("div", {
66
+ className: "dtl-layout"
67
+ }, /*#__PURE__*/_react.default.createElement("div", {
68
+ className: (0, _classnames.default)('dtl-header', headerClass),
69
+ style: headerStyle
70
+ }, /*#__PURE__*/_react.default.createElement("div", {
71
+ className: "dtl-title"
72
+ }, dtlTitle), /*#__PURE__*/_react.default.createElement("div", {
73
+ className: "dtl-btns"
74
+ }, buttons)), /*#__PURE__*/_react.default.createElement("div", {
75
+ className: (0, _classnames.default)('dtl-body', bodyClass),
76
+ style: bodyStyle
77
+ }, children));
78
+ }
79
+
80
+ var _default = DtlLayout;
81
+ exports.default = _default;
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import type { InputProps } from 'antd';
3
+ import type { ProFormItemProps } from 'ls-pro-form';
4
+ export declare type InputTableProps = ProFormItemProps<InputProps> & {
5
+ columns: any[];
6
+ url: string;
7
+ tableHeight?: number;
8
+ tableWidth?: number;
9
+ multiple?: boolean;
10
+ name: string;
11
+ valueField: string;
12
+ textField?: string;
13
+ textName?: string;
14
+ tableConfig?: any;
15
+ onSelectChange?: (item: any) => void;
16
+ };
17
+ declare function InputTable(prop: InputTableProps): JSX.Element;
18
+ export default InputTable;
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ require("antd/es/input/style");
13
+
14
+ var _input = _interopRequireDefault(require("antd/es/input"));
15
+
16
+ require("antd/es/popover/style");
17
+
18
+ var _popover = _interopRequireDefault(require("antd/es/popover"));
19
+
20
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
21
+
22
+ require("antd/es/button/style");
23
+
24
+ var _button = _interopRequireDefault(require("antd/es/button"));
25
+
26
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
27
+
28
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
29
+
30
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
31
+
32
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
33
+
34
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
35
+
36
+ var _react = _interopRequireWildcard(require("react"));
37
+
38
+ var _lsProTable = _interopRequireDefault(require("ls-pro-table"));
39
+
40
+ var _lsProForm = require("ls-pro-form");
41
+
42
+ var _icons = require("@ant-design/icons");
43
+
44
+ var _http = require("../http");
45
+
46
+ var _excluded = ["columns", "url", "textName", "name", "tableConfig", "tableHeight", "tableWidth", "readonly", "multiple", "valueField", "textField", "onSelectChange"],
47
+ _excluded2 = ["current", "pageSize"];
48
+
49
+ function InputTable(prop) {
50
+ //@ts-ignore
51
+ var _useContext = (0, _react.useContext)(_lsProForm.ProFormContext),
52
+ formRef = _useContext.formRef;
53
+
54
+ var tableRef = (0, _react.useRef)();
55
+
56
+ var _useState = (0, _react.useState)(false),
57
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
58
+ visible = _useState2[0],
59
+ setVisible = _useState2[1];
60
+
61
+ var _useState3 = (0, _react.useState)([]),
62
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
63
+ selectedRows = _useState4[0],
64
+ setSelectedRows = _useState4[1];
65
+
66
+ var _useState5 = (0, _react.useState)(''),
67
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
68
+ text = _useState6[0],
69
+ setText = _useState6[1];
70
+
71
+ var columns = prop.columns,
72
+ url = prop.url,
73
+ textName = prop.textName,
74
+ name = prop.name,
75
+ tableConfig = prop.tableConfig,
76
+ _prop$tableHeight = prop.tableHeight,
77
+ tableHeight = _prop$tableHeight === void 0 ? 400 : _prop$tableHeight,
78
+ _prop$tableWidth = prop.tableWidth,
79
+ tableWidth = _prop$tableWidth === void 0 ? 650 : _prop$tableWidth,
80
+ _prop$readonly = prop.readonly,
81
+ readonly = _prop$readonly === void 0 ? true : _prop$readonly,
82
+ multiple = prop.multiple,
83
+ valueField = prop.valueField,
84
+ textField = prop.textField,
85
+ onSelectChange = prop.onSelectChange,
86
+ rest = (0, _objectWithoutProperties2.default)(prop, _excluded);
87
+ var textNameProp = textName || name + '__text';
88
+
89
+ var loadData = /*#__PURE__*/function () {
90
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
91
+ var current, pageSize, rest, data, result;
92
+ return _regenerator.default.wrap(function _callee$(_context) {
93
+ while (1) {
94
+ switch (_context.prev = _context.next) {
95
+ case 0:
96
+ current = param.current, pageSize = param.pageSize, rest = (0, _objectWithoutProperties2.default)(param, _excluded2);
97
+ data = {
98
+ page: current,
99
+ pageSize: pageSize
100
+ };
101
+
102
+ if (Object.keys(rest).length) {
103
+ data.where = rest;
104
+ }
105
+
106
+ _context.next = 5;
107
+ return (0, _http.httpGet)(url, data);
108
+
109
+ case 5:
110
+ result = _context.sent;
111
+ return _context.abrupt("return", {
112
+ data: result.rows || [],
113
+ total: result.total || 0,
114
+ success: true
115
+ });
116
+
117
+ case 7:
118
+ case "end":
119
+ return _context.stop();
120
+ }
121
+ }
122
+ }, _callee);
123
+ }));
124
+
125
+ return function loadData(_x) {
126
+ return _ref.apply(this, arguments);
127
+ };
128
+ }();
129
+
130
+ (0, _react.useEffect)(function () {
131
+ var _formRef$current;
132
+
133
+ var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.getFieldsValue();
134
+ var txt = formValue[textField || valueField];
135
+
136
+ if (txt) {
137
+ setText(txt);
138
+ }
139
+ }, []);
140
+
141
+ var tableDom = /*#__PURE__*/_react.default.createElement(_lsProTable.default, (0, _extends2.default)({
142
+ columns: columns,
143
+ request: loadData,
144
+ rowKey: valueField,
145
+ manualRequest: false,
146
+ actionRef: tableRef,
147
+ search: {
148
+ labelWidth: 70
149
+ },
150
+ options: {
151
+ density: false,
152
+ reload: false,
153
+ setting: false
154
+ },
155
+ form: {
156
+ submitter: {
157
+ resetButtonProps: false
158
+ }
159
+ },
160
+ height: 'full',
161
+ rowSelection: {
162
+ type: multiple ? 'checkbox' : 'radio',
163
+ onChange: function onChange(keys, rows) {
164
+ setSelectedRows(rows);
165
+ }
166
+ },
167
+ tableAlertRender: false,
168
+ onRow: function onRow(record) {
169
+ return {
170
+ onDoubleClick: function onDoubleClick() {
171
+ var _formRef$current2, _formRef$current3;
172
+
173
+ var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.getFieldsValue();
174
+ formValue[name] = record[valueField];
175
+ setText(record[textField || valueField]); // 如果需要接收名称(指定了名称属性名),则反回名称
176
+
177
+ if (textName) {
178
+ formValue[textNameProp] = record[textField || valueField];
179
+ }
180
+
181
+ (_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : _formRef$current3.setFieldsValue((0, _objectSpread2.default)({}, formValue));
182
+ setVisible(false);
183
+ onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(record);
184
+ }
185
+ };
186
+ },
187
+ toolBarRender: function toolBarRender() {
188
+ return [/*#__PURE__*/_react.default.createElement(_button.default, {
189
+ onClick: function onClick() {
190
+ if (selectedRows.length) {
191
+ var _formRef$current4, _formRef$current5;
192
+
193
+ var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current4 = formRef.current) === null || _formRef$current4 === void 0 ? void 0 : _formRef$current4.getFieldsValue();
194
+ formValue[name] = selectedRows.map(function (o) {
195
+ return o[valueField];
196
+ }).join(',');
197
+ var txt = selectedRows.map(function (o) {
198
+ return o[textField || valueField];
199
+ }).join(',');
200
+ setText(txt); // 如果需要接收名称,则反回名称
201
+
202
+ if (textName) {
203
+ formValue[textNameProp] = txt;
204
+ }
205
+
206
+ (_formRef$current5 = formRef.current) === null || _formRef$current5 === void 0 ? void 0 : _formRef$current5.setFieldsValue((0, _objectSpread2.default)({}, formValue));
207
+ }
208
+
209
+ setVisible(false);
210
+ }
211
+ }, "\u786E\u8BA4")];
212
+ },
213
+ headerTitle: "\u53CC\u51FB\u8FD4\u56DE\u5F53\u524D\u884C\u6570\u636E"
214
+ }, tableConfig));
215
+
216
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
217
+ style: {
218
+ display: 'none'
219
+ }
220
+ }, /*#__PURE__*/_react.default.createElement(_lsProForm.ProFormText, {
221
+ name: name
222
+ })), /*#__PURE__*/_react.default.createElement(_lsProForm.ProFormText, (0, _extends2.default)({
223
+ name: textNameProp
224
+ }, rest), /*#__PURE__*/_react.default.createElement(_input.default, {
225
+ suffix: /*#__PURE__*/_react.default.createElement(_popover.default, {
226
+ content: /*#__PURE__*/_react.default.createElement("div", {
227
+ style: {
228
+ width: tableWidth + 'px',
229
+ height: tableHeight + 'px',
230
+ maxHeight: '95vh',
231
+ overflow: 'auto'
232
+ }
233
+ }, tableDom),
234
+ trigger: "click",
235
+ visible: visible,
236
+ onVisibleChange: setVisible
237
+ }, /*#__PURE__*/_react.default.createElement(_icons.MoreOutlined, null)),
238
+ onClick: function onClick() {
239
+ return setVisible(true);
240
+ },
241
+ onInput: function onInput(e) {
242
+ var _formRef$current6;
243
+
244
+ var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current6 = formRef.current) === null || _formRef$current6 === void 0 ? void 0 : _formRef$current6.getFieldsValue();
245
+ formValue[name] = e.target.value;
246
+ formRef.current.setFieldsValue((0, _objectSpread2.default)({}, formValue));
247
+ },
248
+ readOnly: readonly,
249
+ value: text
250
+ })));
251
+ }
252
+
253
+ var _default = InputTable;
254
+ exports.default = _default;
@@ -0,0 +1,64 @@
1
+ .dtl-layout {
2
+ position : absolute;
3
+ top : 0;
4
+ left : 0;
5
+ right : 0;
6
+ bottom : 0;
7
+ background : white;
8
+ display : flex;
9
+ flex-direction: column;
10
+
11
+ .dtl-header {
12
+ display : flex;
13
+ justify-items: center;
14
+ padding : 5px 14px;
15
+ border-bottom: 1px solid #f0f0f0;
16
+
17
+ .dtl-title {
18
+ font-size: 14pt;
19
+ }
20
+
21
+ .dtl-btns {
22
+ flex : 1;
23
+ text-align: right;
24
+
25
+ button+button {
26
+ margin-left: 8px;
27
+ }
28
+ }
29
+ }
30
+
31
+ .dtl-body {
32
+ height : 0;
33
+ flex : 1;
34
+ overflow: auto;
35
+ padding : 12px;
36
+ }
37
+
38
+ .dtl-flex {
39
+ display : flex;
40
+ flex-direction: column;
41
+ }
42
+ }
43
+
44
+ .flex {
45
+ flex: 1;
46
+ }
47
+
48
+ .flex-column {
49
+ display : flex;
50
+ flex-direction: column;
51
+
52
+ .flex {
53
+ height: 0;
54
+ }
55
+ }
56
+
57
+ .flex-row {
58
+ display : flex;
59
+ flex-direction: row;
60
+
61
+ .flex {
62
+ width: 0;
63
+ }
64
+ }
@@ -0,0 +1,29 @@
1
+ import type { ActionType } from 'ls-pro-table';
2
+ import type { ProFormInstance } from 'ls-pro-form';
3
+ import type { SingleParamType } from '../useSingle';
4
+ export declare type DtlParamType = SingleParamType & {
5
+ mstKeyField: string;
6
+ dtlService: any;
7
+ relationField: string;
8
+ dtlItem: any;
9
+ };
10
+ declare function useDtl(dtlParam: DtlParamType): {
11
+ formRef: import("react").MutableRefObject<ProFormInstance<any> | undefined>;
12
+ tableRef: import("react").MutableRefObject<ActionType | undefined>;
13
+ dtlFormRef: import("react").MutableRefObject<ProFormInstance<any> | undefined>;
14
+ selectedRows: any;
15
+ showEdit: boolean;
16
+ editItem: any;
17
+ tableTools: JSX.Element[];
18
+ setSelectedRows: import("react").Dispatch<any>;
19
+ setShowEdit: import("react").Dispatch<import("react").SetStateAction<boolean>>;
20
+ setEditItem: import("react").Dispatch<any>;
21
+ onRemoveDtl: () => void;
22
+ onSaveDtl: (formData: any) => Promise<boolean>;
23
+ onLoadDtl: (params: Record<string, any>, sort: Record<string, any>, filter: Record<string, any>) => Promise<any>;
24
+ onAddDtl: () => Promise<boolean>;
25
+ onEditDtl: () => Promise<boolean>;
26
+ onSaveMst: (values: any) => Promise<void>;
27
+ onRemoveMst: () => Promise<boolean | undefined>;
28
+ };
29
+ export default useDtl;