slickgrid-react 9.9.0 → 9.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.
@@ -1,10 +1,22 @@
1
1
  import type {
2
2
  Column,
3
+ ColumnSort,
3
4
  ContainerService,
5
+ CurrentFilter,
6
+ CurrentSorter,
4
7
  DragRowMove,
8
+ ExportTextDownloadOption,
5
9
  ExtensionList,
10
+ GridMenuCommandItemCallbackArgs,
11
+ GridMenuEventWithElementCallbackArgs,
6
12
  GridOption,
13
+ GridSize,
14
+ GridStateChange,
7
15
  HeaderButtonOnCommandArgs,
16
+ HeaderMenuCommandItemCallbackArgs,
17
+ MenuCommandItemCallbackArgs,
18
+ MenuFromCellCallbackArgs,
19
+ MenuOptionItemCallbackArgs,
8
20
  OnActiveCellChangedEventArgs,
9
21
  OnAddNewRowEventArgs,
10
22
  OnAutosizeColumnsEventArgs,
@@ -19,15 +31,19 @@ import type {
19
31
  OnCellChangeEventArgs,
20
32
  OnCellCssStylesChangedEventArgs,
21
33
  OnClickEventArgs,
34
+ OnColumnsChangedArgs,
22
35
  OnColumnsDragEventArgs,
23
36
  OnColumnsReorderedEventArgs,
24
37
  OnColumnsResizeDblClickEventArgs,
25
38
  OnColumnsResizedEventArgs,
26
39
  OnCompositeEditorChangeEventArgs,
27
40
  OnDblClickEventArgs,
41
+ OnDragReplaceCellsEventArgs,
28
42
  OnFooterClickEventArgs,
29
43
  OnFooterContextMenuEventArgs,
30
44
  OnFooterRowCellRenderedEventArgs,
45
+ OnGroupCollapsedEventArgs,
46
+ OnGroupExpandedEventArgs,
31
47
  OnHeaderCellRenderedEventArgs,
32
48
  OnHeaderClickEventArgs,
33
49
  OnHeaderContextMenuEventArgs,
@@ -35,33 +51,28 @@ import type {
35
51
  OnHeaderRowCellRenderedEventArgs,
36
52
  OnKeyDownEventArgs,
37
53
  OnRenderedEventArgs,
38
- OnScrollEventArgs,
39
- OnSelectedRowsChangedEventArgs,
40
- OnSetOptionsEventArgs,
41
- OnValidationErrorEventArgs,
42
- SingleColumnSort,
43
- OnGroupCollapsedEventArgs,
44
- OnGroupExpandedEventArgs,
45
54
  OnRowCountChangedEventArgs,
46
55
  OnRowsChangedEventArgs,
47
56
  OnRowsOrCountChangedEventArgs,
57
+ OnScrollEventArgs,
58
+ OnSelectedRowIdsChangedEventArgs,
59
+ OnSelectedRowsChangedEventArgs,
48
60
  OnSetItemsCalledEventArgs,
61
+ OnSetOptionsEventArgs,
62
+ OnValidationErrorEventArgs,
49
63
  Pagination,
64
+ PaginationMetadata,
50
65
  PagingInfo,
66
+ ReactRegularEventHandler,
67
+ ReactSlickEventHandler,
68
+ SingleColumnSort,
51
69
  SlickControlList,
52
70
  SlickDataView,
53
71
  SlickGrid,
54
72
  SlickPluginList,
55
73
  SlickRange,
56
- GridMenuCommandItemCallbackArgs,
57
- GridMenuEventWithElementCallbackArgs,
58
- MenuCommandItemCallbackArgs,
59
- HeaderMenuCommandItemCallbackArgs,
60
- PaginationChangedArgs,
61
- MenuFromCellCallbackArgs,
62
- MenuOptionItemCallbackArgs,
74
+ TreeToggleStateChange,
63
75
  } from '@slickgrid-universal/common';
64
-
65
76
  import type { SlickgridReactInstance } from '../models/index.js';
66
77
  import type { TranslaterI18NextService } from '../services/translaterI18Next.service.js';
67
78
 
@@ -84,165 +95,135 @@ export interface SlickgridReactProps {
84
95
  // ---------------------
85
96
 
86
97
  // Slick Grid events
87
- onActiveCellChanged?: (e: CustomEvent<{ eventData: any; args: OnActiveCellChangedEventArgs }>) => void;
88
- onActiveCellPositionChanged?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;
89
- onAddNewRow?: (e: CustomEvent<{ eventData: any; args: OnAddNewRowEventArgs }>) => void;
90
- onAutosizeColumns?: (e: CustomEvent<{ eventData: any; args: OnAutosizeColumnsEventArgs }>) => void;
91
- onBeforeAppendCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeAppendCellEventArgs }>) => void;
92
- onBeforeSearchChange?: (e: CustomEvent<{ eventData: any; args: OnCellChangeEventArgs }>) => void;
93
- onBeforeCellEditorDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeCellEditorDestroyEventArgs }>) => void;
94
- onBeforeColumnsResize?: (e: CustomEvent<{ eventData: any; args: OnBeforeColumnsResizeEventArgs }>) => void;
95
- onBeforeDestroy?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;
96
- onBeforeEditCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeEditCellEventArgs }>) => void;
97
- onBeforeHeaderCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderCellDestroyEventArgs }>) => void;
98
- onBeforeHeaderRowCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderRowCellDestroyEventArgs }>) => void;
99
- onBeforeFooterRowCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeFooterRowCellDestroyEventArgs }>) => void;
100
- onBeforeSetColumns?: (e: CustomEvent<{ eventData: any; args: OnBeforeSetColumnsEventArgs }>) => void;
101
- onBeforeSort?: (e: CustomEvent<{ eventData: any; args: SingleColumnSort }>) => void;
102
- onCellChange?: (e: CustomEvent<{ eventData: any; args: OnCellChangeEventArgs }>) => void;
103
- onCellCssStylesChanged?: (e: CustomEvent<{ eventData: any; args: OnCellCssStylesChangedEventArgs }>) => void;
104
- onClick?: (e: CustomEvent<{ eventData: any; args: OnClickEventArgs }>) => void;
105
- onColumnsDrag?: (e: CustomEvent<{ eventData: any; args: OnColumnsDragEventArgs }>) => void;
106
- onColumnsReordered?: (e: CustomEvent<{ eventData: any; args: OnColumnsReorderedEventArgs }>) => void;
107
- onColumnsResized?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizedEventArgs }>) => void;
108
- onColumnsResizeDblClick?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizeDblClickEventArgs }>) => void;
109
- onCompositeEditorChange?: (e: CustomEvent<{ eventData: any; args: OnCompositeEditorChangeEventArgs }>) => void;
110
- onContextMenu?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;
111
- onDrag?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;
112
- onDragEnd?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;
113
- onDragInit?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;
114
- onDragStart?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;
115
- onDblClick?: (e: CustomEvent<{ eventData: any; args: OnDblClickEventArgs }>) => void;
116
- onFooterContextMenu?: (e: CustomEvent<{ eventData: any; args: OnFooterContextMenuEventArgs }>) => void;
117
- onFooterRowCellRendered?: (e: CustomEvent<{ eventData: any; args: OnFooterRowCellRenderedEventArgs }>) => void;
118
- onHeaderCellRendered?: (e: CustomEvent<{ eventData: any; args: OnHeaderCellRenderedEventArgs }>) => void;
119
- onFooterClick?: (e: CustomEvent<{ eventData: any; args: OnFooterClickEventArgs }>) => void;
120
- onHeaderClick?: (e: CustomEvent<{ eventData: any; args: OnHeaderClickEventArgs }>) => void;
121
- onHeaderContextMenu?: (e: CustomEvent<{ eventData: any; args: OnHeaderContextMenuEventArgs }>) => void;
122
- onHeaderMouseEnter?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;
123
- onHeaderMouseLeave?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;
124
- onHeaderRowCellRendered?: (e: CustomEvent<{ eventData: any; args: OnHeaderRowCellRenderedEventArgs }>) => void;
125
- onHeaderRowMouseEnter?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;
126
- onHeaderRowMouseLeave?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;
127
- onKeyDown?: (e: CustomEvent<{ eventData: any; args: OnKeyDownEventArgs }>) => void;
128
- onMouseEnter?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;
129
- onMouseLeave?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;
130
- onValidationError?: (e: CustomEvent<{ eventData: any; args: OnValidationErrorEventArgs }>) => void;
131
- onViewportChanged?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;
132
- onRendered?: (e: CustomEvent<{ eventData: any; args: OnRenderedEventArgs }>) => void;
133
- onSelectedRowsChanged?: (e: CustomEvent<{ eventData: any; args: OnSelectedRowsChangedEventArgs }>) => void;
134
- onSetOptions?: (e: CustomEvent<{ eventData: any; args: OnSetOptionsEventArgs }>) => void;
135
- onScroll?: (e: CustomEvent<{ eventData: any; args: OnScrollEventArgs }>) => void;
136
- onSort?: (e: CustomEvent<{ eventData: any; args: SingleColumnSort }>) => void;
98
+ onActiveCellChanged?: ReactSlickEventHandler<OnActiveCellChangedEventArgs>;
99
+ onActiveCellPositionChanged?: ReactSlickEventHandler<{ grid: SlickGrid }>;
100
+ onAddNewRow?: ReactSlickEventHandler<OnAddNewRowEventArgs>;
101
+ onAutosizeColumns?: ReactSlickEventHandler<OnAutosizeColumnsEventArgs>;
102
+ onBeforeAppendCell?: ReactSlickEventHandler<OnBeforeAppendCellEventArgs>;
103
+ onBeforeSearchChange?: ReactSlickEventHandler<OnCellChangeEventArgs, boolean | void>;
104
+ onBeforeCellEditorDestroy?: ReactSlickEventHandler<OnBeforeCellEditorDestroyEventArgs>;
105
+ onBeforeColumnsResize?: ReactSlickEventHandler<OnBeforeColumnsResizeEventArgs>;
106
+ onBeforeDestroy?: ReactSlickEventHandler<{ grid: SlickGrid }>;
107
+ onBeforeEditCell?: ReactSlickEventHandler<OnBeforeEditCellEventArgs>;
108
+ onBeforeHeaderCellDestroy?: ReactSlickEventHandler<OnBeforeHeaderCellDestroyEventArgs>;
109
+ onBeforeHeaderRowCellDestroy?: ReactSlickEventHandler<OnBeforeHeaderRowCellDestroyEventArgs>;
110
+ onBeforeFooterRowCellDestroy?: ReactSlickEventHandler<OnBeforeFooterRowCellDestroyEventArgs>;
111
+ onBeforeSetColumns?: ReactSlickEventHandler<OnBeforeSetColumnsEventArgs>;
112
+ onBeforeSort?: ReactSlickEventHandler<SingleColumnSort, boolean | void>;
113
+ onCellChange?: ReactSlickEventHandler<OnCellChangeEventArgs>;
114
+ onCellCssStylesChanged?: ReactSlickEventHandler<OnCellCssStylesChangedEventArgs>;
115
+ onClick?: ReactSlickEventHandler<OnClickEventArgs>;
116
+ onColumnsDrag?: ReactSlickEventHandler<OnColumnsDragEventArgs>;
117
+ onColumnsReordered?: ReactSlickEventHandler<OnColumnsReorderedEventArgs>;
118
+ onColumnsResized?: ReactSlickEventHandler<OnColumnsResizedEventArgs>;
119
+ onColumnsResizeDblClick?: ReactSlickEventHandler<OnColumnsResizeDblClickEventArgs>;
120
+ onCompositeEditorChange?: ReactSlickEventHandler<OnCompositeEditorChangeEventArgs>;
121
+ onContextMenu?: ReactSlickEventHandler<{ grid: SlickGrid }>;
122
+ onDrag?: ReactSlickEventHandler<DragRowMove>;
123
+ onDragEnd?: ReactSlickEventHandler<DragRowMove>;
124
+ onDragInit?: ReactSlickEventHandler<DragRowMove>;
125
+ onDragStart?: ReactSlickEventHandler<DragRowMove>;
126
+ onDragReplaceCells?: ReactSlickEventHandler<OnDragReplaceCellsEventArgs>;
127
+ onDblClick?: ReactSlickEventHandler<OnDblClickEventArgs>;
128
+ onFooterContextMenu?: ReactSlickEventHandler<OnFooterContextMenuEventArgs>;
129
+ onFooterRowCellRendered?: ReactSlickEventHandler<OnFooterRowCellRenderedEventArgs>;
130
+ onHeaderCellRendered?: ReactSlickEventHandler<OnHeaderCellRenderedEventArgs>;
131
+ onFooterClick?: ReactSlickEventHandler<OnFooterClickEventArgs>;
132
+ onHeaderClick?: ReactSlickEventHandler<OnHeaderClickEventArgs>;
133
+ onHeaderContextMenu?: ReactSlickEventHandler<OnHeaderContextMenuEventArgs>;
134
+ onHeaderMouseEnter?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;
135
+ onHeaderMouseLeave?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;
136
+ onHeaderRowCellRendered?: ReactSlickEventHandler<OnHeaderRowCellRenderedEventArgs>;
137
+ onHeaderRowMouseEnter?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;
138
+ onHeaderRowMouseLeave?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;
139
+ onKeyDown?: ReactSlickEventHandler<OnKeyDownEventArgs>;
140
+ onMouseEnter?: ReactSlickEventHandler<{ grid: SlickGrid }>;
141
+ onMouseLeave?: ReactSlickEventHandler<{ grid: SlickGrid }>;
142
+ onValidationError?: ReactSlickEventHandler<OnValidationErrorEventArgs>;
143
+ onViewportChanged?: ReactSlickEventHandler<{ grid: SlickGrid }>;
144
+ onRendered?: ReactSlickEventHandler<OnRenderedEventArgs>;
145
+ onSelectedRowsChanged?: ReactSlickEventHandler<OnSelectedRowsChangedEventArgs>;
146
+ onSetOptions?: ReactSlickEventHandler<OnSetOptionsEventArgs>;
147
+ onScroll?: ReactSlickEventHandler<OnScrollEventArgs>;
148
+ onSort?: ReactSlickEventHandler<SingleColumnSort>;
137
149
 
