material-react-table 1.0.11 → 1.1.0-beta.1

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.
Files changed (42) hide show
  1. package/dist/cjs/MaterialReactTable.d.ts +12 -5
  2. package/dist/cjs/_locales/ja.d.ts +2 -0
  3. package/dist/cjs/body/MRT_TableBody.d.ts +2 -1
  4. package/dist/cjs/body/MRT_TableBodyCell.d.ts +2 -1
  5. package/dist/cjs/body/MRT_TableBodyRow.d.ts +2 -1
  6. package/dist/cjs/index.js +352 -323
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/table/MRT_TableRoot.d.ts +5 -4
  9. package/dist/esm/MaterialReactTable.d.ts +12 -5
  10. package/dist/esm/_locales/ja.d.ts +2 -0
  11. package/dist/esm/body/MRT_TableBody.d.ts +2 -1
  12. package/dist/esm/body/MRT_TableBodyCell.d.ts +2 -1
  13. package/dist/esm/body/MRT_TableBodyRow.d.ts +2 -1
  14. package/dist/esm/material-react-table.esm.js +353 -324
  15. package/dist/esm/material-react-table.esm.js.map +1 -1
  16. package/dist/esm/table/MRT_TableRoot.d.ts +5 -4
  17. package/dist/index.d.ts +44 -37
  18. package/locales/ja.d.ts +2 -0
  19. package/locales/ja.esm.d.ts +2 -0
  20. package/locales/ja.esm.js +92 -0
  21. package/locales/ja.esm.js.map +1 -0
  22. package/locales/ja.js +96 -0
  23. package/locales/ja.js.map +1 -0
  24. package/package.json +13 -13
  25. package/src/MaterialReactTable.tsx +15 -7
  26. package/src/_locales/ja.ts +92 -1
  27. package/src/body/MRT_TableBody.tsx +18 -12
  28. package/src/body/MRT_TableBodyCell.tsx +7 -1
  29. package/src/body/MRT_TableBodyRow.tsx +36 -15
  30. package/src/body/MRT_TableDetailPanel.tsx +1 -1
  31. package/src/buttons/MRT_ExpandAllButton.tsx +1 -1
  32. package/src/buttons/MRT_ExpandButton.tsx +1 -1
  33. package/src/buttons/MRT_GrabHandleButton.tsx +1 -1
  34. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +1 -1
  35. package/src/column.utils.ts +1 -1
  36. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +9 -7
  37. package/src/head/MRT_TableHeadCellResizeHandle.tsx +3 -1
  38. package/src/inputs/MRT_SelectCheckbox.tsx +51 -46
  39. package/src/table/MRT_Table.tsx +7 -2
  40. package/src/table/MRT_TablePaper.tsx +1 -1
  41. package/src/table/MRT_TableRoot.tsx +1 -1
  42. package/src/toolbar/MRT_TopToolbar.tsx +1 -1
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { MRT_Cell, MRT_Column, MRT_ColumnDef, MRT_FilterOption, MRT_Row, MRT_TableInstance, MRT_TableState, MaterialReactTableProps, MRT_Localization } from '..';
3
- export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(props: Omit<Partial<import("@tanstack/table-core").TableOptions<TData>>, "state" | "data" | "onStateChange" | "initialState" | "columns" | "defaultColumn" | "enableRowSelection" | "expandRowsFn"> & {
3
+ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(props: Omit<Partial<import("@tanstack/table-core").TableOptions<TData>>, "initialState" | "state" | "onStateChange" | "data" | "columns" | "defaultColumn" | "enableRowSelection" | "expandRowsFn"> & {
4
4
  columnFilterModeOptions?: (string | (string & Record<never, never>))[] | null | undefined;
5
5
  columns: MRT_ColumnDef<TData>[];
6
6
  data: TData[];
@@ -13,7 +13,7 @@ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(pro
13
13
  "mrt-row-select": Partial<MRT_ColumnDef<{}>>;
14
14
  "mrt-row-numbers": Partial<MRT_ColumnDef<{}>>;
15
15
  }> | undefined;
16
- editingMode?: "cell" | "row" | "table" | "modal" | undefined;
16
+ editingMode?: "row" | "cell" | "table" | "modal" | undefined;
17
17
  enableBottomToolbar?: boolean | undefined;
18
18
  enableClickToCopy?: boolean | undefined;
19
19
  enableColumnActions?: boolean | undefined;
@@ -45,6 +45,7 @@ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(pro
45
45
  icons?: Partial<import("..").MRT_Icons> | undefined;
46
46
  initialState?: Partial<MRT_TableState<TData>> | undefined;
47
47
  localization?: Partial<MRT_Localization> | undefined;
48
+ memoMode?: "row" | "cell" | "table-body" | undefined;
48
49
  muiBottomToolbarProps?: import("@mui/material").ToolbarProps<"div", {}> | (({ table }: {
49
50
  table: MRT_TableInstance<TData>;
50
51
  }) => import("@mui/material").ToolbarProps<"div", {}>) | undefined;
@@ -65,10 +66,10 @@ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(pro
65
66
  muiSelectAllCheckboxProps?: import("@mui/material").CheckboxProps | (({ table }: {
66
67
  table: MRT_TableInstance<TData>;
67
68
  }) => import("@mui/material").CheckboxProps) | undefined;
68
- muiSelectCheckboxProps?: import("@mui/material").CheckboxProps | (({ table, row, }: {
69
+ muiSelectCheckboxProps?: import("@mui/material").CheckboxProps | import("@mui/material").RadioProps | (({ table, row, }: {
69
70
  table: MRT_TableInstance<TData>;
70
71
  row: MRT_Row<TData>;
71
- }) => import("@mui/material").CheckboxProps) | undefined;
72
+ }) => import("@mui/material").CheckboxProps | import("@mui/material").RadioProps) | undefined;
72
73
  muiTableBodyCellCopyButtonProps?: import("@mui/material").ButtonProps<"button", {}> | (({ cell, column, row, table, }: {
73
74
  cell: MRT_Cell<TData>;
74
75
  column: MRT_Column<TData>;
package/dist/index.d.ts CHANGED
@@ -1,43 +1,10 @@
1
1
  import { MutableRefObject, Dispatch, SetStateAction, ReactNode } from 'react';
2
- import { ButtonProps, TextFieldProps, TableCellProps, IconButtonProps, CheckboxProps, ToolbarProps, LinearProgressProps, SkeletonProps, TableBodyProps, TableRowProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, PaperProps, TableProps, ChipProps, AlertProps } from '@mui/material';
2
+ import { ButtonProps, TextFieldProps, TableCellProps, IconButtonProps, CheckboxProps, ToolbarProps, LinearProgressProps, RadioProps, SkeletonProps, TableBodyProps, TableRowProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, PaperProps, TableProps, ChipProps, AlertProps } from '@mui/material';
3
3
  import { Row, Table, TableState, ColumnDef, DeepKeys, Column, Header, HeaderGroup, Cell, SortingFn, FilterFn, TableOptions, OnChangeFn } from '@tanstack/react-table';
4
4
  import { Options, VirtualItem } from 'react-virtual';
5
5
  import * as _tanstack_table_core from '@tanstack/table-core';
6
6
  import { RankingInfo } from '@tanstack/match-sorter-utils';
7
7
 
8
- interface MRT_Icons {
9
- ArrowRightIcon: any;
10
- CancelIcon: any;
11
- CheckBoxIcon: any;
12
- ClearAllIcon: any;
13
- CloseIcon: any;
14
- DensityLargeIcon: any;
15
- DensityMediumIcon: any;
16
- DensitySmallIcon: any;
17
- KeyboardDoubleArrowDownIcon: any;
18
- DragHandleIcon: any;
19
- DynamicFeedIcon: any;
20
- EditIcon: any;
21
- ExpandLessIcon: any;
22
- ExpandMoreIcon: any;
23
- FilterAltIcon: any;
24
- FilterAltOffIcon: any;
25
- FilterListIcon: any;
26
- FilterListOffIcon: any;
27
- FullscreenExitIcon: any;
28
- FullscreenIcon: any;
29
- MoreHorizIcon: any;
30
- MoreVertIcon: any;
31
- PushPinIcon: any;
32
- RestartAltIcon: any;
33
- SaveIcon: any;
34
- SearchIcon: any;
35
- SearchOffIcon: any;
36
- SortIcon: any;
37
- ViewColumnIcon: any;
38
- VisibilityOffIcon: any;
39
- }
40
-
41
8
  declare const MRT_FilterFns: {
42
9
  between: {
43
10
  <TData extends Record<string, any> = {}>(row: Row<TData>, id: string, filterValues: [string | number, string | number]): boolean;
@@ -105,6 +72,39 @@ declare const MRT_FilterFns: {
105
72
  inNumberRange: _tanstack_table_core.FilterFn<any>;
106
73
  };
107
74
 
75
+ interface MRT_Icons {
76
+ ArrowRightIcon: any;
77
+ CancelIcon: any;
78
+ CheckBoxIcon: any;
79
+ ClearAllIcon: any;
80
+ CloseIcon: any;
81
+ DensityLargeIcon: any;
82
+ DensityMediumIcon: any;
83
+ DensitySmallIcon: any;
84
+ KeyboardDoubleArrowDownIcon: any;
85
+ DragHandleIcon: any;
86
+ DynamicFeedIcon: any;
87
+ EditIcon: any;
88
+ ExpandLessIcon: any;
89
+ ExpandMoreIcon: any;
90
+ FilterAltIcon: any;
91
+ FilterAltOffIcon: any;
92
+ FilterListIcon: any;
93
+ FilterListOffIcon: any;
94
+ FullscreenExitIcon: any;
95
+ FullscreenIcon: any;
96
+ MoreHorizIcon: any;
97
+ MoreVertIcon: any;
98
+ PushPinIcon: any;
99
+ RestartAltIcon: any;
100
+ SaveIcon: any;
101
+ SearchIcon: any;
102
+ SearchOffIcon: any;
103
+ SortIcon: any;
104
+ ViewColumnIcon: any;
105
+ VisibilityOffIcon: any;
106
+ }
107
+
108
108
  declare const MRT_SortingFns: {
109
109
  fuzzy: <TData extends Record<string, any> = {}>(rowA: Row<TData>, rowB: Row<TData>, columnId: string) => number;
110
110
  alphanumeric: _tanstack_table_core.SortingFn<any>;
@@ -439,7 +439,7 @@ declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<Column
439
439
  onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
440
440
  table: MRT_TableInstance<TData>;
441
441
  }) => ReactNode[];
442
- sortingFn?: MRT_SortingFn;
442
+ sortingFn?: MRT_SortingFn<TData>;
443
443
  };
444
444
  declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id' | 'defaultDisplayColumn'> & {
445
445
  defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
@@ -558,6 +558,13 @@ declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = O
558
558
  * @link https://www.material-react-table.com/docs/guides/localization
559
559
  */
560
560
  localization?: Partial<MRT_Localization>;
561
+ /**
562
+ * Memoize cells, rows, or the entire table body to potentially improve render performance.
563
+ *
564
+ * @warning This will break some dynamic rendering features. See the memoization guide for more info:
565
+ * @link https://www.material-react-table.com/docs/guides/memoize-components
566
+ */
567
+ memoMode?: 'cell' | 'row' | 'table-body';
561
568
  muiBottomToolbarProps?: ToolbarProps | (({ table }: {
562
569
  table: MRT_TableInstance<TData>;
563
570
  }) => ToolbarProps);
@@ -578,10 +585,10 @@ declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = O
578
585
  muiSelectAllCheckboxProps?: CheckboxProps | (({ table }: {
579
586
  table: MRT_TableInstance<TData>;
580
587
  }) => CheckboxProps);
581
- muiSelectCheckboxProps?: CheckboxProps | (({ table, row, }: {
588
+ muiSelectCheckboxProps?: (CheckboxProps | RadioProps) | (({ table, row, }: {
582
589
  table: MRT_TableInstance<TData>;
583
590
  row: MRT_Row<TData>;
584
- }) => CheckboxProps);
591
+ }) => CheckboxProps | RadioProps);
585
592
  muiTableBodyCellCopyButtonProps?: ButtonProps | (({ cell, column, row, table, }: {
586
593
  cell: MRT_Cell<TData>;
587
594
  column: MRT_Column<TData>;
@@ -0,0 +1,2 @@
1
+ import { MRT_Localization } from '../MaterialReactTable';
2
+ export declare const MRT_Localization_JA: MRT_Localization;
@@ -0,0 +1,2 @@
1
+ import { MRT_Localization } from '../MaterialReactTable';
2
+ export declare const MRT_Localization_JA: MRT_Localization;
@@ -0,0 +1,92 @@
1
+ const MRT_Localization_JA = {
2
+ actions: '操作',
3
+ and: 'と',
4
+ cancel: 'キャンセル',
5
+ changeFilterMode: '検索モードを変更',
6
+ changeSearchMode: '検索モードを変更',
7
+ clearFilter: 'リセット',
8
+ clearSearch: 'リセット',
9
+ clearSort: '並べ替えを解除',
10
+ clickToCopy: 'クリックでコピー',
11
+ columnActions: '操作',
12
+ copiedToClipboard: 'クリップボードにコピーしました',
13
+ dropToGroupBy: 'ドロップで{column}をグループ化',
14
+ edit: '編集',
15
+ expand: '展開',
16
+ expandAll: 'すべて展開',
17
+ filterArrIncludes: '含む',
18
+ filterArrIncludesAll: '全て含む',
19
+ filterArrIncludesSome: '含む',
20
+ filterBetween: '最大最小',
21
+ filterBetweenInclusive: '間を含む',
22
+ filterByColumn: '{column}を検索',
23
+ filterContains: '含まれる',
24
+ filterEmpty: '空',
25
+ filterEndsWith: 'で終わる',
26
+ filterEquals: '一致',
27
+ filterEqualsString: '一致',
28
+ filterFuzzy: 'あいまい検索',
29
+ filterGreaterThan: 'より大きい',
30
+ filterGreaterThanOrEqualTo: '以上',
31
+ filterInNumberRange: '間',
32
+ filterIncludesString: '含む',
33
+ filterIncludesStringSensitive: '含む',
34
+ filterLessThan: 'より少ない',
35
+ filterLessThanOrEqualTo: '以下',
36
+ filterMode: '検索モード:{filterType}',
37
+ filterNotEmpty: '空ではない',
38
+ filterNotEquals: '不一致',
39
+ filterStartsWith: 'で始まる',
40
+ filterWeakEquals: '等しい',
41
+ filteringByColumn: '{column}によるフィルタリング - {filterType}{filterValue}',
42
+ goToFirstPage: '最初のページへ移動',
43
+ goToLastPage: '最後のページへ移動',
44
+ goToNextPage: '次のページへ移動',
45
+ goToPreviousPage: '前のページに移動',
46
+ grab: '掴む',
47
+ groupByColumn: '{column}をグループ化',
48
+ groupedBy: 'グループ化',
49
+ hideAll: '全て隠す',
50
+ hideColumn: '{column}を隠す',
51
+ max: '最大',
52
+ min: '最小',
53
+ move: '移動',
54
+ noRecordsToDisplay: '表示するレコードがありません',
55
+ noResultsFound: '結果なし',
56
+ of: '/',
57
+ or: 'または',
58
+ pinToLeft: '左に固定',
59
+ pinToRight: '右に固定',
60
+ resetColumnSize: '列のサイズをリセット',
61
+ resetOrder: '並べ替えをリセット',
62
+ rowActions: '行の操作',
63
+ rowNumber: 'No.',
64
+ rowNumbers: '行番号',
65
+ rowsPerPage: '表示件数',
66
+ save: '保存',
67
+ search: '検索',
68
+ selectedCountOfRowCountRowsSelected: '{rowCount}行中{selectedCount}行が選択されました',
69
+ select: '選択',
70
+ showAll: '全て表示',
71
+ showAllColumns: 'すべての列を表示',
72
+ showHideColumns: '列の表示状態',
73
+ showHideFilters: '検索バーを表示',
74
+ showHideSearch: '検索',
75
+ sortByColumnAsc: '{column}を昇順でを並べ替え',
76
+ sortByColumnDesc: '{column}を降順でを並べ替え',
77
+ sortedByColumnAsc: '{column}を昇順でを並べ替え',
78
+ sortedByColumnDesc: '{column}を降順でを並べ替え',
79
+ thenBy: 'さらに',
80
+ toggleDensity: 'テーブルの高さを変更',
81
+ toggleFullScreen: 'フルスクリーン切り替え',
82
+ toggleSelectAll: 'すべて選択',
83
+ toggleSelectRow: '選択',
84
+ toggleVisibility: '表示を切り替え',
85
+ ungroupByColumn: '{column}のグループ解除',
86
+ unpin: '固定を解除',
87
+ unpinAll: 'すべての固定を解除',
88
+ unsorted: '並べ替える',
89
+ };
90
+
91
+ export { MRT_Localization_JA };
92
+ //# sourceMappingURL=ja.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ja.esm.js","sources":["../src/_locales/ja.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/locales/ja.js ADDED
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const MRT_Localization_JA = {
6
+ actions: '操作',
7
+ and: 'と',
8
+ cancel: 'キャンセル',
9
+ changeFilterMode: '検索モードを変更',
10
+ changeSearchMode: '検索モードを変更',
11
+ clearFilter: 'リセット',
12
+ clearSearch: 'リセット',
13
+ clearSort: '並べ替えを解除',
14
+ clickToCopy: 'クリックでコピー',
15
+ columnActions: '操作',
16
+ copiedToClipboard: 'クリップボードにコピーしました',
17
+ dropToGroupBy: 'ドロップで{column}をグループ化',
18
+ edit: '編集',
19
+ expand: '展開',
20
+ expandAll: 'すべて展開',
21
+ filterArrIncludes: '含む',
22
+ filterArrIncludesAll: '全て含む',
23
+ filterArrIncludesSome: '含む',
24
+ filterBetween: '最大最小',
25
+ filterBetweenInclusive: '間を含む',
26
+ filterByColumn: '{column}を検索',
27
+ filterContains: '含まれる',
28
+ filterEmpty: '空',
29
+ filterEndsWith: 'で終わる',
30
+ filterEquals: '一致',
31
+ filterEqualsString: '一致',
32
+ filterFuzzy: 'あいまい検索',
33
+ filterGreaterThan: 'より大きい',
34
+ filterGreaterThanOrEqualTo: '以上',
35
+ filterInNumberRange: '間',
36
+ filterIncludesString: '含む',
37
+ filterIncludesStringSensitive: '含む',
38
+ filterLessThan: 'より少ない',
39
+ filterLessThanOrEqualTo: '以下',
40
+ filterMode: '検索モード:{filterType}',
41
+ filterNotEmpty: '空ではない',
42
+ filterNotEquals: '不一致',
43
+ filterStartsWith: 'で始まる',
44
+ filterWeakEquals: '等しい',
45
+ filteringByColumn: '{column}によるフィルタリング - {filterType}{filterValue}',
46
+ goToFirstPage: '最初のページへ移動',
47
+ goToLastPage: '最後のページへ移動',
48
+ goToNextPage: '次のページへ移動',
49
+ goToPreviousPage: '前のページに移動',
50
+ grab: '掴む',
51
+ groupByColumn: '{column}をグループ化',
52
+ groupedBy: 'グループ化',
53
+ hideAll: '全て隠す',
54
+ hideColumn: '{column}を隠す',
55
+ max: '最大',
56
+ min: '最小',
57
+ move: '移動',
58
+ noRecordsToDisplay: '表示するレコードがありません',
59
+ noResultsFound: '結果なし',
60
+ of: '/',
61
+ or: 'または',
62
+ pinToLeft: '左に固定',
63
+ pinToRight: '右に固定',
64
+ resetColumnSize: '列のサイズをリセット',
65
+ resetOrder: '並べ替えをリセット',
66
+ rowActions: '行の操作',
67
+ rowNumber: 'No.',
68
+ rowNumbers: '行番号',
69
+ rowsPerPage: '表示件数',
70
+ save: '保存',
71
+ search: '検索',
72
+ selectedCountOfRowCountRowsSelected: '{rowCount}行中{selectedCount}行が選択されました',
73
+ select: '選択',
74
+ showAll: '全て表示',
75
+ showAllColumns: 'すべての列を表示',
76
+ showHideColumns: '列の表示状態',
77
+ showHideFilters: '検索バーを表示',
78
+ showHideSearch: '検索',
79
+ sortByColumnAsc: '{column}を昇順でを並べ替え',
80
+ sortByColumnDesc: '{column}を降順でを並べ替え',
81
+ sortedByColumnAsc: '{column}を昇順でを並べ替え',
82
+ sortedByColumnDesc: '{column}を降順でを並べ替え',
83
+ thenBy: 'さらに',
84
+ toggleDensity: 'テーブルの高さを変更',
85
+ toggleFullScreen: 'フルスクリーン切り替え',
86
+ toggleSelectAll: 'すべて選択',
87
+ toggleSelectRow: '選択',
88
+ toggleVisibility: '表示を切り替え',
89
+ ungroupByColumn: '{column}のグループ解除',
90
+ unpin: '固定を解除',
91
+ unpinAll: 'すべての固定を解除',
92
+ unsorted: '並べ替える',
93
+ };
94
+
95
+ exports.MRT_Localization_JA = MRT_Localization_JA;
96
+ //# sourceMappingURL=ja.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ja.js","sources":["../src/_locales/ja.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.11",
2
+ "version": "1.1.0-beta.1",
3
3
  "license": "MIT",
4
4
  "name": "material-react-table",
5
5
  "description": "A fully featured Material UI V5 implementation of TanStack React Table V8, written from the ground up in TypeScript.",
@@ -50,26 +50,26 @@
50
50
  "storybook": "start-storybook -p 6006"
51
51
  },
52
52
  "devDependencies": {
53
- "@babel/core": "^7.19.0",
53
+ "@babel/core": "^7.19.1",
54
54
  "@babel/preset-react": "^7.18.6",
55
55
  "@emotion/react": "^11.10.4",
56
56
  "@emotion/styled": "^11.10.4",
57
57
  "@faker-js/faker": "^7.5.0",
58
- "@mui/icons-material": "^5.10.3",
59
- "@mui/material": "^5.10.5",
58
+ "@mui/icons-material": "^5.10.6",
59
+ "@mui/material": "^5.10.6",
60
60
  "@rollup/plugin-babel": "^5.3.1",
61
61
  "@rollup/plugin-node-resolve": "^14.1.0",
62
62
  "@rollup/plugin-typescript": "^8.5.0",
63
63
  "@size-limit/preset-small-lib": "^8.1.0",
64
- "@storybook/addon-a11y": "^6.5.10",
65
- "@storybook/addon-actions": "^6.5.10",
66
- "@storybook/addon-essentials": "^6.5.10",
64
+ "@storybook/addon-a11y": "^6.5.12",
65
+ "@storybook/addon-actions": "^6.5.12",
66
+ "@storybook/addon-essentials": "^6.5.12",
67
67
  "@storybook/addon-info": "^5.3.21",
68
- "@storybook/addon-links": "^6.5.10",
69
- "@storybook/addon-storysource": "^6.5.10",
70
- "@storybook/addons": "^6.5.10",
71
- "@storybook/react": "^6.5.10",
72
- "@types/react": "^18.0.19",
68
+ "@storybook/addon-links": "^6.5.12",
69
+ "@storybook/addon-storysource": "^6.5.12",
70
+ "@storybook/addons": "^6.5.12",
71
+ "@storybook/react": "^6.5.12",
72
+ "@types/react": "^18.0.20",
73
73
  "@types/react-dom": "^18.0.6",
74
74
  "babel-loader": "^8.2.5",
75
75
  "eslint": "^8.23.1",
@@ -84,7 +84,7 @@
84
84
  "rollup-plugin-dts": "^4.2.2",
85
85
  "rollup-plugin-peer-deps-external": "^2.2.4",
86
86
  "size-limit": "^8.1.0",
87
- "storybook-dark-mode": "^1.1.0",
87
+ "storybook-dark-mode": "^1.1.2",
88
88
  "tslib": "^2.4.0",
89
89
  "typescript": "^4.8.3"
90
90
  },
@@ -13,6 +13,7 @@ import type {
13
13
  IconButtonProps,
14
14
  LinearProgressProps,
15
15
  PaperProps,
16
+ RadioProps,
16
17
  SkeletonProps,
17
18
  TableBodyProps,
18
19
  TableCellProps,
@@ -43,12 +44,12 @@ import type {
43
44
  import type { Options as VirtualizerOptions, VirtualItem } from 'react-virtual';
44
45
  // import type { VirtualizerOptions } from '@tanstack/react-virtual';
45
46
  import { MRT_AggregationFns } from './aggregationFns';
46
- import { MRT_Default_Icons, MRT_Icons } from './icons';
47
+ import { MRT_DefaultColumn, MRT_DefaultDisplayColumn } from './column.utils';
47
48
  import { MRT_FilterFns } from './filterFns';
48
- import { MRT_Localization_EN } from './_locales/en';
49
+ import { MRT_Default_Icons, MRT_Icons } from './icons';
49
50
  import { MRT_SortingFns } from './sortingFns';
50
51
  import { MRT_TableRoot } from './table/MRT_TableRoot';
51
- import { MRT_DefaultColumn, MRT_DefaultDisplayColumn } from './column.utils';
52
+ import { MRT_Localization_EN } from './_locales/en';
52
53
 
53
54
  /**
54
55
  * Most of this file is just TypeScript types
@@ -499,7 +500,7 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
499
500
  onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
500
501
  table: MRT_TableInstance<TData>;
501
502
  }) => ReactNode[];
502
- sortingFn?: MRT_SortingFn;
503
+ sortingFn?: MRT_SortingFn<TData>;
503
504
  };
504
505
 
505
506
  export type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<
@@ -668,11 +669,18 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
668
669
  initialState?: Partial<MRT_TableState<TData>>;
669
670
  /**
670
671
  * Pass in either a locale imported from `material-react-table/locales/*` or a custom locale object.
671
- *
672
+ *
672
673
  * See the localization (i18n) guide for more info:
673
674
  * @link https://www.material-react-table.com/docs/guides/localization
674
675
  */
675
676
  localization?: Partial<MRT_Localization>;
677
+ /**
678
+ * Memoize cells, rows, or the entire table body to potentially improve render performance.
679
+ *
680
+ * @warning This will break some dynamic rendering features. See the memoization guide for more info:
681
+ * @link https://www.material-react-table.com/docs/guides/memoize-components
682
+ */
683
+ memoMode?: 'cell' | 'row' | 'table-body';
676
684
  muiBottomToolbarProps?:
677
685
  | ToolbarProps
678
686
  | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);
@@ -704,14 +712,14 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
704
712
  | CheckboxProps
705
713
  | (({ table }: { table: MRT_TableInstance<TData> }) => CheckboxProps);
706
714
  muiSelectCheckboxProps?:
707
- | CheckboxProps
715
+ | (CheckboxProps | RadioProps)
708
716
  | (({
709
717
  table,
710
718
  row,
711
719
  }: {
712
720
  table: MRT_TableInstance<TData>;
713
721
  row: MRT_Row<TData>;
714
- }) => CheckboxProps);
722
+ }) => CheckboxProps | RadioProps);
715
723
  muiTableBodyCellCopyButtonProps?:
716
724
  | ButtonProps
717
725
  | (({
@@ -1 +1,92 @@
1
- //Not supported yet, but if you want to help, copy en.ts file contents here and translate, then make a PR
1
+ import { MRT_Localization } from '../MaterialReactTable';
2
+
3
+ export const MRT_Localization_JA: MRT_Localization = {
4
+ actions: '操作',
5
+ and: 'と',
6
+ cancel: 'キャンセル',
7
+ changeFilterMode: '検索モードを変更',
8
+ changeSearchMode: '検索モードを変更',
9
+ clearFilter: 'リセット',
10
+ clearSearch: 'リセット',
11
+ clearSort: '並べ替えを解除',
12
+ clickToCopy: 'クリックでコピー',
13
+ columnActions: '操作',
14
+ copiedToClipboard: 'クリップボードにコピーしました',
15
+ dropToGroupBy: 'ドロップで{column}をグループ化',
16
+ edit: '編集',
17
+ expand: '展開',
18
+ expandAll: 'すべて展開',
19
+ filterArrIncludes: '含む',
20
+ filterArrIncludesAll: '全て含む',
21
+ filterArrIncludesSome: '含む',
22
+ filterBetween: '最大最小',
23
+ filterBetweenInclusive: '間を含む',
24
+ filterByColumn: '{column}を検索',
25
+ filterContains: '含まれる',
26
+ filterEmpty: '空',
27
+ filterEndsWith: 'で終わる',
28
+ filterEquals: '一致',
29
+ filterEqualsString: '一致',
30
+ filterFuzzy: 'あいまい検索',
31
+ filterGreaterThan: 'より大きい',
32
+ filterGreaterThanOrEqualTo: '以上',
33
+ filterInNumberRange: '間',
34
+ filterIncludesString: '含む',
35
+ filterIncludesStringSensitive: '含む',
36
+ filterLessThan: 'より少ない',
37
+ filterLessThanOrEqualTo: '以下',
38
+ filterMode: '検索モード:{filterType}',
39
+ filterNotEmpty: '空ではない',
40
+ filterNotEquals: '不一致',
41
+ filterStartsWith: 'で始まる',
42
+ filterWeakEquals: '等しい',
43
+ filteringByColumn: '{column}によるフィルタリング - {filterType}{filterValue}',
44
+ goToFirstPage: '最初のページへ移動',
45
+ goToLastPage: '最後のページへ移動',
46
+ goToNextPage: '次のページへ移動',
47
+ goToPreviousPage: '前のページに移動',
48
+ grab: '掴む',
49
+ groupByColumn: '{column}をグループ化',
50
+ groupedBy: 'グループ化',
51
+ hideAll: '全て隠す',
52
+ hideColumn: '{column}を隠す',
53
+ max: '最大',
54
+ min: '最小',
55
+ move: '移動',
56
+ noRecordsToDisplay: '表示するレコードがありません',
57
+ noResultsFound: '結果なし',
58
+ of: '/',
59
+ or: 'または',
60
+ pinToLeft: '左に固定',
61
+ pinToRight: '右に固定',
62
+ resetColumnSize: '列のサイズをリセット',
63
+ resetOrder: '並べ替えをリセット',
64
+ rowActions: '行の操作',
65
+ rowNumber: 'No.',
66
+ rowNumbers: '行番号',
67
+ rowsPerPage: '表示件数',
68
+ save: '保存',
69
+ search: '検索',
70
+ selectedCountOfRowCountRowsSelected:
71
+ '{rowCount}行中{selectedCount}行が選択されました',
72
+ select: '選択',
73
+ showAll: '全て表示',
74
+ showAllColumns: 'すべての列を表示',
75
+ showHideColumns: '列の表示状態',
76
+ showHideFilters: '検索バーを表示',
77
+ showHideSearch: '検索',
78
+ sortByColumnAsc: '{column}を昇順でを並べ替え',
79
+ sortByColumnDesc: '{column}を降順でを並べ替え',
80
+ sortedByColumnAsc: '{column}を昇順でを並べ替え',
81
+ sortedByColumnDesc: '{column}を降順でを並べ替え',
82
+ thenBy: 'さらに',
83
+ toggleDensity: 'テーブルの高さを変更',
84
+ toggleFullScreen: 'フルスクリーン切り替え',
85
+ toggleSelectAll: 'すべて選択',
86
+ toggleSelectRow: '選択',
87
+ toggleVisibility: '表示を切り替え',
88
+ ungroupByColumn: '{column}のグループ解除',
89
+ unpin: '固定を解除',
90
+ unpinAll: 'すべての固定を解除',
91
+ unsorted: '並べ替える',
92
+ };
@@ -1,8 +1,8 @@
1
- import React, { FC, useMemo } from 'react';
1
+ import React, { FC, memo, useMemo } from 'react';
2
2
  import { useVirtual } from 'react-virtual'; //stuck on v2 for now
3
3
  // import { useVirtualizer, Virtualizer } from '@tanstack/react-virtual';
4
4
  import { TableBody, Typography } from '@mui/material';
5
- import { MRT_TableBodyRow } from './MRT_TableBodyRow';
5
+ import { Memo_MRT_TableBodyRow, MRT_TableBodyRow } from './MRT_TableBodyRow';
6
6
  import { rankGlobalFuzzy } from '../sortingFns';
7
7
  import type { MRT_Row, MRT_TableInstance } from '..';
8
8
 
@@ -22,6 +22,7 @@ export const MRT_TableBody: FC<Props> = ({ table }) => {
22
22
  localization,
23
23
  manualFiltering,
24
24
  manualSorting,
25
+ memoMode,
25
26
  muiTableBodyProps,
26
27
  virtualizerInstanceRef,
27
28
  virtualizerProps,
@@ -148,16 +149,19 @@ export const MRT_TableBody: FC<Props> = ({ table }) => {
148
149
  const row = enableRowVirtualization
149
150
  ? (rows[rowOrVirtualRow.index] as MRT_Row)
150
151
  : (rowOrVirtualRow as MRT_Row);
151
- return (
152
- <MRT_TableBodyRow
153
- key={row.id}
154
- row={row}
155
- rowIndex={
156
- enableRowVirtualization ? rowOrVirtualRow.index : rowIndex
157
- }
158
- table={table}
159
- virtualRow={enableRowVirtualization ? rowOrVirtualRow : null}
160
- />
152
+ const props = {
153
+ key: row.id,
154
+ row,
155
+ rowIndex: enableRowVirtualization
156
+ ? rowOrVirtualRow.index
157
+ : rowIndex,
158
+ table,
159
+ virtualRow: enableRowVirtualization ? rowOrVirtualRow : null,
160
+ };
161
+ return memoMode === 'row' ? (
162
+ <Memo_MRT_TableBodyRow {...props} />
163
+ ) : (
164
+ <MRT_TableBodyRow {...props} />
161
165
  );
162
166
  },
163
167
  )}
@@ -171,3 +175,5 @@ export const MRT_TableBody: FC<Props> = ({ table }) => {
171
175
  </TableBody>
172
176
  );
173
177
  };
178
+
179
+ export const Memo_MRT_TableBody = memo(MRT_TableBody, () => true);