@croquiscom/pds 12.2.3 → 12.3.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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @croquiscom/pds
2
2
 
3
+ ## 12.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 5e20ba7: TextButton Loading 상태 추가
8
+ - c3379a4: feat: Datable Expandable Row 옵션 추가
9
+
3
10
  ## 12.2.3
4
11
 
5
12
  ### Patch Changes
@@ -5,6 +5,8 @@ export interface TextButtonProps extends Omit<ButtonProps, 'loading' | 'kind'> {
5
5
  /** @default text */
6
6
  kind?: TextButtonKind;
7
7
  /** @default false */
8
+ loading?: boolean;
9
+ /** @default false */
8
10
  underline?: boolean;
9
11
  /** @default medium */
10
12
  size?: TextButtonSize;
@@ -9,4 +9,5 @@ export declare const TextUnderline: Story;
9
9
  export declare const LinkUnderline: Story;
10
10
  export declare const StartIcon: Story;
11
11
  export declare const EndIcon: Story;
12
+ export declare const Loading: Story;
12
13
  export declare const Combination: Story;
@@ -100,6 +100,12 @@ export interface DataTableProps<DataType> {
100
100
  * @default true
101
101
  */
102
102
  cellDisabledStyle?: boolean;
103
+ /**
104
+ * 열 하위에 확장된 Row를 렌더링합니다.
105
+ * - 각 테이블 로우에 고유 key가 존재해야 합니다.
106
+ * - row의 expanded 값으로 row의 확장 여부를 전달합니다.
107
+ */
108
+ renderExpandedRow?: (row: DataType, index: number) => ReactNode | null;
103
109
  /**
104
110
  * Row 배경색을 지정하는 함수 혹은 컬러값을 전달합니다.
105
111
  * hover는 auto code 정책을 따릅니다.
@@ -33,3 +33,4 @@ export declare const WithPagination: Story;
33
33
  export declare const Disabled: Story;
34
34
  export declare const CustomRowColor: Story;
35
35
  export declare const DisabledCellOff: Story;
36
+ export declare const ExpandableRow: Story;
@@ -1,9 +1,9 @@
1
1
  import { Key } from 'react';
2
2
  import { DataTableProps } from './DataTable';
3
3
  import { SelectRowsAction, DataTableRowType } from './types';
4
- export interface DataTableHeaderProps<DataType> extends Pick<DataTableProps<DataType>, 'columns' | 'rows' | 'stickyHeader' | 'sortBy' | 'sortDirection' | 'onSortBy' | 'selectableRows' | 'hideSelectAll' | 'resize'> {
4
+ export interface DataTableHeaderProps<DataType> extends Pick<DataTableProps<DataType>, 'columns' | 'rows' | 'stickyHeader' | 'sortBy' | 'sortDirection' | 'onSortBy' | 'selectableRows' | 'renderExpandedRow' | 'hideSelectAll' | 'resize'> {
5
5
  allSelected?: boolean;
6
6
  selectedRows?: Map<Key, DataTableRowType<DataType>>;
7
7
  onSelectedRows?: (action: SelectRowsAction<DataType>) => void;
8
8
  }
9
- export declare const DataTableHeader: <DataType extends object = any>({ columns, rows, stickyHeader, sortBy, sortDirection, allSelected, selectedRows, selectableRows, hideSelectAll, resize, onSelectedRows, onSortBy, }: DataTableHeaderProps<DataType>) => import("@emotion/react/jsx-runtime").JSX.Element;
9
+ export declare const DataTableHeader: <DataType extends object = any>({ columns, rows, stickyHeader, sortBy, sortDirection, allSelected, selectedRows, selectableRows, renderExpandedRow, hideSelectAll, resize, onSelectedRows, onSortBy, }: DataTableHeaderProps<DataType>) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,3 +1,4 @@
1
+ import { ReactNode } from 'react';
1
2
  import { DataTableColumnsType, DataTableRowsType, DataTableRowType } from './types';
2
3
  import { DataTableProps } from './DataTable';
3
4
  export interface DataTableRowProps<DataType extends object = any> extends Pick<DataTableProps<DataType>, 'selectableRows' | 'clickableRows' | 'cellHoverStyle' | 'cellDisabledStyle' | 'resize'> {
@@ -5,8 +6,11 @@ export interface DataTableRowProps<DataType extends object = any> extends Pick<D
5
6
  columns: DataTableColumnsType<DataType>;
6
7
  index: number;
7
8
  rows: DataTableRowsType<DataType>;
9
+ renderExpandedRow?: (row: DataType, index: number) => ReactNode | null;
8
10
  selected: boolean;
11
+ expanded: boolean;
9
12
  rowColor?: string;
10
13
  onSelectedRow?: (row: DataTableRowType<DataType>, selected: boolean) => void;
14
+ onExpandedRow?: (row: DataTableRowType<DataType>, expanded: boolean) => void;
11
15
  }
12
- export declare const DataTableRow: <DataType extends object = any>({ row, columns, index, rows, selected, rowColor, onSelectedRow, selectableRows, clickableRows, cellHoverStyle, cellDisabledStyle, resize, }: DataTableRowProps<DataType>) => import("@emotion/react/jsx-runtime").JSX.Element;
16
+ export declare const DataTableRow: <DataType extends object = any>({ row, columns, index, rows, selected, expanded, rowColor, onSelectedRow, onExpandedRow, selectableRows, renderExpandedRow, clickableRows, cellHoverStyle, cellDisabledStyle, resize, }: DataTableRowProps<DataType>) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,12 +1,15 @@
1
- import { Key } from 'react';
1
+ import { Key, ReactNode } from 'react';
2
2
  import { DataTableProps } from './DataTable';
3
- import { SelectRowAction, DataTableRowType } from './types';
3
+ import { SelectRowAction, DataTableRowType, ExpandedRowAction } from './types';
4
4
  interface DataTableRowsProps<DataType> extends Pick<DataTableProps<DataType>, 'columns' | 'rows' | 'noDataText' | 'noDataPadding' | 'loading' | 'selectableRows' | 'clickableRows' | 'cellHoverStyle' | 'cellDisabledStyle' | 'resize'> {
5
5
  tableContainerAttribute: number;
6
6
  allSelected?: boolean;
7
7
  selectedRows?: Map<Key, DataTableRowType<DataType>>;
8
+ expandedRows?: Key[];
9
+ renderExpandedRow?: (row: DataType, index: number) => ReactNode | null;
8
10
  rowColor?: (row: DataTableRowType<DataType>, index: number) => (string | undefined) | string;
9
11
  onSelectedRow?: (action: SelectRowAction<DataType>) => void;
12
+ onExpandedRow?: (action: ExpandedRowAction<DataType>) => void;
10
13
  }
11
- export declare const DataTableRows: <DataType extends object = any>({ columns, rows, loading, selectableRows, clickableRows, selectedRows, noDataText, noDataPadding, cellHoverStyle, cellDisabledStyle, tableContainerAttribute, resize, onSelectedRow, rowColor, }: DataTableRowsProps<DataType>) => import("@emotion/react/jsx-runtime").JSX.Element;
14
+ export declare const DataTableRows: <DataType extends object = any>({ columns, rows, loading, selectableRows, clickableRows, selectedRows, expandedRows, noDataText, noDataPadding, cellHoverStyle, cellDisabledStyle, tableContainerAttribute, resize, renderExpandedRow, onSelectedRow, onExpandedRow, rowColor, }: DataTableRowsProps<DataType>) => import("@emotion/react/jsx-runtime").JSX.Element;
12
15
  export {};
@@ -1,2 +1,3 @@
1
1
  export declare const COLUMN_MIN_WIDTH = 48;
2
2
  export declare const COLUMN_MIN_HEIGHT = 48;
3
+ export declare const EXPAND_COLUMN_WIDTH = 52;
@@ -0,0 +1,13 @@
1
+ import React, { Key } from 'react';
2
+ export interface ExpandTableDataType {
3
+ key?: Key;
4
+ order: number;
5
+ status: React.ReactNode;
6
+ qty: number;
7
+ price: number;
8
+ assignee: string;
9
+ started_at: string;
10
+ completed_at: string;
11
+ }
12
+ export declare const ExpandComponent: () => import("@emotion/react/jsx-runtime").JSX.Element;
13
+ export declare const ExpandComponent2: () => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -3,6 +3,7 @@ import { DataTableColumnsType, DataTableRowsType } from '../index';
3
3
  export interface DataType {
4
4
  key?: Key;
5
5
  disabled?: boolean;
6
+ expandable?: boolean;
6
7
  id: number;
7
8
  image?: string;
8
9
  name: string;
@@ -18,6 +19,7 @@ export declare const customColumns: DataTableColumnsType<DataType>;
18
19
  export declare const customWidthColumns: DataTableColumnsType<DataType>;
19
20
  export declare const customColumnCell: DataTableColumnsType<DataType>;
20
21
  export declare const customRowCellColumns: DataTableColumnsType<DataType>;
22
+ export declare const fixedExpandRowCellColumns: DataTableColumnsType<DataType>;
21
23
  export declare const groupColumns: DataTableColumnsType<DataType>;
22
24
  export declare const groupRows: DataTableRowsType<DataType>;
23
25
  export declare const SpanColumns: DataTableColumnsType<DataType>;
@@ -28,3 +30,4 @@ export declare const selectionRows2: DataTableRowsType<DataType>;
28
30
  export declare const sortColumns: DataTableColumnsType<DataType>;
29
31
  export declare const customRowStyleColumns: DataTableColumnsType<DataType>;
30
32
  export declare const comprehensiveCustomColumns: DataTableColumnsType<DataType>;
33
+ export declare const ExpandRows: DataTableRowsType<DataType>;
@@ -91,6 +91,7 @@ export type DataTableRowType<DataType> = DataType & {
91
91
  * 테이블 로우의 disabled 여부를 지정합니다. selectable 보다 우선합니다.
92
92
  */
93
93
  disabled?: boolean;
94
+ expandable?: boolean;
94
95
  };
95
96
  export type DataTableRowsType<DataType = unknown> = Array<DataTableRowType<DataType>>;
96
97
  export interface DataTableState<DataType = unknown> {
@@ -98,6 +99,7 @@ export interface DataTableState<DataType = unknown> {
98
99
  selectedRows?: Map<Key, DataTableRowType<DataType>>;
99
100
  emitSelectedEvent?: boolean;
100
101
  autoResetRowSelection?: boolean;
102
+ expandedRows?: Key[];
101
103
  }
102
104
  export interface SelectRowsAction<DataType> {
103
105
  type: 'SELECT_ROWS';
@@ -121,4 +123,9 @@ export interface CheckAllSelectedRowsAction<DataType> {
121
123
  type: 'CHECK_ALL_SELECTED_ROWS';
122
124
  rows: DataTableRowsType<DataType>;
123
125
  }
124
- export type DataTableAction<DataType> = SelectRowsAction<DataType> | SelectRowAction<DataType> | SelectControlledRowAction<DataType> | ResetSelectRowsAction | CheckAllSelectedRowsAction<DataType>;
126
+ export interface ExpandedRowAction<DataType> {
127
+ type: 'EXPAND_ROW';
128
+ row: DataTableRowType<DataType>;
129
+ expanded: boolean;
130
+ }
131
+ export type DataTableAction<DataType> = SelectRowsAction<DataType> | SelectRowAction<DataType> | SelectControlledRowAction<DataType> | ResetSelectRowsAction | CheckAllSelectedRowsAction<DataType> | ExpandedRowAction<DataType>;
@@ -6,5 +6,5 @@ export interface UseTableColumnsProps<DataType> {
6
6
  export declare function getColGroup<DataType>({ columns }: UseTableColumnsProps<DataType>): any[];
7
7
  export declare function getGroupColumns<DataType>({ columns }: UseTableColumnsProps<DataType>): DataTableColumnsType<DataType>;
8
8
  export declare function getFlattenColumns<DataType>({ columns, }: UseTableColumnsProps<DataType>): DataTableColumnsType<DataType>;
9
- export declare function getFixedMergeColumn<DataType>(columns: DataTableColumnsType<DataType>, selectableRows: boolean, columnCount: number): number;
9
+ export declare function getFixedMergeColumn<DataType>(columns: DataTableColumnsType<DataType>, selectableRows: boolean, columnCount: number, renderExpandedRow: boolean): number;
10
10
  export declare function getRowsKey<DataType>(rows: DataTableRowsType<DataType>): Key[];