fone-design-system_v2 1.0.210 → 1.0.212
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/Table2/Table2.d.ts +1 -1
- package/dist/components/Table2/rows/Cell.d.ts +3 -1
- package/dist/components/Table2/rows/Rows.d.ts +1 -0
- package/dist/components/Table2/types/table.types.d.ts +82 -32
- package/dist/fone-design-system.es.js +10128 -10073
- package/dist/fone-design-system.umd.js +159 -159
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Table2Props } from './types';
|
|
2
|
-
declare const Table2: <T extends object>({ data, columns, onChange, checkbox, no, radio, selectedCell, onRowClick, onRowDoubleClick, isLoading, scrollTo, isEditMode, rowClickTriggerIdx, reorderMode, onReorder, onCellClick, rowHeight, headerRowHeight, sx, }: Table2Props) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare const Table2: <T extends object>({ data, columns, onChange, checkbox, no, radio, selectedCell, onRowClick, onRowDoubleClick, isLoading, rowCountChangeScrollPosition, scrollTo, isEditMode, rowClickTriggerIdx, resetTriggerOnDataChange, reorderMode, onReorder, onCellClick, rowHeight, headerRowHeight, sx, }: Table2Props) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default Table2;
|
|
@@ -5,6 +5,7 @@ interface Props<T extends object = any> {
|
|
|
5
5
|
idx: number;
|
|
6
6
|
isHover: boolean;
|
|
7
7
|
isRowClicked: boolean;
|
|
8
|
+
isRowActive?: boolean;
|
|
8
9
|
selectedCellInfo: {
|
|
9
10
|
rowIndex: number;
|
|
10
11
|
colIndex: number;
|
|
@@ -16,8 +17,9 @@ interface Props<T extends object = any> {
|
|
|
16
17
|
setRowSelection: React.Dispatch<React.SetStateAction<Record<string, boolean>>>;
|
|
17
18
|
rowSelection: Record<string, boolean>;
|
|
18
19
|
radio?: boolean;
|
|
20
|
+
reorderMode?: boolean;
|
|
19
21
|
dragHandleProps?: DraggableProvidedDragHandleProps | null;
|
|
20
22
|
rowHeight?: number;
|
|
21
23
|
}
|
|
22
|
-
declare const Cell: <T extends object>({ onCellClick, cell, idx, isHover, isRowClicked, selectedCellInfo, showSelectedCellBorder, onChange, setTableData, setRowSelection, rowSelection, radio, dragHandleProps, rowHeight, }: Props<T>) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
declare const Cell: <T extends object>({ onCellClick, cell, idx, isHover, isRowClicked, isRowActive, selectedCellInfo, showSelectedCellBorder, onChange, setTableData, setRowSelection, rowSelection, radio, reorderMode, dragHandleProps, rowHeight, }: Props<T>) => import("react/jsx-runtime").JSX.Element | null;
|
|
23
25
|
export default Cell;
|
|
@@ -24,6 +24,7 @@ interface Props<T extends object = any> {
|
|
|
24
24
|
tableSx?: CSSProperties;
|
|
25
25
|
rowHeight: number;
|
|
26
26
|
headerRowHeight: number;
|
|
27
|
+
rowCountChangeScrollPosition?: "top" | "bottom" | number | "preserve";
|
|
27
28
|
}
|
|
28
29
|
declare const Rows: import('react').ForwardRefExoticComponent<Props<any> & import('react').RefAttributes<HTMLDivElement>>;
|
|
29
30
|
export default Rows;
|
|
@@ -1,61 +1,106 @@
|
|
|
1
1
|
import { default as React, CSSProperties } from 'react';
|
|
2
2
|
import { ColumnDef as TanstackColumnDef } from '@tanstack/react-table';
|
|
3
|
-
|
|
3
|
+
type BodyCellType<T extends object> = "input" | "textarea" | "inputNum" | "inputEng" | "select" | "checkbox" | "checkboxN" | "datePicker" | "modal" | "file" | "button" | "custom" | "text" | "date" | ((row: T) => "input" | "textarea" | "inputNum" | "inputEng" | "select" | "checkbox" | "checkboxN" | "datePicker" | "modal" | "file" | "button" | "custom" | "text" | "date") | string;
|
|
4
|
+
type RenderCellParams<T extends object> = {
|
|
5
|
+
rowData: T;
|
|
6
|
+
rowIndex: number;
|
|
7
|
+
column: ColumnDef<T>;
|
|
8
|
+
columnId: string;
|
|
9
|
+
value: unknown;
|
|
10
|
+
isCellActive: boolean;
|
|
11
|
+
isRowSelected: boolean;
|
|
12
|
+
isRowActive: boolean;
|
|
13
|
+
};
|
|
14
|
+
type GetCellPropsParams<T extends object> = {
|
|
15
|
+
rowData: T;
|
|
16
|
+
rowIndex: number;
|
|
17
|
+
column: ColumnDef<T>;
|
|
18
|
+
columnId: string;
|
|
19
|
+
value: unknown;
|
|
20
|
+
isCellActive: boolean;
|
|
21
|
+
isRowSelected: boolean;
|
|
22
|
+
isRowActive: boolean;
|
|
23
|
+
};
|
|
24
|
+
type CellMerge = {
|
|
25
|
+
/** 여러 행/열을 병합할 때 사용합니다. reorderMode와 함께 사용하는 것은 지원하지 않습니다. */
|
|
26
|
+
rowSpan?: number;
|
|
27
|
+
colSpan?: number;
|
|
28
|
+
skipCell?: boolean;
|
|
29
|
+
};
|
|
30
|
+
type GetCellPropsResult = React.TdHTMLAttributes<HTMLTableCellElement> & {
|
|
31
|
+
merge?: CellMerge;
|
|
32
|
+
};
|
|
33
|
+
type ColumnCommonProps<T extends object> = {
|
|
4
34
|
accessorKey?: string;
|
|
5
35
|
width?: string;
|
|
36
|
+
role?: "group";
|
|
37
|
+
setSort?: React.Dispatch<React.SetStateAction<string[]>>;
|
|
38
|
+
visible?: boolean;
|
|
39
|
+
/** 바디 td 요소에 추가 속성이나 스타일을 주입합니다. merge를 반환하는 경우 reorderMode와 함께 사용하는 것은 지원하지 않습니다. */
|
|
40
|
+
getCellProps?: (params: GetCellPropsParams<T>) => GetCellPropsResult;
|
|
41
|
+
/** 헤더 셀의 내용을 컬럼 단위로 커스텀 렌더링합니다. */
|
|
42
|
+
renderHeaderCell?: (params: {
|
|
43
|
+
column: ColumnDef<T>;
|
|
44
|
+
columnId: string;
|
|
45
|
+
}) => React.ReactNode;
|
|
46
|
+
/** 헤더 th 요소에 추가 속성이나 스타일을 주입합니다. */
|
|
47
|
+
getHeaderCellProps?: (params: {
|
|
48
|
+
column: ColumnDef<T>;
|
|
49
|
+
columnId: string;
|
|
50
|
+
}) => React.ThHTMLAttributes<HTMLTableCellElement>;
|
|
51
|
+
};
|
|
52
|
+
type StandardColumnProps<T extends object> = {
|
|
6
53
|
align?: "start" | "center" | "right";
|
|
7
54
|
editable?: boolean;
|
|
8
|
-
type?:
|
|
55
|
+
type?: BodyCellType<T>;
|
|
9
56
|
selectItems?: {
|
|
10
57
|
value: string | number;
|
|
11
58
|
label: string;
|
|
12
59
|
}[];
|
|
13
60
|
required?: boolean;
|
|
14
|
-
setSort?: React.Dispatch<React.SetStateAction<string[]>>;
|
|
15
61
|
button?: React.ReactNode | ((row: T) => React.ReactNode);
|
|
16
62
|
ellipsis?: boolean;
|
|
17
|
-
role?: "group";
|
|
18
63
|
tags?: (row: T) => React.ReactNode[];
|
|
19
64
|
disabled?: (row: T) => boolean | boolean;
|
|
20
65
|
isOnly?: boolean;
|
|
21
66
|
maxLength?: number;
|
|
22
67
|
numRange?: number[];
|
|
68
|
+
/** custom 타입에서 사용하는 기존 전용 렌더러입니다. 신규 코드는 renderCell 사용을 권장합니다. */
|
|
23
69
|
component?: (row: T) => React.ReactNode;
|
|
24
70
|
modalFn?: (row: T) => void;
|
|
25
71
|
accept?: string;
|
|
26
72
|
icon?: React.ReactNode;
|
|
27
73
|
onChange?: (...args: any[]) => any;
|
|
28
74
|
readOnly?: boolean;
|
|
29
|
-
visible?: boolean;
|
|
30
75
|
simpleSelect?: boolean;
|
|
31
76
|
showEditIcon?: boolean;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}) => React.ThHTMLAttributes<HTMLTableCellElement>;
|
|
77
|
+
renderCell?: never;
|
|
78
|
+
};
|
|
79
|
+
type RenderCellColumnProps<T extends object> = {
|
|
80
|
+
/** 바디 셀의 내용을 컬럼 단위로 완전히 커스텀 렌더링합니다. 이 경로에서는 align, editable, type, maxLength 같은 표준 셀 옵션이 자동 적용되지 않습니다. */
|
|
81
|
+
renderCell: (params: RenderCellParams<T>) => React.ReactNode;
|
|
82
|
+
align?: never;
|
|
83
|
+
editable?: never;
|
|
84
|
+
type?: never;
|
|
85
|
+
selectItems?: never;
|
|
86
|
+
required?: never;
|
|
87
|
+
button?: never;
|
|
88
|
+
ellipsis?: never;
|
|
89
|
+
tags?: never;
|
|
90
|
+
disabled?: never;
|
|
91
|
+
isOnly?: never;
|
|
92
|
+
maxLength?: never;
|
|
93
|
+
numRange?: never;
|
|
94
|
+
component?: never;
|
|
95
|
+
modalFn?: never;
|
|
96
|
+
accept?: never;
|
|
97
|
+
icon?: never;
|
|
98
|
+
onChange?: never;
|
|
99
|
+
readOnly?: never;
|
|
100
|
+
simpleSelect?: never;
|
|
101
|
+
showEditIcon?: never;
|
|
58
102
|
};
|
|
103
|
+
export type ColumnDef<T extends object> = TanstackColumnDef<T> & ColumnCommonProps<T> & (StandardColumnProps<T> | RenderCellColumnProps<T>);
|
|
59
104
|
export interface Table2Props {
|
|
60
105
|
/** Cell 클릭 시 해당 Cell Border 스타일 변경 여부를 설정합니다. */
|
|
61
106
|
selectedCell?: boolean;
|
|
@@ -79,13 +124,17 @@ export interface Table2Props {
|
|
|
79
124
|
onRowDoubleClick?: (row: any, rowIndex: number) => void;
|
|
80
125
|
/** 로딩 상태 표시 여부를 설정합니다. */
|
|
81
126
|
isLoading?: boolean;
|
|
127
|
+
/** 행 개수 변경 시 스크롤 위치 유지 방식 설정합니다. */
|
|
128
|
+
rowCountChangeScrollPosition?: "top" | "bottom" | number | "preserve";
|
|
82
129
|
/** 특정 행으로 스크롤할 인덱스를 설정합니다. */
|
|
83
130
|
scrollTo?: number;
|
|
84
131
|
/** 편집, 추가 구분 확인 Column 여부를 설정합니다. */
|
|
85
132
|
isEditMode?: boolean;
|
|
86
133
|
/** 행 클릭 트리거 인덱스를 설정합니다. */
|
|
87
134
|
rowClickTriggerIdx?: number;
|
|
88
|
-
/** 행
|
|
135
|
+
/** 데이터 변경 시 행 클릭 트리거 인덱스 초기화 여부를 설정합니다. */
|
|
136
|
+
resetTriggerOnDataChange?: boolean;
|
|
137
|
+
/** 행 드래그앤드롭 재정렬 모드를 활성화합니다. getCellProps의 merge 기반 행병합과 함께 사용하는 것은 지원하지 않습니다. */
|
|
89
138
|
reorderMode?: boolean;
|
|
90
139
|
/** 행 순서가 변경될 때 재정렬된 데이터를 반환합니다. */
|
|
91
140
|
onReorder?: (data: any[]) => void;
|
|
@@ -104,3 +153,4 @@ export interface Table2Props {
|
|
|
104
153
|
isHovered: boolean;
|
|
105
154
|
}) => React.HTMLAttributes<HTMLTableRowElement>;
|
|
106
155
|
}
|
|
156
|
+
export {};
|