material-react-table-narender 2.13.27 → 2.13.29
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/index.d.ts +3 -0
 - package/dist/index.esm.js +54 -37
 - package/dist/index.esm.js.map +1 -1
 - package/dist/index.js +53 -36
 - package/dist/index.js.map +1 -1
 - package/package.json +1 -1
 - package/src/components/head/MRT_TableHeadCell.tsx +3 -0
 - package/src/components/head/MRT_TableHeadCellToolBar.tsx +68 -0
 - package/src/components/inputs/MRT_FilterTextField.tsx +2 -11
 - package/src/components/menus/MRT_ColumnActionMenu.tsx +14 -1
 - package/src/hooks/useMRT_TableInstance.ts +8 -0
 - package/src/types.ts +3 -0
 
    
        package/package.json
    CHANGED
    
    
| 
         @@ -18,6 +18,7 @@ import { 
     | 
|
| 
       18 
18 
     | 
    
         
             
            import { getCommonMRTCellStyles } from '../../utils/style.utils';
         
     | 
| 
       19 
19 
     | 
    
         
             
            import { parseFromValuesOrFunc } from '../../utils/utils';
         
     | 
| 
       20 
20 
     | 
    
         
             
            import { cellKeyboardShortcuts } from '../../utils/cell.utils';
         
     | 
| 
      
 21 
     | 
    
         
            +
            import { MRT_TableHeadCellToolBar } from './MRT_TableHeadCellToolBar';
         
     | 
| 
       21 
22 
     | 
    
         | 
| 
       22 
23 
     | 
    
         
             
            export interface MRT_TableHeadCellProps<TData extends MRT_RowData>
         
     | 
| 
       23 
24 
     | 
    
         
             
              extends TableCellProps {
         
     | 
| 
         @@ -63,6 +64,7 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({ 
     | 
|
| 
       63 
64 
     | 
    
         
             
                grouping,
         
     | 
| 
       64 
65 
     | 
    
         
             
                hoveredColumn,
         
     | 
| 
       65 
66 
     | 
    
         
             
                showColumnFilters,
         
     | 
| 
      
 67 
     | 
    
         
            +
                showToolBar,
         
     | 
| 
       66 
68 
     | 
    
         
             
              } = getState();
         
     | 
| 
       67 
69 
     | 
    
         
             
              const { column } = header;
         
     | 
| 
       68 
70 
     | 
    
         
             
              const { columnDef } = column;
         
     | 
| 
         @@ -307,6 +309,7 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({ 
     | 
|
| 
       307 
309 
     | 
    
         
             
                            {column.getCanSort() && (
         
     | 
| 
       308 
310 
     | 
    
         
             
                              <MRT_TableHeadCellSortLabel header={header} table={table} />
         
     | 
| 
       309 
311 
     | 
    
         
             
                            )}
         
     | 
| 
      
 312 
     | 
    
         
            +
                              <MRT_TableHeadCellToolBar header={header} table={table} />
         
     | 
| 
       310 
313 
     | 
    
         
             
                          </Box>
         
     | 
| 
       311 
314 
     | 
    
         
             
                          {columnDefType !== 'group' && (
         
     | 
| 
       312 
315 
     | 
    
         
             
                            <Box
         
     | 
| 
         @@ -0,0 +1,68 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import Badge from '@mui/material/Badge';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import TableSortLabel, {
         
     | 
| 
      
 3 
     | 
    
         
            +
              type TableSortLabelProps,
         
     | 
| 
      
 4 
     | 
    
         
            +
            } from '@mui/material/TableSortLabel';
         
     | 
| 
      
 5 
     | 
    
         
            +
            import Tooltip from '@mui/material/Tooltip';
         
     | 
| 
      
 6 
     | 
    
         
            +
            import {
         
     | 
| 
      
 7 
     | 
    
         
            +
              type MRT_Header,
         
     | 
| 
      
 8 
     | 
    
         
            +
              type MRT_RowData,
         
     | 
| 
      
 9 
     | 
    
         
            +
              type MRT_TableInstance,
         
     | 
| 
      
 10 
     | 
    
         
            +
            } from '../../types';
         
     | 
| 
      
 11 
     | 
    
         
            +
            import { parseFromValuesOrFunc } from '../../utils/utils';
         
     | 
| 
      
 12 
     | 
    
         
            +
            import { IconButton } from '@mui/material';
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            export interface MRT_TableHeadCellToolBarLabelProps<TData extends MRT_RowData>
         
     | 
| 
      
 15 
     | 
    
         
            +
              extends TableSortLabelProps {
         
     | 
| 
      
 16 
     | 
    
         
            +
              header: MRT_Header<TData>;
         
     | 
| 
      
 17 
     | 
    
         
            +
              table: MRT_TableInstance<TData>;
         
     | 
| 
      
 18 
     | 
    
         
            +
            }
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            export const MRT_TableHeadCellToolBar = <TData extends MRT_RowData>({
         
     | 
| 
      
 21 
     | 
    
         
            +
              header,
         
     | 
| 
      
 22 
     | 
    
         
            +
              table,
         
     | 
| 
      
 23 
     | 
    
         
            +
              ...rest
         
     | 
| 
      
 24 
     | 
    
         
            +
            }: MRT_TableHeadCellToolBarLabelProps<TData>) => {
         
     | 
| 
      
 25 
     | 
    
         
            +
              const {
         
     | 
| 
      
 26 
     | 
    
         
            +
                getState,
         
     | 
| 
      
 27 
     | 
    
         
            +
                options: {
         
     | 
| 
      
 28 
     | 
    
         
            +
                  icons: { ArrowDownwardIcon, SyncAltIcon },
         
     | 
| 
      
 29 
     | 
    
         
            +
                  localization,
         
     | 
| 
      
 30 
     | 
    
         
            +
                },
         
     | 
| 
      
 31 
     | 
    
         
            +
              } = table;
         
     | 
| 
      
 32 
     | 
    
         
            +
              const { isLoading, showSkeletons, showToolBar } = getState();
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                      const showToolBarTooltip =    isLoading || showSkeletons
         
     | 
| 
      
 36 
     | 
    
         
            +
                  ? ''
         
     | 
| 
      
 37 
     | 
    
         
            +
                    : showToolBar
         
     | 
| 
      
 38 
     | 
    
         
            +
                        ?  "Hide ToolBar"
         
     | 
| 
      
 39 
     | 
    
         
            +
                        : "Show ToolBar";
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              return (
         
     | 
| 
      
 43 
     | 
    
         
            +
                <Tooltip placement="top" title={showToolBarTooltip}>
         
     | 
| 
      
 44 
     | 
    
         
            +
               
         
     | 
| 
      
 45 
     | 
    
         
            +
                  <IconButton
         
     | 
| 
      
 46 
     | 
    
         
            +
                    aria-label={showToolBarTooltip}
         
     | 
| 
      
 47 
     | 
    
         
            +
                    size="small"
         
     | 
| 
      
 48 
     | 
    
         
            +
                    sx={(theme) => ({
         
     | 
| 
      
 49 
     | 
    
         
            +
                      '&:hover': {
         
     | 
| 
      
 50 
     | 
    
         
            +
                        backgroundColor: 'transparent',
         
     | 
| 
      
 51 
     | 
    
         
            +
                        opacity: 1,
         
     | 
| 
      
 52 
     | 
    
         
            +
                      },
         
     | 
| 
      
 53 
     | 
    
         
            +
                      cursor: 'pointer',
         
     | 
| 
      
 54 
     | 
    
         
            +
                      opacity: 1,
         
     | 
| 
      
 55 
     | 
    
         
            +
                      p: '2px',
         
     | 
| 
      
 56 
     | 
    
         
            +
                      transition: 'all 150ms ease-in-out',
         
     | 
| 
      
 57 
     | 
    
         
            +
                      ...(parseFromValuesOrFunc(rest?.sx, theme) as any),
         
     | 
| 
      
 58 
     | 
    
         
            +
                    })}
         
     | 
| 
      
 59 
     | 
    
         
            +
                    onClick={(e) => {
         
     | 
| 
      
 60 
     | 
    
         
            +
                      e.stopPropagation();
         
     | 
| 
      
 61 
     | 
    
         
            +
                      table.setShowToolBar(!showToolBar);
         
     | 
| 
      
 62 
     | 
    
         
            +
                    }}
         
     | 
| 
      
 63 
     | 
    
         
            +
                    >
         
     | 
| 
      
 64 
     | 
    
         
            +
                    <SyncAltIcon />
         
     | 
| 
      
 65 
     | 
    
         
            +
                        </IconButton>
         
     | 
| 
      
 66 
     | 
    
         
            +
                </Tooltip>
         
     | 
| 
      
 67 
     | 
    
         
            +
              );
         
     | 
| 
      
 68 
     | 
    
         
            +
            };
         
     | 
| 
         @@ -161,18 +161,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({ 
     | 
|
| 
       161 
161 
     | 
    
         
             
                        return newFilterValues;
         
     | 
| 
       162 
162 
     | 
    
         
             
                      });
         
     | 
| 
       163 
163 
     | 
    
         
             
                    } else {
         
     | 
| 
       164 
     | 
    
         
            -
                      if (textFieldProps.type ==="number") {
         
     | 
| 
       165 
     | 
    
         
            -
                      // column.setFilterValue(newValue === '' ? undefined : newValue);
         
     | 
| 
       166 
     | 
    
         
            -
            debugger;
         
     | 
| 
       167 
     | 
    
         
            -
                      if (newValue === 0) {
         
     | 
| 
       168 
     | 
    
         
            -
                        column.setFilterValue("0");
         
     | 
| 
       169 
     | 
    
         
            -
                      } else {
         
     | 
| 
       170 
     | 
    
         
            -
                        column.setFilterValue(newValue);
         
     | 
| 
       171 
     | 
    
         
            -
                      }
         
     | 
| 
       172 
     | 
    
         
            -
             
     | 
| 
       173 
     | 
    
         
            -
                      } else {
         
     | 
| 
       174 
164 
     | 
    
         
             
                      column.setFilterValue(newValue ?? undefined);
         
     | 
| 
       175 
     | 
    
         
            -
                      }
         
     | 
| 
       176 
165 
     | 
    
         
             
                    }
         
     | 
| 
       177 
166 
     | 
    
         
             
                  },
         
     | 
| 
       178 
167 
     | 
    
         
             
                  isTextboxFilter ? (manualFiltering ? 400 : 200) : 1,
         
     | 
| 
         @@ -216,6 +205,8 @@ debugger; 
     | 
|
| 
       216 
205 
     | 
    
         
             
                  setFilterValue('');
         
     | 
| 
       217 
206 
     | 
    
         
             
                  column.setFilterValue(undefined);
         
     | 
| 
       218 
207 
     | 
    
         
             
                }
         
     | 
| 
      
 208 
     | 
    
         
            +
                // focus on the input after clearing the filter
         
     | 
| 
      
 209 
     | 
    
         
            +
                // filterInputRefs.current[`${column.id}-${rangeFilterIndex ?? 0}`]?.focus();
         
     | 
| 
       219 
210 
     | 
    
         
             
              };
         
     | 
| 
       220 
211 
     | 
    
         | 
| 
       221 
212 
     | 
    
         
             
              const handleClearEmptyFilterChip = () => {
         
     | 
| 
         @@ -7,6 +7,7 @@ import { 
     | 
|
| 
       7 
7 
     | 
    
         
             
              type MRT_RowData,
         
     | 
| 
       8 
8 
     | 
    
         
             
              type MRT_TableInstance,
         
     | 
| 
       9 
9 
     | 
    
         
             
            } from '../../types';
         
     | 
| 
      
 10 
     | 
    
         
            +
            import { MRT_TableHeadCellToolBar } from '../head/MRT_TableHeadCellToolBar';
         
     | 
| 
       10 
11 
     | 
    
         | 
| 
       11 
12 
     | 
    
         
             
            export interface MRT_ColumnActionMenuProps<TData extends MRT_RowData>
         
     | 
| 
       12 
13 
     | 
    
         
             
              extends Partial<MenuProps> {
         
     | 
| 
         @@ -60,7 +61,7 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({ 
     | 
|
| 
       60 
61 
     | 
    
         
             
              } = table;
         
     | 
| 
       61 
62 
     | 
    
         
             
              const { column } = header;
         
     | 
| 
       62 
63 
     | 
    
         
             
              const { columnDef } = column;
         
     | 
| 
       63 
     | 
    
         
            -
              const { columnSizing, columnVisibility, density, showColumnFilters } =
         
     | 
| 
      
 64 
     | 
    
         
            +
              const { columnSizing, columnVisibility, density, showColumnFilters,showToolBar } =
         
     | 
| 
       64 
65 
     | 
    
         
             
                getState();
         
     | 
| 
       65 
66 
     | 
    
         
             
              const columnFilterValue = column.getFilterValue();
         
     | 
| 
       66 
67 
     | 
    
         | 
| 
         @@ -315,6 +316,18 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({ 
     | 
|
| 
       315 
316 
     | 
    
         
             
                      />,
         
     | 
| 
       316 
317 
     | 
    
         
             
                    ]
         
     | 
| 
       317 
318 
     | 
    
         
             
                  : []),
         
     | 
| 
      
 319 
     | 
    
         
            +
             
     | 
| 
      
 320 
     | 
    
         
            +
                 // **Newly Added Menu Item for Toolbar Visibility**
         
     | 
| 
      
 321 
     | 
    
         
            +
              <MRT_ActionMenuItem
         
     | 
| 
      
 322 
     | 
    
         
            +
                icon={<ViewColumnIcon />}
         
     | 
| 
      
 323 
     | 
    
         
            +
                key={13}
         
     | 
| 
      
 324 
     | 
    
         
            +
                label={showToolBar ? "Hide ToolBar" : "Show ToolBar"}
         
     | 
| 
      
 325 
     | 
    
         
            +
                onClick={(e) => {
         
     | 
| 
      
 326 
     | 
    
         
            +
                  e.stopPropagation();
         
     | 
| 
      
 327 
     | 
    
         
            +
                  table.setShowToolBar(!showToolBar);
         
     | 
| 
      
 328 
     | 
    
         
            +
                }}
         
     | 
| 
      
 329 
     | 
    
         
            +
                table={table}
         
     | 
| 
      
 330 
     | 
    
         
            +
              />,
         
     | 
| 
       318 
331 
     | 
    
         
             
              ].filter(Boolean);
         
     | 
| 
       319 
332 
     | 
    
         | 
| 
       320 
333 
     | 
    
         
             
              return (
         
     | 
| 
         @@ -158,7 +158,12 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>( 
     | 
|
| 
       158 
158 
     | 
    
         
             
              );
         
     | 
| 
       159 
159 
     | 
    
         
             
              const [showColumnFilters, setShowColumnFilters] = useState<boolean>(
         
     | 
| 
       160 
160 
     | 
    
         
             
                initialState?.showColumnFilters ?? false,
         
     | 
| 
      
 161 
     | 
    
         
            +
              ); 
         
     | 
| 
      
 162 
     | 
    
         
            +
              const [showToolBar, setShowToolBar] = useState<boolean>(
         
     | 
| 
      
 163 
     | 
    
         
            +
                initialState?.showToolBar ?? false,
         
     | 
| 
       161 
164 
     | 
    
         
             
              );
         
     | 
| 
      
 165 
     | 
    
         
            +
             
     | 
| 
      
 166 
     | 
    
         
            +
             
     | 
| 
       162 
167 
     | 
    
         
             
              const [showGlobalFilter, setShowGlobalFilter] = useState<boolean>(
         
     | 
| 
       163 
168 
     | 
    
         
             
                initialState?.showGlobalFilter ?? false,
         
     | 
| 
       164 
169 
     | 
    
         
             
              );
         
     | 
| 
         @@ -186,6 +191,7 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>( 
     | 
|
| 
       186 
191 
     | 
    
         
             
                pagination,
         
     | 
| 
       187 
192 
     | 
    
         
             
                showAlertBanner,
         
     | 
| 
       188 
193 
     | 
    
         
             
                showColumnFilters,
         
     | 
| 
      
 194 
     | 
    
         
            +
                showToolBar,
         
     | 
| 
       189 
195 
     | 
    
         
             
                showGlobalFilter,
         
     | 
| 
       190 
196 
     | 
    
         
             
                showToolbarDropZone,
         
     | 
| 
       191 
197 
     | 
    
         
             
                ...definedTableOptions.state,
         
     | 
| 
         @@ -317,6 +323,8 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>( 
     | 
|
| 
       317 
323 
     | 
    
         
             
                statefulTableOptions.onShowAlertBannerChange ?? setShowAlertBanner;
         
     | 
| 
       318 
324 
     | 
    
         
             
              table.setShowColumnFilters =
         
     | 
| 
       319 
325 
     | 
    
         
             
                statefulTableOptions.onShowColumnFiltersChange ?? setShowColumnFilters;
         
     | 
| 
      
 326 
     | 
    
         
            +
                  table.setShowToolBar =
         
     | 
| 
      
 327 
     | 
    
         
            +
                statefulTableOptions.onShowToolBarChange ?? setShowToolBar;
         
     | 
| 
       320 
328 
     | 
    
         
             
              table.setShowGlobalFilter =
         
     | 
| 
       321 
329 
     | 
    
         
             
                statefulTableOptions.onShowGlobalFilterChange ?? setShowGlobalFilter;
         
     | 
| 
       322 
330 
     | 
    
         
             
              table.setShowToolbarDropZone =
         
     | 
    
        package/src/types.ts
    CHANGED
    
    | 
         @@ -344,6 +344,7 @@ export type MRT_TableInstance<TData extends MRT_RowData> = Omit< 
     | 
|
| 
       344 
344 
     | 
    
         
             
              setIsFullScreen: Dispatch<SetStateAction<boolean>>;
         
     | 
| 
       345 
345 
     | 
    
         
             
              setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
         
     | 
| 
       346 
346 
     | 
    
         
             
              setShowColumnFilters: Dispatch<SetStateAction<boolean>>;
         
     | 
| 
      
 347 
     | 
    
         
            +
              setShowToolBar: Dispatch<SetStateAction<boolean>>;
         
     | 
| 
       347 
348 
     | 
    
         
             
              setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
         
     | 
| 
       348 
349 
     | 
    
         
             
              setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
         
     | 
| 
       349 
350 
     | 
    
         
             
              setEnableKeyboardShortcuts : Dispatch<SetStateAction<boolean>>;
         
     | 
| 
         @@ -402,6 +403,7 @@ export interface MRT_TableState<TData extends MRT_RowData> extends TableState { 
     | 
|
| 
       402 
403 
     | 
    
         
             
              isSaving: boolean;
         
     | 
| 
       403 
404 
     | 
    
         
             
              showAlertBanner: boolean;
         
     | 
| 
       404 
405 
     | 
    
         
             
              showColumnFilters: boolean;
         
     | 
| 
      
 406 
     | 
    
         
            +
              showToolBar: boolean;
         
     | 
| 
       405 
407 
     | 
    
         
             
              showGlobalFilter: boolean;
         
     | 
| 
       406 
408 
     | 
    
         
             
              showLoadingOverlay: boolean;
         
     | 
| 
       407 
409 
     | 
    
         
             
              showProgressBars: boolean;
         
     | 
| 
         @@ -1190,6 +1192,7 @@ export interface MRT_TableOptions<TData extends MRT_RowData> 
     | 
|
| 
       1190 
1192 
     | 
    
         
             
              onEnableKeyboardShortcutsChange?: OnChangeFn<boolean>;
         
     | 
| 
       1191 
1193 
     | 
    
         
             
              onShowAlertBannerChange?: OnChangeFn<boolean>;
         
     | 
| 
       1192 
1194 
     | 
    
         
             
              onShowColumnFiltersChange?: OnChangeFn<boolean>;
         
     | 
| 
      
 1195 
     | 
    
         
            +
              onShowToolBarChange?: OnChangeFn<boolean>;
         
     | 
| 
       1193 
1196 
     | 
    
         
             
              onShowGlobalFilterChange?: OnChangeFn<boolean>;
         
     | 
| 
       1194 
1197 
     | 
    
         
             
              onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
         
     | 
| 
       1195 
1198 
     | 
    
         
             
              paginationDisplayMode?: 'custom' | 'default' | 'pages';
         
     |