@team-monolith/cds 0.1.8 → 0.2.0
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/AlertDialog/AlertDialogContent.js +2 -2
- package/dist/components/Button.d.ts +10 -3
- package/dist/components/Button.js +3 -3
- package/dist/icons/arrows.d.ts +12 -0
- package/dist/icons/arrows.js +4 -0
- package/dist/icons/system.d.ts +3 -0
- package/dist/icons/system.js +1 -0
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -2
- package/dist/patterns/Card/Card.d.ts +39 -0
- package/dist/patterns/Card/Card.js +68 -0
- package/dist/patterns/Card/index.d.ts +2 -0
- package/dist/patterns/Card/index.js +2 -0
- package/dist/patterns/Dialog/Dialog.d.ts +12 -0
- package/dist/patterns/Dialog/Dialog.js +26 -0
- package/dist/patterns/Dialog/DialogContent.d.ts +8 -0
- package/dist/patterns/Dialog/DialogContent.js +23 -0
- package/dist/patterns/Dialog/DialogNavigation.d.ts +12 -0
- package/dist/patterns/Dialog/DialogNavigation.js +25 -0
- package/dist/patterns/Dialog/DialogNavigationContext.d.ts +5 -0
- package/dist/patterns/Dialog/DialogNavigationContext.js +5 -0
- package/dist/patterns/Dialog/DialogNavigationItem.d.ts +10 -0
- package/dist/patterns/Dialog/DialogNavigationItem.js +25 -0
- package/dist/patterns/Dialog/DialogPanel.d.ts +10 -0
- package/dist/patterns/Dialog/DialogPanel.js +31 -0
- package/dist/patterns/Dialog/DialogPanels.d.ts +13 -0
- package/dist/patterns/Dialog/DialogPanels.js +17 -0
- package/dist/patterns/Dialog/DialogPanelsContext.d.ts +5 -0
- package/dist/patterns/Dialog/DialogPanelsContext.js +5 -0
- package/dist/patterns/Dialog/DialogTitle.d.ts +13 -0
- package/dist/patterns/Dialog/DialogTitle.js +26 -0
- package/dist/patterns/Dialog/index.d.ts +7 -0
- package/dist/patterns/Dialog/index.js +7 -0
- package/dist/patterns/Navigation/NavigationContext.d.ts +5 -0
- package/dist/patterns/Navigation/NavigationContext.js +5 -0
- package/dist/patterns/Navigation/NavigationHorizontal.d.ts +11 -0
- package/dist/patterns/Navigation/NavigationHorizontal.js +27 -0
- package/dist/patterns/Navigation/NavigationItem.d.ts +9 -0
- package/dist/patterns/Navigation/NavigationItem.js +33 -0
- package/dist/patterns/Navigation/NavigationVertical.d.ts +14 -0
- package/dist/patterns/Navigation/NavigationVertical.js +27 -0
- package/dist/patterns/Navigation/index.d.ts +3 -0
- package/dist/patterns/Navigation/index.js +3 -0
- package/dist/patterns/Table/Table.d.ts +2 -0
- package/dist/patterns/Table/Table.js +3 -3
- package/dist/patterns/Table/TableCell.js +5 -5
- package/dist/patterns/Table/TablePropsContext.d.ts +7 -0
- package/dist/patterns/Table/TablePropsContext.js +3 -0
- package/dist/patterns/Table/TableRow.d.ts +2 -0
- package/dist/patterns/Table/TableRow.js +9 -4
- package/package.json +1 -1
- package/src/cds/components/AlertDialog/AlertDialogContent.tsx +14 -16
- package/src/cds/components/Button.tsx +98 -77
- package/src/cds/icons/arrows.tsx +55 -0
- package/src/cds/icons/system.tsx +15 -0
- package/src/cds/patterns/Card/Card.tsx +294 -0
- package/src/cds/patterns/Card/class-icon.svg +28 -0
- package/src/cds/patterns/Card/index.tsx +2 -0
- package/src/cds/patterns/Card/material-icon.svg +25 -0
- package/src/cds/patterns/Card/problem-icon.svg +25 -0
- package/src/cds/patterns/Card/thumbnail/sample.png +0 -0
- package/src/cds/patterns/Dialog/Dialog.tsx +57 -0
- package/src/cds/patterns/Dialog/DialogContent.tsx +28 -0
- package/src/cds/patterns/Dialog/DialogNavigation.tsx +29 -0
- package/src/cds/patterns/Dialog/DialogNavigationContext.tsx +9 -0
- package/src/cds/patterns/Dialog/DialogNavigationItem.tsx +42 -0
- package/src/cds/patterns/Dialog/DialogPanel.tsx +40 -0
- package/src/cds/patterns/Dialog/DialogPanels.tsx +24 -0
- package/src/cds/patterns/Dialog/DialogPanelsContext.tsx +9 -0
- package/src/cds/patterns/Dialog/DialogTitle.tsx +55 -0
- package/src/cds/patterns/Dialog/index.tsx +7 -0
- package/src/cds/patterns/Navigation/NavigationContext.tsx +9 -0
- package/src/cds/patterns/Navigation/NavigationHorizontal.tsx +32 -0
- package/src/cds/patterns/Navigation/NavigationItem.tsx +36 -0
- package/src/cds/patterns/Navigation/NavigationVertical.tsx +39 -0
- package/src/cds/patterns/Navigation/index.tsx +3 -0
- package/src/cds/patterns/Table/Table.tsx +8 -2
- package/src/cds/patterns/Table/TableCell.tsx +14 -3
- package/src/cds/patterns/Table/TablePropsContext.tsx +9 -0
- package/src/cds/patterns/Table/TableRow.tsx +23 -7
- package/dist/patterns/EmptyState/empty-state-icon.svg +0 -36
- package/dist/patterns/Grid/EnhancedTableCell.d.ts +0 -9
- package/dist/patterns/Grid/EnhancedTableCell.js +0 -122
- package/dist/patterns/Grid/Grid.d.ts +0 -51
- package/dist/patterns/Grid/Grid.js +0 -140
- package/dist/patterns/Grid/index.d.ts +0 -3
- package/dist/patterns/Grid/index.js +0 -2
- package/dist/patterns/Table/TableSizeContext.d.ts +0 -7
- package/dist/patterns/Table/TableSizeContext.js +0 -3
- package/src/cds/patterns/Grid/EnhancedTableCell.tsx +0 -180
- package/src/cds/patterns/Grid/Grid.tsx +0 -360
- package/src/cds/patterns/Grid/index.tsx +0 -4
- package/src/cds/patterns/Table/TableSizeContext.tsx +0 -10
|
@@ -1,360 +0,0 @@
|
|
|
1
|
-
/** @jsxImportSource @emotion/react */
|
|
2
|
-
import {
|
|
3
|
-
Cell,
|
|
4
|
-
ColumnDef,
|
|
5
|
-
ColumnFiltersState,
|
|
6
|
-
ColumnResizeMode,
|
|
7
|
-
Row,
|
|
8
|
-
RowData,
|
|
9
|
-
RowSelectionState,
|
|
10
|
-
SortingState,
|
|
11
|
-
Table as TableType,
|
|
12
|
-
flexRender,
|
|
13
|
-
getCoreRowModel,
|
|
14
|
-
getFacetedRowModel,
|
|
15
|
-
getFacetedUniqueValues,
|
|
16
|
-
getFilteredRowModel,
|
|
17
|
-
getPaginationRowModel,
|
|
18
|
-
getSortedRowModel,
|
|
19
|
-
useReactTable,
|
|
20
|
-
FilterFn,
|
|
21
|
-
PaginationState,
|
|
22
|
-
} from "@tanstack/react-table";
|
|
23
|
-
import React, { RefObject, useImperativeHandle, useRef, useState } from "react";
|
|
24
|
-
import styled from "@emotion/styled";
|
|
25
|
-
import { css } from "@emotion/react";
|
|
26
|
-
import Pagination from "../../components/Pagination";
|
|
27
|
-
import CheckboxInput from "../../components/CheckboxInput";
|
|
28
|
-
import { DropdownItemProps } from "../Dropdown/DropdownItem";
|
|
29
|
-
import Button from "../../components/Button";
|
|
30
|
-
import DropdownMenu from "../Dropdown/DropdownMenu";
|
|
31
|
-
import { ArrowDropDownFillIcon } from "../../icons/arrows";
|
|
32
|
-
import {
|
|
33
|
-
Table,
|
|
34
|
-
TableBody,
|
|
35
|
-
TableCell,
|
|
36
|
-
TableHead,
|
|
37
|
-
TableRow,
|
|
38
|
-
TableSize,
|
|
39
|
-
} from "../Table";
|
|
40
|
-
import EnhancedTableCell from "./EnhancedTableCell";
|
|
41
|
-
|
|
42
|
-
// TanStack Table의 기본 Filter 함수들은 단일 Filter 값만 지원하도록 되어있습니다.
|
|
43
|
-
// CDS에서는 여러개 필터값을 선택할 수 있으므로,
|
|
44
|
-
// FilterValue를 Set 형식으로 지정하고, 이 형식에 맞는 Filter 함수를 정의하여
|
|
45
|
-
// 각 columnDef의 인자로 전달하여 적용합니다.
|
|
46
|
-
const MultiFilterFn: FilterFn<any> = (
|
|
47
|
-
row,
|
|
48
|
-
columnId: string,
|
|
49
|
-
filterValues: Set<any>
|
|
50
|
-
) => {
|
|
51
|
-
return filterValues.has(row.getValue<string | null>(columnId));
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
// onCellClicked 함수의 인자로 전달되는 값
|
|
55
|
-
export interface CellClickedEvent<TData> {
|
|
56
|
-
cell: Cell<TData, any>;
|
|
57
|
-
table: TableType<TData>;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// selectedRowMenuProps의 onClick 함수의 인자로 전달되는 값
|
|
61
|
-
export interface SelectedRowMenuOnClickArgs<TData> {
|
|
62
|
-
rows: Row<TData>[];
|
|
63
|
-
table: TableType<TData>;
|
|
64
|
-
setDropdownOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export interface GridApi<TData> {
|
|
68
|
-
table: TableType<TData>;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export interface GridProps<TData> {
|
|
72
|
-
className?: string;
|
|
73
|
-
component?: React.ElementType;
|
|
74
|
-
|
|
75
|
-
/** Grid API를 담는 Ref 객체 */
|
|
76
|
-
gridApiRef: RefObject<GridApi<TData>>;
|
|
77
|
-
/** Table Cell의 크기 옵션*/
|
|
78
|
-
size: TableSize;
|
|
79
|
-
/** Table의 fullWidth 여부
|
|
80
|
-
* @default true */
|
|
81
|
-
fullWidth?: boolean;
|
|
82
|
-
/** 행 Data */
|
|
83
|
-
rowData: TData[];
|
|
84
|
-
/** 열 정의 객체 */
|
|
85
|
-
columns: ColumnDef<TData, any>[];
|
|
86
|
-
/** Table의 열 크기를 resize 할 수 있는지 여부*/
|
|
87
|
-
resizable?: boolean;
|
|
88
|
-
/** 한 페이지 당 보여질 row의 갯수. 입력하지 않으면 페이지네이션이 비활성화됩니다. */
|
|
89
|
-
paginationPageSize?: number;
|
|
90
|
-
/** Cell을 클릭했을 때 호출되는 콜백 */
|
|
91
|
-
onCellClicked?: (event: CellClickedEvent<TData>) => void;
|
|
92
|
-
/** 행 선택 기능 활성화 여부 */
|
|
93
|
-
enableRowSelection?: boolean;
|
|
94
|
-
/** 행 선택 기능에서 '선택한 항목을' DropdownMenu 관련 속성 */
|
|
95
|
-
selectedRowMenuProps?: {
|
|
96
|
-
items: (Omit<DropdownItemProps, "onClick"> & {
|
|
97
|
-
onClick: (args: SelectedRowMenuOnClickArgs<TData>) => void;
|
|
98
|
-
})[];
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* CDS Table과 TanStack Table을 이용하여
|
|
104
|
-
* data-processing, state-management 등의 로직이 들어있는 컴포넌트입니다.
|
|
105
|
-
*/
|
|
106
|
-
export default function Grid<TData extends RowData>(props: GridProps<TData>) {
|
|
107
|
-
const {
|
|
108
|
-
className,
|
|
109
|
-
component: Component = "div",
|
|
110
|
-
gridApiRef,
|
|
111
|
-
size,
|
|
112
|
-
fullWidth = true,
|
|
113
|
-
rowData,
|
|
114
|
-
columns,
|
|
115
|
-
onCellClicked,
|
|
116
|
-
resizable,
|
|
117
|
-
selectedRowMenuProps,
|
|
118
|
-
paginationPageSize,
|
|
119
|
-
enableRowSelection,
|
|
120
|
-
} = props;
|
|
121
|
-
const [sorting, setSorting] = useState<SortingState>([]);
|
|
122
|
-
const [rowSelection, setRowSelection] = useState<RowSelectionState>({});
|
|
123
|
-
const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);
|
|
124
|
-
const [{ pageIndex }, setPagination] = useState<PaginationState>({
|
|
125
|
-
pageIndex: 0,
|
|
126
|
-
pageSize: 0,
|
|
127
|
-
});
|
|
128
|
-
const [selectedRowMenuOpen, setSelectedRowMenuOpen] = useState(false);
|
|
129
|
-
|
|
130
|
-
// resize가 활성화 되었을 때만 전달되는 Table Option
|
|
131
|
-
const resizeOption = resizable
|
|
132
|
-
? {
|
|
133
|
-
enableColumnResizing: true,
|
|
134
|
-
columnResizeMode: "onChange" as ColumnResizeMode,
|
|
135
|
-
}
|
|
136
|
-
: { enableColumnResizing: false };
|
|
137
|
-
|
|
138
|
-
// rowSelection이 활성화 되었을 때만 전달되는 Table Option
|
|
139
|
-
const rowSelectionOption = enableRowSelection
|
|
140
|
-
? {
|
|
141
|
-
enableRowSelection: true,
|
|
142
|
-
onRowSelectionChange: setRowSelection,
|
|
143
|
-
}
|
|
144
|
-
: {};
|
|
145
|
-
// rowSelection이 활성화 되었을 때, 다음 column을 가장 처음 열에 추가합니다.
|
|
146
|
-
const selectColumn: ColumnDef<TData> = {
|
|
147
|
-
id: "grid-selectable-column",
|
|
148
|
-
header: ({ table }) => (
|
|
149
|
-
<CheckboxInput
|
|
150
|
-
checked={table.getIsAllRowsSelected()}
|
|
151
|
-
partial={table.getIsSomeRowsSelected()}
|
|
152
|
-
onChange={table.getToggleAllRowsSelectedHandler()}
|
|
153
|
-
/>
|
|
154
|
-
),
|
|
155
|
-
cell: ({ row }) => (
|
|
156
|
-
<CheckboxInput
|
|
157
|
-
checked={row.getIsSelected()}
|
|
158
|
-
disabled={!row.getCanSelect()}
|
|
159
|
-
partial={row.getIsSomeSelected()}
|
|
160
|
-
onChange={row.getToggleSelectedHandler()}
|
|
161
|
-
/>
|
|
162
|
-
),
|
|
163
|
-
enableResizing: false,
|
|
164
|
-
enableColumnFilter: false,
|
|
165
|
-
enableSorting: false,
|
|
166
|
-
size: 0,
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
// pagination이 활성화 되었을 때만 전달되는 Table Option
|
|
170
|
-
const paginationOption = paginationPageSize
|
|
171
|
-
? {
|
|
172
|
-
onPaginationChange: setPagination,
|
|
173
|
-
getPaginationRowModel: getPaginationRowModel(),
|
|
174
|
-
}
|
|
175
|
-
: {};
|
|
176
|
-
const pagination: PaginationState = {
|
|
177
|
-
pageIndex,
|
|
178
|
-
pageSize: paginationPageSize ?? 0,
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
// 여러 값으로 된 필터를 선택할 수 있도록 filterFn을 교체합니다.
|
|
182
|
-
const columnWithFilterFn: ColumnDef<TData, any>[] = columns.map((colDef) => ({
|
|
183
|
-
...colDef,
|
|
184
|
-
filterFn: MultiFilterFn,
|
|
185
|
-
}));
|
|
186
|
-
|
|
187
|
-
const table = useReactTable<TData>({
|
|
188
|
-
data: rowData,
|
|
189
|
-
columns: enableRowSelection
|
|
190
|
-
? [selectColumn, ...columnWithFilterFn]
|
|
191
|
-
: columnWithFilterFn,
|
|
192
|
-
state: {
|
|
193
|
-
columnFilters,
|
|
194
|
-
sorting,
|
|
195
|
-
rowSelection,
|
|
196
|
-
pagination,
|
|
197
|
-
},
|
|
198
|
-
...resizeOption,
|
|
199
|
-
...rowSelectionOption,
|
|
200
|
-
...paginationOption,
|
|
201
|
-
getCoreRowModel: getCoreRowModel(),
|
|
202
|
-
onSortingChange: setSorting,
|
|
203
|
-
getSortedRowModel: getSortedRowModel(),
|
|
204
|
-
onColumnFiltersChange: setColumnFilters,
|
|
205
|
-
getFilteredRowModel: getFilteredRowModel(),
|
|
206
|
-
getFacetedRowModel: getFacetedRowModel(),
|
|
207
|
-
getFacetedUniqueValues: getFacetedUniqueValues(),
|
|
208
|
-
});
|
|
209
|
-
|
|
210
|
-
useImperativeHandle(gridApiRef, () => ({
|
|
211
|
-
table,
|
|
212
|
-
}));
|
|
213
|
-
|
|
214
|
-
const enablePagination = Boolean(paginationPageSize);
|
|
215
|
-
|
|
216
|
-
const menuRef = useRef<HTMLButtonElement | null>(null);
|
|
217
|
-
// selectedRowMenuProps의 onClick 인자에 rows, table, setDropdownOpen을 전달하여
|
|
218
|
-
// 콜백 내부에서 접근 가능하게 합니다.
|
|
219
|
-
const itemProps =
|
|
220
|
-
selectedRowMenuProps?.items.map((itemProp) => {
|
|
221
|
-
return {
|
|
222
|
-
...itemProp,
|
|
223
|
-
onClick: () => {
|
|
224
|
-
itemProp.onClick({
|
|
225
|
-
rows: table.getSelectedRowModel().flatRows,
|
|
226
|
-
table,
|
|
227
|
-
setDropdownOpen: setSelectedRowMenuOpen,
|
|
228
|
-
});
|
|
229
|
-
},
|
|
230
|
-
};
|
|
231
|
-
}) ?? [];
|
|
232
|
-
|
|
233
|
-
return (
|
|
234
|
-
<Component
|
|
235
|
-
className={className}
|
|
236
|
-
css={[
|
|
237
|
-
css`
|
|
238
|
-
display: inline-flex;
|
|
239
|
-
flex-direction: column;
|
|
240
|
-
`,
|
|
241
|
-
fullWidth &&
|
|
242
|
-
css`
|
|
243
|
-
width: 100%;
|
|
244
|
-
`,
|
|
245
|
-
]}
|
|
246
|
-
>
|
|
247
|
-
<div
|
|
248
|
-
css={css`
|
|
249
|
-
// Table을 div으로 감싸 overflow 속성을 추가하여 스크롤 가능하게 합니다.
|
|
250
|
-
// Table 자체에 css를 적용하면 display: table 속성으로 인해 적용되지 않습니다.
|
|
251
|
-
overflow: auto;
|
|
252
|
-
`}
|
|
253
|
-
>
|
|
254
|
-
<Table {...{ size, fullWidth }}>
|
|
255
|
-
<TableHead>
|
|
256
|
-
{table.getHeaderGroups().map((headerGroup) => (
|
|
257
|
-
<TableRow key={headerGroup.id}>
|
|
258
|
-
{headerGroup.headers.map((header) => (
|
|
259
|
-
<EnhancedTableCell
|
|
260
|
-
table={table}
|
|
261
|
-
header={header}
|
|
262
|
-
key={header.id}
|
|
263
|
-
/>
|
|
264
|
-
))}
|
|
265
|
-
</TableRow>
|
|
266
|
-
))}
|
|
267
|
-
</TableHead>
|
|
268
|
-
<TableBody>
|
|
269
|
-
{table.getRowModel().rows.length === 0 && (
|
|
270
|
-
<TableRow disableHover>
|
|
271
|
-
<TableCell
|
|
272
|
-
colSpan={table.getAllColumns().length}
|
|
273
|
-
css={css`
|
|
274
|
-
text-align: center;
|
|
275
|
-
`}
|
|
276
|
-
>
|
|
277
|
-
데이터가 존재하지 않습니다.
|
|
278
|
-
</TableCell>
|
|
279
|
-
</TableRow>
|
|
280
|
-
)}
|
|
281
|
-
{table.getRowModel().rows.map((row) => (
|
|
282
|
-
<TableRow key={row.id} isSelected={row.getIsSelected()}>
|
|
283
|
-
{row.getVisibleCells().map((cell) => (
|
|
284
|
-
<TableCell
|
|
285
|
-
key={cell.id}
|
|
286
|
-
onClick={() => onCellClicked?.({ cell, table })}
|
|
287
|
-
>
|
|
288
|
-
{flexRender(cell.column.columnDef.cell, cell.getContext())}
|
|
289
|
-
</TableCell>
|
|
290
|
-
))}
|
|
291
|
-
</TableRow>
|
|
292
|
-
))}
|
|
293
|
-
</TableBody>
|
|
294
|
-
</Table>
|
|
295
|
-
</div>
|
|
296
|
-
{(enableRowSelection || enablePagination) && (
|
|
297
|
-
<TableFooter
|
|
298
|
-
enableRowSelection={enableRowSelection ?? false}
|
|
299
|
-
enablePagination={enablePagination}
|
|
300
|
-
>
|
|
301
|
-
{enableRowSelection && (
|
|
302
|
-
<>
|
|
303
|
-
<Button
|
|
304
|
-
color="secondary"
|
|
305
|
-
size="small"
|
|
306
|
-
label="선택한 항목을"
|
|
307
|
-
ref={menuRef}
|
|
308
|
-
endIcon={<ArrowDropDownFillIcon />}
|
|
309
|
-
disabled={
|
|
310
|
-
!(
|
|
311
|
-
table.getIsAllRowsSelected() ||
|
|
312
|
-
table.getIsSomeRowsSelected()
|
|
313
|
-
)
|
|
314
|
-
}
|
|
315
|
-
onClick={() => setSelectedRowMenuOpen(true)}
|
|
316
|
-
/>
|
|
317
|
-
<DropdownMenu
|
|
318
|
-
itemsProps={itemProps}
|
|
319
|
-
open={selectedRowMenuOpen}
|
|
320
|
-
anchorEl={menuRef.current}
|
|
321
|
-
onClose={() => setSelectedRowMenuOpen(false)}
|
|
322
|
-
/>
|
|
323
|
-
</>
|
|
324
|
-
)}
|
|
325
|
-
{enablePagination && (
|
|
326
|
-
<Pagination
|
|
327
|
-
page={table.getState().pagination.pageIndex + 1}
|
|
328
|
-
count={table.getPageCount()}
|
|
329
|
-
onChange={(event, page) => {
|
|
330
|
-
table.setPageIndex(page - 1);
|
|
331
|
-
}}
|
|
332
|
-
/>
|
|
333
|
-
)}
|
|
334
|
-
</TableFooter>
|
|
335
|
-
)}
|
|
336
|
-
</Component>
|
|
337
|
-
);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
const TableFooter = styled.div<{
|
|
341
|
-
enableRowSelection: boolean;
|
|
342
|
-
enablePagination: boolean;
|
|
343
|
-
}>`
|
|
344
|
-
display: flex;
|
|
345
|
-
align-items: center;
|
|
346
|
-
|
|
347
|
-
${({ enableRowSelection, enablePagination }) =>
|
|
348
|
-
!enablePagination
|
|
349
|
-
? css`
|
|
350
|
-
justify-content: flex-start;
|
|
351
|
-
`
|
|
352
|
-
: enableRowSelection
|
|
353
|
-
? css`
|
|
354
|
-
justify-content: space-between;
|
|
355
|
-
`
|
|
356
|
-
: css`
|
|
357
|
-
justify-content: center;
|
|
358
|
-
`}
|
|
359
|
-
margin: 16px 12px;
|
|
360
|
-
`;
|