@noraent/nora-datagrid 1.1.0-beta.30 → 1.1.0-beta.31

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/README.md CHANGED
@@ -94,6 +94,63 @@ const gridTheme = createTheme({
94
94
 
95
95
  `Row.selected.background`을 생략하면 `palette.primary.main`에 10% 투명도를 적용합니다. `primary.main`에는 HEX뿐 아니라 `var(--grid-primary)` 같은 CSS 색상 표현식도 사용할 수 있습니다.
96
96
 
97
+ ### 컬럼 크기 설정
98
+
99
+ 고정 너비와 반응형 flex 컬럼을 함께 사용할 수 있습니다. `width`, `minWidth`, `maxWidth`의 단위는 px입니다.
100
+
101
+ ```tsx
102
+ const columns = [
103
+ { fieldId: "id", fieldName: "ID", width: 100 },
104
+ { fieldId: "name", fieldName: "이름", flex: 1, minWidth: 120 },
105
+ { fieldId: "description", fieldName: "설명", flex: 2, minWidth: 160, maxWidth: 500 },
106
+ ];
107
+ ```
108
+
109
+ Grid 최초 렌더링 시 전체 폭 또는 콘텐츠에 맞추려면 `autoSizeStrategy`를 사용합니다.
110
+
111
+ ```tsx
112
+ <DataGrid
113
+ columns={columns}
114
+ dataSource={rows}
115
+ autoSizeStrategy={{ type: "fitGridWidth", defaultMinWidth: 80 }}
116
+ />
117
+
118
+ <DataGrid
119
+ columns={columns}
120
+ dataSource={rows}
121
+ autoSizeStrategy={{
122
+ type: "fitCellContents",
123
+ includeHeader: true,
124
+ scaleUpToFitGridWidth: true,
125
+ }}
126
+ />
127
+ ```
128
+
129
+ 원하는 시점에 API로 다시 계산할 수도 있습니다.
130
+
131
+ ```ts
132
+ const gridRef = useGridApiRef();
133
+
134
+ gridRef.current.sizeColumnsToFit({ defaultMinWidth: 80 });
135
+ gridRef.current.autoSizeColumns(["name", "description"], {
136
+ includeHeader: true,
137
+ scaleUpToFitGridWidth: true,
138
+ });
139
+ ```
140
+
141
+ `renderCell`이 문자열이 아닌 커스텀 UI를 반환한다면 측정에 사용할 값을 `getAutoSizeValue`로 지정할 수 있습니다.
142
+
143
+ ```ts
144
+ {
145
+ fieldId: "status",
146
+ fieldName: "상태",
147
+ renderCell: ({ value }) => <StatusChip value={value} />,
148
+ getAutoSizeValue: ({ value }) => String(value),
149
+ }
150
+ ```
151
+
152
+ 사용자가 flex 컬럼의 resize handle을 드래그하면 해당 컬럼은 고정 너비 컬럼으로 전환됩니다. `suppressSizeToFit: true`인 컬럼은 `fitGridWidth` 실행 시 현재 너비를 유지합니다.
153
+
97
154
  ## 🚀 Build Setup
98
155
 
99
156
  ### install
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noraent/nora-datagrid",
3
- "version": "1.1.0-beta.30",
3
+ "version": "1.1.0-beta.31",
4
4
  "module": "./dist/nora_datagrid.es.js",
5
5
  "main": "./dist/nora_datagrid.cjs.js",
6
6
  "private": false,
@@ -0,0 +1,11 @@
1
+ import { DataGridColumns, DataGridPrivateColumnModel, DataGridPrivateDataSourceModel, FitCellContentsOptions, FitGridWidthOptions } from '../../types/dataGridCoreProps';
2
+ export declare const CHECKBOX_COLUMN_WIDTH = 40;
3
+ export declare const GRID_SCROLLBAR_SIZE = 14;
4
+ export declare function normalizeColumnWidth(width: string | number | undefined): number;
5
+ export declare function getColumnWidth(column: Pick<DataGridPrivateColumnModel, "width" | "__computedWidth">): number;
6
+ export declare function clampColumnWidth(column: DataGridPrivateColumnModel, width: number, defaultMinWidth?: number): number;
7
+ export declare function resizeColumn(columns: DataGridColumns, columnIndex: number, requestedWidth: number): DataGridColumns;
8
+ export declare function resolveFlexColumnWidths(columns: DataGridColumns, availableWidth: number): DataGridColumns;
9
+ export declare function fitColumnsToGridWidth(columns: DataGridColumns, availableWidth: number, options?: FitGridWidthOptions): DataGridColumns;
10
+ export declare function fitColumnsToCellContents(columns: DataGridColumns, rows: DataGridPrivateDataSourceModel[], options?: FitCellContentsOptions, fieldIds?: string[], root?: HTMLElement | null, availableWidth?: number): DataGridColumns;
11
+ export declare function haveSameComputedWidths(left: DataGridColumns, right: DataGridColumns): boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};