138
150
  // Slick DataView events
139
- onBeforePagingInfoChanged?: (e: CustomEvent<{ eventData: any; args: PagingInfo }>) => void;
140
- onGroupExpanded?: (e: CustomEvent<{ eventData: any; args: OnGroupExpandedEventArgs }>) => void;
141
- onGroupCollapsed?: (e: CustomEvent<{ eventData: any; args: OnGroupCollapsedEventArgs }>) => void;
142
- onPagingInfoChanged?: (e: CustomEvent<{ eventData: any; args: PagingInfo }>) => void;
143
- onRowCountChanged?: (e: CustomEvent<{ eventData: any; args: OnRowCountChangedEventArgs }>) => void;
144
- onRowsChanged?: (e: CustomEvent<{ eventData: any; args: OnRowsChangedEventArgs }>) => void;
145
- onRowsOrCountChanged?: (e: CustomEvent<{ eventData: any; args: OnRowsOrCountChangedEventArgs }>) => void;
146
- onSetItemsCalled?: (e: CustomEvent<{ eventData: any; args: OnSetItemsCalledEventArgs }>) => void;
151
+ onBeforePagingInfoChanged?: ReactSlickEventHandler<PagingInfo>;
152
+ onGroupExpanded?: ReactSlickEventHandler<OnGroupExpandedEventArgs>;
153
+ onGroupCollapsed?: ReactSlickEventHandler<OnGroupCollapsedEventArgs>;
154
+ onPagingInfoChanged?: ReactSlickEventHandler<PagingInfo>;
155
+ onRowCountChanged?: ReactSlickEventHandler<OnRowCountChangedEventArgs>;
156
+ onRowsChanged?: ReactSlickEventHandler<OnRowsChangedEventArgs>;
157
+ onRowsOrCountChanged?: ReactSlickEventHandler<OnRowsOrCountChangedEventArgs>;
158
+ onSelectedRowIdsChanged?: ReactSlickEventHandler<OnSelectedRowIdsChangedEventArgs>;
159
+ onSetItemsCalled?: ReactSlickEventHandler<OnSetItemsCalledEventArgs>;
160
+
161
+ // other Slick Events
162
+ onAfterMenuShow?: ReactSlickEventHandler<MenuFromCellCallbackArgs>;
163
+ onBeforeMenuClose?: ReactSlickEventHandler<MenuFromCellCallbackArgs>;
164
+ onBeforeMenuShow?: ReactSlickEventHandler<MenuFromCellCallbackArgs>;
165
+ onColumnsChanged?: ReactSlickEventHandler<OnColumnsChangedArgs>;
166
+ onCommand?: ReactSlickEventHandler<MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs>;
167
+ onGridMenuColumnsChanged?: ReactSlickEventHandler<OnColumnsChangedArgs>;
168
+ onMenuClose?: ReactSlickEventHandler<GridMenuEventWithElementCallbackArgs>;
169
+ onCopyCells?: ReactSlickEventHandler<{ ranges: SlickRange[] }>;
170
+ onCopyCancelled?: ReactSlickEventHandler<{ ranges: SlickRange[] }>;
171
+ onPasteCells?: ReactSlickEventHandler<{ ranges: SlickRange[] }>;
172
+ onBeforePasteCell?: ReactSlickEventHandler<{ cell: number; row: number; item: any; columnDef: Column; value: any }>;
147
173
 
