@ceed/ads 0.0.68 → 0.0.69

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.
@@ -45,6 +45,11 @@ type DataTableProps<T extends Record<string, unknown>> = {
45
45
  rowCount?: number;
46
46
  loading?: boolean;
47
47
  getId?: (row: T) => string;
48
+ /**
49
+ * 기본적으로 Uncontrolled로 작동하지만, Controlled로 작동하게 하고 싶을 때 사용한다.
50
+ * 이 값이 true이면, 현재 페이지 이외에도 존재하는 모든 데이터가 선택된것으로 간주하고 동작한다.
51
+ */
52
+ isTotalSelected?: boolean;
48
53
  slots?: {
49
54
  checkbox?: React.ElementType;
50
55
  toolbar?: React.ElementType;
package/dist/index.js CHANGED
@@ -1313,7 +1313,8 @@ function useDataTableRenderer({
1313
1313
  onPaginationModelChange,
1314
1314
  selectionModel = [],
1315
1315
  onSelectionModelChange,
1316
- getId: _getId
1316
+ getId: _getId,
1317
+ isTotalSelected: _isTotalSelected
1317
1318
  }) {
1318
1319
  const [page, setPage] = useState4(paginationModel?.page || 1);
1319
1320
  const pageSize = paginationModel?.pageSize || 20;
@@ -1335,8 +1336,8 @@ function useDataTableRenderer({
1335
1336
  );
1336
1337
  const rowCount = totalRowsProp || rows.length;
1337
1338
  const isTotalSelected = useMemo3(
1338
- () => rowCount > 0 && selectionModel.length === rowCount,
1339
- [selectionModel, rowCount]
1339
+ () => _isTotalSelected ?? (rowCount > 0 && selectionModel.length === rowCount),
1340
+ [_isTotalSelected, selectionModel, rowCount]
1340
1341
  );
1341
1342
  const handlePageChange = useCallback3(
1342
1343
  (newPage) => {
@@ -1398,7 +1399,7 @@ function useDataTableRenderer({
1398
1399
  onTotalSelect: useCallback3(() => {
1399
1400
  onSelectionModelChange?.(
1400
1401
  isTotalSelected ? [] : rows.map(getId),
1401
- isTotalSelected
1402
+ !isTotalSelected
1402
1403
  );
1403
1404
  }, [isTotalSelected, rows, onSelectionModelChange])
1404
1405
  };
package/framer/index.js CHANGED
@@ -38187,7 +38187,8 @@ function useDataTableRenderer({
38187
38187
  onPaginationModelChange,
38188
38188
  selectionModel = [],
38189
38189
  onSelectionModelChange,
38190
- getId: _getId
38190
+ getId: _getId,
38191
+ isTotalSelected: _isTotalSelected
38191
38192
  }) {
38192
38193
  const [page, setPage] = useState25((paginationModel == null ? void 0 : paginationModel.page) || 1);
38193
38194
  const pageSize2 = (paginationModel == null ? void 0 : paginationModel.pageSize) || 20;
@@ -38212,8 +38213,8 @@ function useDataTableRenderer({
38212
38213
  );
38213
38214
  const rowCount = totalRowsProp || rows.length;
38214
38215
  const isTotalSelected = useMemo35(
38215
- () => rowCount > 0 && selectionModel.length === rowCount,
38216
- [selectionModel, rowCount]
38216
+ () => _isTotalSelected != null ? _isTotalSelected : rowCount > 0 && selectionModel.length === rowCount,
38217
+ [_isTotalSelected, selectionModel, rowCount]
38217
38218
  );
38218
38219
  const handlePageChange = useCallback26(
38219
38220
  (newPage) => {
@@ -38275,7 +38276,7 @@ function useDataTableRenderer({
38275
38276
  onTotalSelect: useCallback26(() => {
38276
38277
  onSelectionModelChange == null ? void 0 : onSelectionModelChange(
38277
38278
  isTotalSelected ? [] : rows.map(getId),
38278
- isTotalSelected
38279
+ !isTotalSelected
38279
38280
  );
38280
38281
  }, [isTotalSelected, rows, onSelectionModelChange])
38281
38282
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ceed/ads",
3
- "version": "0.0.68",
3
+ "version": "0.0.69",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",