funda-ui 4.7.582 → 4.7.585

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Table/index.js CHANGED
@@ -1964,6 +1964,40 @@ var ToggleSelection = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
1964
1964
  resolvedRef.current.indeterminate = indeterminate;
1965
1965
  }
1966
1966
  }, [resolvedRef, indeterminate]);
1967
+
1968
+ // Handle checked prop - use setSelectedItems to manage selection state
1969
+ (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
1970
+ if (checked !== undefined && row !== -1) {
1971
+ var rowKey = String(row);
1972
+ var nextSelectedItems;
1973
+ setSelectedItems(function (prev) {
1974
+ var newSelectedItems = new Set(prev);
1975
+ if (checked) {
1976
+ newSelectedItems.add(rowKey);
1977
+ } else {
1978
+ newSelectedItems["delete"](rowKey);
1979
+ }
1980
+ nextSelectedItems = newSelectedItems;
1981
+
1982
+ //
1983
+ var selectedIndex = nextSelectedItems ? Array.from(nextSelectedItems).map(function (v) {
1984
+ return Number(v);
1985
+ }) : [];
1986
+ var filteredData = Array.isArray(originData) ? originData.filter(function (v, i) {
1987
+ return selectedIndex.includes(i);
1988
+ }) : [];
1989
+ var syntheticEvent = {
1990
+ target: {
1991
+ value: rowKey,
1992
+ checked: checked
1993
+ }
1994
+ };
1995
+ onChange === null || onChange === void 0 ? void 0 : onChange(syntheticEvent, checked, filteredData);
1996
+ onChangeRowSelect === null || onChangeRowSelect === void 0 ? void 0 : onChangeRowSelect(filteredData);
1997
+ return newSelectedItems;
1998
+ });
1999
+ }
2000
+ }, [checked, row, setSelectedItems]);
1967
2001
  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, rowSelectable && row === -1 ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("input", ToggleSelection_extends({
1968
2002
  type: useRadio ? 'radio' : 'checkbox',
1969
2003
  ref: resolvedRef,
@@ -1964,6 +1964,40 @@ var ToggleSelection = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
1964
1964
  resolvedRef.current.indeterminate = indeterminate;
1965
1965
  }
1966
1966
  }, [resolvedRef, indeterminate]);
1967
+
1968
+ // Handle checked prop - use setSelectedItems to manage selection state
1969
+ (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
1970
+ if (checked !== undefined && row !== -1) {
1971
+ var rowKey = String(row);
1972
+ var nextSelectedItems;
1973
+ setSelectedItems(function (prev) {
1974
+ var newSelectedItems = new Set(prev);
1975
+ if (checked) {
1976
+ newSelectedItems.add(rowKey);
1977
+ } else {
1978
+ newSelectedItems["delete"](rowKey);
1979
+ }
1980
+ nextSelectedItems = newSelectedItems;
1981
+
1982
+ //
1983
+ var selectedIndex = nextSelectedItems ? Array.from(nextSelectedItems).map(function (v) {
1984
+ return Number(v);
1985
+ }) : [];
1986
+ var filteredData = Array.isArray(originData) ? originData.filter(function (v, i) {
1987
+ return selectedIndex.includes(i);
1988
+ }) : [];
1989
+ var syntheticEvent = {
1990
+ target: {
1991
+ value: rowKey,
1992
+ checked: checked
1993
+ }
1994
+ };
1995
+ onChange === null || onChange === void 0 ? void 0 : onChange(syntheticEvent, checked, filteredData);
1996
+ onChangeRowSelect === null || onChangeRowSelect === void 0 ? void 0 : onChangeRowSelect(filteredData);
1997
+ return newSelectedItems;
1998
+ });
1999
+ }
2000
+ }, [checked, row, setSelectedItems]);
1967
2001
  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, rowSelectable && row === -1 ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("input", ToggleSelection_extends({
1968
2002
  type: useRadio ? 'radio' : 'checkbox',
1969
2003
  ref: resolvedRef,
@@ -5,7 +5,6 @@ import useComId from 'funda-utils/dist/cjs/useComId';
5
5
  import { clsWrite, combinedCls } from 'funda-utils/dist/cjs/cls';
6
6
 
7
7
 
8
-
9
8
  import { TableProvider } from './TableContext';
10
9
  import useTableResponsive from './utils/hooks/useTableResponsive';
11
10
  import useTableDraggable from './utils/hooks/useTableDraggable';
@@ -2,6 +2,7 @@ import React, { forwardRef, useContext } from 'react';
2
2
 
3
3
  import { clsWrite, combinedCls } from 'funda-utils/dist/cjs/cls';
4
4
 
5
+
5
6
  import { TableContext } from './TableContext';
6
7
 
7
8
  import { cellMark, removeCellFocusClassName } from './utils/func';
@@ -185,6 +185,36 @@ const ToggleSelection = forwardRef((props: ToggleSelectionProps, ref: any) => {
185
185
  }
186
186
  }, [resolvedRef, indeterminate]);
187
187
 
188
+ // Handle checked prop - use setSelectedItems to manage selection state
189
+ useEffect(() => {
190
+ if (checked !== undefined && row !== -1) {
191
+ const rowKey = String(row);
192
+ let nextSelectedItems: Set<any> | undefined;
193
+ setSelectedItems((prev: any) => {
194
+ const newSelectedItems = new Set(prev);
195
+ if (checked) {
196
+ newSelectedItems.add(rowKey);
197
+ } else {
198
+ newSelectedItems.delete(rowKey);
199
+ }
200
+ nextSelectedItems = newSelectedItems;
201
+
202
+
203
+ //
204
+ const selectedIndex = nextSelectedItems ? Array.from(nextSelectedItems).map((v: any) => Number(v)) : [];
205
+ const filteredData = Array.isArray(originData) ? originData.filter((v: any, i: number) => selectedIndex.includes(i)) : [];
206
+
207
+ const syntheticEvent = { target: { value: rowKey, checked } } as any;
208
+ onChange?.(syntheticEvent, checked, filteredData);
209
+ onChangeRowSelect?.(filteredData);
210
+
211
+ return newSelectedItems;
212
+ });
213
+
214
+
215
+ }
216
+ }, [checked, row, setSelectedItems]);
217
+
188
218
 
189
219
  return (
190
220
  <>
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": "UIUX Lab",
3
3
  "email": "uiuxlab@gmail.com",
4
4
  "name": "funda-ui",
5
- "version": "4.7.582",
5
+ "version": "4.7.585",
6
6
  "description": "React components using pure Bootstrap 5+ which does not contain any external style and script libraries.",
7
7
  "repository": {
8
8
  "type": "git",