@sheinx/hooks 3.9.2-beta.6 → 3.9.2-beta.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.
@@ -13,7 +13,39 @@ export type RxpandHideColType = {
13
13
  onClick?: (data: any, expand: boolean) => void;
14
14
  } | null;
15
15
  declare const useColumns: <Data>(props: UseColumnsProps<Data>) => {
16
- columns: TableFormatColumn<Data>[];
16
+ columns: (TableFormatColumn<Data> | {
17
+ colSpan: (() => number) | undefined;
18
+ render: () => null;
19
+ title: (() => import("react/jsx-runtime").JSX.Element) | null;
20
+ index: number;
21
+ key: string | number;
22
+ lastFixed?: boolean | undefined;
23
+ firstFixed?: boolean | undefined;
24
+ align?: "left" | "right" | "center" | undefined;
25
+ defaultOrder?: import("./use-table.type").TableColumnOrder | undefined;
26
+ fixed?: import("./use-table.type").TableColumnFix | undefined;
27
+ group?: React.ReactNode | React.ReactNode[];
28
+ groupProps?: {
29
+ className?: string | undefined;
30
+ style?: React.CSSProperties | undefined;
31
+ } | undefined;
32
+ hide?: boolean | undefined;
33
+ minWidth?: number | undefined;
34
+ maxWidth?: number | undefined;
35
+ filterAll?: ((data: Data[]) => Data[]) | undefined;
36
+ rowSpan?: ((prevRowData: Data, nextRowData: Data) => boolean) | undefined;
37
+ sorter?: string | import("./use-table.type").TableColumnSorter | ((order: import("./use-table.type").TableColumnOrder) => void | ((prevRowData: Data, nextRowData: Data) => number)) | undefined;
38
+ sortDirections?: ("asc" | "desc")[] | undefined;
39
+ filter?: import("./use-table.type").TableColumnFilter<Data> | undefined;
40
+ treeColumnsName?: import("../..").ObjectKey<Data> | undefined;
41
+ treeIndent?: number | undefined;
42
+ type?: import("./use-table.type").TableColumnType | undefined;
43
+ width?: string | number | undefined;
44
+ className?: string | undefined;
45
+ style?: React.CSSProperties | undefined;
46
+ onClick?: ((d: Data, isExpand: boolean) => void) | undefined;
47
+ columnResizable?: false | undefined;
48
+ })[];
17
49
  columnInfo: {
18
50
  handleScroll: (scrollInfo: {
19
51
  scrollLeft: number;
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACzC;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAKT,QAAA,MAAM,UAAU;;;;wBAiEkC,MAAM;;;;CA8DvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACzC;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAKT,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAsEkC,MAAM;;;;CA6EvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -5,9 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _immer = require("../../utils/immer");
8
- var _react = require("react");
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _usePersistFn = _interopRequireDefault(require("../../common/use-persist-fn"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
14
  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; }
12
15
  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; }
13
16
  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; }
@@ -95,12 +98,24 @@ var useColumns = function useColumns(props) {
95
98
  return context.cachedColumns;
96
99
  });
97
100
  var columns = getColumns(propsColumns) || [];
98
- var leftFixedColumns = columns.filter(function (col) {
99
- return col.fixed === 'left';
100
- });
101
- var middleColumns = columns.filter(function (col) {
102
- return !col.fixed;
103
- });
101
+ var _useMemo = (0, _react.useMemo)(function () {
102
+ if (!props.virtualColumn) return {
103
+ leftFixedColumns: [],
104
+ middleColumns: []
105
+ };
106
+ var leftFixedColumns = columns.filter(function (col) {
107
+ return col.fixed === 'left';
108
+ });
109
+ var middleColumns = columns.filter(function (col) {
110
+ return !col.fixed;
111
+ });
112
+ return {
113
+ leftFixedColumns: leftFixedColumns,
114
+ middleColumns: middleColumns
115
+ };
116
+ }, [columns, props.virtualColumn]),
117
+ leftFixedColumns = _useMemo.leftFixedColumns,
118
+ middleColumns = _useMemo.middleColumns;
104
119
  var handleScroll = function handleScroll(scrollInfo) {
105
120
  var scrollLeft = scrollInfo.scrollLeft;
106
121
  var sum = 0;
@@ -124,7 +139,7 @@ var useColumns = function useColumns(props) {
124
139
 
125
140
  // 左侧也增加缓冲列,但不能小于0
126
141
  var bufferedStartIndex = Math.max(0, i - BUFFER_COUNT);
127
- currentIndex = bufferedStartIndex + leftFixedColumns.length;
142
+ currentIndex = bufferedStartIndex;
128
143
  break;
129
144
  }
130
145
  }
@@ -136,8 +151,9 @@ var useColumns = function useColumns(props) {
136
151
  scrollLeft: 0
137
152
  });
138
153
  }, []);