148
- // Slickgrid-React events
149
- onAfterExportToExcel?: (e: CustomEvent<any>) => void;
150
- onBeforeExportToExcel?: (e: CustomEvent<any>) => void;
151
- onBeforeFilterChange?: (e: CustomEvent<any>) => void;
152
- onBeforeFilterClear?: (e: CustomEvent<any>) => void;
153
- onBeforeSortChange?: (e: CustomEvent<any>) => void;
154
- onBeforeToggleTreeCollapse?: (e: CustomEvent<any>) => void;
155
- onContextMenuClearGrouping?: (e: CustomEvent<any>) => void;
156
- onContextMenuCollapseAllGroups?: (e: CustomEvent<any>) => void;
157
- onContextMenuExpandAllGroups?: (e: CustomEvent<any>) => void;
158
- onAfterMenuShow?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;
159
- onAfterGridDestroyed?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;
160
- onBeforeMenuShow?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;
161
- onBeforeMenuClose?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;
162
- onBeforeGridDestroy?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;
163
- onCommand?: (e: CustomEvent<{ eventData: any; args: MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs }>) => void;
164
- onOptionSelected?: (e: CustomEvent<{ eventData: any; args: MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs }>) => void;
165
- onColumnPickerColumnsChanged?: (
166
- e: CustomEvent<{
167
- eventData: any;
168
- args: {
169
- columnId: string;
170
- showing: boolean;
171
- allColumns: Column[];
172
- visibleColumns: Column[];
173
- columns: Column[];
174
- grid: SlickGrid;
175
- };
176
- }>
177
- ) => void;
178
- onColumnsChanged?: (
179
- e: CustomEvent<{
180
- eventData: any;
181
- args: {
182
- columnId: string;
183
- showing: boolean;
184
- allColumns: Column[];
185
- visibleColumns: Column[];
186
- columns: Column[];
187
- grid: SlickGrid;
188
- };
189
- }>
190
- ) => void;
191
- onGridMenuMenuClose?: (e: CustomEvent<{ eventData: any; args: GridMenuEventWithElementCallbackArgs }>) => void;
192
- onGridMenuBeforeMenuShow?: (e: CustomEvent<{ eventData: any; args: GridMenuEventWithElementCallbackArgs }>) => void;
193
- onGridMenuAfterMenuShow?: (e: CustomEvent<{ eventData: any; args: GridMenuEventWithElementCallbackArgs }>) => void;
194
- onGridMenuClearAllPinning?: (e: CustomEvent<any>) => void;
195
- onGridMenuClearAllFilters?: (e: CustomEvent<any>) => void;
196
- onGridMenuClearAllSorting?: (e: CustomEvent<any>) => void;
197
- onGridMenuColumnsChanged?: (
198
- e: CustomEvent<{
199
- eventData: any;
200
- args: {
201
- columnId: string;
202
- showing: boolean;
203
- allColumns: Column[];
204
- visibleColumns: Column[];
205
- columns: Column[];
206
- grid: SlickGrid;
207
- };
208
- }>
209
- ) => void;
210
- onGridMenuCommand?: (e: CustomEvent<{ eventData: any; args: GridMenuCommandItemCallbackArgs }>) => void;
211
- onHeaderButtonCommand?: (e: CustomEvent<{ eventData: any; args: HeaderButtonOnCommandArgs }>) => void;
212
- onCopyCells?: (e: CustomEvent<{ eventData: any; args: { ranges: SlickRange[] } }>) => void;
213
- onCopyCancelled?: (e: CustomEvent<{ eventData: any; args: { ranges: SlickRange[] } }>) => void;
214
- onPasteCells?: (e: CustomEvent<{ eventData: any; args: { ranges: SlickRange[] } }>) => void;
215
- onBeforePasteCell?: (
216
- e: CustomEvent<{ eventData: any; args: { cell: number; row: number; item: any; columnDef: Column; value: any } }>
217
- ) => void;
218
- onHeaderMenuCommand?: (e: CustomEvent<{ eventData: any; args: MenuCommandItemCallbackArgs }>) => void;
219
- onHeaderMenuColumnResizeByContent?: (e: CustomEvent<{ eventData: any; args: { columnId: string } }>) => void;
220
- onHeaderMenuBeforeMenuShow?: (e: CustomEvent<{ eventData: any; args: HeaderMenuCommandItemCallbackArgs }>) => void;
221
- onHeaderMenuAfterMenuShow?: (e: CustomEvent<{ eventData: any; args: HeaderMenuCommandItemCallbackArgs }>) => void;
222
- onHideColumns?: (e: CustomEvent<{ eventData: any; args: { columns: Column[]; hiddenColumn: Column[] } }>) => void;
223
- onItemsAdded?: (e: CustomEvent<any>) => void;
224
- onItemsDeleted?: (e: CustomEvent<any>) => void;
225
- onItemsUpdated?: (e: CustomEvent<any>) => void;
226
- onItemsUpserted?: (e: CustomEvent<any>) => void;
227
- onFullResizeByContentRequested?: (e: CustomEvent<any>) => void;
228
- onGridStateChanged?: (e: CustomEvent<any>) => void;
229
- onBeforePaginationChange?: (e: CustomEvent<any>) => void;
230
- onPaginationChanged?: (e: CustomEvent<PaginationChangedArgs>) => void;
231
- onPaginationRefreshed?: (e: CustomEvent<any>) => void;
232
- onPaginationVisibilityChanged?: (e: CustomEvent<any>) => void;
233
- onPaginationSetCursorBased?: (e: CustomEvent<any>) => void;
234
- onGridBeforeResize?: (e: CustomEvent<any>) => void;
235
- onGridAfterResize?: (e: CustomEvent<any>) => void;
236
- onBeforeResizeByContent?: (e: CustomEvent<any>) => void;
237
- onAfterResizeByContent?: (e: CustomEvent<any>) => void;
238
- onSelectedRowIdsChanged?: (e: CustomEvent<any>) => void;
239
- onSortCleared?: (e: CustomEvent<any>) => void;
240
- onFilterChanged?: (e: CustomEvent<any>) => void;
241
- onFilterCleared?: (e: CustomEvent<any>) => void;
242
- onReactGridCreated?: (e: CustomEvent<any>) => void;
243
- onSortChanged?: (e: CustomEvent<any>) => void;
244
- onToggleTreeCollapsed?: (e: CustomEvent<any>) => void;
245
- onTreeItemToggled?: (e: CustomEvent<any>) => void;
246
- onTreeFullToggleEnd?: (e: CustomEvent<any>) => void;
247
- onTreeFullToggleStart?: (e: CustomEvent<any>) => void;
174
+ // Slickgrid-React or Slickgrid-Universal events
175
+ onAfterExportToExcel?: ReactRegularEventHandler<{ filename: string; mimeType: string }>;
176
+ onBeforeExportToExcel?: ReactRegularEventHandler<boolean>;
177
+ onBeforeExportToTextFile?: ReactRegularEventHandler<boolean>;
178
+ onAfterExportToTextFile?: ReactRegularEventHandler<ExportTextDownloadOption>;
179
+ onBeforeFilterChange?: ReactRegularEventHandler<CurrentFilter[]>;
180
+ onBeforeFilterClear?: ReactRegularEventHandler<{ columnId: string } | boolean>;
181
+ onBeforeSortChange?: ReactRegularEventHandler<Array<ColumnSort & { clearSortTriggered?: boolean }>>;
182
+ onContextMenuClearGrouping?: ReactRegularEventHandler<void>;
183
+ onContextMenuCollapseAllGroups?: ReactRegularEventHandler<void>;
184
+ onContextMenuExpandAllGroups?: ReactRegularEventHandler<void>;
185
+ onAfterGridDestroyed?: ReactRegularEventHandler<MenuFromCellCallbackArgs>;
186
+ onBeforeGridDestroy?: ReactRegularEventHandler<MenuFromCellCallbackArgs>;
187
+ onOptionSelected?: ReactRegularEventHandler<MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs>;
188
+ onColumnPickerColumnsChanged?: ReactRegularEventHandler<OnColumnsChangedArgs>;
189
+ onGridMenuMenuClose?: ReactRegularEventHandler<GridMenuEventWithElementCallbackArgs>;
190
+ onGridMenuBeforeMenuShow?: ReactRegularEventHandler<GridMenuEventWithElementCallbackArgs>;
191
+ onGridMenuAfterMenuShow?: ReactRegularEventHandler<GridMenuEventWithElementCallbackArgs>;
192
+ onGridMenuClearAllPinning?: ReactRegularEventHandler<void>;
193
+ onGridMenuClearAllFilters?: ReactRegularEventHandler<void>;
194
+ onGridMenuClearAllSorting?: ReactRegularEventHandler<void>;
195
+ onGridMenuCommand?: ReactRegularEventHandler<GridMenuCommandItemCallbackArgs>;
196
+ onHeaderButtonCommand?: ReactRegularEventHandler<HeaderButtonOnCommandArgs>;
197
+ onHeaderMenuCommand?: ReactRegularEventHandler<MenuCommandItemCallbackArgs>;
198
+ onHeaderMenuColumnResizeByContent?: ReactRegularEventHandler<{ columnId: string }>;
199
+ onHeaderMenuBeforeMenuShow?: ReactRegularEventHandler<HeaderMenuCommandItemCallbackArgs>;
200
+ onHeaderMenuAfterMenuShow?: ReactRegularEventHandler<HeaderMenuCommandItemCallbackArgs>;
201
+ onHideColumns?: ReactRegularEventHandler<{ columns: Column[]; hiddenColumn: Column[] }>;
202
+ onItemsAdded?: ReactRegularEventHandler<any[]>;
203
+ onItemsDeleted?: ReactRegularEventHandler<any[]>;
204
+ onItemsUpdated?: ReactRegularEventHandler<any[]>;
205
+ onItemsUpserted?: ReactRegularEventHandler<any[]>;
206
+ onFullResizeByContentRequested?: ReactRegularEventHandler<{ caller: string }>;
207
+ onGridStateChanged?: ReactRegularEventHandler<GridStateChange>;
208
+ onBeforePaginationChange?: ReactRegularEventHandler<PaginationMetadata, boolean | void>;
209
+ onPaginationChanged?: ReactRegularEventHandler<PaginationMetadata>;
210
+ onPaginationRefreshed?: ReactRegularEventHandler<PaginationMetadata>;
211
+ onPaginationVisibilityChanged?: ReactRegularEventHandler<{ visible: boolean }>;
212
+ onPaginationSetCursorBased?: ReactRegularEventHandler<{ isCursorBased: boolean }>;
213
+ onGridBeforeResize?: ReactRegularEventHandler<void>;
214
+ onGridAfterResize?: ReactRegularEventHandler<GridSize | undefined>;
215
+ onBeforeResizeByContent?: ReactRegularEventHandler<void>;
216
+ onAfterResizeByContent?: ReactRegularEventHandler<{
217
+ readItemCount: number;
218
+ calculateColumnWidths: { [x: string]: number | undefined; [x: number]: number | undefined };
219
+ }>;
220
+ onSortCleared?: ReactRegularEventHandler<boolean>;
221
+ onFilterChanged?: ReactRegularEventHandler<CurrentFilter[]>;
222
+ onFilterCleared?: ReactRegularEventHandler<boolean>;
223
+ onReactGridCreated?: ReactRegularEventHandler<any>;
224
+ onSortChanged?: ReactRegularEventHandler<CurrentSorter[]>;
225
+ onTreeItemToggled?: ReactRegularEventHandler<TreeToggleStateChange>;
226
+ onTreeFullToggleEnd?: ReactRegularEventHandler<TreeToggleStateChange>;
227
+ onTreeFullToggleStart?: ReactRegularEventHandler<TreeToggleStateChange>;
228
+ onLanguageChange?: ReactRegularEventHandler<string>;
248
229
  }
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
-
3
2
  import type { I18Next } from '../models/i18next.interface.js';
