velox-grid 0.11.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 +483 -0
- package/README.md +755 -0
- package/dist/react/index.esm.js +3757 -0
- package/dist/react/index.esm.js.map +1 -0
- package/dist/react/index.js +7 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/react/VeloxGridReact.d.ts +33 -0
- package/dist/react/react/VeloxGridReact.d.ts.map +1 -0
- package/dist/react/react/index.d.ts +9 -0
- package/dist/react/react/index.d.ts.map +1 -0
- package/dist/react/react/types.d.ts +52 -0
- package/dist/react/react/types.d.ts.map +1 -0
- package/dist/react/react/useVeloxGrid.d.ts +23 -0
- package/dist/react/react/useVeloxGrid.d.ts.map +1 -0
- package/dist/react/types/index.d.ts +878 -0
- package/dist/react/types/index.d.ts.map +1 -0
- package/dist/types/core/GridColumnMenu.d.ts +35 -0
- package/dist/types/core/GridColumnMenu.d.ts.map +1 -0
- package/dist/types/core/GridDragManager.d.ts +83 -0
- package/dist/types/core/GridDragManager.d.ts.map +1 -0
- package/dist/types/core/GridEditorFactory.d.ts +33 -0
- package/dist/types/core/GridEditorFactory.d.ts.map +1 -0
- package/dist/types/core/GridFilterPopup.d.ts +43 -0
- package/dist/types/core/GridFilterPopup.d.ts.map +1 -0
- package/dist/types/core/GridHistory.d.ts +84 -0
- package/dist/types/core/GridHistory.d.ts.map +1 -0
- package/dist/types/core/GridRenderer.d.ts +73 -0
- package/dist/types/core/GridRenderer.d.ts.map +1 -0
- package/dist/types/core/GridSummary.d.ts +98 -0
- package/dist/types/core/GridSummary.d.ts.map +1 -0
- package/dist/types/core/GridTooltip.d.ts +43 -0
- package/dist/types/core/GridTooltip.d.ts.map +1 -0
- package/dist/types/core/GridValidator.d.ts +63 -0
- package/dist/types/core/GridValidator.d.ts.map +1 -0
- package/dist/types/core/VeloxGrid.d.ts +437 -0
- package/dist/types/core/VeloxGrid.d.ts.map +1 -0
- package/dist/types/core/index.d.ts +15 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/react/VeloxGridReact.d.ts +40 -0
- package/dist/types/react/VeloxGridReact.d.ts.map +1 -0
- package/dist/types/react/index.d.ts +9 -0
- package/dist/types/react/index.d.ts.map +1 -0
- package/dist/types/react/types.d.ts +55 -0
- package/dist/types/react/types.d.ts.map +1 -0
- package/dist/types/react/useVeloxGrid.d.ts +54 -0
- package/dist/types/react/useVeloxGrid.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +878 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/data.d.ts +41 -0
- package/dist/types/utils/data.d.ts.map +1 -0
- package/dist/types/utils/dom.d.ts +13 -0
- package/dist/types/utils/dom.d.ts.map +1 -0
- package/dist/types/utils/export.d.ts +60 -0
- package/dist/types/utils/export.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +4 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/vue/index.d.ts +9 -0
- package/dist/types/vue/index.d.ts.map +1 -0
- package/dist/types/vue/types.d.ts +68 -0
- package/dist/types/vue/types.d.ts.map +1 -0
- package/dist/types/vue/useVeloxGrid.d.ts +49 -0
- package/dist/types/vue/useVeloxGrid.d.ts.map +1 -0
- package/dist/velox-grid.css +1 -0
- package/dist/velox-grid.esm.js +3387 -0
- package/dist/velox-grid.esm.js.map +1 -0
- package/dist/velox-grid.iife.js +14 -0
- package/dist/velox-grid.iife.js.map +1 -0
- package/dist/velox-grid.js +14 -0
- package/dist/velox-grid.js.map +1 -0
- package/dist/vue/index.esm.js +3754 -0
- package/dist/vue/index.esm.js.map +1 -0
- package/dist/vue/index.js +7 -0
- package/dist/vue/index.js.map +1 -0
- package/dist/vue/types/index.d.ts +878 -0
- package/dist/vue/types/index.d.ts.map +1 -0
- package/dist/vue/vue/index.d.ts +9 -0
- package/dist/vue/vue/index.d.ts.map +1 -0
- package/dist/vue/vue/types.d.ts +65 -0
- package/dist/vue/vue/types.d.ts.map +1 -0
- package/dist/vue/vue/useVeloxGrid.d.ts +21 -0
- package/dist/vue/vue/useVeloxGrid.d.ts.map +1 -0
- package/package.json +120 -0
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VeloxGrid - Core Grid Class v6.0
|
|
3
|
+
*
|
|
4
|
+
* A lightweight, high-performance data grid library
|
|
5
|
+
*
|
|
6
|
+
* Architecture:
|
|
7
|
+
* - Modular design with delegated components
|
|
8
|
+
* - GridRenderer: Rendering (header, body, cells)
|
|
9
|
+
* - GridFilterPopup: Filter UI
|
|
10
|
+
* - GridColumnMenu: Column context menu
|
|
11
|
+
* - GridDragManager: Column/Row drag & resize
|
|
12
|
+
* - GridHistory: Undo/Redo management
|
|
13
|
+
* - Column caching for performance
|
|
14
|
+
*/
|
|
15
|
+
import type { GridOptions, GridState, RowData, ColumnDefinition, SortState, SortDirection, FilterState, FilterCondition, CellValue, VeloxGridInstance, GridEvents, FilterOperator, CellIndex, Selection, ExportOptions, UndoAction, GridContext, RowStateType, ChangesResult, PaginationState } from '../types';
|
|
16
|
+
import { type ImportResult } from '../utils/export';
|
|
17
|
+
export declare class VeloxGrid implements VeloxGridInstance, GridContext {
|
|
18
|
+
private container;
|
|
19
|
+
private options;
|
|
20
|
+
private state;
|
|
21
|
+
private events;
|
|
22
|
+
private gridId;
|
|
23
|
+
rootElement: HTMLElement;
|
|
24
|
+
headerElement: HTMLElement;
|
|
25
|
+
bodyElement: HTMLElement;
|
|
26
|
+
bodyInner: HTMLElement;
|
|
27
|
+
footerElement: HTMLElement | null;
|
|
28
|
+
fixedLeftFooter: HTMLElement | null;
|
|
29
|
+
loadingOverlay: HTMLElement | null;
|
|
30
|
+
fixedLeftContainer: HTMLElement | null;
|
|
31
|
+
fixedLeftHeader: HTMLElement | null;
|
|
32
|
+
fixedLeftBody: HTMLElement | null;
|
|
33
|
+
fixedLeftBodyInner: HTMLElement | null;
|
|
34
|
+
fixedRightContainer: HTMLElement | null;
|
|
35
|
+
fixedRightHeader: HTMLElement | null;
|
|
36
|
+
fixedRightBody: HTMLElement | null;
|
|
37
|
+
fixedRightBodyInner: HTMLElement | null;
|
|
38
|
+
fixedRightFooter: HTMLElement | null;
|
|
39
|
+
paginationContainer: HTMLElement | null;
|
|
40
|
+
private infiniteScrollLoading;
|
|
41
|
+
private infiniteScrollAllLoaded;
|
|
42
|
+
private blockSelecting;
|
|
43
|
+
private measureCanvas;
|
|
44
|
+
private measureContext;
|
|
45
|
+
private boundHandleBlockSelectionEnd;
|
|
46
|
+
private boundHandleKeyDown;
|
|
47
|
+
private virtualState;
|
|
48
|
+
private dataIndexMap;
|
|
49
|
+
private columnCache;
|
|
50
|
+
private history;
|
|
51
|
+
private tooltip;
|
|
52
|
+
private editModeCleanup;
|
|
53
|
+
private renderer;
|
|
54
|
+
private filterPopupManager;
|
|
55
|
+
private columnMenuManager;
|
|
56
|
+
private dragManager;
|
|
57
|
+
private summary;
|
|
58
|
+
constructor(container: HTMLElement | string, options: GridOptions, events?: GridEvents);
|
|
59
|
+
rebuildDataIndexMap(): void;
|
|
60
|
+
initCheckableRows(): void;
|
|
61
|
+
invalidateColumnCache(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Get special columns with displayOrder
|
|
64
|
+
* Phase 14.1: Helper method to generate special columns sorted by displayOrder
|
|
65
|
+
*/
|
|
66
|
+
private getSpecialColumnsWithOrder;
|
|
67
|
+
/**
|
|
68
|
+
* Get fixed left columns
|
|
69
|
+
* Phase 14: Only include special columns when fixedOptions.colCount > 0
|
|
70
|
+
* Phase 14.1: Sort special columns by displayOrder
|
|
71
|
+
*
|
|
72
|
+
* Logic:
|
|
73
|
+
* - If colCount = 0: Fixed left is empty (special columns go to scrollable)
|
|
74
|
+
* - If colCount > 0: Fixed left = special columns (sorted by displayOrder) + first N data columns
|
|
75
|
+
*/
|
|
76
|
+
getFixedLeftColumns(): ColumnDefinition[];
|
|
77
|
+
/**
|
|
78
|
+
* Get columns fixed to right (based on fixedOptions.rightCount)
|
|
79
|
+
* Phase 14: New method for right fixed columns
|
|
80
|
+
*/
|
|
81
|
+
getFixedRightColumns(): ColumnDefinition[];
|
|
82
|
+
/**
|
|
83
|
+
* Get scrollable columns (middle area between fixed left and fixed right)
|
|
84
|
+
* Phase 14: Include special columns when colCount = 0
|
|
85
|
+
* Phase 14.1: Sort special columns by displayOrder
|
|
86
|
+
*
|
|
87
|
+
* Logic:
|
|
88
|
+
* - If colCount = 0: Scrollable = special columns (sorted by displayOrder) + all data columns (except fixed right)
|
|
89
|
+
* - If colCount > 0: Scrollable = middle data columns only (between fixed left and fixed right)
|
|
90
|
+
*/
|
|
91
|
+
getScrollableColumns(): ColumnDefinition[];
|
|
92
|
+
/**
|
|
93
|
+
* Get data columns (exclude special columns)
|
|
94
|
+
* Phase 14: Helper method to filter out special columns
|
|
95
|
+
*/
|
|
96
|
+
private getDataColumns;
|
|
97
|
+
/**
|
|
98
|
+
* Check if column is special (CheckBar, RowNumbers, DragHandle)
|
|
99
|
+
* Phase 14: Helper method to identify special columns
|
|
100
|
+
*/
|
|
101
|
+
private isSpecialColumn;
|
|
102
|
+
getVisibleColumns(): ColumnDefinition[];
|
|
103
|
+
/**
|
|
104
|
+
* Check if grid has fixed left columns
|
|
105
|
+
* Phase 14: Only true when fixedOptions.colCount > 0
|
|
106
|
+
*/
|
|
107
|
+
hasFixedLeft(): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Check if grid has fixed right columns
|
|
110
|
+
* Phase 14: New method for hasFixedRight
|
|
111
|
+
*/
|
|
112
|
+
hasFixedRight(): boolean;
|
|
113
|
+
private build;
|
|
114
|
+
private buildLoadingOverlay;
|
|
115
|
+
calculateVirtualState(): void;
|
|
116
|
+
getVisibleRows(): {
|
|
117
|
+
data: RowData;
|
|
118
|
+
index: number;
|
|
119
|
+
}[];
|
|
120
|
+
render(): void;
|
|
121
|
+
renderHeader(): void;
|
|
122
|
+
renderBody(): void;
|
|
123
|
+
updateLoadingState(): void;
|
|
124
|
+
showFilterPopup(column: ColumnDefinition, anchor: HTMLElement): void;
|
|
125
|
+
closeFilterPopup(): void;
|
|
126
|
+
applyColumnFilter(field: string, operator: FilterOperator, value: CellValue): void;
|
|
127
|
+
removeColumnFilter(field: string): void;
|
|
128
|
+
private scrollHandlers;
|
|
129
|
+
private wheelHandler;
|
|
130
|
+
private detachEvents;
|
|
131
|
+
private attachEvents;
|
|
132
|
+
handleSort(field: string): void;
|
|
133
|
+
handleRowClick(rowIndex: number, e: MouseEvent): void;
|
|
134
|
+
handleRowSelection(rowIndex: number, e: MouseEvent): void;
|
|
135
|
+
handleCellClick(rowIndex: number, field: string, value: CellValue, e: MouseEvent): void;
|
|
136
|
+
handleCellSelection(rowIndex: number, field: string, e: MouseEvent): void;
|
|
137
|
+
selectCellRange(startRow: number, startField: string, endRow: number, endField: string): void;
|
|
138
|
+
startBlockSelection(rowIndex: number, field: string): void;
|
|
139
|
+
updateBlockSelection(rowIndex: number, field: string): void;
|
|
140
|
+
handleBlockSelectionEnd(): void;
|
|
141
|
+
handleRowDoubleClick(rowIndex: number, _e: MouseEvent): void;
|
|
142
|
+
handleKeyDown(e: KeyboardEvent): void;
|
|
143
|
+
private selectAllCells;
|
|
144
|
+
startResize(e: MouseEvent, column: ColumnDefinition): void;
|
|
145
|
+
applyDataTransformations(): void;
|
|
146
|
+
/**
|
|
147
|
+
* Clear all selection state (rows, cells, focused cell)
|
|
148
|
+
* Extracted to reduce code duplication
|
|
149
|
+
*/
|
|
150
|
+
clearSelectionState(): void;
|
|
151
|
+
getData(): RowData[];
|
|
152
|
+
setData(data: RowData[]): void;
|
|
153
|
+
getRow(index: number): RowData | null;
|
|
154
|
+
getRowCount(): number;
|
|
155
|
+
getVisibleRowCount(): number;
|
|
156
|
+
addRow(row: RowData, index?: number): void;
|
|
157
|
+
updateRow(index: number, data: Partial<RowData>): void;
|
|
158
|
+
removeRow(index: number): void;
|
|
159
|
+
clearData(): void;
|
|
160
|
+
getSelectedRows(): number[];
|
|
161
|
+
getSelectedData(): RowData[];
|
|
162
|
+
selectRow(index: number, selected?: boolean): void;
|
|
163
|
+
selectAll(selected?: boolean): void;
|
|
164
|
+
clearSelection(): void;
|
|
165
|
+
isRowSelected(index: number): boolean;
|
|
166
|
+
selectCell(rowIndex: number, field: string, selected?: boolean): void;
|
|
167
|
+
getSelectedCells(): CellIndex[];
|
|
168
|
+
setFocusedCell(rowIndex: number, field: string): void;
|
|
169
|
+
getFocusedCell(): CellIndex | null;
|
|
170
|
+
setSelection(selection: Selection): void;
|
|
171
|
+
getSelection(): Selection | null;
|
|
172
|
+
getSelectionData(): CellValue[][];
|
|
173
|
+
checkItem(index: number, checked?: boolean): void;
|
|
174
|
+
checkItems(indices: number[], checked?: boolean): void;
|
|
175
|
+
checkAll(checked?: boolean): void;
|
|
176
|
+
uncheckAll(): void;
|
|
177
|
+
getCheckedItems(): number[];
|
|
178
|
+
getCheckedData(): RowData[];
|
|
179
|
+
isItemChecked(index: number): boolean;
|
|
180
|
+
isItemCheckable(index: number): boolean;
|
|
181
|
+
checkRow(index: number, checked?: boolean): void;
|
|
182
|
+
getCheckedRows(): number[];
|
|
183
|
+
sort(field: string, direction?: SortDirection): void;
|
|
184
|
+
clearSort(): void;
|
|
185
|
+
getSortState(): SortState[];
|
|
186
|
+
filter(conditions: FilterCondition | FilterCondition[]): void;
|
|
187
|
+
clearFilter(): void;
|
|
188
|
+
getFilterState(): FilterState | null;
|
|
189
|
+
startEdit(rowIndex: number, field: string): void;
|
|
190
|
+
renderEditCell(rowIndex: number, field: string, value: CellValue): void;
|
|
191
|
+
endEdit(save?: boolean): void;
|
|
192
|
+
cancelEdit(): void;
|
|
193
|
+
isEditing(): boolean;
|
|
194
|
+
/**
|
|
195
|
+
* End edit and move to adjacent cell (Phase 9)
|
|
196
|
+
*/
|
|
197
|
+
private endEditAndMove;
|
|
198
|
+
getColumn(field: string): ColumnDefinition | null;
|
|
199
|
+
setColumnWidth(field: string, width: number): void;
|
|
200
|
+
showColumn(field: string): void;
|
|
201
|
+
hideColumn(field: string): void;
|
|
202
|
+
setColumns(columns: ColumnDefinition[]): void;
|
|
203
|
+
autoFitColumn(field: string): void;
|
|
204
|
+
autoFitAllColumns(): void;
|
|
205
|
+
measureTextWidth(text: string, font?: string): number;
|
|
206
|
+
scrollToRow(index: number): void;
|
|
207
|
+
scrollToTop(): void;
|
|
208
|
+
scrollToBottom(): void;
|
|
209
|
+
scrollToCell(rowIndex: number, field: string): void;
|
|
210
|
+
copy(): void;
|
|
211
|
+
paste(): void;
|
|
212
|
+
cut(): void;
|
|
213
|
+
pushUndo(action: UndoAction): void;
|
|
214
|
+
undo(): boolean;
|
|
215
|
+
redo(): boolean;
|
|
216
|
+
canUndo(): boolean;
|
|
217
|
+
canRedo(): boolean;
|
|
218
|
+
clearHistory(): void;
|
|
219
|
+
deleteSelectedCells(): void;
|
|
220
|
+
deleteSelectedRows(): void;
|
|
221
|
+
private createExportContext;
|
|
222
|
+
/**
|
|
223
|
+
* Export grid data to Excel (.xlsx) file
|
|
224
|
+
* Requires SheetJS library to be loaded via CDN:
|
|
225
|
+
* <script src="https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js"></script>
|
|
226
|
+
*/
|
|
227
|
+
exportToExcel(options?: ExportOptions): void;
|
|
228
|
+
/**
|
|
229
|
+
* Export grid data to CSV format
|
|
230
|
+
* @returns CSV string
|
|
231
|
+
*/
|
|
232
|
+
exportToCSV(options?: ExportOptions): string;
|
|
233
|
+
/**
|
|
234
|
+
* Export grid data to JSON format
|
|
235
|
+
* @returns JSON string
|
|
236
|
+
*/
|
|
237
|
+
exportToJSON(options?: ExportOptions): string;
|
|
238
|
+
/**
|
|
239
|
+
* Download grid data as CSV file
|
|
240
|
+
*/
|
|
241
|
+
downloadCSV(options?: ExportOptions): void;
|
|
242
|
+
/**
|
|
243
|
+
* Download grid data as JSON file
|
|
244
|
+
*/
|
|
245
|
+
downloadJSON(options?: ExportOptions): void;
|
|
246
|
+
/**
|
|
247
|
+
* Import data from CSV string
|
|
248
|
+
* @param csvString CSV content
|
|
249
|
+
* @param hasHeader Whether first row is header (default: true)
|
|
250
|
+
*/
|
|
251
|
+
importFromCSV(csvString: string, hasHeader?: boolean): ImportResult;
|
|
252
|
+
/**
|
|
253
|
+
* Import data from Excel file
|
|
254
|
+
* Requires SheetJS library to be loaded via CDN
|
|
255
|
+
* @param file Excel file (File object)
|
|
256
|
+
* @param sheetIndex Sheet index to import (default: 0)
|
|
257
|
+
*/
|
|
258
|
+
importFromExcel(file: File, sheetIndex?: number): Promise<ImportResult>;
|
|
259
|
+
/**
|
|
260
|
+
* Check if SheetJS library is available for Excel operations
|
|
261
|
+
*/
|
|
262
|
+
static isExcelSupported(): boolean;
|
|
263
|
+
getCellValue(rowIndex: number, field: string): CellValue;
|
|
264
|
+
setCellValue(rowIndex: number, field: string, value: CellValue): void;
|
|
265
|
+
/**
|
|
266
|
+
* Get summary value for a specific field
|
|
267
|
+
* @param field Column field name
|
|
268
|
+
* @returns Calculated summary value
|
|
269
|
+
*/
|
|
270
|
+
getSummaryValue(field: string): CellValue;
|
|
271
|
+
/**
|
|
272
|
+
* Get all summary values
|
|
273
|
+
* @returns Object with field names as keys and summary values
|
|
274
|
+
*/
|
|
275
|
+
getSummaryValues(): Record<string, CellValue>;
|
|
276
|
+
/**
|
|
277
|
+
* Refresh summary calculations (clear cache)
|
|
278
|
+
*/
|
|
279
|
+
refreshSummary(): void;
|
|
280
|
+
setOptions(options: Partial<GridOptions>): void;
|
|
281
|
+
getOptions(): GridOptions;
|
|
282
|
+
setLoading(loading: boolean): void;
|
|
283
|
+
refresh(): void;
|
|
284
|
+
/**
|
|
285
|
+
* Fix/unfix column to a position
|
|
286
|
+
*/
|
|
287
|
+
fixColumn(field: string, position: 'left' | 'right' | false): void;
|
|
288
|
+
/**
|
|
289
|
+
* Reorder column to new position
|
|
290
|
+
*/
|
|
291
|
+
reorderColumn(sourceField: string, targetField: string): void;
|
|
292
|
+
showColumnMenu(column: ColumnDefinition, anchor: HTMLElement): void;
|
|
293
|
+
closeColumnMenu(): void;
|
|
294
|
+
startColumnDrag(e: MouseEvent, column: ColumnDefinition): void;
|
|
295
|
+
/**
|
|
296
|
+
* Move row to new position
|
|
297
|
+
*/
|
|
298
|
+
moveRow(fromIndex: number, toIndex: number): void;
|
|
299
|
+
startRowDrag(e: MouseEvent, rowIndex: number, rowElement: HTMLElement): void;
|
|
300
|
+
/** GridContext: 그리드 상태 반환 */
|
|
301
|
+
getState(): GridState;
|
|
302
|
+
/** GridContext: 이벤트 핸들러 반환 */
|
|
303
|
+
getEvents(): GridEvents;
|
|
304
|
+
/** GridContext: 그리드 고유 ID 반환 */
|
|
305
|
+
getGridId(): string;
|
|
306
|
+
/** GridContext: 표시 데이터 반환 */
|
|
307
|
+
getDisplayData(): RowData[];
|
|
308
|
+
/** GridContext: 가상 스크롤 상태 반환 */
|
|
309
|
+
getVirtualState(): typeof this.virtualState;
|
|
310
|
+
/** GridContext: 이벤트 발행 헬퍼 */
|
|
311
|
+
emitEvent<K extends keyof GridEvents>(event: K, ...args: Parameters<NonNullable<GridEvents[K]>>): void;
|
|
312
|
+
/** GridContext: Block selection 상태 확인 */
|
|
313
|
+
isBlockSelecting(): boolean;
|
|
314
|
+
/** GridContext: Tooltip 표시 */
|
|
315
|
+
showTooltip(cell: HTMLElement, value: CellValue, rowData: RowData, column: ColumnDefinition): void;
|
|
316
|
+
/** GridContext: Tooltip 숨기기 */
|
|
317
|
+
hideTooltip(): void;
|
|
318
|
+
/**
|
|
319
|
+
* Set fixed columns options
|
|
320
|
+
* @param options - Fixed options (colCount, rightCount)
|
|
321
|
+
*/
|
|
322
|
+
setFixedOptions(options: import('../types').FixedOptions): void;
|
|
323
|
+
/**
|
|
324
|
+
* Rebuild DOM structure and re-attach events
|
|
325
|
+
* Phase 14: For dynamic fixed columns
|
|
326
|
+
*/
|
|
327
|
+
private rebuildDOM;
|
|
328
|
+
/**
|
|
329
|
+
* Get current fixed columns options
|
|
330
|
+
* @returns Fixed options
|
|
331
|
+
*/
|
|
332
|
+
getFixedOptions(): import('../types').FixedOptions;
|
|
333
|
+
/**
|
|
334
|
+
* Get row state by display index
|
|
335
|
+
* @param index - Display index (in displayData array)
|
|
336
|
+
* @returns Row state type
|
|
337
|
+
*/
|
|
338
|
+
getRowState(index: number): RowStateType;
|
|
339
|
+
/**
|
|
340
|
+
* Get row state by row data object
|
|
341
|
+
* @param row - Row data object
|
|
342
|
+
* @returns Row state type
|
|
343
|
+
*/
|
|
344
|
+
getRowStateByData(row: RowData): RowStateType;
|
|
345
|
+
/**
|
|
346
|
+
* Set row state manually
|
|
347
|
+
* @param index - Display index
|
|
348
|
+
* @param state - New state
|
|
349
|
+
*/
|
|
350
|
+
setRowState(index: number, state: RowStateType): void;
|
|
351
|
+
/**
|
|
352
|
+
* Get all changes (created, updated, deleted rows)
|
|
353
|
+
* @returns Changes result with separated arrays
|
|
354
|
+
*/
|
|
355
|
+
getChanges(): ChangesResult;
|
|
356
|
+
/**
|
|
357
|
+
* Get newly created rows
|
|
358
|
+
* @returns Array of created rows
|
|
359
|
+
*/
|
|
360
|
+
getCreatedRows(): RowData[];
|
|
361
|
+
/**
|
|
362
|
+
* Get updated rows
|
|
363
|
+
* @returns Array of updated rows
|
|
364
|
+
*/
|
|
365
|
+
getUpdatedRows(): RowData[];
|
|
366
|
+
/**
|
|
367
|
+
* Get deleted rows (marked for deletion)
|
|
368
|
+
* @returns Array of deleted rows
|
|
369
|
+
*/
|
|
370
|
+
getDeletedRows(): RowData[];
|
|
371
|
+
/**
|
|
372
|
+
* Clear all row states (reset to 'none')
|
|
373
|
+
*/
|
|
374
|
+
clearRowStates(): void;
|
|
375
|
+
/**
|
|
376
|
+
* Commit changes (mark all rows as 'none')
|
|
377
|
+
* This is typically called after successfully saving changes to server
|
|
378
|
+
*/
|
|
379
|
+
commit(): void;
|
|
380
|
+
/**
|
|
381
|
+
* Remote 데이터 소스 여부 확인
|
|
382
|
+
*/
|
|
383
|
+
isRemoteDataSource(): boolean;
|
|
384
|
+
/**
|
|
385
|
+
* 페이지네이션 상태 조회
|
|
386
|
+
*/
|
|
387
|
+
getPaginationState(): PaginationState;
|
|
388
|
+
/**
|
|
389
|
+
* 특정 페이지로 이동
|
|
390
|
+
* @param page - 이동할 페이지 번호 (1-based)
|
|
391
|
+
*/
|
|
392
|
+
goToPage(page: number): void;
|
|
393
|
+
/**
|
|
394
|
+
* 페이지 크기 변경
|
|
395
|
+
* @param pageSize - 새 페이지 크기
|
|
396
|
+
*/
|
|
397
|
+
setPageSize(pageSize: number): void;
|
|
398
|
+
/**
|
|
399
|
+
* 서버에서 데이터 가져오기 (remote 모드)
|
|
400
|
+
*/
|
|
401
|
+
fetchData(): Promise<void>;
|
|
402
|
+
/**
|
|
403
|
+
* 전체 페이지 수 재계산
|
|
404
|
+
*/
|
|
405
|
+
private updateTotalPages;
|
|
406
|
+
/**
|
|
407
|
+
* 로컬 데이터에 페이지네이션 적용
|
|
408
|
+
* sort/filter 적용 후 현재 페이지 데이터만 displayData에 설정
|
|
409
|
+
*/
|
|
410
|
+
private applyLocalPagination;
|
|
411
|
+
/**
|
|
412
|
+
* Infinite Scroll: 스크롤 바닥 감지 (Phase 18)
|
|
413
|
+
*/
|
|
414
|
+
private checkInfiniteScroll;
|
|
415
|
+
/**
|
|
416
|
+
* Infinite Scroll: 다음 페이지 로드 (Phase 18)
|
|
417
|
+
*/
|
|
418
|
+
private loadNextPage;
|
|
419
|
+
/**
|
|
420
|
+
* Local Infinite Scroll: 다음 페이지 데이터 추가 (Phase 18)
|
|
421
|
+
*/
|
|
422
|
+
private applyLocalInfiniteScroll;
|
|
423
|
+
/**
|
|
424
|
+
* Infinite Scroll 상태 표시 렌더링 (Phase 18)
|
|
425
|
+
*/
|
|
426
|
+
private renderInfiniteScrollStatus;
|
|
427
|
+
/**
|
|
428
|
+
* Pagination UI 렌더링 (Phase 18)
|
|
429
|
+
*/
|
|
430
|
+
private renderPagination;
|
|
431
|
+
/**
|
|
432
|
+
* 페이지 버튼 생성 헬퍼 (Phase 18)
|
|
433
|
+
*/
|
|
434
|
+
private createPageButton;
|
|
435
|
+
destroy(): void;
|
|
436
|
+
}
|
|
437
|
+
//# sourceMappingURL=VeloxGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VeloxGrid.d.ts","sourceRoot":"","sources":["../../../src/core/VeloxGrid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VeloxGrid Core Module Exports
|
|
3
|
+
*/
|
|
4
|
+
export { VeloxGrid } from './VeloxGrid';
|
|
5
|
+
export { GridHistory } from './GridHistory';
|
|
6
|
+
export { GridValidator } from './GridValidator';
|
|
7
|
+
export { GridEditorFactory } from './GridEditorFactory';
|
|
8
|
+
export { GridTooltip } from './GridTooltip';
|
|
9
|
+
export { GridRenderer } from './GridRenderer';
|
|
10
|
+
export { GridFilterPopup } from './GridFilterPopup';
|
|
11
|
+
export { GridColumnMenu } from './GridColumnMenu';
|
|
12
|
+
export { GridDragManager } from './GridDragManager';
|
|
13
|
+
export { GridSummary } from './GridSummary';
|
|
14
|
+
export type { HistoryOptions } from './GridHistory';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VeloxGrid
|
|
3
|
+
* A fast, lightweight, and framework-agnostic data grid library
|
|
4
|
+
*
|
|
5
|
+
* @author bumki
|
|
6
|
+
* @license MIT
|
|
7
|
+
* @version 0.9.1
|
|
8
|
+
*/
|
|
9
|
+
export { VeloxGrid } from './core';
|
|
10
|
+
export type { ValueType, CellValue, RowData, ColumnDefinition, GridOptions, SortDirection, SortState, FilterOperator, FilterCondition, FilterState, SelectionState, SelectionMode, SelectionStyle, CellIndex, Selection, CheckBarOptions, CheckBarState, RowNumbersOptions, RowDragOptions, RowStateType, RowStateManager, ChangesResult, EditState, CellEditEvent, ExportOptions, ImportResult, GridEvents, VeloxGridInstance, GridState, RenderContext, } from './types';
|
|
11
|
+
export { createElement, addClass, removeClass, toggleClass, hasClass, setStyles, throttle, debounce, } from './utils/dom';
|
|
12
|
+
export { deepClone, generateId, formatValue, parseValue, compareValues, sortData, filterData, escapeHtml, } from './utils/data';
|
|
13
|
+
export { exportToExcel, exportToCSV, exportToJSON, downloadFile, downloadCSV, downloadJSON, parseCSV, importFromExcel, importFromExcelBySheetName, isSheetJSAvailable, type ExportContext, } from './utils/export';
|
|
14
|
+
import './styles/velox-grid.css';
|
|
15
|
+
export declare const VERSION = "0.11.0";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,YAAY,EAEV,SAAS,EACT,SAAS,EACT,OAAO,EAGP,gBAAgB,EAGhB,WAAW,EAGX,aAAa,EACb,SAAS,EACT,cAAc,EACd,eAAe,EACf,WAAW,EAGX,cAAc,EACd,aAAa,EACb,cAAc,EACd,SAAS,EACT,SAAS,EACT,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,EAGd,YAAY,EACZ,eAAe,EACf,aAAa,EAGb,SAAS,EACT,aAAa,EAGb,aAAa,EACb,YAAY,EAGZ,UAAU,EAGV,iBAAiB,EAGjB,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,QAAQ,EACR,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,yBAAyB,CAAC;AAGjC,eAAO,MAAM,OAAO,WAAW,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VeloxGrid React Component
|
|
3
|
+
* @description React wrapper for VeloxGrid
|
|
4
|
+
* Phase 17: Framework Wrappers (React)
|
|
5
|
+
*
|
|
6
|
+
* GridOptions를 Props로 전달하고, GridEvents를 콜백으로 바인딩합니다.
|
|
7
|
+
* ref를 통해 VeloxGrid 인스턴스의 모든 public 메서드에 접근할 수 있습니다.
|
|
8
|
+
*/
|
|
9
|
+
import type { VeloxGridReactProps, VeloxGridReactRef } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* VeloxGridReact 컴포넌트
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { VeloxGridReact } from 'velox-grid/react';
|
|
16
|
+
*
|
|
17
|
+
* function App() {
|
|
18
|
+
* const gridRef = useRef<VeloxGridReactRef>(null);
|
|
19
|
+
*
|
|
20
|
+
* return (
|
|
21
|
+
* <VeloxGridReact
|
|
22
|
+
* ref={gridRef}
|
|
23
|
+
* columns={[
|
|
24
|
+
* { field: 'name', header: 'Name', width: 150 },
|
|
25
|
+
* { field: 'age', header: 'Age', type: 'number', width: 80 },
|
|
26
|
+
* ]}
|
|
27
|
+
* data={[
|
|
28
|
+
* { name: 'Alice', age: 30 },
|
|
29
|
+
* { name: 'Bob', age: 25 },
|
|
30
|
+
* ]}
|
|
31
|
+
* height={400}
|
|
32
|
+
* editable={true}
|
|
33
|
+
* onCellEditEnd={(e) => console.log('Edit:', e)}
|
|
34
|
+
* />
|
|
35
|
+
* );
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare const VeloxGridReact: import("react").ForwardRefExoticComponent<VeloxGridReactProps & import("react").RefAttributes<VeloxGridReactRef>>;
|
|
40
|
+
//# sourceMappingURL=VeloxGridReact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VeloxGridReact.d.ts","sourceRoot":"","sources":["../../../src/react/VeloxGridReact.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA6EtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,cAAc,mHAyN1B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VeloxGrid React Wrapper
|
|
3
|
+
* @description React component and hook for VeloxGrid
|
|
4
|
+
* Phase 17: Framework Wrappers (React)
|
|
5
|
+
*/
|
|
6
|
+
export { VeloxGridReact } from './VeloxGridReact';
|
|
7
|
+
export { useVeloxGrid } from './useVeloxGrid';
|
|
8
|
+
export type { VeloxGridReactProps, VeloxGridReactRef } from './types';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VeloxGrid React Wrapper Types
|
|
3
|
+
* Phase 17: Framework Wrappers (React)
|
|
4
|
+
*/
|
|
5
|
+
import type { GridOptions, GridEvents, VeloxGridInstance } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* VeloxGridReact 컴포넌트 Props
|
|
8
|
+
* GridOptions의 모든 옵션을 Props로 전달할 수 있으며,
|
|
9
|
+
* GridEvents의 모든 이벤트를 콜백 Props로 전달할 수 있습니다.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <VeloxGridReact
|
|
14
|
+
* columns={columns}
|
|
15
|
+
* data={data}
|
|
16
|
+
* height={400}
|
|
17
|
+
* editable={true}
|
|
18
|
+
* onCellEditEnd={(e) => console.log(e)}
|
|
19
|
+
* />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export interface VeloxGridReactProps extends GridOptions, GridEvents {
|
|
23
|
+
/**
|
|
24
|
+
* 컨테이너에 적용할 CSS 클래스
|
|
25
|
+
* GridOptions.className과 별개로 wrapper div에 적용됩니다.
|
|
26
|
+
*/
|
|
27
|
+
wrapperClassName?: string;
|
|
28
|
+
/**
|
|
29
|
+
* 컨테이너에 적용할 인라인 스타일
|
|
30
|
+
*/
|
|
31
|
+
wrapperStyle?: React.CSSProperties;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* VeloxGridReact ref를 통해 접근 가능한 메서드
|
|
35
|
+
* VeloxGridInstance의 모든 메서드를 포함합니다.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* const gridRef = useRef<VeloxGridReactRef>(null);
|
|
40
|
+
*
|
|
41
|
+
* // 데이터 조회
|
|
42
|
+
* const data = gridRef.current?.getData();
|
|
43
|
+
*
|
|
44
|
+
* // 행 추가
|
|
45
|
+
* gridRef.current?.addRow({ name: 'New', value: 100 });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export interface VeloxGridReactRef extends VeloxGridInstance {
|
|
49
|
+
/**
|
|
50
|
+
* 내부 VeloxGrid 인스턴스에 직접 접근
|
|
51
|
+
* 일반적으로 ref 메서드를 사용하되, 고급 시나리오에서 사용
|
|
52
|
+
*/
|
|
53
|
+
getGridInstance(): VeloxGridInstance | null;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/react/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW,EAAE,UAAU;IAClE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACpC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D;;;OAGG;IACH,eAAe,IAAI,iBAAiB,GAAG,IAAI,CAAC;CAC7C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useVeloxGrid Hook
|
|
3
|
+
* @description VeloxGrid 인스턴스를 React에서 편리하게 사용하기 위한 Hook
|
|
4
|
+
* Phase 17: Framework Wrappers (React)
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* import { useVeloxGrid } from 'velox-grid/react';
|
|
9
|
+
*
|
|
10
|
+
* function App() {
|
|
11
|
+
* const { containerRef, grid } = useVeloxGrid({
|
|
12
|
+
* columns: [
|
|
13
|
+
* { field: 'name', header: 'Name' },
|
|
14
|
+
* { field: 'age', header: 'Age', type: 'number' },
|
|
15
|
+
* ],
|
|
16
|
+
* data: [{ name: 'Alice', age: 30 }],
|
|
17
|
+
* height: 400,
|
|
18
|
+
* editable: true,
|
|
19
|
+
* onCellEditEnd: (e) => console.log(e),
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* return (
|
|
23
|
+
* <div>
|
|
24
|
+
* <button onClick={() => grid?.addRow({ name: 'New', age: 0 })}>
|
|
25
|
+
* Add Row
|
|
26
|
+
* </button>
|
|
27
|
+
* <div ref={containerRef} />
|
|
28
|
+
* </div>
|
|
29
|
+
* );
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
import type { GridOptions, GridEvents, VeloxGridInstance } from '../types';
|
|
34
|
+
type UseVeloxGridOptions = GridOptions & Partial<GridEvents>;
|
|
35
|
+
interface UseVeloxGridReturn {
|
|
36
|
+
/** 그리드가 마운트될 컨테이너 ref (div에 연결) */
|
|
37
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
38
|
+
/** VeloxGrid 인스턴스 (초기화 전 null) */
|
|
39
|
+
grid: VeloxGridInstance | null;
|
|
40
|
+
/** 그리드 초기화 여부 */
|
|
41
|
+
isReady: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* useVeloxGrid Hook
|
|
45
|
+
*
|
|
46
|
+
* GridOptions + GridEvents를 받아서 VeloxGrid 인스턴스를 생성하고 관리합니다.
|
|
47
|
+
* containerRef를 div에 연결하면 자동으로 그리드가 초기화됩니다.
|
|
48
|
+
*
|
|
49
|
+
* @param options - GridOptions와 GridEvents를 합친 옵션 객체
|
|
50
|
+
* @returns containerRef, grid 인스턴스, isReady 상태
|
|
51
|
+
*/
|
|
52
|
+
export declare function useVeloxGrid(options: UseVeloxGridOptions): UseVeloxGridReturn;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=useVeloxGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVeloxGrid.d.ts","sourceRoot":"","sources":["../../../src/react/useVeloxGrid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE3E,KAAK,mBAAmB,GAAG,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAE7D,UAAU,kBAAkB;IAC1B,mCAAmC;IACnC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,kCAAkC;IAClC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC/B,iBAAiB;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAkC7E"}
|