react-restyle-components 0.4.41 → 0.4.42
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/lib/src/core-components/src/components/ag-grid/AgGrid.js +332 -8
- package/lib/src/core-components/src/components/ag-grid/elements.d.ts +136 -0
- package/lib/src/core-components/src/components/ag-grid/elements.js +639 -1
- package/lib/src/core-components/src/components/ag-grid/hooks.d.ts +80 -0
- package/lib/src/core-components/src/components/ag-grid/hooks.js +277 -0
- package/lib/src/core-components/src/components/ag-grid/index.d.ts +2 -1
- package/lib/src/core-components/src/components/ag-grid/index.js +2 -0
- package/lib/src/core-components/src/tc.global.css +5 -1
- package/lib/src/core-components/src/utils/designTokens.d.ts +9 -9
- package/lib/src/core-components/src/utils/designTokens.js +13 -10
- package/package.json +1 -1
|
@@ -6,8 +6,24 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
6
6
|
* Reference: https://www.ag-grid.com/react-data-grid/getting-started/
|
|
7
7
|
*/
|
|
8
8
|
import React, { forwardRef, useImperativeHandle, useMemo, useCallback, useState, useEffect, useRef, } from 'react';
|
|
9
|
-
import { GridRoot, GridWrapper, GridToolbar, ToolbarGroup, ToolbarButton, QuickFilter, TableContainer, StyledTable, TableHead, HeaderRow, HeaderCell, HeaderCellContent, HeaderText, SortIndicator, FilterIndicator, ResizeHandle, GroupHeaderRow, GroupHeaderCell, FloatingFilterRow, FloatingFilterCell, TableBody, TableRow, TableCell, CellContent, Checkbox, CheckboxCell, ExpandButton, DragHandle, CellEditor, PaginationBar, PaginationInfo, PaginationControls, PageButton, PageSizeSelect, StatusBar, StatusItem, LoadingOverlay, Spinner, NoRowsOverlay, ContextMenu, ContextMenuItem, ContextMenuDivider, MobileCardContainer, MobileCard, MobileCardHeader, MobileCardRow, MobileCardLabel, MobileCardValue, SelectionBar, SelectionActions, getTheme,
|
|
10
|
-
|
|
9
|
+
import { GridRoot, GridWrapper, GridToolbar, ToolbarGroup, ToolbarButton, QuickFilter, TableContainer, StyledTable, TableHead, HeaderRow, HeaderCell, HeaderCellContent, HeaderText, SortIndicator, FilterIndicator, ResizeHandle, GroupHeaderRow, GroupHeaderCell, FloatingFilterRow, FloatingFilterCell, TableBody, TableRow, TableCell, CellContent, Checkbox, CheckboxCell, ExpandButton, DragHandle, CellEditor, PaginationBar, PaginationInfo, PaginationControls, PageButton, PageSizeSelect, StatusBar, StatusItem, LoadingOverlay, Spinner, NoRowsOverlay, ContextMenu, ContextMenuItem, ContextMenuDivider, MobileCardContainer, MobileCard, MobileCardHeader, MobileCardRow, MobileCardLabel, MobileCardValue, SelectionBar, SelectionActions, getTheme,
|
|
10
|
+
// New Side Panel Components
|
|
11
|
+
SidePanel, SidePanelTabs, SidePanelTab, SidePanelContent, SidePanelSearch, SidePanelSection, SidePanelSectionHeader, SidePanelColumnItem, SidePanelDragHandle, SidePanelGroupLabel,
|
|
12
|
+
// Row Groups
|
|
13
|
+
RowGroupsZone, RowGroupsLabel, RowGroupChip,
|
|
14
|
+
// Values Panel
|
|
15
|
+
ValuesPanel, ValueItem, ValueItemLabel, ValueItemRemove,
|
|
16
|
+
// Pivot Mode
|
|
17
|
+
PivotModeToggle, PivotModeLabel, ToggleSwitch,
|
|
18
|
+
// Column Menu
|
|
19
|
+
HeaderMenuButton, ColumnMenuPopup, ColumnMenuSection, ColumnMenuItem,
|
|
20
|
+
// Set Filter
|
|
21
|
+
SetFilterContainer, SetFilterHeader, SetFilterSearch, SetFilterList, SetFilterItem, SetFilterActions, SetFilterButton,
|
|
22
|
+
// Filter Panel
|
|
23
|
+
FilterPanelColumn, FilterPanelHeader, FilterPanelContent,
|
|
24
|
+
// Layout
|
|
25
|
+
GridLayout, GridMainArea, } from './elements';
|
|
26
|
+
import { useSorting, useFiltering, usePagination, useRowSelection, useRowExpansion, useColumnState, useCellEditing, useContextMenu, useResponsive, useClipboard, getNestedValue, createRowNode, exportToCsv, useAggregationPanel, useRowGroupingPanel, useColumnMenu, useSidePanel, usePivotMode, } from './hooks';
|
|
11
27
|
// ============================================================================
|
|
12
28
|
// Icons
|
|
13
29
|
// ============================================================================
|
|
@@ -26,6 +42,18 @@ const MenuIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", strok
|
|
|
26
42
|
const GripIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "currentColor", opacity: "0.5", children: [_jsx("circle", { cx: "9", cy: "5", r: "1.5" }), _jsx("circle", { cx: "9", cy: "12", r: "1.5" }), _jsx("circle", { cx: "9", cy: "19", r: "1.5" }), _jsx("circle", { cx: "15", cy: "5", r: "1.5" }), _jsx("circle", { cx: "15", cy: "12", r: "1.5" }), _jsx("circle", { cx: "15", cy: "19", r: "1.5" })] }));
|
|
27
43
|
const EmptyIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [_jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }), _jsx("path", { d: "M3 9h18M9 3v18", strokeLinecap: "round" })] }));
|
|
28
44
|
const CloseIcon = () => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M18 6L6 18M6 6l12 12", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
45
|
+
const PinIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("path", { d: "M12 2v10M12 22v-6M4 12h16", strokeLinecap: "round" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] }));
|
|
46
|
+
const PinLeftIcon = () => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M4 4v16M8 12h12M15 7l5 5-5 5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
47
|
+
const PinRightIcon = () => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M20 4v16M4 12h12M9 7l-5 5 5 5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
48
|
+
const NoPinIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("path", { d: "M3 3l18 18M12 2v10M12 22v-6", strokeLinecap: "round" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] }));
|
|
49
|
+
const GroupIcon = () => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M4 6h16M4 12h16M4 18h16", strokeLinecap: "round" }) }));
|
|
50
|
+
const AutosizeIcon = () => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M4 12h16M9 7l-5 5 5 5M15 7l5 5-5 5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
51
|
+
const ResetIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("path", { d: "M3 12a9 9 0 109-9 9.75 9.75 0 00-6.74 2.74L3 8", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M3 3v5h5", strokeLinecap: "round", strokeLinejoin: "round" })] }));
|
|
52
|
+
const SigmaIcon = () => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M18 6H6l6 6-6 6h12", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
53
|
+
const EyeIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] }));
|
|
54
|
+
const EyeOffIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("path", { d: "M17.94 17.94A10.07 10.07 0 0112 20c-7 0-11-8-11-8a18.45 18.45 0 015.06-5.94M9.9 4.24A9.12 9.12 0 0112 4c7 0 11 8 11 8a18.5 18.5 0 01-2.16 3.19m-6.72-1.07a3 3 0 11-4.24-4.24" }), _jsx("line", { x1: "1", y1: "1", x2: "23", y2: "23" })] }));
|
|
55
|
+
const CheckIcon = () => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("polyline", { points: "20 6 9 17 4 12", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
56
|
+
const PanelRightIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }), _jsx("path", { d: "M15 3v18", strokeLinecap: "round" })] }));
|
|
29
57
|
// ============================================================================
|
|
30
58
|
// Helper Functions
|
|
31
59
|
// ============================================================================
|
|
@@ -123,14 +151,44 @@ function AgGridInner(props, ref) {
|
|
|
123
151
|
}
|
|
124
152
|
}, [controlledQuickFilter, setQuickFilterText]);
|
|
125
153
|
// ============================================================================
|
|
126
|
-
//
|
|
154
|
+
// Set Filter State (for each column) - moved up for processedData dependency
|
|
155
|
+
// ============================================================================
|
|
156
|
+
const [setFilterStates, setSetFilterStates] = useState({});
|
|
157
|
+
// ============================================================================
|
|
158
|
+
// Processed Data (sort + filter + set filter)
|
|
127
159
|
// ============================================================================
|
|
128
160
|
const processedData = useMemo(() => {
|
|
129
161
|
let data = [...rowData];
|
|
162
|
+
// Apply quick filter and column text filters
|
|
130
163
|
data = filterData(data, visibleColumns);
|
|
164
|
+
// Apply set filters (filter by selected values)
|
|
165
|
+
Object.entries(setFilterStates).forEach(([field, selectedValues]) => {
|
|
166
|
+
// If no values selected or all values selected, skip filtering
|
|
167
|
+
const allValues = new Set();
|
|
168
|
+
rowData.forEach((row) => {
|
|
169
|
+
const value = getNestedValue(row, field);
|
|
170
|
+
if (value != null) {
|
|
171
|
+
allValues.add(String(value));
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
// Only apply filter if some values are deselected
|
|
175
|
+
if (selectedValues.size > 0 && selectedValues.size < allValues.size) {
|
|
176
|
+
data = data.filter((row) => {
|
|
177
|
+
const value = getNestedValue(row, field);
|
|
178
|
+
if (value == null)
|
|
179
|
+
return false;
|
|
180
|
+
return selectedValues.has(String(value));
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
else if (selectedValues.size === 0) {
|
|
184
|
+
// No values selected means filter out all
|
|
185
|
+
data = [];
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
// Apply sorting
|
|
131
189
|
data = sortData(data, visibleColumns);
|
|
132
190
|
return data;
|
|
133
|
-
}, [rowData, filterData, sortData, visibleColumns]);
|
|
191
|
+
}, [rowData, filterData, sortData, visibleColumns, setFilterStates]);
|
|
134
192
|
// ============================================================================
|
|
135
193
|
// Pagination
|
|
136
194
|
// ============================================================================
|
|
@@ -166,6 +224,143 @@ function AgGridInner(props, ref) {
|
|
|
166
224
|
// ============================================================================
|
|
167
225
|
const { isMobile } = useResponsive(mobileBreakpoint);
|
|
168
226
|
// ============================================================================
|
|
227
|
+
// Side Panel
|
|
228
|
+
// ============================================================================
|
|
229
|
+
const { isOpen: isSidePanelOpen, activeTab: sidePanelTab, toggle: toggleSidePanel, switchTab: switchSidePanelTab, setIsOpen: setSidePanelOpen, } = useSidePanel(props.sideBar !== false, 'columns');
|
|
230
|
+
// ============================================================================
|
|
231
|
+
// Column Menu
|
|
232
|
+
// ============================================================================
|
|
233
|
+
const { menuState: columnMenuState, showColumnMenu, hideColumnMenu, filterDropdownState, showFilterDropdown, hideFilterDropdown, } = useColumnMenu();
|
|
234
|
+
// ============================================================================
|
|
235
|
+
// Row Grouping Panel
|
|
236
|
+
// ============================================================================
|
|
237
|
+
const { rowGroupColumns, addRowGroupColumn, removeRowGroupColumn, clearRowGroupColumns, groupableColumns, groupedColumnsInfo, } = useRowGroupingPanel(flatColumns);
|
|
238
|
+
// ============================================================================
|
|
239
|
+
// Aggregation Panel
|
|
240
|
+
// ============================================================================
|
|
241
|
+
const { valueColumns, addValueColumn, removeValueColumn, clearValueColumns, aggregatedValues, } = useAggregationPanel(processedData);
|
|
242
|
+
// ============================================================================
|
|
243
|
+
// Pivot Mode
|
|
244
|
+
// ============================================================================
|
|
245
|
+
const { isPivotMode, togglePivotMode, } = usePivotMode();
|
|
246
|
+
// ============================================================================
|
|
247
|
+
// Expanded Filter Panels State
|
|
248
|
+
// ============================================================================
|
|
249
|
+
const [expandedFilterPanels, setExpandedFilterPanels] = useState(new Set());
|
|
250
|
+
// ============================================================================
|
|
251
|
+
// Column Drag State (for reordering in side panel)
|
|
252
|
+
// ============================================================================
|
|
253
|
+
const [draggedColumnId, setDraggedColumnId] = useState(null);
|
|
254
|
+
const [dragOverColumnId, setDragOverColumnId] = useState(null);
|
|
255
|
+
const handleColumnDragStart = useCallback((e, colId) => {
|
|
256
|
+
setDraggedColumnId(colId);
|
|
257
|
+
e.dataTransfer.effectAllowed = 'move';
|
|
258
|
+
e.dataTransfer.setData('text/plain', colId);
|
|
259
|
+
}, []);
|
|
260
|
+
const handleColumnDragOver = useCallback((e, colId) => {
|
|
261
|
+
e.preventDefault();
|
|
262
|
+
e.dataTransfer.dropEffect = 'move';
|
|
263
|
+
if (colId !== draggedColumnId) {
|
|
264
|
+
setDragOverColumnId(colId);
|
|
265
|
+
}
|
|
266
|
+
}, [draggedColumnId]);
|
|
267
|
+
const handleColumnDragLeave = useCallback(() => {
|
|
268
|
+
setDragOverColumnId(null);
|
|
269
|
+
}, []);
|
|
270
|
+
const handleColumnDrop = useCallback((e, targetColId) => {
|
|
271
|
+
e.preventDefault();
|
|
272
|
+
if (draggedColumnId && draggedColumnId !== targetColId) {
|
|
273
|
+
// Find indices in columnState
|
|
274
|
+
const fromIndex = columnState.findIndex((s) => s.colId === draggedColumnId);
|
|
275
|
+
const toIndex = columnState.findIndex((s) => s.colId === targetColId);
|
|
276
|
+
if (fromIndex !== -1 && toIndex !== -1) {
|
|
277
|
+
moveColumn(draggedColumnId, toIndex);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
setDraggedColumnId(null);
|
|
281
|
+
setDragOverColumnId(null);
|
|
282
|
+
}, [draggedColumnId, columnState, moveColumn]);
|
|
283
|
+
const handleColumnDragEnd = useCallback(() => {
|
|
284
|
+
setDraggedColumnId(null);
|
|
285
|
+
setDragOverColumnId(null);
|
|
286
|
+
}, []);
|
|
287
|
+
// Extract unique values for a field
|
|
288
|
+
const getUniqueValuesForField = useCallback((field) => {
|
|
289
|
+
const values = new Set();
|
|
290
|
+
rowData.forEach((row) => {
|
|
291
|
+
const value = getNestedValue(row, field);
|
|
292
|
+
if (value != null) {
|
|
293
|
+
values.add(String(value));
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
return Array.from(values).sort();
|
|
297
|
+
}, [rowData]);
|
|
298
|
+
// Toggle filter panel expansion
|
|
299
|
+
const toggleFilterPanel = useCallback((field) => {
|
|
300
|
+
setExpandedFilterPanels((prev) => {
|
|
301
|
+
const next = new Set(prev);
|
|
302
|
+
if (next.has(field)) {
|
|
303
|
+
next.delete(field);
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
next.add(field);
|
|
307
|
+
}
|
|
308
|
+
return next;
|
|
309
|
+
});
|
|
310
|
+
}, []);
|
|
311
|
+
// Toggle value in set filter
|
|
312
|
+
const toggleSetFilterValue = useCallback((field, value) => {
|
|
313
|
+
setSetFilterStates((prev) => {
|
|
314
|
+
const currentValues = prev[field] || new Set(getUniqueValuesForField(field));
|
|
315
|
+
const next = new Set(currentValues);
|
|
316
|
+
if (next.has(value)) {
|
|
317
|
+
next.delete(value);
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
next.add(value);
|
|
321
|
+
}
|
|
322
|
+
return { ...prev, [field]: next };
|
|
323
|
+
});
|
|
324
|
+
}, [getUniqueValuesForField]);
|
|
325
|
+
// Select/deselect all in set filter
|
|
326
|
+
const toggleSetFilterSelectAll = useCallback((field) => {
|
|
327
|
+
setSetFilterStates((prev) => {
|
|
328
|
+
const allValues = getUniqueValuesForField(field);
|
|
329
|
+
const currentValues = prev[field];
|
|
330
|
+
const isAllSelected = !currentValues || currentValues.size === allValues.length;
|
|
331
|
+
if (isAllSelected) {
|
|
332
|
+
return { ...prev, [field]: new Set() };
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
return { ...prev, [field]: new Set(allValues) };
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
}, [getUniqueValuesForField]);
|
|
339
|
+
// Check if set filter has active filter
|
|
340
|
+
const isSetFilterActive = useCallback((field) => {
|
|
341
|
+
const state = setFilterStates[field];
|
|
342
|
+
if (!state)
|
|
343
|
+
return false;
|
|
344
|
+
const allValues = getUniqueValuesForField(field);
|
|
345
|
+
return state.size > 0 && state.size < allValues.length;
|
|
346
|
+
}, [setFilterStates, getUniqueValuesForField]);
|
|
347
|
+
// Check if any set filter is active
|
|
348
|
+
const hasActiveSetFilters = useMemo(() => {
|
|
349
|
+
return Object.entries(setFilterStates).some(([field, selectedValues]) => {
|
|
350
|
+
const allValues = getUniqueValuesForField(field);
|
|
351
|
+
return selectedValues.size > 0 && selectedValues.size < allValues.length;
|
|
352
|
+
});
|
|
353
|
+
}, [setFilterStates, getUniqueValuesForField]);
|
|
354
|
+
// Clear all set filters
|
|
355
|
+
const clearSetFilters = useCallback(() => {
|
|
356
|
+
setSetFilterStates({});
|
|
357
|
+
}, []);
|
|
358
|
+
// Clear all filters (including set filters)
|
|
359
|
+
const clearAllFilters = useCallback(() => {
|
|
360
|
+
clearFilters();
|
|
361
|
+
clearSetFilters();
|
|
362
|
+
}, [clearFilters, clearSetFilters]);
|
|
363
|
+
// ============================================================================
|
|
169
364
|
// Refs
|
|
170
365
|
// ============================================================================
|
|
171
366
|
const containerRef = useRef(null);
|
|
@@ -510,7 +705,28 @@ function AgGridInner(props, ref) {
|
|
|
510
705
|
const { sort: sortDir } = getSortForColumn(colId);
|
|
511
706
|
const state = columnState.find((s) => s.colId === colId);
|
|
512
707
|
const width = state?.width || col.width;
|
|
513
|
-
return (_jsxs(HeaderCell, { "$theme": gridTheme, "$align": col.headerAlign || col.align, "$sortable": col.sortable !== false && sortable, "$sorted": !!sortDir, "$resizable": col.resizable !== false, "$pinned": col.pinned, "$width": width, "$minWidth": col.minWidth, "$maxWidth": col.maxWidth, onClick: (e) => handleHeaderClick(col, e),
|
|
708
|
+
return (_jsxs(HeaderCell, { "$theme": gridTheme, "$align": col.headerAlign || col.align, "$sortable": col.sortable !== false && sortable, "$sorted": !!sortDir, "$resizable": col.resizable !== false, "$pinned": col.pinned, "$width": width, "$minWidth": col.minWidth, "$maxWidth": col.maxWidth, onClick: (e) => handleHeaderClick(col, e), onMouseEnter: (e) => {
|
|
709
|
+
const target = e.currentTarget.querySelector('[data-menu-button]');
|
|
710
|
+
if (target)
|
|
711
|
+
target.style.opacity = '1';
|
|
712
|
+
}, onMouseLeave: (e) => {
|
|
713
|
+
const target = e.currentTarget.querySelector('[data-menu-button]');
|
|
714
|
+
if (target && columnMenuState.colId !== colId)
|
|
715
|
+
target.style.opacity = '0';
|
|
716
|
+
}, children: [_jsxs(HeaderCellContent, { children: [_jsx(HeaderText, { children: col.headerName || col.field }), col.sortable !== false && sortable && (_jsx(SortIndicator, { "$direction": sortDir, "$active": !!sortDir, children: sortDir === 'desc' ? _jsx(SortDescIcon, {}) : _jsx(SortAscIcon, {}) })), col.filter && (_jsx(FilterIndicator, { "$active": isFilterActive(col.field || '') || isSetFilterActive(col.field || ''), "$theme": gridTheme, onClick: (e) => {
|
|
717
|
+
e.stopPropagation();
|
|
718
|
+
const rect = e.target.getBoundingClientRect();
|
|
719
|
+
showFilterDropdown(colId, rect.left, rect.bottom + 4);
|
|
720
|
+
}, children: _jsx(FilterIcon, {}) })), !col.suppressMenu && (_jsx(HeaderMenuButton, { "data-menu-button": true, "$theme": gridTheme, "$active": columnMenuState.visible && columnMenuState.colId === colId, onClick: (e) => {
|
|
721
|
+
e.stopPropagation();
|
|
722
|
+
const rect = e.target.getBoundingClientRect();
|
|
723
|
+
if (columnMenuState.visible && columnMenuState.colId === colId) {
|
|
724
|
+
hideColumnMenu();
|
|
725
|
+
}
|
|
726
|
+
else {
|
|
727
|
+
showColumnMenu(colId, rect.left, rect.bottom + 4);
|
|
728
|
+
}
|
|
729
|
+
}, children: _jsx(MenuIcon, {}) }))] }), col.resizable !== false && (_jsx(ResizeHandle, { "$theme": gridTheme, "$resizing": resizing?.colId === colId, onMouseDown: (e) => handleResizeStart(e, colId, width || 100) }))] }, colId));
|
|
514
730
|
})] }));
|
|
515
731
|
// ============================================================================
|
|
516
732
|
// Render Floating Filters
|
|
@@ -712,8 +928,116 @@ function AgGridInner(props, ref) {
|
|
|
712
928
|
}) }));
|
|
713
929
|
};
|
|
714
930
|
// ============================================================================
|
|
931
|
+
// Render Column Menu Popup
|
|
932
|
+
// ============================================================================
|
|
933
|
+
const renderColumnMenuPopup = () => {
|
|
934
|
+
if (!columnMenuState.visible || !columnMenuState.colId)
|
|
935
|
+
return null;
|
|
936
|
+
const col = flatColumns.find((c) => c.colId === columnMenuState.colId);
|
|
937
|
+
if (!col)
|
|
938
|
+
return null;
|
|
939
|
+
const colId = columnMenuState.colId;
|
|
940
|
+
const { sort: sortDir } = getSortForColumn(colId);
|
|
941
|
+
return (_jsxs(ColumnMenuPopup, { "$theme": gridTheme, "$x": columnMenuState.x, "$y": columnMenuState.y, onClick: (e) => e.stopPropagation(), children: [_jsxs(ColumnMenuSection, { "$theme": gridTheme, children: [_jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
942
|
+
handleSort(colId, false);
|
|
943
|
+
if (sortDir !== 'asc') {
|
|
944
|
+
// Force asc
|
|
945
|
+
}
|
|
946
|
+
hideColumnMenu();
|
|
947
|
+
}, children: [_jsx(SortAscIcon, {}), _jsx("span", { children: "Sort Ascending" })] }), _jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
948
|
+
handleSort(colId, false);
|
|
949
|
+
hideColumnMenu();
|
|
950
|
+
}, children: [_jsx(SortDescIcon, {}), _jsx("span", { children: "Sort Descending" })] })] }), _jsxs(ColumnMenuSection, { "$theme": gridTheme, children: [_jsxs(ColumnMenuItem, { "$theme": gridTheme, "$hasSubmenu": true, onClick: () => { }, children: [_jsx(PinIcon, {}), _jsx("span", { children: "Pin Column" })] }), _jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
951
|
+
setColumnPinned(colId, 'left');
|
|
952
|
+
hideColumnMenu();
|
|
953
|
+
}, style: { paddingLeft: 36 }, children: [_jsx(PinLeftIcon, {}), _jsx("span", { children: "Pin Left" })] }), _jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
954
|
+
setColumnPinned(colId, 'right');
|
|
955
|
+
hideColumnMenu();
|
|
956
|
+
}, style: { paddingLeft: 36 }, children: [_jsx(PinRightIcon, {}), _jsx("span", { children: "Pin Right" })] }), _jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
957
|
+
setColumnPinned(colId, null);
|
|
958
|
+
hideColumnMenu();
|
|
959
|
+
}, style: { paddingLeft: 36 }, children: [_jsx(NoPinIcon, {}), _jsx("span", { children: "No Pin" })] })] }), _jsxs(ColumnMenuSection, { "$theme": gridTheme, children: [_jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
960
|
+
// Autosize this column (simplified)
|
|
961
|
+
hideColumnMenu();
|
|
962
|
+
}, children: [_jsx(AutosizeIcon, {}), _jsx("span", { children: "Autosize This Column" })] }), _jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
963
|
+
// Autosize all columns (simplified)
|
|
964
|
+
hideColumnMenu();
|
|
965
|
+
}, children: [_jsx(AutosizeIcon, {}), _jsx("span", { children: "Autosize All Columns" })] })] }), col.field && col.enableRowGroup !== false && (_jsx(ColumnMenuSection, { "$theme": gridTheme, children: _jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
966
|
+
addRowGroupColumn(col.field);
|
|
967
|
+
hideColumnMenu();
|
|
968
|
+
}, children: [_jsx(GroupIcon, {}), _jsxs("span", { children: ["Group by ", col.headerName || col.field] })] }) })), _jsxs(ColumnMenuSection, { "$theme": gridTheme, children: [_jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
969
|
+
setSidePanelOpen(true);
|
|
970
|
+
switchSidePanelTab('columns');
|
|
971
|
+
hideColumnMenu();
|
|
972
|
+
}, children: [_jsx(ColumnsIcon, {}), _jsx("span", { children: "Choose Columns" })] }), _jsxs(ColumnMenuItem, { "$theme": gridTheme, onClick: () => {
|
|
973
|
+
resetColumnState();
|
|
974
|
+
hideColumnMenu();
|
|
975
|
+
}, children: [_jsx(ResetIcon, {}), _jsx("span", { children: "Reset Columns" })] })] })] }));
|
|
976
|
+
};
|
|
977
|
+
// ============================================================================
|
|
978
|
+
// Render Set Filter Dropdown
|
|
979
|
+
// ============================================================================
|
|
980
|
+
const renderSetFilterDropdown = () => {
|
|
981
|
+
if (!filterDropdownState.visible || !filterDropdownState.colId)
|
|
982
|
+
return null;
|
|
983
|
+
const col = flatColumns.find((c) => c.colId === filterDropdownState.colId);
|
|
984
|
+
if (!col || !col.field)
|
|
985
|
+
return null;
|
|
986
|
+
const field = col.field;
|
|
987
|
+
const uniqueValues = getUniqueValuesForField(field);
|
|
988
|
+
const selectedValues = setFilterStates[field] || new Set(uniqueValues);
|
|
989
|
+
const isAllSelected = selectedValues.size === uniqueValues.length;
|
|
990
|
+
return (_jsxs(SetFilterContainer, { "$theme": gridTheme, style: {
|
|
991
|
+
position: 'fixed',
|
|
992
|
+
top: filterDropdownState.y,
|
|
993
|
+
left: filterDropdownState.x,
|
|
994
|
+
zIndex: 1000,
|
|
995
|
+
}, onClick: (e) => e.stopPropagation(), children: [_jsx(SetFilterHeader, { "$theme": gridTheme, children: "Text Filter" }), _jsx(SetFilterSearch, { "$theme": gridTheme, children: _jsx("input", { type: "text", placeholder: "Search...", autoFocus: true }) }), _jsxs(SetFilterList, { "$theme": gridTheme, children: [_jsxs(SetFilterItem, { "$theme": gridTheme, "$selectAll": true, children: [_jsx("input", { type: "checkbox", checked: isAllSelected, onChange: () => toggleSetFilterSelectAll(field) }), "(Select All)"] }), uniqueValues.map((value) => (_jsxs(SetFilterItem, { "$theme": gridTheme, children: [_jsx("input", { type: "checkbox", checked: selectedValues.has(value), onChange: () => toggleSetFilterValue(field, value) }), value] }, value)))] }), _jsxs(SetFilterActions, { "$theme": gridTheme, children: [_jsx(SetFilterButton, { "$theme": gridTheme, onClick: () => {
|
|
996
|
+
toggleSetFilterSelectAll(field);
|
|
997
|
+
}, children: "Reset" }), _jsx(SetFilterButton, { "$theme": gridTheme, "$primary": true, onClick: () => {
|
|
998
|
+
hideFilterDropdown();
|
|
999
|
+
}, children: "Apply" })] })] }));
|
|
1000
|
+
};
|
|
1001
|
+
// ============================================================================
|
|
1002
|
+
// Render Side Panel
|
|
1003
|
+
// ============================================================================
|
|
1004
|
+
const renderSidePanel = () => {
|
|
1005
|
+
if (props.sideBar === false)
|
|
1006
|
+
return null;
|
|
1007
|
+
return (_jsxs(SidePanel, { "$theme": gridTheme, "$open": isSidePanelOpen, children: [_jsx(SidePanelTabs, { "$theme": gridTheme, "$collapsed": !isSidePanelOpen, children: isSidePanelOpen ? (_jsxs(_Fragment, { children: [_jsxs(SidePanelTab, { "$theme": gridTheme, "$active": sidePanelTab === 'columns', onClick: () => switchSidePanelTab('columns'), children: [_jsx(ColumnsIcon, {}), "Columns"] }), _jsxs(SidePanelTab, { "$theme": gridTheme, "$active": sidePanelTab === 'filters', onClick: () => switchSidePanelTab('filters'), children: [_jsx(FilterIcon, {}), "Filters"] })] })) : (_jsxs(_Fragment, { children: [_jsx(SidePanelTab, { "$theme": gridTheme, "$collapsed": true, "$active": sidePanelTab === 'columns', onClick: () => { setSidePanelOpen(true); switchSidePanelTab('columns'); }, title: "Columns", children: _jsx(ColumnsIcon, {}) }), _jsx(SidePanelTab, { "$theme": gridTheme, "$collapsed": true, "$active": sidePanelTab === 'filters', onClick: () => { setSidePanelOpen(true); switchSidePanelTab('filters'); }, title: "Filters", children: _jsx(FilterIcon, {}) })] })) }), isSidePanelOpen && (_jsxs(SidePanelContent, { "$theme": gridTheme, children: [sidePanelTab === 'columns' && (_jsxs(_Fragment, { children: [_jsxs(PivotModeToggle, { "$theme": gridTheme, children: [_jsx(PivotModeLabel, { "$theme": gridTheme, children: "Pivot Mode" }), _jsxs(ToggleSwitch, { "$theme": gridTheme, children: [_jsx("input", { type: "checkbox", checked: isPivotMode, onChange: togglePivotMode }), _jsx("span", {})] })] }), _jsx(SidePanelSearch, { "$theme": gridTheme, children: _jsx("input", { type: "text", placeholder: "Search..." }) }), _jsxs(SidePanelSection, { "$theme": gridTheme, children: [_jsxs(SidePanelSectionHeader, { "$theme": gridTheme, children: [_jsx(ColumnsIcon, {}), "Columns"] }), processedColumns.map((col) => {
|
|
1008
|
+
const colId = col.colId;
|
|
1009
|
+
const isVisible = !col.hide;
|
|
1010
|
+
const isDragging = draggedColumnId === colId;
|
|
1011
|
+
const isDragOver = dragOverColumnId === colId;
|
|
1012
|
+
return (_jsxs(SidePanelColumnItem, { "$theme": gridTheme, "$dragging": isDragging, "$selected": isDragOver, draggable: true, onDragStart: (e) => handleColumnDragStart(e, colId), onDragOver: (e) => handleColumnDragOver(e, colId), onDragLeave: handleColumnDragLeave, onDrop: (e) => handleColumnDrop(e, colId), onDragEnd: handleColumnDragEnd, children: [_jsx(SidePanelDragHandle, { "$theme": gridTheme, children: _jsx(GripIcon, {}) }), _jsx(Checkbox, { type: "checkbox", "$theme": gridTheme, checked: isVisible, onChange: (e) => {
|
|
1013
|
+
// Toggle visibility: if checked, show (visible=true); if unchecked, hide (visible=false)
|
|
1014
|
+
setColumnVisible(colId, e.target.checked);
|
|
1015
|
+
} }), _jsx(SidePanelGroupLabel, { children: col.headerName || col.field })] }, colId));
|
|
1016
|
+
})] }), _jsxs(SidePanelSection, { "$theme": gridTheme, children: [_jsxs(SidePanelSectionHeader, { "$theme": gridTheme, children: [_jsx(GroupIcon, {}), "Row Groups"] }), _jsx(RowGroupsZone, { "$theme": gridTheme, "$hasItems": rowGroupColumns.length > 0, children: rowGroupColumns.length === 0 ? (_jsxs(RowGroupsLabel, { "$theme": gridTheme, children: [_jsx(GroupIcon, {}), "Drag here to set row groups"] })) : (groupedColumnsInfo.map(({ field, headerName }) => (_jsxs(RowGroupChip, { "$theme": gridTheme, children: [headerName, _jsx("button", { onClick: () => removeRowGroupColumn(field), children: _jsx(CloseIcon, {}) })] }, field)))) })] }), _jsxs(SidePanelSection, { "$theme": gridTheme, children: [_jsxs(SidePanelSectionHeader, { "$theme": gridTheme, children: [_jsx(SigmaIcon, {}), "Values"] }), _jsx(ValuesPanel, { "$theme": gridTheme, children: valueColumns.length === 0 ? (_jsx(RowGroupsZone, { "$theme": gridTheme, "$hasItems": false, children: _jsxs(RowGroupsLabel, { "$theme": gridTheme, children: [_jsx(SigmaIcon, {}), "Drag here to aggregate"] }) })) : (valueColumns.map(({ field, aggFunc, displayName }) => (_jsxs(ValueItem, { "$theme": gridTheme, children: [_jsxs(ValueItemLabel, { "$theme": gridTheme, children: [_jsx(SidePanelDragHandle, { "$theme": gridTheme, children: _jsx(GripIcon, {}) }), aggFunc, "(", displayName, ")"] }), _jsx(ValueItemRemove, { "$theme": gridTheme, onClick: () => removeValueColumn(field, aggFunc), children: _jsx(CloseIcon, {}) })] }, `${aggFunc}-${field}`)))) })] })] })), sidePanelTab === 'filters' && (_jsxs(_Fragment, { children: [_jsx(SidePanelSearch, { "$theme": gridTheme, children: _jsx("input", { type: "text", placeholder: "Search..." }) }), flatColumns
|
|
1017
|
+
.filter((col) => col.filter && col.field)
|
|
1018
|
+
.map((col) => {
|
|
1019
|
+
const field = col.field;
|
|
1020
|
+
const isExpanded = expandedFilterPanels.has(field);
|
|
1021
|
+
const hasFilter = isFilterActive(field) || isSetFilterActive(field);
|
|
1022
|
+
const uniqueValues = getUniqueValuesForField(field);
|
|
1023
|
+
const selectedValues = setFilterStates[field] || new Set(uniqueValues);
|
|
1024
|
+
return (_jsxs(FilterPanelColumn, { "$theme": gridTheme, children: [_jsxs(FilterPanelHeader, { "$theme": gridTheme, "$expanded": isExpanded, "$hasFilter": hasFilter, onClick: () => toggleFilterPanel(field), children: [_jsx(ChevronRightIcon, {}), col.headerName || col.field, hasFilter && _jsx(FilterIcon, {})] }), isExpanded && (_jsx(FilterPanelContent, { "$theme": gridTheme, "$expanded": isExpanded, children: _jsxs(SetFilterList, { "$theme": gridTheme, style: { maxHeight: 200, marginBottom: 8 }, children: [_jsxs(SetFilterItem, { "$theme": gridTheme, "$selectAll": true, children: [_jsx("input", { type: "checkbox", checked: selectedValues.size === uniqueValues.length, onChange: () => toggleSetFilterSelectAll(field) }), "(Select All)"] }), uniqueValues.slice(0, 20).map((value) => (_jsxs(SetFilterItem, { "$theme": gridTheme, children: [_jsx("input", { type: "checkbox", checked: selectedValues.has(value), onChange: () => toggleSetFilterValue(field, value) }), value] }, value))), uniqueValues.length > 20 && (_jsx(SetFilterItem, { "$theme": gridTheme, children: _jsxs("span", { style: { opacity: 0.6, fontSize: 12 }, children: ["...and ", uniqueValues.length - 20, " more"] }) }))] }) }))] }, col.colId));
|
|
1025
|
+
})] }))] }))] }));
|
|
1026
|
+
};
|
|
1027
|
+
// ============================================================================
|
|
715
1028
|
// Main Render
|
|
716
1029
|
// ============================================================================
|
|
1030
|
+
// Close menus on outside click
|
|
1031
|
+
useEffect(() => {
|
|
1032
|
+
const handleClickOutside = () => {
|
|
1033
|
+
if (columnMenuState.visible)
|
|
1034
|
+
hideColumnMenu();
|
|
1035
|
+
if (filterDropdownState.visible)
|
|
1036
|
+
hideFilterDropdown();
|
|
1037
|
+
};
|
|
1038
|
+
document.addEventListener('click', handleClickOutside);
|
|
1039
|
+
return () => document.removeEventListener('click', handleClickOutside);
|
|
1040
|
+
}, [columnMenuState.visible, filterDropdownState.visible, hideColumnMenu, hideFilterDropdown]);
|
|
717
1041
|
return (_jsxs(GridRoot, { ref: containerRef, "$theme": gridTheme, "$responsive": responsive, style: containerStyle, className: containerClassName, onKeyDown: handleKeyDown, tabIndex: 0, dir: enableRtl ? 'rtl' : 'ltr', children: [_jsxs(GridToolbar, { "$theme": gridTheme, children: [_jsxs(ToolbarGroup, { children: [_jsxs(QuickFilter, { "$theme": gridTheme, children: [_jsx(SearchIcon, {}), _jsx("input", { type: "text", placeholder: "Search...", value: quickFilterText, onChange: (e) => {
|
|
718
1042
|
setQuickFilterText(e.target.value);
|
|
719
1043
|
onFilterChanged?.({
|
|
@@ -722,9 +1046,9 @@ function AgGridInner(props, ref) {
|
|
|
722
1046
|
columnApi,
|
|
723
1047
|
context,
|
|
724
1048
|
});
|
|
725
|
-
} })] }), hasActiveFilters && (_jsxs(ToolbarButton, { "$theme": gridTheme, onClick:
|
|
726
|
-
|
|
727
|
-
|
|
1049
|
+
} })] }), (hasActiveFilters || hasActiveSetFilters) && (_jsxs(ToolbarButton, { "$theme": gridTheme, onClick: clearAllFilters, children: [_jsx(CloseIcon, {}), "Clear Filters"] }))] }), _jsxs(ToolbarGroup, { children: [!suppressCsvExport && (_jsxs(ToolbarButton, { "$theme": gridTheme, onClick: () => exportToCsv(processedData, visibleColumns, 'export.csv'), children: [_jsx(DownloadIcon, {}), "Export"] })), _jsxs(ToolbarButton, { "$theme": gridTheme, onClick: resetColumnState, children: [_jsx(RefreshIcon, {}), "Reset"] }), props.sideBar !== false && (_jsx(ToolbarButton, { "$theme": gridTheme, "$active": isSidePanelOpen, onClick: toggleSidePanel, children: _jsx(PanelRightIcon, {}) }))] })] }), props.rowGroupPanelShow !== 'never' && rowGroupColumns.length > 0 && (_jsxs(RowGroupsZone, { "$theme": gridTheme, "$hasItems": true, children: [_jsx(RowGroupsLabel, { "$theme": gridTheme, children: _jsx(GroupIcon, {}) }), groupedColumnsInfo.map(({ field, headerName }) => (_jsxs(RowGroupChip, { "$theme": gridTheme, children: [headerName, _jsx("button", { onClick: () => removeRowGroupColumn(field), children: _jsx(CloseIcon, {}) })] }, field)))] })), selectedRows.length > 0 && (_jsxs(SelectionBar, { "$theme": gridTheme, "$visible": selectedRows.length > 0, children: [_jsxs("span", { children: [selectedRows.length, " row", selectedRows.length !== 1 ? 's' : '', " selected"] }), _jsx(SelectionActions, { children: _jsxs(ToolbarButton, { "$theme": gridTheme, style: { background: 'transparent', border: 'none', color: 'white' }, onClick: deselectAll, children: [_jsx(CloseIcon, {}), "Clear"] }) })] })), _jsxs(GridLayout, { children: [_jsxs(GridMainArea, { children: [_jsx(GridWrapper, { children: _jsxs(TableContainer, { "$stickyHeader": true, "$maxHeight": domLayout === 'autoHeight' ? undefined : 'calc(100% - 100px)', children: [responsive && isMobile ? (displayData.length === 0 ? renderEmptyState() : renderMobileCards()) : (
|
|
1050
|
+
/* Desktop Table View */
|
|
1051
|
+
_jsxs(_Fragment, { children: [displayData.length === 0 && !isLoading && renderEmptyState(), displayData.length > 0 && (_jsxs(StyledTable, { ref: tableRef, "$theme": gridTheme, "$fixedLayout": true, children: [_jsxs(TableHead, { "$theme": gridTheme, "$sticky": true, children: [renderColumnGroups(), renderHeader(), renderFloatingFilters()] }), _jsx(TableBody, { "$theme": gridTheme, children: displayData.map((row, i) => renderRow(row, startRow + i)) })] }))] })), isLoading && renderLoadingState()] }) }), renderPagination(), statusBar && (_jsxs(StatusBar, { "$theme": gridTheme, children: [_jsxs(StatusItem, { children: [_jsx("strong", { children: "Rows:" }), " ", processedData.length] }), _jsxs(StatusItem, { children: [_jsx("strong", { children: "Selected:" }), " ", selectedRows.length] })] }))] }), renderSidePanel()] }), renderContextMenu(), renderColumnMenuPopup(), renderSetFilterDropdown()] }));
|
|
728
1052
|
}
|
|
729
1053
|
// ============================================================================
|
|
730
1054
|
// Exported Component with ForwardRef
|
|
@@ -104,6 +104,7 @@ export declare const TableCell: import("styled-components/dist/types").IStyledCo
|
|
|
104
104
|
}>> & string;
|
|
105
105
|
export declare const CellContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
106
106
|
$wrapText?: boolean | undefined;
|
|
107
|
+
$theme?: AgGridTheme | undefined;
|
|
107
108
|
}>> & string;
|
|
108
109
|
export declare const Checkbox: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, {
|
|
109
110
|
$theme: AgGridTheme;
|
|
@@ -243,4 +244,139 @@ export declare const SelectionBar: import("styled-components/dist/types").IStyle
|
|
|
243
244
|
$visible: boolean;
|
|
244
245
|
}>> & string;
|
|
245
246
|
export declare const SelectionActions: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
247
|
+
export declare const SidePanel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
248
|
+
$theme: AgGridTheme;
|
|
249
|
+
$open: boolean;
|
|
250
|
+
$width?: number | undefined;
|
|
251
|
+
}>> & string;
|
|
252
|
+
export declare const SidePanelTabs: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
253
|
+
$theme: AgGridTheme;
|
|
254
|
+
$collapsed?: boolean | undefined;
|
|
255
|
+
}>> & string;
|
|
256
|
+
export declare const SidePanelTab: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
|
|
257
|
+
$theme: AgGridTheme;
|
|
258
|
+
$active?: boolean | undefined;
|
|
259
|
+
$collapsed?: boolean | undefined;
|
|
260
|
+
}>> & string;
|
|
261
|
+
export declare const SidePanelContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
262
|
+
$theme: AgGridTheme;
|
|
263
|
+
}>> & string;
|
|
264
|
+
export declare const SidePanelSearch: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
265
|
+
$theme: AgGridTheme;
|
|
266
|
+
}>> & string;
|
|
267
|
+
export declare const SidePanelSection: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
268
|
+
$theme: AgGridTheme;
|
|
269
|
+
}>> & string;
|
|
270
|
+
export declare const SidePanelSectionHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
271
|
+
$theme: AgGridTheme;
|
|
272
|
+
$collapsible?: boolean | undefined;
|
|
273
|
+
}>> & string;
|
|
274
|
+
export declare const SidePanelColumnItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
275
|
+
$theme: AgGridTheme;
|
|
276
|
+
$indent?: number | undefined;
|
|
277
|
+
$dragging?: boolean | undefined;
|
|
278
|
+
$selected?: boolean | undefined;
|
|
279
|
+
}>> & string;
|
|
280
|
+
export declare const SidePanelDragHandle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
|
|
281
|
+
$theme: AgGridTheme;
|
|
282
|
+
}>> & string;
|
|
283
|
+
export declare const SidePanelGroupLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
|
|
284
|
+
export declare const RowGroupsZone: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
285
|
+
$theme: AgGridTheme;
|
|
286
|
+
$dragOver?: boolean | undefined;
|
|
287
|
+
$hasItems?: boolean | undefined;
|
|
288
|
+
}>> & string;
|
|
289
|
+
export declare const RowGroupsLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
|
|
290
|
+
$theme: AgGridTheme;
|
|
291
|
+
}>> & string;
|
|
292
|
+
export declare const RowGroupChip: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
293
|
+
$theme: AgGridTheme;
|
|
294
|
+
}>> & string;
|
|
295
|
+
export declare const ValuesPanel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
296
|
+
$theme: AgGridTheme;
|
|
297
|
+
}>> & string;
|
|
298
|
+
export declare const ValueItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
299
|
+
$theme: AgGridTheme;
|
|
300
|
+
}>> & string;
|
|
301
|
+
export declare const ValueItemLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
|
|
302
|
+
$theme: AgGridTheme;
|
|
303
|
+
}>> & string;
|
|
304
|
+
export declare const ValueItemRemove: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
|
|
305
|
+
$theme: AgGridTheme;
|
|
306
|
+
}>> & string;
|
|
307
|
+
export declare const PivotModeToggle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
308
|
+
$theme: AgGridTheme;
|
|
309
|
+
}>> & string;
|
|
310
|
+
export declare const PivotModeLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
|
|
311
|
+
$theme: AgGridTheme;
|
|
312
|
+
}>> & string;
|
|
313
|
+
export declare const ToggleSwitch: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, {
|
|
314
|
+
$theme: AgGridTheme;
|
|
315
|
+
}>> & string;
|
|
316
|
+
export declare const HeaderMenuButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
|
|
317
|
+
$theme: AgGridTheme;
|
|
318
|
+
$active?: boolean | undefined;
|
|
319
|
+
}>> & string;
|
|
320
|
+
export declare const ColumnMenuPopup: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
321
|
+
$theme: AgGridTheme;
|
|
322
|
+
$x: number;
|
|
323
|
+
$y: number;
|
|
324
|
+
}>> & string;
|
|
325
|
+
export declare const ColumnMenuSection: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
326
|
+
$theme: AgGridTheme;
|
|
327
|
+
}>> & string;
|
|
328
|
+
export declare const ColumnMenuItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
329
|
+
$theme: AgGridTheme;
|
|
330
|
+
$disabled?: boolean | undefined;
|
|
331
|
+
$hasSubmenu?: boolean | undefined;
|
|
332
|
+
}>> & string;
|
|
333
|
+
export declare const ColumnMenuSubmenu: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
334
|
+
$theme: AgGridTheme;
|
|
335
|
+
}>> & string;
|
|
336
|
+
export declare const SetFilterContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
337
|
+
$theme: AgGridTheme;
|
|
338
|
+
}>> & string;
|
|
339
|
+
export declare const SetFilterHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
340
|
+
$theme: AgGridTheme;
|
|
341
|
+
}>> & string;
|
|
342
|
+
export declare const SetFilterSearch: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
343
|
+
$theme: AgGridTheme;
|
|
344
|
+
}>> & string;
|
|
345
|
+
export declare const SetFilterList: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
346
|
+
$theme: AgGridTheme;
|
|
347
|
+
}>> & string;
|
|
348
|
+
export declare const SetFilterItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, {
|
|
349
|
+
$theme: AgGridTheme;
|
|
350
|
+
$selectAll?: boolean | undefined;
|
|
351
|
+
}>> & string;
|
|
352
|
+
export declare const SetFilterActions: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
353
|
+
$theme: AgGridTheme;
|
|
354
|
+
}>> & string;
|
|
355
|
+
export declare const SetFilterButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
|
|
356
|
+
$theme: AgGridTheme;
|
|
357
|
+
$primary?: boolean | undefined;
|
|
358
|
+
}>> & string;
|
|
359
|
+
export declare const FilterPanelColumn: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
360
|
+
$theme: AgGridTheme;
|
|
361
|
+
}>> & string;
|
|
362
|
+
export declare const FilterPanelHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
363
|
+
$theme: AgGridTheme;
|
|
364
|
+
$expanded?: boolean | undefined;
|
|
365
|
+
$hasFilter?: boolean | undefined;
|
|
366
|
+
}>> & string;
|
|
367
|
+
export declare const FilterPanelContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
368
|
+
$theme: AgGridTheme;
|
|
369
|
+
$expanded?: boolean | undefined;
|
|
370
|
+
}>> & string;
|
|
371
|
+
export declare const GridLayout: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
372
|
+
export declare const GridMainArea: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
373
|
+
export declare const ColumnVisibilityDropdown: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
374
|
+
$theme: AgGridTheme;
|
|
375
|
+
}>> & string;
|
|
376
|
+
export declare const ColumnVisibilityList: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
377
|
+
$theme: AgGridTheme;
|
|
378
|
+
}>> & string;
|
|
379
|
+
export declare const ColumnVisibilityItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, {
|
|
380
|
+
$theme: AgGridTheme;
|
|
381
|
+
}>> & string;
|
|
246
382
|
export { themes };
|