4
3
 
5
4
  export const I18nextContext = React.createContext<I18Next | null>(null);
@@ -1,18 +1,19 @@
1
1
  import {
2
2
  addToArrayWhenNotExists,
3
3
  createDomElement,
4
+ SlickEventData,
5
+ SlickHybridSelectionModel,
6
+ SlickRowSelectionModel,
7
+ unsubscribeAll,
4
8
  type EventSubscription,
5
9
  type OnBeforeRowDetailToggleArgs,
6
10
  type OnRowBackOrOutOfViewportRangeArgs,
7
- SlickEventData,
11
+ type SelectionModel,
8
12
  type SlickGrid,
9
- SlickRowSelectionModel,
10
- unsubscribeAll,
11
13
  } from '@slickgrid-universal/common';
12
14
  import { type EventPubSubService } from '@slickgrid-universal/event-pub-sub';
13
15
  import { SlickRowDetailView as UniversalSlickRowDetailView } from '@slickgrid-universal/row-detail-view-plugin';
14
16
  import type { Root } from 'react-dom/client';
15
-
16
17
  import type { GridOption, RowDetailView, ViewModelBindableInputData } from '../models/index.js';
17
18
  import { createReactComponentDynamically } from '../services/reactUtils.js';
18
19
 
@@ -81,16 +82,16 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
81
82
 
