@lemon-fe/components 1.4.28 → 1.5.2

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.
@@ -17,7 +17,7 @@ declare const Editors: {
17
17
  Text: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & import("..").TextEditorParams<any> & React.RefAttributes<import("ag-grid-react").ICellEditorReactComp>>;
18
18
  Date: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & import("..").DateEditorParams<any> & React.RefAttributes<import("ag-grid-react").ICellEditorReactComp>>;
19
19
  Number: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & import("..").NumberEditorParams<any> & React.RefAttributes<import("ag-grid-react").ICellEditorReactComp>>;
20
- Select: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & Pick<import("antd").SelectProps<any, import("antd/lib/select").BaseOptionType>, "disabled" | "mode" | "allowClear" | "showSearch" | "optionFilterProp" | "options" | "virtual" | "listHeight"> & {
20
+ Select: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & Pick<import("antd").SelectProps<any, import("antd/lib/select").BaseOptionType>, "disabled" | "allowClear" | "mode" | "showSearch" | "virtual" | "optionFilterProp" | "options" | "listHeight"> & {
21
21
  fieldNames?: {
22
22
  label: string;
23
23
  value: string;
@@ -491,7 +491,7 @@ function Filter(originalProps) {
491
491
  var handleTabChange = function handleTabChange(index) {
492
492
  if (index !== active) {
493
493
  setActive(index);
494
- var result = _objectSpread(_objectSpread({}, emptyValue), tabs[index].value);
494
+ var result = _objectSpread(_objectSpread(_objectSpread({}, emptyValue), defaultValue), tabs[index].value);
495
495
  form.setFieldsValue(result);
496
496
  handleFinish(form.getFieldsValue(), 'reset');
497
497
  }
@@ -1,9 +1,17 @@
1
1
  import React from 'react';
2
- import type { CSSProperties, ForwardedRef, ReactElement } from 'react';
2
+ import type { CSSProperties, ForwardedRef, ReactElement, ReactNode } from 'react';
3
3
  import { type DataGridRef } from '../data-grid';
4
4
  import type { ColType, CustomColumnData, DataGridProps, PaginationType, SortType } from '../data-grid/typings';
5
5
  import type { FilterProps } from '../filter/typings';
6
6
  import type { SideBarDef } from 'ag-grid-community';
7
+ export interface SelectViewBodyOpts<RecordType, ParamsType> {
8
+ loading: boolean;
9
+ setLoading: (loading: boolean) => void;
10
+ params: ParamsType;
11
+ selectedData: RecordType[];
12
+ selectedKeys: string[];
13
+ onSelectChange: (keys: string[] | Set<string>, records: RecordType[], rowDoubleClicked?: boolean) => void;
14
+ }
7
15
  export interface SelectViewProps<RecordType, ParamsType> extends Pick<DataGridProps<RecordType>, 'defaultColDef' | 'rowHeight' | 'cellDisplayFlex' | 'isRowSelectable' | 'rowMultiSelectWithClick' | 'suppressRowClickSelection'> {
8
16
  value?: RecordType[];
9
17
  onChange?: (value: RecordType[], rowDoubleClicked?: boolean) => void;
@@ -78,7 +86,9 @@ export interface SelectViewProps<RecordType, ParamsType> extends Pick<DataGridPr
78
86
  * @description 表格顶部header区域自定义
79
87
  * @default null
80
88
  */
81
- header?: ReactElement | null;
89
+ header?: ReactElement | ((opts: {
90
+ filter: ReactElement | null;
91
+ }) => ReactElement) | null;
82
92
  /**
83
93
  * @description 自定义已选择datagrid
84
94
  */
@@ -87,6 +97,10 @@ export interface SelectViewProps<RecordType, ParamsType> extends Pick<DataGridPr
87
97
  * @description 自定义主datagrid
88
98
  */
89
99
  customDataGridProps?: DataGridProps<RecordType>;
100
+ /**
101
+ * @description 自定义body区域,支持函数形式获取组件内部状态
102
+ */
103
+ body?: ReactElement | ((opts: SelectViewBodyOpts<RecordType, ParamsType>) => ReactNode);
90
104
  }
91
105
  declare function SelectView<RecordType extends Record<string | number, any>, ParamsType extends Record<string, any>>(originalProps: SelectViewProps<RecordType, ParamsType>, ref?: ForwardedRef<DataGridRef<RecordType>>): JSX.Element;
92
106
  declare const _default: <RecordType extends Record<string | number, any>, ParamsType extends Record<string, any>>(props: SelectViewProps<RecordType, ParamsType> & {
@@ -61,7 +61,8 @@ function SelectView(originalProps, ref) {
61
61
  customColumnPanelStorage = props.customColumnPanelStorage,
62
62
  _props$suppressRowCli = props.suppressRowClickSelection,
63
63
  suppressRowClickSelection = _props$suppressRowCli === void 0 ? false : _props$suppressRowCli,
64
- rowMultiSelectWithClick = props.rowMultiSelectWithClick;
64
+ rowMultiSelectWithClick = props.rowMultiSelectWithClick,
65
+ bodyProp = props.body;
65
66
  var prefix = prefixClassName("select-view");
66
67
  var _useState = useState(value || emptyValue),
67
68
  _useState2 = _slicedToArray(_useState, 2),
@@ -160,10 +161,9 @@ function SelectView(originalProps, ref) {
160
161
  };
161
162
  var headerNode = null;
162
163
  var siderNode = null;
164
+ var filterNode = null;
163
165
  if (filter && filter.data) {
164
- headerNode = /*#__PURE__*/React.createElement(React.Fragment, null, headerProp && /*#__PURE__*/React.createElement("div", {
165
- className: prefix('head-wrapper')
166
- }, headerProp), /*#__PURE__*/React.createElement(Filter, _extends({
166
+ filterNode = /*#__PURE__*/React.createElement(Filter, _extends({
167
167
  simple: true,
168
168
  autoPlaceholder: true,
169
169
  form: filterForm
@@ -172,9 +172,16 @@ function SelectView(originalProps, ref) {
172
172
  onChange: function onChange(val, actionType) {
173
173
  return handleChangeParams(_objectSpread(_objectSpread({}, cParams), val), actionType);
174
174
  }
175
- })));
176
- } else if (headerProp) {
177
- headerNode = headerProp;
175
+ }));
176
+ }
177
+ if (headerProp && typeof headerProp === 'function') {
178
+ headerNode = headerProp({
179
+ filter: filterNode
180
+ });
181
+ } else if (headerProp || filterNode) {
182
+ headerNode = /*#__PURE__*/React.createElement(React.Fragment, null, headerProp && /*#__PURE__*/React.createElement("div", {
183
+ className: prefix('head-wrapper')
184
+ }, headerProp), filterNode);
178
185
  }
179
186
  if (filter && filter.sider) {
180
187
  siderNode = filter.sider({
@@ -212,6 +219,18 @@ function SelectView(originalProps, ref) {
212
219
  ref.current = val;
213
220
  }
214
221
  };
222
+ var bodyNode = useMemo(function () {
223
+ if (!bodyProp) return null;
224
+ return typeof bodyProp === 'function' ? bodyProp({
225
+ loading: loading,
226
+ setLoading: setLoading,
227
+ params: cParams,
228
+ selectedData: data,
229
+ selectedKeys: dataKeys,
230
+ onSelectChange: handleChangeData
231
+ }) : bodyProp;
232
+ // eslint-disable-next-line react-hooks/exhaustive-deps
233
+ }, [bodyProp, loading, cParams, data, dataKeys]);
215
234
  var renderList = function renderList() {
216
235
  return /*#__PURE__*/React.createElement("div", {
217
236
  className: prefix('layout')
@@ -239,7 +258,7 @@ function SelectView(originalProps, ref) {
239
258
  className: prefix('head')
240
259
  }, headerNode), /*#__PURE__*/React.createElement("div", {
241
260
  className: prefix('body')
242
- }, /*#__PURE__*/React.createElement(DataGrid, _extends({
261
+ }, bodyNode ? bodyNode : /*#__PURE__*/React.createElement(DataGrid, _extends({
243
262
  ref: function ref(val) {
244
263
  if (!readOnly) {
245
264
  initRef(val);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemon-fe/components",
3
- "version": "1.4.28",
3
+ "version": "1.5.2",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "",
6
6
  "license": "MIT",
@@ -58,5 +58,5 @@
58
58
  "publishConfig": {
59
59
  "registry": "https://registry.npmjs.org"
60
60
  },
61
- "gitHead": "8569d6f611b682d2b0213d7ada70f43b23ad7933"
61
+ "gitHead": "f1d68fc8b34f14b697a46df4c0d2bad9bc698426"
62
62
  }