139
- return {
140
- columns: props.virtualColumn ? columns.map(function (col, index) {
154
+ var processedColumns = (0, _react.useMemo)(function () {
155
+ if (!props.virtualColumn) return columns;
156
+ return columns.map(function (col, index) {
141
157
  if (col.fixed) {
142
158
  return col;
143
159
  }
@@ -152,16 +168,27 @@ var useColumns = function useColumns(props) {
152
168
  return startIndex;
153
169
  };
154
170
  }
171
+ var hiddenTitle = context.groupLevel > 0 ? function () {
172
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
173
+ style: {
174
+ visibility: 'hidden'
175
+ },
176
+ children: typeof col.title === 'function' ? col.title([]) : col.title
177
+ });
178
+ } : null;
155
179
  return _objectSpread(_objectSpread({}, col), {}, {
156
180
  colSpan: colSpan,
157
181
  render: function render() {
158
182
  return null;
159
183
  },
160
- title: null
184
+ title: hiddenTitle
161
185
  });
162
186
  }
163
187
  return col;
164
- }) : columns,
188
+ });
189
+ }, [columns, startIndex, renderedCount, props.virtualColumn, leftFixedColumns.length, middleColumns.length, context.groupLevel]);
190
+ return {
191
+ columns: processedColumns,
165
192
  columnInfo: {
166
193
  handleScroll: handleScroll
167
194
  },
@@ -13,7 +13,39 @@ export type RxpandHideColType = {
13
13
  onClick?: (data: any, expand: boolean) => void;
14
14
  } | null;
15
15
  declare const useColumns: <Data>(props: UseColumnsProps<Data>) => {
16
- columns: TableFormatColumn<Data>[];
16
+ columns: (TableFormatColumn<Data> | {
17
+ colSpan: (() => number) | undefined;
18
+ render: () => null;
19
+ title: (() => import("react/jsx-runtime").JSX.Element) | null;
20
+ index: number;
21
+ key: string | number;
22
+ lastFixed?: boolean | undefined;
23
+ firstFixed?: boolean | undefined;
24
+ align?: "left" | "right" | "center" | undefined;
25
+ defaultOrder?: import("./use-table.type").TableColumnOrder | undefined;
26
+ fixed?: import("./use-table.type").TableColumnFix | undefined;
27
+ group?: React.ReactNode | React.ReactNode[];
28
+ groupProps?: {
29
+ className?: string | undefined;
30
+ style?: React.CSSProperties | undefined;
31
+ } | undefined;
32
+ hide?: boolean | undefined;
33
+ minWidth?: number | undefined;
34
+ maxWidth?: number | undefined;
35
+ filterAll?: ((data: Data[]) => Data[]) | undefined;
36
+ rowSpan?: ((prevRowData: Data, nextRowData: Data) => boolean) | undefined;
37
+ sorter?: string | import("./use-table.type").TableColumnSorter | ((order: import("./use-table.type").TableColumnOrder) => void | ((prevRowData: Data, nextRowData: Data) => number)) | undefined;
38
+ sortDirections?: ("asc" | "desc")[] | undefined;
39
+ filter?: import("./use-table.type").TableColumnFilter<Data> | undefined;
40
+ treeColumnsName?: import("../..").ObjectKey<Data> | undefined;
41
+ treeIndent?: number | undefined;
42
+ type?: import("./use-table.type").TableColumnType | undefined;
43
+ width?: string | number | undefined;
44
+ className?: string | undefined;
45
+ style?: React.CSSProperties | undefined;
46
+ onClick?: ((d: Data, isExpand: boolean) => void) | undefined;
47
+ columnResizable?: false | undefined;
48
+ })[];
17
49
  columnInfo: {
18
50
  handleScroll: (scrollInfo: {
19
51
  scrollLeft: number;
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACzC;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAKT,QAAA,MAAM,UAAU;;;;wBAiEkC,MAAM;;;;CA8DvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACzC;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAKT,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAsEkC,MAAM;;;;CA6EvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -11,8 +11,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
11
11
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
13
  import { produce } from "../../utils/immer";
14
- import { useEffect, useRef, useState } from 'react';
14
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
15
15
  import usePersistFn from "../../common/use-persist-fn";
16
+ import { jsx as _jsx } from "react/jsx-runtime";
16
17
  var getHideExpandCol = function getHideExpandCol() {
17
18
  var cols = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
18
19
  var expandCol = cols.find(function (col) {
@@ -88,12 +89,24 @@ var useColumns = function useColumns(props) {
88
89
  return context.cachedColumns;
89
90
  });
90
91
  var columns = getColumns(propsColumns) || [];
91
- var leftFixedColumns = columns.filter(function (col) {
92
- return col.fixed === 'left';
93
- });
94
- var middleColumns = columns.filter(function (col) {
95
- return !col.fixed;
96
- });
92
+ var _useMemo = useMemo(function () {
93
+ if (!props.virtualColumn) return {
94
+ leftFixedColumns: [],
95
+ middleColumns: []
96
+ };
97
+ var leftFixedColumns = columns.filter(function (col) {
98
+ return col.fixed === 'left';
99
+ });
100
+ var middleColumns = columns.filter(function (col) {
101
+ return !col.fixed;
102
+ });
103
+ return {
104
+ leftFixedColumns: leftFixedColumns,
105
+ middleColumns: middleColumns
106
+ };
107
+ }, [columns, props.virtualColumn]),
108
+ leftFixedColumns = _useMemo.leftFixedColumns,
109
+ middleColumns = _useMemo.middleColumns;
97
110
  var handleScroll = function handleScroll(scrollInfo) {
98
111
  var scrollLeft = scrollInfo.scrollLeft;
99
112
  var sum = 0;
@@ -117,7 +130,7 @@ var useColumns = function useColumns(props) {
117
130
 
118
131
  // 左侧也增加缓冲列,但不能小于0
119
132
  var bufferedStartIndex = Math.max(0, i - BUFFER_COUNT);
120
- currentIndex = bufferedStartIndex + leftFixedColumns.length;
133
+ currentIndex = bufferedStartIndex;
121
134
  break;
122
135
  }
123
136
  }
@@ -129,8 +142,9 @@ var useColumns = function useColumns(props) {
129
142
  scrollLeft: 0
130
143
  });
131
144
  }, []);
132
- return {
133
- columns: props.virtualColumn ? columns.map(function (col, index) {
145
+ var processedColumns = useMemo(function () {
146
+ if (!props.virtualColumn) return columns;
147
+ return columns.map(function (col, index) {
134
148
  if (col.fixed) {
135
149
  return col;
136
150
  }
@@ -145,16 +159,27 @@ var useColumns = function useColumns(props) {
145
159
  return startIndex;
146
160
  };
147
161
  }
162
+ var hiddenTitle = context.groupLevel > 0 ? function () {
163
+ return /*#__PURE__*/_jsx("span", {
164
+ style: {
165
+ visibility: 'hidden'
166
+ },
167
+ children: typeof col.title === 'function' ? col.title([]) : col.title
168
+ });
169
+ } : null;
148
170
  return _objectSpread(_objectSpread({}, col), {}, {
149
171
  colSpan: colSpan,
150
172
  render: function render() {
151
173
  return null;
152
174
  },
153
- title: null
175
+ title: hiddenTitle
154
176
  });
155
177
  }
156
178
  return col;
157
- }) : columns,
179
+ });
180
+ }, [columns, startIndex, renderedCount, props.virtualColumn, leftFixedColumns.length, middleColumns.length, context.groupLevel]);
181
+ return {
182
+ columns: processedColumns,
158
183
  columnInfo: {
159
184
  handleScroll: handleScroll
160
185
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.9.2-beta.6",
3
+ "version": "3.9.2-beta.8",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",