@ceed/ads 1.7.4-next.1 → 1.7.4
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/dist/components/DataTable/types.d.ts +0 -7
- package/dist/index.cjs +17 -58
- package/dist/index.d.ts +1 -0
- package/dist/index.js +17 -58
- package/framer/index.js +29 -29
- package/package.json +2 -3
|
@@ -140,13 +140,6 @@ export type DataTableProps<T extends Record<PropertyKey, any>, GetId extends ((r
|
|
|
140
140
|
* MUI에는 없는 인터페이스지만 Total Select 기능이 추가되었기 때문에 추가해야했다.
|
|
141
141
|
*/
|
|
142
142
|
isTotalSelected?: boolean) => void;
|
|
143
|
-
/**
|
|
144
|
-
* row별로 선택 가능 여부를 결정하는 함수
|
|
145
|
-
*/
|
|
146
|
-
isRowSelectable?: (params: {
|
|
147
|
-
row: T;
|
|
148
|
-
id: InferredIdType<T, GetId>;
|
|
149
|
-
}) => boolean;
|
|
150
143
|
disableSelectionOnClick?: boolean;
|
|
151
144
|
initialState?: Partial<{
|
|
152
145
|
sorting: Partial<{
|
package/dist/index.cjs
CHANGED
|
@@ -3522,8 +3522,7 @@ function useDataTableRenderer({
|
|
|
3522
3522
|
onSelectionModelChange,
|
|
3523
3523
|
editMode,
|
|
3524
3524
|
getId: _getId,
|
|
3525
|
-
isTotalSelected: _isTotalSelected
|
|
3526
|
-
isRowSelectable
|
|
3525
|
+
isTotalSelected: _isTotalSelected
|
|
3527
3526
|
}) {
|
|
3528
3527
|
const [focusedRowId, setFocusedRowId] = (0, import_react25.useState)(null);
|
|
3529
3528
|
const [sortModel, setSortModel] = useControlledState(
|
|
@@ -3599,27 +3598,14 @@ function useDataTableRenderer({
|
|
|
3599
3598
|
() => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
|
|
3600
3599
|
[rows, page, pageSize, paginationMode, pagination]
|
|
3601
3600
|
);
|
|
3602
|
-
const selectableDataInPage = (0, import_react25.useMemo)(
|
|
3603
|
-
() => dataInPage.filter((row, i) => {
|
|
3604
|
-
if (!isRowSelectable) return true;
|
|
3605
|
-
return isRowSelectable({ row, id: getId(row, i) });
|
|
3606
|
-
}),
|
|
3607
|
-
[dataInPage, isRowSelectable, getId]
|
|
3608
|
-
);
|
|
3609
3601
|
const isAllSelected = (0, import_react25.useMemo)(
|
|
3610
|
-
() =>
|
|
3611
|
-
|
|
3612
|
-
),
|
|
3613
|
-
[selectableDataInPage, selectedModelSet, getId]
|
|
3602
|
+
() => dataInPage.length > 0 && dataInPage.every((row, i) => selectedModelSet.has(getId(row, i))),
|
|
3603
|
+
[dataInPage, selectedModelSet, getId]
|
|
3614
3604
|
);
|
|
3615
3605
|
const rowCount = totalRowsProp || rows.length;
|
|
3616
|
-
const selectableRowCount = (0, import_react25.useMemo)(() => {
|
|
3617
|
-
if (!isRowSelectable) return rowCount;
|
|
3618
|
-
return rows.filter((row, i) => isRowSelectable({ row, id: getId(row, i) })).length;
|
|
3619
|
-
}, [rows, isRowSelectable, getId, rowCount]);
|
|
3620
3606
|
const isTotalSelected = (0, import_react25.useMemo)(
|
|
3621
|
-
() => _isTotalSelected ?? (
|
|
3622
|
-
[_isTotalSelected, selectionModel,
|
|
3607
|
+
() => _isTotalSelected ?? (rowCount > 0 && (selectionModel?.length || 0) === rowCount),
|
|
3608
|
+
[_isTotalSelected, selectionModel, rowCount]
|
|
3623
3609
|
);
|
|
3624
3610
|
const columnWidths = useColumnWidths(columnsByField);
|
|
3625
3611
|
const getWidth = (0, import_react25.useCallback)(
|
|
@@ -3715,10 +3701,9 @@ function useDataTableRenderer({
|
|
|
3715
3701
|
}, [page, rowCount, pageSize, handlePageChange]);
|
|
3716
3702
|
(0, import_react25.useEffect)(() => {
|
|
3717
3703
|
onSelectionModelChange?.([]);
|
|
3718
|
-
}, [page
|
|
3704
|
+
}, [page]);
|
|
3719
3705
|
return {
|
|
3720
3706
|
rowCount,
|
|
3721
|
-
selectableRowCount,
|
|
3722
3707
|
page,
|
|
3723
3708
|
pageSize,
|
|
3724
3709
|
onPaginationModelChange: handlePageChange,
|
|
@@ -3734,22 +3719,13 @@ function useDataTableRenderer({
|
|
|
3734
3719
|
(model) => selectedModelSet.has(model),
|
|
3735
3720
|
[selectedModelSet]
|
|
3736
3721
|
),
|
|
3737
|
-
isRowSelectable: (0, import_react25.useCallback)(
|
|
3738
|
-
(rowId, row) => {
|
|
3739
|
-
if (!isRowSelectable) return true;
|
|
3740
|
-
return isRowSelectable({ row, id: rowId });
|
|
3741
|
-
},
|
|
3742
|
-
[isRowSelectable]
|
|
3743
|
-
),
|
|
3744
3722
|
focusedRowId,
|
|
3745
3723
|
onRowFocus: (0, import_react25.useCallback)((rowId) => {
|
|
3746
3724
|
setFocusedRowId(rowId);
|
|
3747
3725
|
}, []),
|
|
3748
3726
|
onAllCheckboxChange: (0, import_react25.useCallback)(() => {
|
|
3749
|
-
onSelectionModelChange?.(
|
|
3750
|
-
|
|
3751
|
-
);
|
|
3752
|
-
}, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
|
|
3727
|
+
onSelectionModelChange?.(isAllSelected ? [] : dataInPage.map(getId));
|
|
3728
|
+
}, [isAllSelected, dataInPage, onSelectionModelChange, getId]),
|
|
3753
3729
|
onCheckboxChange: (0, import_react25.useCallback)(
|
|
3754
3730
|
(event, selectedModel) => {
|
|
3755
3731
|
if (selectedModelSet.has(selectedModel)) {
|
|
@@ -3766,15 +3742,11 @@ function useDataTableRenderer({
|
|
|
3766
3742
|
),
|
|
3767
3743
|
columns,
|
|
3768
3744
|
onTotalSelect: (0, import_react25.useCallback)(() => {
|
|
3769
|
-
const selectableRows = rows.filter((row, i) => {
|
|
3770
|
-
if (!isRowSelectable) return true;
|
|
3771
|
-
return isRowSelectable({ row, id: getId(row, i) });
|
|
3772
|
-
});
|
|
3773
3745
|
onSelectionModelChange?.(
|
|
3774
|
-
isTotalSelected ? [] :
|
|
3746
|
+
isTotalSelected ? [] : rows.map(getId),
|
|
3775
3747
|
!isTotalSelected
|
|
3776
3748
|
);
|
|
3777
|
-
}, [isTotalSelected, rows, onSelectionModelChange, getId
|
|
3749
|
+
}, [isTotalSelected, rows, onSelectionModelChange, getId])
|
|
3778
3750
|
};
|
|
3779
3751
|
}
|
|
3780
3752
|
function Component(props, apiRef) {
|
|
@@ -3784,7 +3756,6 @@ function Component(props, apiRef) {
|
|
|
3784
3756
|
editMode,
|
|
3785
3757
|
selectionModel,
|
|
3786
3758
|
onSelectionModelChange,
|
|
3787
|
-
isRowSelectable,
|
|
3788
3759
|
disableSelectionOnClick,
|
|
3789
3760
|
onRowClick,
|
|
3790
3761
|
pinnedColumns,
|
|
@@ -3832,12 +3803,10 @@ function Component(props, apiRef) {
|
|
|
3832
3803
|
columns,
|
|
3833
3804
|
isAllSelected,
|
|
3834
3805
|
isSelectedRow,
|
|
3835
|
-
isRowSelectable: isRowSelectableCheck,
|
|
3836
3806
|
onAllCheckboxChange,
|
|
3837
3807
|
onCheckboxChange,
|
|
3838
3808
|
getId,
|
|
3839
3809
|
rowCount,
|
|
3840
|
-
selectableRowCount,
|
|
3841
3810
|
page,
|
|
3842
3811
|
pageSize,
|
|
3843
3812
|
onPaginationModelChange,
|
|
@@ -3863,15 +3832,9 @@ function Component(props, apiRef) {
|
|
|
3863
3832
|
const getRowClickHandler = (0, import_react25.useCallback)(
|
|
3864
3833
|
(row, rowId) => (e) => {
|
|
3865
3834
|
onRowClick?.({ row, rowId }, e);
|
|
3866
|
-
checkboxSelection && !disableSelectionOnClick &&
|
|
3835
|
+
checkboxSelection && !disableSelectionOnClick && onCheckboxChange(e, rowId);
|
|
3867
3836
|
},
|
|
3868
|
-
[
|
|
3869
|
-
onRowClick,
|
|
3870
|
-
checkboxSelection,
|
|
3871
|
-
disableSelectionOnClick,
|
|
3872
|
-
onCheckboxChange,
|
|
3873
|
-
isRowSelectableCheck
|
|
3874
|
-
]
|
|
3837
|
+
[onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange]
|
|
3875
3838
|
);
|
|
3876
3839
|
const getRowFocusHandler = (0, import_react25.useCallback)(
|
|
3877
3840
|
(rowId) => () => {
|
|
@@ -3886,12 +3849,10 @@ function Component(props, apiRef) {
|
|
|
3886
3849
|
[]
|
|
3887
3850
|
);
|
|
3888
3851
|
const getCheckboxChangeHandler = (0, import_react25.useCallback)(
|
|
3889
|
-
(rowId
|
|
3890
|
-
|
|
3891
|
-
onCheckboxChange(e, rowId);
|
|
3892
|
-
}
|
|
3852
|
+
(rowId) => (e) => {
|
|
3853
|
+
onCheckboxChange(e, rowId);
|
|
3893
3854
|
},
|
|
3894
|
-
[onCheckboxChange
|
|
3855
|
+
[onCheckboxChange]
|
|
3895
3856
|
);
|
|
3896
3857
|
(0, import_react25.useImperativeHandle)(apiRef, () => ({
|
|
3897
3858
|
getRowIndexRelativeToVisibleRows(rowId) {
|
|
@@ -3929,7 +3890,7 @@ function Component(props, apiRef) {
|
|
|
3929
3890
|
justifyContent: "space-between",
|
|
3930
3891
|
alignItems: "center"
|
|
3931
3892
|
},
|
|
3932
|
-
!!checkboxSelection && /* @__PURE__ */ import_react25.default.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ import_react25.default.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ import_react25.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react25.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ import_react25.default.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(
|
|
3893
|
+
!!checkboxSelection && /* @__PURE__ */ import_react25.default.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ import_react25.default.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ import_react25.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react25.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ import_react25.default.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(rowCount ?? rows.length), " items")), isTotalSelected && /* @__PURE__ */ import_react25.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react25.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(rowCount ?? rows.length), " items are selected."), /* @__PURE__ */ import_react25.default.createElement(
|
|
3933
3894
|
Button_default,
|
|
3934
3895
|
{
|
|
3935
3896
|
size: "sm",
|
|
@@ -3974,7 +3935,6 @@ function Component(props, apiRef) {
|
|
|
3974
3935
|
onChange: onAllCheckboxChange,
|
|
3975
3936
|
checked: isAllSelected,
|
|
3976
3937
|
indeterminate: (selectionModel || []).length > 0 && !isAllSelected,
|
|
3977
|
-
disabled: dataInPage.length > 0 && !selectableRowCount,
|
|
3978
3938
|
...checkboxProps
|
|
3979
3939
|
}
|
|
3980
3940
|
)
|
|
@@ -4052,9 +4012,8 @@ function Component(props, apiRef) {
|
|
|
4052
4012
|
RenderCheckbox,
|
|
4053
4013
|
{
|
|
4054
4014
|
onClick: getCheckboxClickHandler(),
|
|
4055
|
-
onChange: getCheckboxChangeHandler(rowId
|
|
4015
|
+
onChange: getCheckboxChangeHandler(rowId),
|
|
4056
4016
|
checked: isSelectedRow(rowId),
|
|
4057
|
-
disabled: !isRowSelectableCheck(rowId, row),
|
|
4058
4017
|
...checkboxProps
|
|
4059
4018
|
}
|
|
4060
4019
|
)
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export { useTheme, useColorScheme, useThemeProps, ButtonGroup, alertClasses, boxClasses, buttonClasses, checkboxClasses, dividerClasses, iconButtonClasses, inputClasses, menuClasses, menuButtonClasses, menuItemClasses, optionClasses, radioClasses, radioGroupClasses, selectClasses, switchClasses, tableClasses, textareaClasses, typographyClasses, formControlClasses, formLabelClasses, formHelperTextClasses, gridClasses, stackClasses, sheetClasses, modalClasses, modalCloseClasses, modalDialogClasses, modalOverflowClasses, dialogTitleClasses, dialogContentClasses, dialogActionsClasses, tooltipClasses, tabsClasses, tabListClasses, tabPanelClasses, accordionClasses, accordionDetailsClasses, accordionGroupClasses as accordionsClasses, accordionSummaryClasses, AutocompleteListbox, AutocompleteOption, autocompleteClasses, autocompleteListboxClasses, autocompleteOptionClasses, avatarClasses, avatarGroupClasses, AspectRatio, aspectRatioClasses, Badge, badgeClasses, breadcrumbsClasses, cardClasses, cardActionsClasses, cardContentClasses, cardCoverClasses, cardOverflowClasses, chipClasses, CircularProgress, circularProgressClasses, Drawer, drawerClasses, LinearProgress, linearProgressClasses, List, listClasses, ListDivider, listDividerClasses, ListItem, listItemClasses, ListItemButton, listItemButtonClasses, ListItemContent, listItemContentClasses, ListItemDecorator, listItemDecoratorClasses, ListSubheader, listSubheaderClasses, Link, linkClasses, Slider, sliderClasses, stepClasses, StepButton, stepButtonClasses, stepperClasses, Skeleton, skeletonClasses, styled, } from "@mui/joy";
|
|
2
|
+
export type { ButtonProps, Theme } from "@mui/joy";
|
|
2
3
|
export { Accordion, Accordions, Alert, Autocomplete, AccordionDetails, AccordionSummary, Avatar, AvatarGroup, Box, Breadcrumbs, Button, Calendar, Card, CardActions, CardContent, CardCover, CardOverflow, Checkbox, Chip, Container, CssBaseline, CurrencyInput, DataTable, DatePicker, DateRangePicker, DialogActions, DialogContent, DialogTitle, DialogFrame, Divider, Dropdown, extendTheme, InsetDrawer, Uploader, FormControl, FormHelperText, FormLabel, Grid, IconButton, IconMenuButton, InfoSign, Input, Markdown, Menu, MenuButton, MenuItem, Modal, ModalClose, ModalDialog, ModalOverflow, ModalFrame, MonthPicker, MonthRangePicker, PercentageInput, ProfileMenu, Pagination, NavigationGroup, NavigationItem, Navigator, Radio, RadioGroup, RadioList, Select, Option, Sheet, Stack, Step, StepIndicator, Stepper, Switch, theme, Table, TableHead, TableBody, Tabs, Tab, TabList, TabPanel, Textarea, ThemeProvider, Tooltip, Typography, } from "./components";
|
package/dist/index.js
CHANGED
|
@@ -3479,8 +3479,7 @@ function useDataTableRenderer({
|
|
|
3479
3479
|
onSelectionModelChange,
|
|
3480
3480
|
editMode,
|
|
3481
3481
|
getId: _getId,
|
|
3482
|
-
isTotalSelected: _isTotalSelected
|
|
3483
|
-
isRowSelectable
|
|
3482
|
+
isTotalSelected: _isTotalSelected
|
|
3484
3483
|
}) {
|
|
3485
3484
|
const [focusedRowId, setFocusedRowId] = useState6(null);
|
|
3486
3485
|
const [sortModel, setSortModel] = useControlledState(
|
|
@@ -3556,27 +3555,14 @@ function useDataTableRenderer({
|
|
|
3556
3555
|
() => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
|
|
3557
3556
|
[rows, page, pageSize, paginationMode, pagination]
|
|
3558
3557
|
);
|
|
3559
|
-
const selectableDataInPage = useMemo8(
|
|
3560
|
-
() => dataInPage.filter((row, i) => {
|
|
3561
|
-
if (!isRowSelectable) return true;
|
|
3562
|
-
return isRowSelectable({ row, id: getId(row, i) });
|
|
3563
|
-
}),
|
|
3564
|
-
[dataInPage, isRowSelectable, getId]
|
|
3565
|
-
);
|
|
3566
3558
|
const isAllSelected = useMemo8(
|
|
3567
|
-
() =>
|
|
3568
|
-
|
|
3569
|
-
),
|
|
3570
|
-
[selectableDataInPage, selectedModelSet, getId]
|
|
3559
|
+
() => dataInPage.length > 0 && dataInPage.every((row, i) => selectedModelSet.has(getId(row, i))),
|
|
3560
|
+
[dataInPage, selectedModelSet, getId]
|
|
3571
3561
|
);
|
|
3572
3562
|
const rowCount = totalRowsProp || rows.length;
|
|
3573
|
-
const selectableRowCount = useMemo8(() => {
|
|
3574
|
-
if (!isRowSelectable) return rowCount;
|
|
3575
|
-
return rows.filter((row, i) => isRowSelectable({ row, id: getId(row, i) })).length;
|
|
3576
|
-
}, [rows, isRowSelectable, getId, rowCount]);
|
|
3577
3563
|
const isTotalSelected = useMemo8(
|
|
3578
|
-
() => _isTotalSelected ?? (
|
|
3579
|
-
[_isTotalSelected, selectionModel,
|
|
3564
|
+
() => _isTotalSelected ?? (rowCount > 0 && (selectionModel?.length || 0) === rowCount),
|
|
3565
|
+
[_isTotalSelected, selectionModel, rowCount]
|
|
3580
3566
|
);
|
|
3581
3567
|
const columnWidths = useColumnWidths(columnsByField);
|
|
3582
3568
|
const getWidth = useCallback9(
|
|
@@ -3672,10 +3658,9 @@ function useDataTableRenderer({
|
|
|
3672
3658
|
}, [page, rowCount, pageSize, handlePageChange]);
|
|
3673
3659
|
useEffect5(() => {
|
|
3674
3660
|
onSelectionModelChange?.([]);
|
|
3675
|
-
}, [page
|
|
3661
|
+
}, [page]);
|
|
3676
3662
|
return {
|
|
3677
3663
|
rowCount,
|
|
3678
|
-
selectableRowCount,
|
|
3679
3664
|
page,
|
|
3680
3665
|
pageSize,
|
|
3681
3666
|
onPaginationModelChange: handlePageChange,
|
|
@@ -3691,22 +3676,13 @@ function useDataTableRenderer({
|
|
|
3691
3676
|
(model) => selectedModelSet.has(model),
|
|
3692
3677
|
[selectedModelSet]
|
|
3693
3678
|
),
|
|
3694
|
-
isRowSelectable: useCallback9(
|
|
3695
|
-
(rowId, row) => {
|
|
3696
|
-
if (!isRowSelectable) return true;
|
|
3697
|
-
return isRowSelectable({ row, id: rowId });
|
|
3698
|
-
},
|
|
3699
|
-
[isRowSelectable]
|
|
3700
|
-
),
|
|
3701
3679
|
focusedRowId,
|
|
3702
3680
|
onRowFocus: useCallback9((rowId) => {
|
|
3703
3681
|
setFocusedRowId(rowId);
|
|
3704
3682
|
}, []),
|
|
3705
3683
|
onAllCheckboxChange: useCallback9(() => {
|
|
3706
|
-
onSelectionModelChange?.(
|
|
3707
|
-
|
|
3708
|
-
);
|
|
3709
|
-
}, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
|
|
3684
|
+
onSelectionModelChange?.(isAllSelected ? [] : dataInPage.map(getId));
|
|
3685
|
+
}, [isAllSelected, dataInPage, onSelectionModelChange, getId]),
|
|
3710
3686
|
onCheckboxChange: useCallback9(
|
|
3711
3687
|
(event, selectedModel) => {
|
|
3712
3688
|
if (selectedModelSet.has(selectedModel)) {
|
|
@@ -3723,15 +3699,11 @@ function useDataTableRenderer({
|
|
|
3723
3699
|
),
|
|
3724
3700
|
columns,
|
|
3725
3701
|
onTotalSelect: useCallback9(() => {
|
|
3726
|
-
const selectableRows = rows.filter((row, i) => {
|
|
3727
|
-
if (!isRowSelectable) return true;
|
|
3728
|
-
return isRowSelectable({ row, id: getId(row, i) });
|
|
3729
|
-
});
|
|
3730
3702
|
onSelectionModelChange?.(
|
|
3731
|
-
isTotalSelected ? [] :
|
|
3703
|
+
isTotalSelected ? [] : rows.map(getId),
|
|
3732
3704
|
!isTotalSelected
|
|
3733
3705
|
);
|
|
3734
|
-
}, [isTotalSelected, rows, onSelectionModelChange, getId
|
|
3706
|
+
}, [isTotalSelected, rows, onSelectionModelChange, getId])
|
|
3735
3707
|
};
|
|
3736
3708
|
}
|
|
3737
3709
|
function Component(props, apiRef) {
|
|
@@ -3741,7 +3713,6 @@ function Component(props, apiRef) {
|
|
|
3741
3713
|
editMode,
|
|
3742
3714
|
selectionModel,
|
|
3743
3715
|
onSelectionModelChange,
|
|
3744
|
-
isRowSelectable,
|
|
3745
3716
|
disableSelectionOnClick,
|
|
3746
3717
|
onRowClick,
|
|
3747
3718
|
pinnedColumns,
|
|
@@ -3789,12 +3760,10 @@ function Component(props, apiRef) {
|
|
|
3789
3760
|
columns,
|
|
3790
3761
|
isAllSelected,
|
|
3791
3762
|
isSelectedRow,
|
|
3792
|
-
isRowSelectable: isRowSelectableCheck,
|
|
3793
3763
|
onAllCheckboxChange,
|
|
3794
3764
|
onCheckboxChange,
|
|
3795
3765
|
getId,
|
|
3796
3766
|
rowCount,
|
|
3797
|
-
selectableRowCount,
|
|
3798
3767
|
page,
|
|
3799
3768
|
pageSize,
|
|
3800
3769
|
onPaginationModelChange,
|
|
@@ -3820,15 +3789,9 @@ function Component(props, apiRef) {
|
|
|
3820
3789
|
const getRowClickHandler = useCallback9(
|
|
3821
3790
|
(row, rowId) => (e) => {
|
|
3822
3791
|
onRowClick?.({ row, rowId }, e);
|
|
3823
|
-
checkboxSelection && !disableSelectionOnClick &&
|
|
3792
|
+
checkboxSelection && !disableSelectionOnClick && onCheckboxChange(e, rowId);
|
|
3824
3793
|
},
|
|
3825
|
-
[
|
|
3826
|
-
onRowClick,
|
|
3827
|
-
checkboxSelection,
|
|
3828
|
-
disableSelectionOnClick,
|
|
3829
|
-
onCheckboxChange,
|
|
3830
|
-
isRowSelectableCheck
|
|
3831
|
-
]
|
|
3794
|
+
[onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange]
|
|
3832
3795
|
);
|
|
3833
3796
|
const getRowFocusHandler = useCallback9(
|
|
3834
3797
|
(rowId) => () => {
|
|
@@ -3843,12 +3806,10 @@ function Component(props, apiRef) {
|
|
|
3843
3806
|
[]
|
|
3844
3807
|
);
|
|
3845
3808
|
const getCheckboxChangeHandler = useCallback9(
|
|
3846
|
-
(rowId
|
|
3847
|
-
|
|
3848
|
-
onCheckboxChange(e, rowId);
|
|
3849
|
-
}
|
|
3809
|
+
(rowId) => (e) => {
|
|
3810
|
+
onCheckboxChange(e, rowId);
|
|
3850
3811
|
},
|
|
3851
|
-
[onCheckboxChange
|
|
3812
|
+
[onCheckboxChange]
|
|
3852
3813
|
);
|
|
3853
3814
|
useImperativeHandle2(apiRef, () => ({
|
|
3854
3815
|
getRowIndexRelativeToVisibleRows(rowId) {
|
|
@@ -3886,7 +3847,7 @@ function Component(props, apiRef) {
|
|
|
3886
3847
|
justifyContent: "space-between",
|
|
3887
3848
|
alignItems: "center"
|
|
3888
3849
|
},
|
|
3889
|
-
!!checkboxSelection && /* @__PURE__ */ React23.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ React23.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ React23.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ React23.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ React23.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(
|
|
3850
|
+
!!checkboxSelection && /* @__PURE__ */ React23.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ React23.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ React23.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ React23.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ React23.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(rowCount ?? rows.length), " items")), isTotalSelected && /* @__PURE__ */ React23.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ React23.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(rowCount ?? rows.length), " items are selected."), /* @__PURE__ */ React23.createElement(
|
|
3890
3851
|
Button_default,
|
|
3891
3852
|
{
|
|
3892
3853
|
size: "sm",
|
|
@@ -3931,7 +3892,6 @@ function Component(props, apiRef) {
|
|
|
3931
3892
|
onChange: onAllCheckboxChange,
|
|
3932
3893
|
checked: isAllSelected,
|
|
3933
3894
|
indeterminate: (selectionModel || []).length > 0 && !isAllSelected,
|
|
3934
|
-
disabled: dataInPage.length > 0 && !selectableRowCount,
|
|
3935
3895
|
...checkboxProps
|
|
3936
3896
|
}
|
|
3937
3897
|
)
|
|
@@ -4009,9 +3969,8 @@ function Component(props, apiRef) {
|
|
|
4009
3969
|
RenderCheckbox,
|
|
4010
3970
|
{
|
|
4011
3971
|
onClick: getCheckboxClickHandler(),
|
|
4012
|
-
onChange: getCheckboxChangeHandler(rowId
|
|
3972
|
+
onChange: getCheckboxChangeHandler(rowId),
|
|
4013
3973
|
checked: isSelectedRow(rowId),
|
|
4014
|
-
disabled: !isRowSelectableCheck(rowId, row),
|
|
4015
3974
|
...checkboxProps
|
|
4016
3975
|
}
|
|
4017
3976
|
)
|