82
83
  init(grid: SlickGrid) {
83
84
  this._grid = grid;
84
- super.init(this._grid);
85
+ super.init(grid);
85
86
  this.gridContainerElement = grid.getContainerNode();
86
- this.register(grid?.getSelectionModel() as SlickRowSelectionModel);
87
+ this.register(grid.getSelectionModel());
87
88
  }
88
89
 
89
90
  /**
90
91
  * Create the plugin before the Grid creation, else it will behave oddly.
91
92
  * Mostly because the column definitions might change after the grid creation
92
93
  */
93
- register(rowSelectionPlugin?: SlickRowSelectionModel) {
94
+ register(rowSelectionPlugin?: SelectionModel) {
94
95
  if (typeof this.gridOptions.rowDetailView?.process === 'function') {
95
96
  // we need to keep the user "process" method and replace it with our own execution method
96
97
  // we do this because when we get the item detail, we need to call "onAsyncResponse.notify" for the plugin to work
@@ -104,11 +105,11 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
104
105
  // load the Preload & RowDetail Templates (could be straight HTML or React Components)
105
106
  // when those are React Components, we need to create View Component & provide the html containers to the Plugin (preTemplate/postTemplate methods)
106
107
  if (!this.gridOptions.rowDetailView.preTemplate) {
107
- this._preloadComponent = this.gridOptions?.rowDetailView?.preloadComponent;
108
+ this._preloadComponent = this.gridOptions.rowDetailView.preloadComponent;
108
109
  this.addonOptions.preTemplate = () => createDomElement('div', { className: `${PRELOAD_CONTAINER_PREFIX}` });
109
110
  }
110
111
  if (!this.gridOptions.rowDetailView.postTemplate) {
111
- this._component = this.gridOptions?.rowDetailView?.viewComponent;
112
+ this._component = this.gridOptions.rowDetailView.viewComponent;
112
113
  this.addonOptions.postTemplate = (itemDetail: any) =>
113
114
  createDomElement('div', { className: `${ROW_DETAIL_CONTAINER_PREFIX}${itemDetail[this.datasetIdPropName]}` });
114
115
  }
@@ -116,7 +117,8 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
116
117
  if (this._grid && this.gridOptions) {
117
118
  // this also requires the Row Selection Model to be registered as well
118
119
  if (!rowSelectionPlugin || !this._grid.getSelectionModel()) {
119
- rowSelectionPlugin = new SlickRowSelectionModel(this.gridOptions.rowSelectionOptions || { selectActiveRow: true });
120
+ const SelectionModelClass = this.gridOptions.enableHybridSelection ? SlickHybridSelectionModel : SlickRowSelectionModel;
121
+ rowSelectionPlugin = new SelectionModelClass(this.gridOptions.rowSelectionOptions || { selectActiveRow: true });
120
122
  this._grid.setSelectionModel(rowSelectionPlugin);
121
123
  }
122
124
 
@@ -196,7 +198,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
196
198
  this.eventHandler.subscribe(this._grid.onColumnsReordered, () => this.redrawAllViewComponents(false));
197
199
 
198
200
  // on row selection changed, we also need to redraw
199
- if (this.gridOptions.enableRowSelection || this.gridOptions.enableCheckboxSelector) {
201
+ if (this.gridOptions.enableRowSelection || this.gridOptions.enableHybridSelection || this.gridOptions.enableCheckboxSelector) {
200
202
  this._eventHandler.subscribe(this._grid.onSelectedRowsChanged, () => this.redrawAllViewComponents(false));
201
203
  }
202
204
 
@@ -1,5 +1,4 @@
1
- import { type Column, DelimiterType, EventNamingStyle, Filters, type TreeDataOption } from '@slickgrid-universal/common';
2
-
1
+ import { DelimiterType, EventNamingStyle, Filters, type Column, type TreeDataOption } from '@slickgrid-universal/common';
3
2
  import type { GridOption, RowDetailView } from './models/index.js';
4
3
 
5
4
  /**
package/src/index.ts CHANGED
@@ -1,10 +1,9 @@
1
- import 'regenerator-runtime/runtime.js';
2
- export * from '@slickgrid-universal/common';
3
-
4
1
  import { SlickgridReact } from './components/slickgrid-react.js';
5
2
  import { SlickRowDetailView } from './extensions/slickRowDetailView.js';
3
+ import type { GridOption, RowDetailView, SlickgridReactComponentOutput, SlickgridReactInstance } from './models/index.js';
6
4
  import type { SlickgridConfig } from './slickgrid-config.js';
7
- import type { SlickgridReactInstance, SlickgridReactComponentOutput, RowDetailView, GridOption } from './models/index.js';
5
+
6
+ export * from '@slickgrid-universal/common';
8
7
 
9
8
  // expose all public classes & contexts
10
9
  export { TranslaterI18NextService, disposeAllSubscriptions } from './services/index.js';
@@ -1,6 +1,5 @@
1
1
  import type { BasePaginationComponent, BasePaginationModel, GridOption as UniversalGridOption } from '@slickgrid-universal/common';
2
2
  import type { ForwardRefExoticComponent, RefAttributes } from 'react';
3
-
4
3
  import type { I18Next } from './i18next.interface.js';
5
4
  import type { RowDetailView } from './rowDetailView.interface.js';
6
5
 
@@ -1,4 +1,4 @@
1
- /* eslint-disable @typescript-eslint/consistent-type-imports */
1
+ /* oxlint-disable @typescript-eslint/consistent-type-imports */
2
2
  import React, { type ReactInstance } from 'react';
3
3
 
4
4
  export interface SlickgridReactComponentOutput {
@@ -1,6 +1,5 @@
1
1
  import { SharedService } from '@slickgrid-universal/common';
2
2
  import { EventPubSubService } from '@slickgrid-universal/event-pub-sub';
3
-
4
3
  import { ContainerService } from './container.service.js';
5
4
 
6
5
  export const GlobalEventPubSubService = new EventPubSubService();
@@ -1,5 +1,4 @@
1
1
  import type { TranslaterService as UniversalTranslateService } from '@slickgrid-universal/common';
2
-
3
2
  import type { I18Next } from '../models/i18next.interface.js';
4
3
 
5
4
  /**
@@ -1,5 +1,5 @@
1
- import type { GridOption } from './models/gridOption.interface.js';
2
1
  import { GlobalGridOptions } from './global-grid-options.js';
2
+ import type { GridOption } from './models/gridOption.interface.js';
3
3
 
4
4
  export class SlickgridConfig {
5
5
  options: Partial<GridOption>;