@croquiscom/pds 0.47.3 → 0.47.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/CHANGELOG.md +6 -0
- package/dist/components/table/Table.d.ts +10 -3
- package/dist/components/table/Table.stories.d.ts +2 -0
- package/dist/components/table/reducer.d.ts +1 -0
- package/dist/components/table/storybook-helper/custom.argTypes.d.ts +17 -3
- package/dist/components/table/storybook-helper/sampleData.d.ts +8 -16
- package/dist/components/table/types.d.ts +23 -3
- package/dist/components/table/utils.d.ts +3 -1
- package/dist/index.es.js +3 -3
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React, { Key, ReactElement, PropsWithChildren, Ref } from 'react';
|
|
2
|
-
import { SortDirection, Scroll, TableColumnsType, TableRowsType } from './types';
|
|
1
|
+
import React, { Key, ReactElement, PropsWithChildren, Ref, ReactNode } from 'react';
|
|
2
|
+
import { SortDirection, Scroll, TableColumnsType, TableRowsType, RowSelectState } from './types';
|
|
3
3
|
export interface TableProps<DataType> {
|
|
4
4
|
className?: string;
|
|
5
5
|
/**
|
|
@@ -42,11 +42,18 @@ export interface TableProps<DataType> {
|
|
|
42
42
|
* - true일 경우 각 테이블 로우는 고유 key가 존재해야 합니다.
|
|
43
43
|
*/
|
|
44
44
|
selectableRows?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Row 선택 상태 정보
|
|
47
|
+
* - 이하 두가지 타입으로 로우 셀렉 상태를 받습니다.
|
|
48
|
+
* - ((row: DataType) => boolean): 함수형태로 전달할 경우 해당 조건에 일치하는 row 목록 선택 상태가 업데이트됩니다.
|
|
49
|
+
* - Key[]: 키목록으로 전달할 경우 해당 키를 포함하는 row 목록 선택 상태가 업데이트됩니다.
|
|
50
|
+
*/
|
|
51
|
+
rowSelection?: RowSelectState<DataType>;
|
|
45
52
|
/**
|
|
46
53
|
* Table 데이터가 없을 경우 노출되는 텍스트를 지정할 수 있습니다.
|
|
47
54
|
* @default '데이터가 없습니다'
|
|
48
55
|
*/
|
|
49
|
-
noDataText?:
|
|
56
|
+
noDataText?: ReactNode;
|
|
50
57
|
/**
|
|
51
58
|
* 테이블 로우 호버 스타일 사용 유무, 스펙아웃될 예정입니다.
|
|
52
59
|
* - rowspan to highlight all relevant rows 이슈 처리전 임시 props
|
|
@@ -19,5 +19,7 @@ export declare const ColumnFixed: any;
|
|
|
19
19
|
export declare const StickyHeader: any;
|
|
20
20
|
export declare const Scroll: any;
|
|
21
21
|
export declare const Selection: any;
|
|
22
|
+
export declare const BeforehandSelectionByKey: any;
|
|
23
|
+
export declare const BeforehandSelectionByFunction: any;
|
|
22
24
|
export declare const Sort: any;
|
|
23
25
|
export declare const WithPagination: any;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Key } from 'react';
|
|
2
|
-
import { TableColumnBase, TableColumnsType, CellProps } from '../types';
|
|
2
|
+
import { TableColumnBase, TableColumnsType, CellProps, CellAttributesProps } from '../types';
|
|
3
3
|
/** storybook table type helper용 컴포넌트 */
|
|
4
4
|
export interface HelperTableColumnTypeProps<DataType> extends TableColumnBase {
|
|
5
5
|
/**
|
|
@@ -11,7 +11,14 @@ export interface HelperTableColumnTypeProps<DataType> extends TableColumnBase {
|
|
|
11
11
|
* 테이블 셀 rowSpan 속성, hidden 여부를 지정할 수 있습니다.
|
|
12
12
|
* - (row: DataType, index: index) => ({ rowSpan: number, hidden: boolean })
|
|
13
13
|
*/
|
|
14
|
-
cellAttributes?:
|
|
14
|
+
cellAttributes?: CellAttributesProps<DataType>;
|
|
15
|
+
/**
|
|
16
|
+
* 테이블 컬럼에 해당하는 셀 렌더를 지정할 수 있습니다.
|
|
17
|
+
* - 해당 컬럼의 row, cell value, index를 받을 수 있습니다.
|
|
18
|
+
* - 반환값은 ReactNode여야 합니다.
|
|
19
|
+
* - ({ row, value, index }: { row: DataType; value: CellValue; index: number }) => ReactNode
|
|
20
|
+
*/
|
|
21
|
+
cell?: CellProps<DataType>;
|
|
15
22
|
}
|
|
16
23
|
export declare const HelperTableColumnType: <DataType extends object = any>(props: HelperTableColumnTypeProps<DataType>) => any;
|
|
17
24
|
export interface HelperTableColumnGroupTypeProps<DataType> extends TableColumnBase {
|
|
@@ -25,7 +32,14 @@ export interface HelperTableColumnGroupTypeProps<DataType> extends TableColumnBa
|
|
|
25
32
|
* 테이블 셀 rowSpan 속성, hidden 여부를 지정할 수 있습니다.
|
|
26
33
|
* - (row: DataType, index: index) => ({ rowSpan: number, hidden: boolean })
|
|
27
34
|
*/
|
|
28
|
-
cellAttributes?:
|
|
35
|
+
cellAttributes?: CellAttributesProps<DataType>;
|
|
36
|
+
/**
|
|
37
|
+
* 테이블 컬럼에 해당하는 셀 렌더를 지정할 수 있습니다.
|
|
38
|
+
* - 해당 컬럼의 row, cell value, index를 받을 수 있습니다.
|
|
39
|
+
* - 반환값은 ReactNode여야 합니다.
|
|
40
|
+
* - ({ row, value, index }: { row: DataType; value: CellValue; index: number }) => ReactNode
|
|
41
|
+
*/
|
|
42
|
+
cell?: CellProps<DataType>;
|
|
29
43
|
}
|
|
30
44
|
export declare const HelperTableColumnGroupType: <DataType extends object = any>(props: HelperTableColumnGroupTypeProps<DataType>) => any;
|
|
31
45
|
export interface HelperTableRowsTypeProps {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Key
|
|
1
|
+
import { Key } from 'react';
|
|
2
2
|
import { TableColumnsType, TableRowsType } from '../index';
|
|
3
3
|
export interface DataType {
|
|
4
4
|
key?: Key;
|
|
@@ -10,23 +10,15 @@ export interface DataType {
|
|
|
10
10
|
price: string;
|
|
11
11
|
amount: number;
|
|
12
12
|
}
|
|
13
|
-
export
|
|
14
|
-
id: ReactNode;
|
|
15
|
-
name: ReactNode;
|
|
16
|
-
code: ReactNode;
|
|
17
|
-
date: ReactNode;
|
|
18
|
-
price: ReactNode;
|
|
19
|
-
amount: ReactNode;
|
|
20
|
-
}
|
|
21
|
-
export declare const columns: TableColumnsType<DataType | DataTypeReactNode>;
|
|
13
|
+
export declare const columns: TableColumnsType<DataType>;
|
|
22
14
|
export declare const rows: TableRowsType<DataType>;
|
|
23
|
-
export declare const customColumns: TableColumnsType<DataType
|
|
24
|
-
export declare const customColumnCell: TableColumnsType<DataType
|
|
25
|
-
export declare const
|
|
15
|
+
export declare const customColumns: TableColumnsType<DataType>;
|
|
16
|
+
export declare const customColumnCell: TableColumnsType<DataType>;
|
|
17
|
+
export declare const customRowCellColumns: TableColumnsType<DataType>;
|
|
26
18
|
export declare const groupColumns: TableColumnsType<DataType>;
|
|
27
19
|
export declare const groupRows: TableRowsType<DataType>;
|
|
28
|
-
export declare const RowSpanColumns: TableColumnsType<DataType
|
|
29
|
-
export declare const RowSpanRows: TableRowsType<DataType
|
|
30
|
-
export declare const fixedColumns: TableColumnsType<DataType
|
|
20
|
+
export declare const RowSpanColumns: TableColumnsType<DataType>;
|
|
21
|
+
export declare const RowSpanRows: TableRowsType<DataType>;
|
|
22
|
+
export declare const fixedColumns: TableColumnsType<DataType>;
|
|
31
23
|
export declare const selectionRows: TableRowsType<DataType>;
|
|
32
24
|
export declare const sortColumns: TableColumnsType<DataType>;
|
|
@@ -6,9 +6,16 @@ export type Scroll = {
|
|
|
6
6
|
x?: CSSValueWithLength;
|
|
7
7
|
y?: CSSValueWithLength;
|
|
8
8
|
};
|
|
9
|
-
export type
|
|
9
|
+
export type CellValue<Value = any> = Value;
|
|
10
|
+
export type RowSelectState<DataType> = ((row: DataType) => boolean) | Array<Key> | null;
|
|
11
|
+
export type CellAttributesProps<DataType> = (row: DataType, index?: number) => Pick<TdHTMLAttributes<any>, 'rowSpan'> & {
|
|
10
12
|
hidden?: boolean;
|
|
11
13
|
};
|
|
14
|
+
export type CellProps<DataType> = ({ row, value, index, }: {
|
|
15
|
+
row: DataType;
|
|
16
|
+
value: CellValue<any>;
|
|
17
|
+
index: number;
|
|
18
|
+
}) => ReactNode;
|
|
12
19
|
export type TableColumnBase = {
|
|
13
20
|
/**
|
|
14
21
|
* 테이블 컬럼 텍스트
|
|
@@ -46,7 +53,14 @@ export interface TableColumnType<DataType> extends TableColumnBase {
|
|
|
46
53
|
* 테이블 셀 rowSpan 속성, hidden 여부를 지정할 수 있습니다.
|
|
47
54
|
* - (row: DataType, index: index) => ({ rowSpan: number, hidden: boolean })
|
|
48
55
|
*/
|
|
49
|
-
cellAttributes?:
|
|
56
|
+
cellAttributes?: CellAttributesProps<DataType>;
|
|
57
|
+
/**
|
|
58
|
+
* 테이블 컬럼에 해당하는 셀 렌더를 지정할 수 있습니다.
|
|
59
|
+
* - 해당 컬럼의 row, cell value, index를 받을 수 있습니다.
|
|
60
|
+
* - 반환값은 ReactNode여야 합니다.
|
|
61
|
+
* - ({ row, value, index }: { row: DataType; value: CellValue; index: number }) => ReactNode
|
|
62
|
+
*/
|
|
63
|
+
cell?: CellProps<DataType>;
|
|
50
64
|
}
|
|
51
65
|
export interface TableColumnGroupType<DataType> extends Omit<TableColumnType<DataType>, 'id'> {
|
|
52
66
|
columnGroup: TableColumnsType<DataType>;
|
|
@@ -61,6 +75,7 @@ export interface TableState<DataType = unknown> {
|
|
|
61
75
|
selectableRows?: boolean;
|
|
62
76
|
selectedRowsKey?: Key[];
|
|
63
77
|
selectedRows?: TableRowsType<DataType>;
|
|
78
|
+
emitSelectedEvent?: boolean;
|
|
64
79
|
}
|
|
65
80
|
export interface SelectRowsAction<DataType> {
|
|
66
81
|
type: 'SELECT_ROWS';
|
|
@@ -72,4 +87,9 @@ export interface SelectRowAction<DataType> {
|
|
|
72
87
|
selected: boolean;
|
|
73
88
|
totalRowCount: number;
|
|
74
89
|
}
|
|
75
|
-
export
|
|
90
|
+
export interface SelectControlledRowAction<DataType> {
|
|
91
|
+
type: 'SELECT_CONTROLLED_ROW';
|
|
92
|
+
rows: TableRowsType<DataType>;
|
|
93
|
+
totalRowCount: number;
|
|
94
|
+
}
|
|
95
|
+
export type TableAction<DataType> = SelectRowsAction<DataType> | SelectRowAction<DataType> | SelectControlledRowAction<DataType>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Key } from 'react';
|
|
2
|
+
import { TableColumnsType, TableRowsType } from './types';
|
|
2
3
|
export interface UseTableColumnsProps<DataType> {
|
|
3
4
|
columns: TableColumnsType<DataType>;
|
|
4
5
|
}
|
|
@@ -6,3 +7,4 @@ export declare function getColGroup<DataType>({ columns }: UseTableColumnsProps<
|
|
|
6
7
|
export declare function getGroupColumns<DataType>({ columns }: UseTableColumnsProps<DataType>): TableColumnsType<DataType>;
|
|
7
8
|
export declare function getFlattenColumns<DataType>({ columns }: UseTableColumnsProps<DataType>): TableColumnsType<DataType>;
|
|
8
9
|
export declare function getFixedMergeColumn<DataType>(columns: TableColumnsType<DataType>, selectableRows: boolean, columnCount: number): number;
|
|
10
|
+
export declare function getRowsKey<DataType>(rows: TableRowsType<DataType>): Key[];
|