@infinite-table/infinite-react 0.7.2 → 0.8.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/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from 'react';
2
- import { CSSProperties, HTMLProps, RefCallback, MutableRefObject, MouseEvent, KeyboardEvent, ReactNode } from 'react';
2
+ import React__default, { CSSProperties, HTMLProps, RefCallback, MutableRefObject, MouseEvent, KeyboardEvent, ReactNode } from 'react';
3
3
 
4
4
  type SortDir = 1 | -1;
5
5
  type MultisortInfo<T> = {
@@ -123,6 +123,36 @@ declare function useInfiniteHeaderCell<T>(): {
123
123
  };
124
124
 
125
125
  declare function useInfiniteColumnCell<T>(): InfiniteTableColumnCellContextType<T>;
126
+ declare function useInfiniteColumnEditor<T>(): {
127
+ api: InfiniteTableApi<T>;
128
+ initialValue: any;
129
+ value: any;
130
+ readOnly: boolean;
131
+ column: InfiniteTableComputedColumn<unknown>;
132
+ rowInfo: InfiniteTable_HasGrouping_RowInfoNormal<unknown> | InfiniteTable_HasGrouping_RowInfoGroup<unknown> | InfiniteTable_NoGrouping_RowInfoNormal<unknown>;
133
+ setValue: (value: any) => void;
134
+ confirmEdit: (value?: any) => Promise<boolean | {
135
+ cancel: true;
136
+ value: null;
137
+ } | {
138
+ reject: Error;
139
+ value: any;
140
+ }>;
141
+ cancelEdit: () => Promise<boolean | {
142
+ cancel: true;
143
+ value: null;
144
+ } | {
145
+ reject: Error;
146
+ value: any;
147
+ }>;
148
+ rejectEdit: (error: Error) => Promise<boolean | {
149
+ cancel: true;
150
+ value: null;
151
+ } | {
152
+ reject: Error;
153
+ value: any;
154
+ }>;
155
+ };
126
156
 
127
157
  declare const InfiniteTableClassName: string;
128
158
  declare const InfiniteTableComponent: React$1.MemoExoticComponent<(<T>() => JSX.Element)>;
@@ -177,6 +207,8 @@ type MenuIconProps = {
177
207
  children?: React$1.ReactNode;
178
208
  };
179
209
 
210
+ type NonUndefined<T> = T extends undefined ? never : T;
211
+
180
212
  type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
181
213
  type InfiniteTableSelectRowFn = (id: any) => void;
182
214
  type InfiniteTableColumnHeaderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
@@ -216,6 +248,7 @@ type InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE = InfiniteTableCompu
216
248
  rowIndex: number;
217
249
  rowActive: boolean;
218
250
  api: InfiniteTableApi<DATA_TYPE>;
251
+ editError?: Error;
219
252
  column: COL_TYPE;
220
253
  columnsMap: Map<string, COL_TYPE>;
221
254
  fieldsToColumn: Map<keyof DATA_TYPE, COL_TYPE>;
@@ -255,11 +288,12 @@ type InfiniteTableColumnHeaderRenderFunction<T> = (headerParams: InfiniteTableCo
255
288
  type InfiniteTableColumnContentFocusable<T> = boolean | InfiniteTableColumnContentFocusableFn<T>;
256
289
  type InfiniteTableColumnEditable<T> = boolean | InfiniteTableColumnEditableFn<T>;
257
290
  type InfiniteTableColumnContentFocusableFn<T> = (params: InfiniteTableColumnContentFocusableParams<T>) => boolean;
258
- type InfiniteTableColumnEditableFn<T> = (params: InfiniteTableColumnEditableParams<T>) => boolean;
259
- type InfiniteTableColumnContentFocusableParams<T> = InfiniteTableColumnValueFormatterParams<T> & {
260
- column: InfiniteTableComputedColumn<T>;
261
- };
291
+ type InfiniteTableColumnEditableFn<T> = (params: InfiniteTableColumnEditableParams<T>) => boolean | Promise<boolean>;
292
+ type InfiniteTableColumnContentFocusableParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T>;
262
293
  type InfiniteTableColumnEditableParams<T> = InfiniteTableColumnContentFocusableParams<T>;
294
+ type InfiniteTableColumnGetValueToPersistParams<T> = InfiniteTableColumnEditableParams<T> & {
295
+ initialValue: any;
296
+ };
263
297
  type InfiniteTableColumnAlign = 'start' | 'center' | 'end';
264
298
  type InfiniteTableColumnVerticalAlign = 'start' | 'center' | 'end';
265
299
  type InfiniteTableColumnHeader<T> = Renderable | InfiniteTableColumnHeaderRenderFunction<T>;
@@ -268,10 +302,12 @@ type InfiniteTableColumnTypeNames = 'string' | 'number' | 'date' | string;
268
302
  type InfiniteTableColumnStyleFnParams<T> = {
269
303
  value: Renderable;
270
304
  column: InfiniteTableComputedColumn<T>;
305
+ inEdit: boolean;
306
+ editError: InfiniteTableColumnRenderParamBase<T>['editError'];
271
307
  } & InfiniteTableRowInfoDataDiscriminator<T>;
272
- type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | React.CSSProperties;
308
+ type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | React__default.CSSProperties;
273
309
  type InfiniteTableColumnHeaderClassNameFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | string;
274
- type InfiniteTableColumnHeaderStyleFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | React.CSSProperties;
310
+ type InfiniteTableColumnHeaderStyleFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | React__default.CSSProperties;
275
311
  type InfiniteTableColumnClassNameFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | string;
276
312
  type InfiniteTableColumnStyle<T> = CSSProperties | InfiniteTableColumnStyleFn<T>;
277
313
  type InfiniteTableColumnHeaderStyle<T> = CSSProperties | InfiniteTableColumnHeaderStyleFn<T>;
@@ -298,7 +334,9 @@ type InfiniteTableColumn<DATA_TYPE> = {
298
334
  draggable?: boolean;
299
335
  resizable?: boolean;
300
336
  contentFocusable?: InfiniteTableColumnContentFocusable<DATA_TYPE>;
301
- editable?: InfiniteTableColumnEditable<DATA_TYPE>;
337
+ defaultEditable?: InfiniteTableColumnEditable<DATA_TYPE>;
338
+ getValueToEdit?: (params: InfiniteTableColumnEditableParams<DATA_TYPE>) => any | Promise<any>;
339
+ getValueToPersist?: (params: InfiniteTableColumnGetValueToPersistParams<DATA_TYPE>) => any | Promise<any>;
302
340
  comparer?: InfiniteTableColumnComparer<DATA_TYPE>;
303
341
  defaultHiddenWhenGroupedBy?: '*' | true | keyof DATA_TYPE | {
304
342
  [k in keyof Partial<DATA_TYPE>]: true;
@@ -339,9 +377,9 @@ type InfiniteTableColumn<DATA_TYPE> = {
339
377
  renderMenuIcon?: boolean | InfiniteTableColumnRenderFunction<DATA_TYPE>;
340
378
  renderHeaderSelectionCheckBox?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
341
379
  components?: {
342
- ColumnCell?: React.FunctionComponent<HTMLProps<HTMLDivElement>>;
343
- HeaderCell?: React.FunctionComponent<HTMLProps<HTMLDivElement>>;
344
- MenuIcon?: React.FC<MenuIconProps>;
380
+ ColumnCell?: React__default.FunctionComponent<HTMLProps<HTMLDivElement>>;
381
+ HeaderCell?: React__default.FunctionComponent<HTMLProps<HTMLDivElement>>;
382
+ MenuIcon?: React__default.FC<MenuIconProps>;
345
383
  };
346
384
  };
347
385
  type InfiniteTableGeneratedGroupColumn<T> = Omit<InfiniteTableColumn<T>, 'sortable'> & {
@@ -400,6 +438,7 @@ type InfiniteTableComputedColumnBase<T> = {
400
438
  computedLastInCategory: boolean;
401
439
  computedFirst: boolean;
402
440
  computedLast: boolean;
441
+ computedEditable: NonUndefined<InfiniteTableColumn<T>['defaultEditable']>;
403
442
  toggleSort: () => void;
404
443
  colType: InfiniteTableColumnType<T>;
405
444
  id: string;
@@ -967,8 +1006,6 @@ type CellPosition = {
967
1006
  colIndex: number;
968
1007
  };
969
1008
 
970
- type NonUndefined<T> = T extends undefined ? never : T;
971
-
972
1009
  type SubscriptionCallbackOnChangeFn<T> = (node: T | null) => void;
973
1010
  interface SubscriptionCallback<T> {
974
1011
  (node: T, callback?: () => void): void;
@@ -994,6 +1031,7 @@ interface InfiniteTableSetupState<T> {
994
1031
  propsCache: Map<keyof InfiniteTableProps<T>, WeakMap<any, any>>;
995
1032
  columnsWhenInlineGroupRenderStrategy?: Map<string, InfiniteTableColumn<T>>;
996
1033
  domRef: MutableRefObject<HTMLDivElement | null>;
1034
+ editingValueRef: MutableRefObject<any | null>;
997
1035
  scrollerDOMRef: MutableRefObject<HTMLDivElement | null>;
998
1036
  portalDOMRef: MutableRefObject<HTMLDivElement | null>;
999
1037
  focusDetectDOMRef: MutableRefObject<HTMLDivElement | null>;
@@ -1024,6 +1062,27 @@ interface InfiniteTableSetupState<T> {
1024
1062
  scrollPosition: ScrollPosition;
1025
1063
  pinnedStartScrollListener: ScrollListener;
1026
1064
  pinnedEndScrollListener: ScrollListener;
1065
+ editingCell: {
1066
+ active: true;
1067
+ accepted: false;
1068
+ columnId: string;
1069
+ value: any;
1070
+ persisted: false;
1071
+ initialValue: any;
1072
+ rowIndex: number;
1073
+ primaryKey: any;
1074
+ } | null | {
1075
+ active: false;
1076
+ columnId: string;
1077
+ rowIndex: number;
1078
+ value: any;
1079
+ initialValue: any;
1080
+ primaryKey?: any;
1081
+ waiting: 'accept' | 'persist' | false;
1082
+ accepted: boolean | Error;
1083
+ persisted: boolean | Error;
1084
+ cancelled?: boolean;
1085
+ };
1027
1086
  }
1028
1087
  type InfiniteTableColumnGroupsDepthsMap = Map<string, number>;
1029
1088
  type InfiniteTablePropPivotTotalColumnPosition = false | 'start' | 'end';
@@ -1049,6 +1108,13 @@ interface InfiniteTableMappedState<T> {
1049
1108
  onSelfBlur: InfiniteTableProps<T>['onSelfBlur'];
1050
1109
  onFocusWithin: InfiniteTableProps<T>['onFocusWithin'];
1051
1110
  onBlurWithin: InfiniteTableProps<T>['onBlurWithin'];
1111
+ onEditCancelled: InfiniteTableProps<T>['onEditCancelled'];
1112
+ onEditRejected: InfiniteTableProps<T>['onEditRejected'];
1113
+ onEditAccepted: InfiniteTableProps<T>['onEditAccepted'];
1114
+ shouldAcceptEdit: InfiniteTableProps<T>['shouldAcceptEdit'];
1115
+ persistEdit: InfiniteTableProps<T>['persistEdit'];
1116
+ onEditPersistSuccess: InfiniteTableProps<T>['onEditPersistSuccess'];
1117
+ onEditPersistError: InfiniteTableProps<T>['onEditPersistError'];
1052
1118
  autoSizeColumnsKey: InfiniteTableProps<T>['autoSizeColumnsKey'];
1053
1119
  activeRowIndex: InfiniteTableProps<T>['activeRowIndex'];
1054
1120
  activeCellIndex: InfiniteTableProps<T>['activeCellIndex'];
@@ -1064,6 +1130,8 @@ interface InfiniteTableMappedState<T> {
1064
1130
  focusedWithinStyle: InfiniteTableProps<T>['focusedWithinStyle'];
1065
1131
  showSeparatePivotColumnForSingleAggregation: NonUndefined<InfiniteTableProps<T>['showSeparatePivotColumnForSingleAggregation']>;
1066
1132
  domProps: InfiniteTableProps<T>['domProps'];
1133
+ editable: InfiniteTableProps<T>['editable'];
1134
+ columnDefaultEditable: InfiniteTableProps<T>['columnDefaultEditable'];
1067
1135
  rowStyle: InfiniteTableProps<T>['rowStyle'];
1068
1136
  rowProps: InfiniteTableProps<T>['rowProps'];
1069
1137
  rowClassName: InfiniteTableProps<T>['rowClassName'];
@@ -1115,9 +1183,10 @@ interface InfiniteTableState<T> extends InfiniteTableMappedState<T>, InfiniteTab
1115
1183
  }
1116
1184
 
1117
1185
  interface InfiniteTableContextValue<T> {
1118
- imperativeApi: InfiniteTableApi<T>;
1119
- componentState: InfiniteTableState<T>;
1120
- componentActions: InfiniteTableActions<T>;
1186
+ api: InfiniteTableApi<T>;
1187
+ dataSourceApi: DataSourceApi<T>;
1188
+ state: InfiniteTableState<T>;
1189
+ actions: InfiniteTableActions<T>;
1121
1190
  dataSourceActions: DataSourceComponentActions<T>;
1122
1191
  computed: InfiniteTableComputedValues<T>;
1123
1192
  getComputed: () => InfiniteTableComputedValues<T>;
@@ -1403,16 +1472,16 @@ type DataSourceInsertParam = DataSourceCRUDParam & ({
1403
1472
  interface DataSourceApi<T> {
1404
1473
  getRowInfoArray: () => InfiniteTableRowInfo<T>[];
1405
1474
  getDataByPrimaryKey(id: any): T | undefined;
1406
- updateData(data: Partial<T>, options?: DataSourceCRUDParam): void;
1407
- updateDataArray(data: Partial<T>[], options?: DataSourceCRUDParam): void;
1408
- removeDataByPrimaryKey(id: any, options?: DataSourceCRUDParam): void;
1409
- removeDataArrayByPrimaryKeys(id: any[], options?: DataSourceCRUDParam): void;
1410
- removeData(data: Partial<T>, options?: DataSourceCRUDParam): void;
1411
- removeDataArray(data: Partial<T>[], options?: DataSourceCRUDParam): void;
1412
- addData(data: T, options?: DataSourceCRUDParam): void;
1413
- addDataArray(data: T[], options?: DataSourceCRUDParam): void;
1414
- insertData(data: T, options: DataSourceInsertParam): void;
1415
- insertDataArray(data: T[], options: DataSourceInsertParam): void;
1475
+ updateData(data: Partial<T>, options?: DataSourceCRUDParam): Promise<any>;
1476
+ updateDataArray(data: Partial<T>[], options?: DataSourceCRUDParam): Promise<any>;
1477
+ removeDataByPrimaryKey(id: any, options?: DataSourceCRUDParam): Promise<any>;
1478
+ removeDataArrayByPrimaryKeys(id: any[], options?: DataSourceCRUDParam): Promise<any>;
1479
+ removeData(data: Partial<T>, options?: DataSourceCRUDParam): Promise<any>;
1480
+ removeDataArray(data: Partial<T>[], options?: DataSourceCRUDParam): Promise<any>;
1481
+ addData(data: T, options?: DataSourceCRUDParam): Promise<any>;
1482
+ addDataArray(data: T[], options?: DataSourceCRUDParam): Promise<any>;
1483
+ insertData(data: T, options: DataSourceInsertParam): Promise<any>;
1484
+ insertDataArray(data: T[], options: DataSourceInsertParam): Promise<any>;
1416
1485
  }
1417
1486
  type DataSourceProps<T> = {
1418
1487
  children: React$1.ReactNode | ((contextData: DataSourceState<T>) => React$1.ReactNode);
@@ -1592,6 +1661,7 @@ type InfiniteTableRowInfoDataDiscriminator_RowInfoNormal<T> = {
1592
1661
  rowInfo: InfiniteTable_NoGrouping_RowInfoNormal<T> | InfiniteTable_HasGrouping_RowInfoNormal<T>;
1593
1662
  field?: keyof T;
1594
1663
  value: any;
1664
+ rawValue: any;
1595
1665
  rowSelected: boolean | null;
1596
1666
  };
1597
1667
  type InfiniteTableRowInfoDataDiscriminator_RowInfoGroup<T> = {
@@ -1601,6 +1671,7 @@ type InfiniteTableRowInfoDataDiscriminator_RowInfoGroup<T> = {
1601
1671
  isGroupRow: true;
1602
1672
  field?: keyof T;
1603
1673
  value: any;
1674
+ rawValue: any;
1604
1675
  rowSelected: boolean | null;
1605
1676
  };
1606
1677
  type InfiniteTableRowInfoDataDiscriminator<T> = InfiniteTableRowInfoDataDiscriminator_RowInfoNormal<T> | InfiniteTableRowInfoDataDiscriminator_RowInfoGroup<T>;
@@ -2057,6 +2128,7 @@ type InfiniteTableEventHandlerContext<T> = {
2057
2128
  getDataSourceState: () => DataSourceState<T>;
2058
2129
  dataSourceActions: DataSourceComponentActions<T>;
2059
2130
  api: InfiniteTableApi<T>;
2131
+ dataSourceApi: DataSourceApi<T>;
2060
2132
  };
2061
2133
  type InfiniteTableKeyboardEventHandlerContext<T> = InfiniteTableEventHandlerContext<T>;
2062
2134
  type InfiniteTableCellClickEventHandlerContext<T> = InfiniteTableEventHandlerContext<T> & {
@@ -2105,7 +2177,7 @@ type InfiniteTableColumnType<T> = {
2105
2177
  align?: InfiniteTableColumn<T>['align'];
2106
2178
  verticalAlign?: InfiniteTableColumn<T>['verticalAlign'];
2107
2179
  contentFocusable?: InfiniteTableColumn<T>['contentFocusable'];
2108
- editable?: InfiniteTableColumn<T>['editable'];
2180
+ defaultEditable?: InfiniteTableColumn<T>['defaultEditable'];
2109
2181
  columnGroup?: string;
2110
2182
  cssEllipsis?: boolean;
2111
2183
  headerCssEllipsis?: boolean;
@@ -2139,15 +2211,53 @@ type InfiniteTableColumnApi<_T> = {
2139
2211
  clearSort: () => void;
2140
2212
  setSort: (sort: SortDir | null) => void;
2141
2213
  };
2142
- type InfiniteTableApi<T> = {
2214
+ type InfiniteTableApiStopEditParams = {
2215
+ cancel: true;
2216
+ reject?: never;
2217
+ value?: never;
2218
+ } | {
2219
+ reject: Error;
2220
+ cancel?: never;
2221
+ value?: never;
2222
+ } | {
2223
+ value?: any;
2224
+ cancel?: never;
2225
+ reject?: never;
2226
+ };
2227
+ type InfiniteTableApiIsCellEditableParams = {
2228
+ columnId: string;
2229
+ rowIndex: number;
2230
+ };
2231
+ type InfiniteTableApiStopEditPromiseResolveType = {
2232
+ cancel: true;
2233
+ value: null;
2234
+ } | {
2235
+ reject: Error;
2236
+ value: any;
2237
+ } | boolean;
2238
+ interface InfiniteTableApi<T> {
2143
2239
  get selectionApi(): InfiniteTableSelectionApi;
2144
2240
  setColumnOrder: (columnOrder: InfiniteTablePropColumnOrder) => void;
2145
2241
  setColumnVisibility: (columnVisibility: InfiniteTablePropColumnVisibility) => void;
2146
- x?: T;
2242
+ clearEditInfo: () => void;
2243
+ isEditorVisibleForCell(params: {
2244
+ rowIndex: number;
2245
+ columnId: string;
2246
+ }): boolean;
2147
2247
  get scrollLeft(): number;
2148
2248
  set scrollLeft(value: number);
2149
2249
  get scrollTop(): number;
2150
2250
  set scrollTop(value: number);
2251
+ isCellEditable: (params: InfiniteTableApiIsCellEditableParams) => Promise<boolean>;
2252
+ startEdit: (params: InfiniteTableApiIsCellEditableParams) => Promise<boolean>;
2253
+ stopEdit: (params?: InfiniteTableApiStopEditParams) => Promise<InfiniteTableApiStopEditPromiseResolveType>;
2254
+ persistEdit: (params?: {
2255
+ value?: any;
2256
+ }) => Promise<true | Error>;
2257
+ rejectEdit: (error: Error) => Promise<InfiniteTableApiStopEditPromiseResolveType>;
2258
+ confirmEdit: (value?: any) => Promise<InfiniteTableApiStopEditPromiseResolveType>;
2259
+ cancelEdit: () => Promise<InfiniteTableApiStopEditPromiseResolveType>;
2260
+ isEditInProgress: () => boolean;
2151
2261
  getVerticalRenderRange: () => {
2152
2262
  renderStartIndex: number;
2153
2263
  renderEndIndex: number;
@@ -2174,7 +2284,8 @@ type InfiniteTableApi<T> = {
2174
2284
  }) => boolean;
2175
2285
  getState: () => InfiniteTableState<T>;
2176
2286
  getDataSourceState: () => DataSourceState<T>;
2177
- };
2287
+ focus: () => void;
2288
+ }
2178
2289
  type InfiniteTablePropVirtualizeColumns<T> = boolean | ((columns: InfiniteTableComputedColumn<T>[]) => boolean);
2179
2290
  type InfiniteTableColumnsMap<T, ColumnType = InfiniteTableColumn<T>> = Map<string, ColumnType>;
2180
2291
  type InfiniteTablePropColumns<T, ColumnType = InfiniteTableColumn<T>> = Record<string, ColumnType> | InfiniteTableColumnsMap<T, ColumnType>;
@@ -2236,6 +2347,11 @@ type ScrollStopInfo = {
2236
2347
  lastVisibleRowIndex: number;
2237
2348
  };
2238
2349
  type InfiniteTablePropFilterEditors<T> = Record<string, React$1.FC<InfiniteTableFilterEditorProps<T>>>;
2350
+ type InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T> = {
2351
+ column: InfiniteTableComputedColumn<T>;
2352
+ api: InfiniteTableApi<T>;
2353
+ dataSourceApi: DataSourceApi<T>;
2354
+ } & InfiniteTableRowInfoDataDiscriminator<T>;
2239
2355
  type InfiniteTableFilterEditorProps<T extends any> = {
2240
2356
  filterType: string;
2241
2357
  operator: string;
@@ -2244,6 +2360,16 @@ type InfiniteTableFilterEditorProps<T extends any> = {
2244
2360
  className: string;
2245
2361
  onChange: (value: T | undefined) => void;
2246
2362
  };
2363
+ type InfiniteTablePropsEditable<T> = InfiniteTableColumnEditableFn<T> | undefined;
2364
+ type InfiniteTablePropOnEditAcceptedParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T> & {
2365
+ initialValue: any;
2366
+ };
2367
+ type InfiniteTablePropOnEditCancelledParams<T> = InfiniteTablePropOnEditAcceptedParams<T>;
2368
+ type InfiniteTablePropOnEditRejectedParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T> & {
2369
+ initialValue: any;
2370
+ error: Error;
2371
+ };
2372
+ type InfiniteTablePropOnEditPersistParams<T> = InfiniteTablePropOnEditAcceptedParams<T>;
2247
2373
  interface InfiniteTableProps<T> {
2248
2374
  columns: InfiniteTablePropColumns<T>;
2249
2375
  pivotColumns?: InfiniteTableColumnsMap<T, InfiniteTablePivotColumn<T>>;
@@ -2252,6 +2378,8 @@ interface InfiniteTableProps<T> {
2252
2378
  viewportReservedWidth?: number;
2253
2379
  onViewportReservedWidthChange?: (viewportReservedWidth: number) => void;
2254
2380
  pivotColumn?: InfiniteTablePropPivotColumn<T, InfiniteTableColumn<T> & InfiniteTablePivotFinalColumn<T>>;
2381
+ columnDefaultEditable?: boolean;
2382
+ editable?: InfiniteTablePropsEditable<T>;
2255
2383
  pivotTotalColumnPosition?: InfiniteTablePropPivotTotalColumnPosition;
2256
2384
  pivotGrandTotalColumnPosition?: InfiniteTablePropPivotGrandTotalColumnPosition;
2257
2385
  groupColumn?: Partial<InfiniteTablePropGroupColumn<T>>;
@@ -2261,6 +2389,15 @@ interface InfiniteTableProps<T> {
2261
2389
  defaultColumnVisibility?: InfiniteTablePropColumnVisibility;
2262
2390
  pinnedStartMaxWidth?: number;
2263
2391
  pinnedEndMaxWidth?: number;
2392
+ shouldAcceptEdit?: (params: InfiniteTablePropOnEditAcceptedParams<T>) => boolean | Error | Promise<boolean | Error>;
2393
+ onEditCancelled?: (params: InfiniteTablePropOnEditCancelledParams<T>) => void;
2394
+ onEditAccepted?: (params: InfiniteTablePropOnEditAcceptedParams<T>) => void;
2395
+ onEditRejected?: (params: InfiniteTablePropOnEditRejectedParams<T>) => void;
2396
+ persistEdit?: (params: InfiniteTablePropOnEditPersistParams<T>) => any | Error | Promise<any | Error>;
2397
+ onEditPersistSuccess?: (params: InfiniteTablePropOnEditPersistParams<T>) => void;
2398
+ onEditPersistError?: (params: InfiniteTablePropOnEditPersistParams<T> & {
2399
+ error: Error;
2400
+ }) => void;
2264
2401
  columnPinning?: InfiniteTablePropColumnPinning;
2265
2402
  defaultColumnPinning?: InfiniteTablePropColumnPinning;
2266
2403
  columnSizing?: InfiniteTablePropColumnSizing;
@@ -2454,4 +2591,4 @@ declare const components: {
2454
2591
  LoadMask: (props: LoadMaskProps) => JSX.Element;
2455
2592
  };
2456
2593
 
2457
- export { AdvancedAlignable, ColumnTypeWithInherit, DataSource, DataSourceAction, DataSourceActionType, DataSourceAggregationReducer, DataSourceApi, DataSourceCRUDParam, DataSourceComponentActions, DataSourceContextValue, DataSourceData, DataSourceDataParams, DataSourceDataParamsChanges, DataSourceDerivedState, DataSourceFilterFunctionParam, DataSourceFilterOperator, DataSourceFilterOperatorFunction, DataSourceFilterOperatorFunctionParam, DataSourceFilterType, DataSourceFilterValueItem, DataSourceFilterValueItemValueGetter, DataSourceGroupBy, DataSourceGroupRowsList, DataSourceInsertParam, DataSourceLivePaginationCursorFn, DataSourceLivePaginationCursorParams, DataSourceLivePaginationCursorValue, DataSourceMappedState, DataSourceMappings, DataSourcePivotBy, DataSourcePropAggregationReducers, DataSourcePropCellSelection, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropPivotBy, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourceProps, DataSourceReducer, DataSourceRemoteData, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, ElementContainerGetter, GroupRowsState, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnsMap, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableFilterEditorProps, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropFilterEditors, InfiniteTablePropGetColumnContextMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTableRowClassNameFn, InfiniteTableRowInfo, InfiniteTableRowStyleFn, InfiniteTableState, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, NumberFilterEditor, OverlayShowParams, RowSelectionState, Scrollbars, StringFilterEditor, components, debounce, defaultFilterEditors, defaultFilterTypes, defaultFilterTypes as filterTypes, flatten, getComponentStateRoot, group, interceptMap, multisort, useComponentState, useDataSource, useEffectWithChanges, useInfiniteColumnCell, useInfiniteHeaderCell, useOverlay, useOverlayPortal };
2594
+ export { AdvancedAlignable, ColumnTypeWithInherit, DataSource, DataSourceAction, DataSourceActionType, DataSourceAggregationReducer, DataSourceApi, DataSourceCRUDParam, DataSourceComponentActions, DataSourceContextValue, DataSourceData, DataSourceDataParams, DataSourceDataParamsChanges, DataSourceDerivedState, DataSourceFilterFunctionParam, DataSourceFilterOperator, DataSourceFilterOperatorFunction, DataSourceFilterOperatorFunctionParam, DataSourceFilterType, DataSourceFilterValueItem, DataSourceFilterValueItemValueGetter, DataSourceGroupBy, DataSourceGroupRowsList, DataSourceInsertParam, DataSourceLivePaginationCursorFn, DataSourceLivePaginationCursorParams, DataSourceLivePaginationCursorValue, DataSourceMappedState, DataSourceMappings, DataSourcePivotBy, DataSourcePropAggregationReducers, DataSourcePropCellSelection, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropPivotBy, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourceProps, DataSourceReducer, DataSourceRemoteData, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, ElementContainerGetter, GroupRowsState, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnsMap, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableFilterEditorProps, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropFilterEditors, InfiniteTablePropGetColumnContextMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTableRowClassNameFn, InfiniteTableRowInfo, InfiniteTableRowStyleFn, InfiniteTableState, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, NumberFilterEditor, OverlayShowParams, RowSelectionState, Scrollbars, StringFilterEditor, components, debounce, defaultFilterEditors, defaultFilterTypes, defaultFilterTypes as filterTypes, flatten, getComponentStateRoot, group, interceptMap, multisort, useComponentState, useDataSource, useEffectWithChanges, useInfiniteColumnCell, useInfiniteColumnEditor, useInfiniteHeaderCell, useOverlay, useOverlayPortal };
package/index.esm.css CHANGED
@@ -1 +1 @@
1
- :root{--infinite-space-0: 0rem;--infinite-space-1: .125rem;--infinite-space-2: .25rem;--infinite-space-3: .5rem;--infinite-space-4: .75rem;--infinite-space-5: 1rem;--infinite-space-6: 1.25rem;--infinite-space-7: 1.5rem;--infinite-space-8: 2.25rem;--infinite-space-9: 3rem;--infinite-space-10: 4rem;--infinite-font-size-0: .5rem;--infinite-font-size-1: .625rem;--infinite-font-size-2: .75rem;--infinite-font-size-3: .875rem;--infinite-font-size-4: 1rem;--infinite-font-size-5: 1.25rem;--infinite-font-size-6: 1.5rem;--infinite-font-size-7: 2.25rem;--infinite-font-family: inherit;--infinite-color: #484848;--infinite-accent-color: #ff7043;--infinite-error-color: #ff0000;--infinite-border-radius: var(--infinite-space-2);--infinite-background: white;--infinite-min-height: 100px;--infinite-selection-checkbox-margin-inline: var(--infinite-space-2);--infinite-menu-background: var(--infinite-background);--infinite-menu-color: var(--infinite-cell-color);--infinite-menu-padding: var(--infinite-space-3);--infinite-menu-cell-padding-vertical: var(--infinite-space-3);--infinite-menu-cell-padding-horizontal: var(--infinite-space-3);--infinite-menu-cell-margin-vertical: var(--infinite-space-0);--infinite-menu-item-disabled-background: var(--infinite-menu-background);--infinite-menu-item-disabled-opacity: .5;--infinite-menu-item-active-background: var(--infinite-row-hover-background);--infinite-menu-item-pressed-background: var(--infinite-row-hover-background);--infinite-menu-item-active-opacity: .9;--infinite-menu-item-pressed-opacity: 1;--infinite-menu-border-radius: var(--infinite-space-2);--infinite-menu-shadow-color: rgba(0,0,0,.25);--infinite-load-mask-text-background: rgba(255,255,255,.8);--infinite-load-mask-overlay-background: gray;--infinite-load-mask-overlay-opacity: .3;--infinite-load-mask-color: inherit;--infinite-load-mask-padding: var(--infinite-space-5);--infinite-load-mask-border-radius: var(--infinite-border-radius);--infinite-resize-handle-active-area-width: 20px;--infinite-resize-handle-width: 2px;--infinite-resize-handle-hover-background: #6bff6b;--infinite-resize-handle-constrained-hover-background: var(--infinite-error-color);--infinite-header-cell-background: #ededed;--infinite-header-cell-hover-background: #dfdfdf;--infinite-header-cell-padding-x: var(--infinite-space-3);--infinite-header-cell-padding-y: var(--infinite-space-3);--infinite-header-cell-padding: var(--infinite-header-cell-padding-y) var(--infinite-header-cell-padding-x) ;--infinite-header-cell-icon-size: 16px;--infinite-header-cell-menu-icon-line-width: 1px;--infinite-header-cell-sort-icon-margin: 16px;--infinite-header-background: var(--infinite-header-cell-background);--infinite-header-color: #6f6f6f;--infinite-column-header-height: 30px;--infinite-cell-color: currentColor;--infinite-cell-border-width: 1px;--infinite-cell-padding: var(--infinite-space-2) var(--infinite-space-3);--infinite-cell-border: var(--infinite-cell-border-width) solid #c6c6c6;--infinite-pinned-cell-border: var(--infinite-cell-border-width) solid #2a323d;--infinite-cell-border-invisible: none;--infinite-cell-border-radius: var(--infinite-space-2);--infinite-column-reorder-effect-duration: .2s;--infinite-active-cell-border-style: dashed;--infinite-active-cell-border-width: 1px;--infinite-active-cell-border-color--r: 77;--infinite-active-cell-border-color--g: 149;--infinite-active-cell-border-color--b: 215;--infinite-active-cell-background-alpha: .25;--infinite-active-cell-background-alpha--table-unfocused: .1;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #f6f6f6;--infinite-row-selected-background: #d1e9ff;--infinite-row-selected-hover-background: #add8ff;--infinite-group-row-background: #cbc5c5;--infinite-group-row-column-nesting: 30px;--infinite-row-hover-background: #dbdbdb;--infinite-row-pointer-events-while-scrolling: auto}.light,.infinite-light,.light:root,.infinite-light:root{--infinite-space-0: 0rem;--infinite-space-1: .125rem;--infinite-space-2: .25rem;--infinite-space-3: .5rem;--infinite-space-4: .75rem;--infinite-space-5: 1rem;--infinite-space-6: 1.25rem;--infinite-space-7: 1.5rem;--infinite-space-8: 2.25rem;--infinite-space-9: 3rem;--infinite-space-10: 4rem;--infinite-font-size-0: .5rem;--infinite-font-size-1: .625rem;--infinite-font-size-2: .75rem;--infinite-font-size-3: .875rem;--infinite-font-size-4: 1rem;--infinite-font-size-5: 1.25rem;--infinite-font-size-6: 1.5rem;--infinite-font-size-7: 2.25rem;--infinite-font-family: inherit;--infinite-color: #484848;--infinite-accent-color: #ff7043;--infinite-error-color: #ff0000;--infinite-border-radius: var(--infinite-space-2);--infinite-background: white;--infinite-min-height: 100px;--infinite-selection-checkbox-margin-inline: var(--infinite-space-2);--infinite-menu-background: var(--infinite-background);--infinite-menu-color: var(--infinite-cell-color);--infinite-menu-padding: var(--infinite-space-3);--infinite-menu-cell-padding-vertical: var(--infinite-space-3);--infinite-menu-cell-padding-horizontal: var(--infinite-space-3);--infinite-menu-cell-margin-vertical: var(--infinite-space-0);--infinite-menu-item-disabled-background: var(--infinite-menu-background);--infinite-menu-item-disabled-opacity: .5;--infinite-menu-item-active-background: var(--infinite-row-hover-background);--infinite-menu-item-pressed-background: var(--infinite-row-hover-background);--infinite-menu-item-active-opacity: .9;--infinite-menu-item-pressed-opacity: 1;--infinite-menu-border-radius: var(--infinite-space-2);--infinite-menu-shadow-color: rgba(0,0,0,.25);--infinite-load-mask-text-background: rgba(255,255,255,.8);--infinite-load-mask-overlay-background: gray;--infinite-load-mask-overlay-opacity: .3;--infinite-load-mask-color: inherit;--infinite-load-mask-padding: var(--infinite-space-5);--infinite-load-mask-border-radius: var(--infinite-border-radius);--infinite-resize-handle-active-area-width: 20px;--infinite-resize-handle-width: 2px;--infinite-resize-handle-hover-background: #6bff6b;--infinite-resize-handle-constrained-hover-background: var(--infinite-error-color);--infinite-header-cell-background: #ededed;--infinite-header-cell-hover-background: #dfdfdf;--infinite-header-cell-padding-x: var(--infinite-space-3);--infinite-header-cell-padding-y: var(--infinite-space-3);--infinite-header-cell-padding: var(--infinite-header-cell-padding-y) var(--infinite-header-cell-padding-x) ;--infinite-header-cell-icon-size: 16px;--infinite-header-cell-menu-icon-line-width: 1px;--infinite-header-cell-sort-icon-margin: 16px;--infinite-header-background: var(--infinite-header-cell-background);--infinite-header-color: #6f6f6f;--infinite-column-header-height: 30px;--infinite-cell-color: currentColor;--infinite-cell-border-width: 1px;--infinite-cell-padding: var(--infinite-space-2) var(--infinite-space-3);--infinite-cell-border: var(--infinite-cell-border-width) solid #c6c6c6;--infinite-pinned-cell-border: var(--infinite-cell-border-width) solid #2a323d;--infinite-cell-border-invisible: none;--infinite-cell-border-radius: var(--infinite-space-2);--infinite-column-reorder-effect-duration: .2s;--infinite-active-cell-border-style: dashed;--infinite-active-cell-border-width: 1px;--infinite-active-cell-border-color--r: 77;--infinite-active-cell-border-color--g: 149;--infinite-active-cell-border-color--b: 215;--infinite-active-cell-background-alpha: .25;--infinite-active-cell-background-alpha--table-unfocused: .1;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #f6f6f6;--infinite-row-selected-background: #d1e9ff;--infinite-row-selected-hover-background: #add8ff;--infinite-group-row-background: #cbc5c5;--infinite-group-row-column-nesting: 30px;--infinite-row-hover-background: #dbdbdb;--infinite-row-pointer-events-while-scrolling: auto}.dark,.infinite-dark{--infinite-background: #101419;--infinite-cell-border: 1px solid #2a323d;--infinite-header-color: #c3c3c3;--infinite-header-cell-background: #1b2129;--infinite-header-cell-hover-background: #222932;--infinite-header-background: var(--infinite-header-cell-background);--infinite-row-hover-background: #3b4754;--infinite-row-selected-background: #0a2e4f;--infinite-row-selected-hover-background: #0b243a;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #242a31;--infinite-cell-color: #c3c3c3;--infinite-menu-shadow-color: rgba(255,255,255,.25);--infinite-menu-background: #101419;--infinite-menu-color: #c3c3c3;--infinite-menu-item-disabled-background: #101419;--infinite-menu-item-active-background: #3b4754;--infinite-menu-item-pressed-background: #3b4754}@media (prefers-color-scheme: dark){:root{--infinite-background: #101419;--infinite-cell-border: 1px solid #2a323d;--infinite-header-color: #c3c3c3;--infinite-header-cell-background: #1b2129;--infinite-header-cell-hover-background: #222932;--infinite-header-background: var(--infinite-header-cell-background);--infinite-row-hover-background: #3b4754;--infinite-row-selected-background: #0a2e4f;--infinite-row-selected-hover-background: #0b243a;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #242a31;--infinite-cell-color: #c3c3c3;--infinite-menu-shadow-color: rgba(255,255,255,.25);--infinite-menu-background: #101419;--infinite-menu-color: #c3c3c3;--infinite-menu-item-disabled-background: #101419;--infinite-menu-item-active-background: #3b4754;--infinite-menu-item-pressed-background: #3b4754}}._16lm1iw0{box-sizing:border-box}._16lm1iw0:before{box-sizing:border-box}._16lm1iw0:after{box-sizing:border-box}._16lm1iw0 *{box-sizing:border-box}._16lm1iw0 *:before{box-sizing:border-box}._16lm1iw0 *:after{box-sizing:border-box}._16lm1iw1{position:relative}._16lm1iw2{position:absolute}._16lm1iw3{position:sticky}._16lm1iw4{position:fixed}._16lm1iw5{fill:currentColor}._16lm1iw6{fill:var(--infinite-accent-color)}._16lm1iw7{margin:0}._16lm1iw8{stroke:currentColor}._16lm1iw9{stroke:var(--infinite-accent-color)}._16lm1iwa{background:inherit}._16lm1iwb{transform:translate(0)}._16lm1iwc{transform:translate(0)}._16lm1iwd{transform:rotate(90deg)}._16lm1iwe{transform:rotate(180deg)}._16lm1iwf{cursor:pointer}._16lm1iwg{cursor:default}._16lm1iwh{cursor:col-resize}._16lm1iwi{pointer-events:none}._16lm1iwj{flex:1}._16lm1iwk{flex:none}._16lm1iwl{z-index:1}._16lm1iwm{z-index:10}._16lm1iwn{z-index:100}._16lm1iwo{z-index:1000}._16lm1iwp{z-index:10000}._16lm1iwq{z-index:100000}._16lm1iwr{z-index:1000000}._16lm1iws{z-index:10000000}._16lm1iwt{z-index:1000}._16lm1iwu{z-index:10000}._16lm1iwv{z-index:100000}._16lm1iww{display:flex}._16lm1iwx{display:contents}._16lm1iwy{display:none}._16lm1iwz{display:block}._16lm1iw10{display:grid}._16lm1iw11{display:inline-block}._16lm1iw12{display:inline-flex}._16lm1iw13{display:inline-grid}._16lm1iw14{-webkit-user-select:none;-moz-user-select:none;user-select:none}._16lm1iw15{height:0}._16lm1iw16{height:100%}._16lm1iw17{width:0}._16lm1iw18{width:100%}._16lm1iw19{top:0}._16lm1iw1a{top:100%}._16lm1iw1b{left:0}._16lm1iw1c{left:100%}._16lm1iw1d{left:auto}._16lm1iw1e{bottom:0}._16lm1iw1f{bottom:100%}._16lm1iw1g{right:0}._16lm1iw1h{right:100%}._16lm1iw1i{right:auto}._16lm1iw1j{flex-flow:column}._16lm1iw1k{flex-flow:column-reverse}._16lm1iw1l{flex-flow:row}._16lm1iw1m{flex-flow:row-reverse}._16lm1iw1n{align-items:center}._16lm1iw1o{align-items:stretch}._16lm1iw1p{justify-content:center}._16lm1iw1q{justify-content:space-between}._16lm1iw1r{justify-content:space-around}._16lm1iw1s{justify-content:flex-start}._16lm1iw1t{justify-content:flex-end}._16lm1iw1u{overflow:hidden}._16lm1iw1v{overflow:auto}._16lm1iw1w{overflow:visible}._16lm1iw1x{visibility:visible}._16lm1iw1y{visibility:hidden}._16lm1iw1z{will-change:transform}._16lm1iw20{white-space:nowrap}._16lm1iw21{text-overflow:ellipsis}.mlx2t2{display:inline-block}.mlx2t3{height:0;width:0;will-change:transform}._1ueijco0{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch;outline:none;position:fixed;height:100%;width:100%;left:0;top:0}._1ueijco0>:first-child{position:sticky;top:0;left:0}._1ueijco1{overflow:auto}._1ueijco2{overflow:hidden}._1ueijco3{overflow:visible}._1ueijco4{overflow:auto}._1ueijco5{overflow:hidden}._1ueijco6{overflow-x:auto}._1ueijco7{overflow-x:hidden}._1ueijco8{overflow-x:visible}._1ueijco9{overflow-x:auto}._1ueijcoa{overflow-x:hidden}._1ueijcob{overflow-y:auto}._1ueijcoc{overflow-y:hidden}._1ueijcod{overflow-y:visible}._1ueijcoe{overflow-y:auto}._1ueijcof{overflow-y:hidden}.nxbq1c1{border:var(--infinite-active-cell-border, var(--infinite-active-cell-border-width) var(--infinite-active-cell-border-style) var(--infinite-active-cell-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));background:var(--infinite-active-cell-background, rgba(var(--infinite-active-cell-border-color--r), var(--infinite-active-cell-border-color--g), var(--infinite-active-cell-border-color--b), var(--infinite-active-cell-background-alpha)))}.nxbq1c2{display:block}.nxbq1c3{display:none}.j26lrx0{--infinite-active-row-border-style: var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style));border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));background:var(--infinite-active-row-background, var(--infinite-active-cell-background, rgba(var(--infinite-active-cell-border-color--r), var(--infinite-active-cell-border-color--g), var(--infinite-active-cell-border-color--b), var(--infinite-active-row-background-alpha, var(--infinite-active-cell-background-alpha)))))}.j26lrx1{display:block}.j26lrx2{display:none}._1yeub2v0{outline:none;font-family:var(--infinite-font-family);color:var(--infinite-color);background:var(--infinite-background);min-height:var(--infinite-min-height)}._1yeub2v1{--infinite-row-pointer-events-while-scrolling: none}._1yeub2ve{--infinite-active-cell-background-alpha: var(--infinite-active-cell-background-alpha--table-unfocused);--infinite-active-row-background-alpha: var(--infinite-active-row-background-alpha--table-unfocused, var(--infinite-active-cell-background-alpha--table-unfocused))}._1yeub2vi{border-right:var(--infinite-cell-border)}._1yeub2vj{border-left:var(--infinite-cell-border)}._1yeub2vl{-webkit-user-select:none;-moz-user-select:none;user-select:none}._1yeub2vp{transform:translate(-100%);border-right:var(--infinite-pinned-cell-border);bottom:var(--_1slvgu9m)}._1yeub2vq{left:var(--_1slvgu9f)}._1yeub2vn ._1yeub2vq{visibility:visible}._1yeub2vr{left:calc(var(--_1slvgu9h))}._1yeub2vo ._1yeub2vr{visibility:visible}._7pupv00{will-change:transform;position:absolute;top:0;left:0;pointer-events:var(--infinite-row-pointer-events-while-scrolling);--infinite-column-cell-bg-dont-override: var(--infinite-row-background)}._7pupv01{--infinite-row-background: var(--infinite-row-hover-background);--infinite-row-selected-background: var(--infinite-row-selected-hover-background);--infinite-row-odd-background: var(--infinite-row-hover-background)}._7pupv03{background:var(--infinite-row-background)}._7pupv04{background:var(--infinite-row-odd-background)}._7pupv05{z-index:100}._7pupv07{z-index:100}._7pupv0b{-webkit-padding-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._7pupv0c{-webkit-padding-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._7pupv0d{-webkit-padding-end:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-end:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._1eexc2a0{justify-content:center}._1eexc2a1{justify-content:flex-start}._1eexc2a2{justify-content:flex-start;flex-flow:row-reverse}._1eexc2a3{transition:left .3s}._1eexc2a4{transition:none}._1eexc2a5{padding:var(--infinite-cell-padding);border-left:var(--infinite-cell-border-width) solid transparent;border-right:var(--infinite-cell-border-width) solid transparent}._1yeub2vl ._1eexc2a6{transition:transform var(--infinite-column-reorder-effect-duration)}._1eexc2a7{margin-inline:var(--infinite-selection-checkbox-margin-inline)}._1eexc2a8{color:var(--infinite-cell-color)}._1eexc2ah{background:var(--infinite-row-background)}._1eexc2ai{background:var(--infinite-row-odd-background)}._1eexc2aj{background:var(--infinite-row-selected-background)}._1eexc2am{border-top-left-radius:var(--infinite-cell-border-radius);border-bottom-left-radius:var(--infinite-cell-border-radius)}._1eexc2ao{border-top-right-radius:var(--infinite-cell-border-radius);border-bottom-right-radius:var(--infinite-cell-border-radius)}.qz8ht90[disabled]{opacity:.7}._12zfob11{margin-left:var(--infinite-header-cell-sort-icon-margin)}._12zfob12{margin-left:var(--infinite-header-cell-sort-icon-margin)}._12zfob13{margin-right:var(--infinite-header-cell-sort-icon-margin)}._12zfob14{line-height:0;font-size:10px;border-radius:50%;padding:1px;position:absolute;transition:top .2s;top:0;right:2px}._12zfob15{background:var(--infinite-header-background);top:0;right:0;bottom:0}._12zfob16{background:var(--infinite-header-background);color:var(--infinite-header-color)}._12zfob1e{z-index:10}._12zfob1k{background:var(--infinite-header-cell-hover-background);color:var(--infinite-cell-color);opacity:.8;padding:var(--infinite-cell-padding);padding-left:20px;z-index:2000}._12zfob1l{border-left:var(--infinite-cell-border-width) solid transparent;border-right:var(--infinite-cell-border);background:var(--infinite-header-cell-background);padding:0}._12zfob1l:hover{background:var(--infinite-header-cell-hover-background)}._12zfob1z{border-top-left-radius:var(--infinite-cell-border-radius);border-bottom-left-radius:var(--infinite-cell-border-radius)}._12zfob111{border-top-right-radius:var(--infinite-cell-border-radius);border-bottom-right-radius:var(--infinite-cell-border-radius)}._12zfob119{z-index:10}._1yeub2va ._12zfob11e{--infinite-cell-border: var(--infinite-cell-border-invisible)}._12zfob11g{border-right:var(--infinite-cell-border)}._12zfob11h{cursor:context-menu;-webkit-padding-before:2px;padding-block-start:2px;-webkit-padding-after:2px;padding-block-end:2px;min-width:var(--infinite-header-cell-icon-size);height:var(--infinite-header-cell-icon-size)}._12zfob11h:active{top:1px}._12zfob1l:hover ._12zfob11h{visibility:visible;display:flex}._12zfob11j{display:none}._12zfob11k{padding:var(--infinite-header-cell-padding)}._12zfob11o{flex-direction:row-reverse}._12zfob11p{justify-content:center}._12zfob11q{background:var(--infinite-header-background)}._12zfob11r{padding:var(--infinite-cell-padding);border-bottom:var(--infinite-cell-border);border-right:var(--infinite-cell-border);background:var(--infinite-header-cell-background)}._12zfob11s{border-top:var(--infinite-cell-border)}._1ek6mqy0{-webkit-padding-before:2px;padding-block-start:2px;-webkit-padding-after:2px;padding-block-end:2px;min-width:var(--infinite-header-cell-icon-size);height:var(--infinite-header-cell-icon-size)}.zneyzh0{transform:translate(50%);width:var(--infinite-resize-handle-active-area-width)}.zneyzh0:hover{overflow:visible}.zneyzh2{transform:translate(-50%)}.zneyzh8{transform:none}.zneyzh9{transform:none}.zneyzha{transform:none}.zneyzhb{right:calc((var(--infinite-resize-handle-active-area-width) - var(--infinite-resize-handle-width)) / 2);width:var(--infinite-resize-handle-width)}.zneyzh0:hover .zneyzhb{background:var(--infinite-resize-handle-hover-background)}.zneyzh0:hover .zneyzhd{background:var(--infinite-resize-handle-constrained-hover-background)}.qy58ya0{flex-flow:row;align-items:center;justify-content:center}.qy58ya1{display:flex}.qy58ya2{display:none}.qy58ya3{background:var(--infinite-load-mask-overlay-background);opacity:var(--infinite-load-mask-overlay-opacity)}.qy58ya4{position:relative;padding:var(--infinite-load-mask-padding);color:var(--infinite-load-mask-color);background:var(--infinite-load-mask-text-background);border-radius:var(--infinite-load-mask-border-radius)}.db3arf0{padding:var(--infinite-menu-padding);color:var(--infinite-menu-color);background:var(--infinite-menu-background);border-radius:var(--infinite-menu-border-radius);outline:none;box-shadow:0 6px 12px -2px var(--infinite-menu-shadow-color),0 3px 7px -3px var(--infinite-menu-background)}.db3arf1{display:contents}.db3arf2{padding-block:var(--infinite-menu-cell-padding-vertical);padding-inline:var(--infinite-menu-cell-padding-horizontal);margin-block:var(--infinite-menu-cell-margin-vertical);border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));border-color:transparent}.db3arf3{opacity:var(--infinite-menu-item-disabled-opacity);background:var(--infinite-menu-item-disabled-background)}.db3arf0:focus-within>.db3arf1>.db3arf9{border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))))}.db3arf0:focus-within>.db3arf1>.db3arf9:first-child:last-child{border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))))}.db3arf0:focus-within>.db3arf1>.db3arf9:first-child{border-right-color:transparent}.db3arf0:focus-within>.db3arf1>.db3arf9:last-child{border-left-color:transparent}.db3arf0:focus-within>.db3arf1>.db3arf9:not(:first-child):not(:last-child){border-left-color:transparent;border-right-color:transparent}.db3arfb{background:var(--infinite-menu-item-active-background);opacity:var(--infinite-menu-item-active-opacity)}.db3arfc{background:var(--infinite-menu-item-pressed-background);opacity:var(--infinite-menu-item-pressed-opacity)}.db3arfd{border-top:1px solid currentColor;border-bottom:0;margin-top:calc(var(--infinite-menu-cell-padding-vertical) / 2);margin-bottom:calc(var(--infinite-menu-cell-padding-vertical) / 2)}
1
+ :root{--infinite-space-0: 0rem;--infinite-space-1: .125rem;--infinite-space-2: .25rem;--infinite-space-3: .5rem;--infinite-space-4: .75rem;--infinite-space-5: 1rem;--infinite-space-6: 1.25rem;--infinite-space-7: 1.5rem;--infinite-space-8: 2.25rem;--infinite-space-9: 3rem;--infinite-space-10: 4rem;--infinite-font-size-0: .5rem;--infinite-font-size-1: .625rem;--infinite-font-size-2: .75rem;--infinite-font-size-3: .875rem;--infinite-font-size-4: 1rem;--infinite-font-size-5: 1.25rem;--infinite-font-size-6: 1.5rem;--infinite-font-size-7: 2.25rem;--infinite-font-family: inherit;--infinite-color: #484848;--infinite-accent-color: #ff7043;--infinite-error-color: #ff0000;--infinite-border-radius: var(--infinite-space-2);--infinite-background: white;--infinite-min-height: 100px;--infinite-selection-checkbox-margin-inline: var(--infinite-space-2);--infinite-menu-background: var(--infinite-background);--infinite-menu-color: var(--infinite-cell-color);--infinite-menu-padding: var(--infinite-space-3);--infinite-menu-cell-padding-vertical: var(--infinite-space-3);--infinite-menu-cell-padding-horizontal: var(--infinite-space-3);--infinite-menu-cell-margin-vertical: var(--infinite-space-0);--infinite-menu-item-disabled-background: var(--infinite-menu-background);--infinite-menu-item-disabled-opacity: .5;--infinite-menu-item-active-background: var(--infinite-row-hover-background);--infinite-menu-item-pressed-background: var(--infinite-row-hover-background);--infinite-menu-item-active-opacity: .9;--infinite-menu-item-pressed-opacity: 1;--infinite-menu-border-radius: var(--infinite-space-2);--infinite-menu-shadow-color: rgba(0,0,0,.25);--infinite-load-mask-text-background: rgba(255,255,255,.8);--infinite-load-mask-overlay-background: gray;--infinite-load-mask-overlay-opacity: .3;--infinite-load-mask-color: inherit;--infinite-load-mask-padding: var(--infinite-space-5);--infinite-load-mask-border-radius: var(--infinite-border-radius);--infinite-resize-handle-active-area-width: 20px;--infinite-resize-handle-width: 2px;--infinite-resize-handle-hover-background: #6bff6b;--infinite-resize-handle-constrained-hover-background: var(--infinite-error-color);--infinite-header-cell-background: #ededed;--infinite-header-cell-hover-background: #dfdfdf;--infinite-header-cell-padding-x: var(--infinite-space-3);--infinite-header-cell-padding-y: var(--infinite-space-3);--infinite-header-cell-padding: var(--infinite-header-cell-padding-y) var(--infinite-header-cell-padding-x) ;--infinite-header-cell-icon-size: 16px;--infinite-header-cell-menu-icon-line-width: 1px;--infinite-header-cell-sort-icon-margin: 16px;--infinite-header-background: var(--infinite-header-cell-background);--infinite-header-color: #6f6f6f;--infinite-column-header-height: 30px;--infinite-cell-color: currentColor;--infinite-cell-border-width: 1px;--infinite-cell-padding: var(--infinite-space-2) var(--infinite-space-3);--infinite-cell-border: var(--infinite-cell-border-width) solid #c6c6c6;--infinite-pinned-cell-border: var(--infinite-cell-border-width) solid #2a323d;--infinite-cell-border-invisible: none;--infinite-cell-border-radius: var(--infinite-space-2);--infinite-column-reorder-effect-duration: .2s;--infinite-active-cell-border-style: dashed;--infinite-active-cell-border-width: 1px;--infinite-active-cell-border-color--r: 77;--infinite-active-cell-border-color--g: 149;--infinite-active-cell-border-color--b: 215;--infinite-active-cell-background-alpha: .25;--infinite-active-cell-background-alpha--table-unfocused: .1;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #f6f6f6;--infinite-row-selected-background: #d1e9ff;--infinite-row-selected-hover-background: #add8ff;--infinite-group-row-background: #cbc5c5;--infinite-group-row-column-nesting: 30px;--infinite-row-hover-background: #dbdbdb;--infinite-row-pointer-events-while-scrolling: auto}.light,.infinite-light,.light:root,.infinite-light:root{--infinite-space-0: 0rem;--infinite-space-1: .125rem;--infinite-space-2: .25rem;--infinite-space-3: .5rem;--infinite-space-4: .75rem;--infinite-space-5: 1rem;--infinite-space-6: 1.25rem;--infinite-space-7: 1.5rem;--infinite-space-8: 2.25rem;--infinite-space-9: 3rem;--infinite-space-10: 4rem;--infinite-font-size-0: .5rem;--infinite-font-size-1: .625rem;--infinite-font-size-2: .75rem;--infinite-font-size-3: .875rem;--infinite-font-size-4: 1rem;--infinite-font-size-5: 1.25rem;--infinite-font-size-6: 1.5rem;--infinite-font-size-7: 2.25rem;--infinite-font-family: inherit;--infinite-color: #484848;--infinite-accent-color: #ff7043;--infinite-error-color: #ff0000;--infinite-border-radius: var(--infinite-space-2);--infinite-background: white;--infinite-min-height: 100px;--infinite-selection-checkbox-margin-inline: var(--infinite-space-2);--infinite-menu-background: var(--infinite-background);--infinite-menu-color: var(--infinite-cell-color);--infinite-menu-padding: var(--infinite-space-3);--infinite-menu-cell-padding-vertical: var(--infinite-space-3);--infinite-menu-cell-padding-horizontal: var(--infinite-space-3);--infinite-menu-cell-margin-vertical: var(--infinite-space-0);--infinite-menu-item-disabled-background: var(--infinite-menu-background);--infinite-menu-item-disabled-opacity: .5;--infinite-menu-item-active-background: var(--infinite-row-hover-background);--infinite-menu-item-pressed-background: var(--infinite-row-hover-background);--infinite-menu-item-active-opacity: .9;--infinite-menu-item-pressed-opacity: 1;--infinite-menu-border-radius: var(--infinite-space-2);--infinite-menu-shadow-color: rgba(0,0,0,.25);--infinite-load-mask-text-background: rgba(255,255,255,.8);--infinite-load-mask-overlay-background: gray;--infinite-load-mask-overlay-opacity: .3;--infinite-load-mask-color: inherit;--infinite-load-mask-padding: var(--infinite-space-5);--infinite-load-mask-border-radius: var(--infinite-border-radius);--infinite-resize-handle-active-area-width: 20px;--infinite-resize-handle-width: 2px;--infinite-resize-handle-hover-background: #6bff6b;--infinite-resize-handle-constrained-hover-background: var(--infinite-error-color);--infinite-header-cell-background: #ededed;--infinite-header-cell-hover-background: #dfdfdf;--infinite-header-cell-padding-x: var(--infinite-space-3);--infinite-header-cell-padding-y: var(--infinite-space-3);--infinite-header-cell-padding: var(--infinite-header-cell-padding-y) var(--infinite-header-cell-padding-x) ;--infinite-header-cell-icon-size: 16px;--infinite-header-cell-menu-icon-line-width: 1px;--infinite-header-cell-sort-icon-margin: 16px;--infinite-header-background: var(--infinite-header-cell-background);--infinite-header-color: #6f6f6f;--infinite-column-header-height: 30px;--infinite-cell-color: currentColor;--infinite-cell-border-width: 1px;--infinite-cell-padding: var(--infinite-space-2) var(--infinite-space-3);--infinite-cell-border: var(--infinite-cell-border-width) solid #c6c6c6;--infinite-pinned-cell-border: var(--infinite-cell-border-width) solid #2a323d;--infinite-cell-border-invisible: none;--infinite-cell-border-radius: var(--infinite-space-2);--infinite-column-reorder-effect-duration: .2s;--infinite-active-cell-border-style: dashed;--infinite-active-cell-border-width: 1px;--infinite-active-cell-border-color--r: 77;--infinite-active-cell-border-color--g: 149;--infinite-active-cell-border-color--b: 215;--infinite-active-cell-background-alpha: .25;--infinite-active-cell-background-alpha--table-unfocused: .1;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #f6f6f6;--infinite-row-selected-background: #d1e9ff;--infinite-row-selected-hover-background: #add8ff;--infinite-group-row-background: #cbc5c5;--infinite-group-row-column-nesting: 30px;--infinite-row-hover-background: #dbdbdb;--infinite-row-pointer-events-while-scrolling: auto}.dark,.infinite-dark{--infinite-background: #101419;--infinite-cell-border: 1px solid #2a323d;--infinite-header-color: #c3c3c3;--infinite-header-cell-background: #1b2129;--infinite-header-cell-hover-background: #222932;--infinite-header-background: var(--infinite-header-cell-background);--infinite-row-hover-background: #3b4754;--infinite-row-selected-background: #0a2e4f;--infinite-row-selected-hover-background: #0b243a;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #242a31;--infinite-cell-color: #c3c3c3;--infinite-menu-shadow-color: rgba(255,255,255,.25);--infinite-menu-background: #101419;--infinite-menu-color: #c3c3c3;--infinite-menu-item-disabled-background: #101419;--infinite-menu-item-active-background: #3b4754;--infinite-menu-item-pressed-background: #3b4754}@media (prefers-color-scheme: dark){:root{--infinite-background: #101419;--infinite-cell-border: 1px solid #2a323d;--infinite-header-color: #c3c3c3;--infinite-header-cell-background: #1b2129;--infinite-header-cell-hover-background: #222932;--infinite-header-background: var(--infinite-header-cell-background);--infinite-row-hover-background: #3b4754;--infinite-row-selected-background: #0a2e4f;--infinite-row-selected-hover-background: #0b243a;--infinite-row-background: var(--infinite-background);--infinite-row-odd-background: #242a31;--infinite-cell-color: #c3c3c3;--infinite-menu-shadow-color: rgba(255,255,255,.25);--infinite-menu-background: #101419;--infinite-menu-color: #c3c3c3;--infinite-menu-item-disabled-background: #101419;--infinite-menu-item-active-background: #3b4754;--infinite-menu-item-pressed-background: #3b4754}}._16lm1iw0{box-sizing:border-box}._16lm1iw0:before{box-sizing:border-box}._16lm1iw0:after{box-sizing:border-box}._16lm1iw0 *{box-sizing:border-box}._16lm1iw0 *:before{box-sizing:border-box}._16lm1iw0 *:after{box-sizing:border-box}._16lm1iw1{position:relative}._16lm1iw2{position:absolute}._16lm1iw3{position:sticky}._16lm1iw4{position:fixed}._16lm1iw5{fill:currentColor}._16lm1iw6{fill:var(--infinite-accent-color)}._16lm1iw7{margin:0}._16lm1iw8{stroke:currentColor}._16lm1iw9{stroke:var(--infinite-accent-color)}._16lm1iwa{background:inherit}._16lm1iwb{outline:none}._16lm1iwc{transform:translate(0)}._16lm1iwd{transform:translate(0)}._16lm1iwe{transform:rotate(90deg)}._16lm1iwf{transform:rotate(180deg)}._16lm1iwg{cursor:pointer}._16lm1iwh{cursor:default}._16lm1iwi{cursor:col-resize}._16lm1iwj{pointer-events:none}._16lm1iwk{flex:1}._16lm1iwl{flex:none}._16lm1iwm{z-index:1}._16lm1iwn{z-index:10}._16lm1iwo{z-index:100}._16lm1iwp{z-index:1000}._16lm1iwq{z-index:10000}._16lm1iwr{z-index:100000}._16lm1iws{z-index:1000000}._16lm1iwt{z-index:10000000}._16lm1iwu{z-index:1000}._16lm1iwv{z-index:10000}._16lm1iww{z-index:100000}._16lm1iwx{display:flex}._16lm1iwy{display:contents}._16lm1iwz{display:none}._16lm1iw10{display:block}._16lm1iw11{display:grid}._16lm1iw12{display:inline-block}._16lm1iw13{display:inline-flex}._16lm1iw14{display:inline-grid}._16lm1iw15{-webkit-user-select:none;-moz-user-select:none;user-select:none}._16lm1iw16{height:0}._16lm1iw17{height:100%}._16lm1iw18{width:0}._16lm1iw19{width:100%}._16lm1iw1a{top:0}._16lm1iw1b{top:100%}._16lm1iw1c{left:0}._16lm1iw1d{left:100%}._16lm1iw1e{left:auto}._16lm1iw1f{bottom:0}._16lm1iw1g{bottom:100%}._16lm1iw1h{right:0}._16lm1iw1i{right:100%}._16lm1iw1j{right:auto}._16lm1iw1k{flex-flow:column}._16lm1iw1l{flex-flow:column-reverse}._16lm1iw1m{flex-flow:row}._16lm1iw1n{flex-flow:row-reverse}._16lm1iw1o{align-items:center}._16lm1iw1p{align-items:stretch}._16lm1iw1q{justify-content:center}._16lm1iw1r{justify-content:space-between}._16lm1iw1s{justify-content:space-around}._16lm1iw1t{justify-content:flex-start}._16lm1iw1u{justify-content:flex-end}._16lm1iw1v{overflow:hidden}._16lm1iw1w{overflow:auto}._16lm1iw1x{overflow:visible}._16lm1iw1y{visibility:visible}._16lm1iw1z{visibility:hidden}._16lm1iw20{will-change:transform}._16lm1iw21{white-space:nowrap}._16lm1iw22{text-overflow:ellipsis}.mlx2t2{display:inline-block}.mlx2t3{height:0;width:0;will-change:transform}._1ueijco0{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch;outline:none;position:fixed;height:100%;width:100%;left:0;top:0}._1ueijco0>:first-child{position:sticky;top:0;left:0}._1ueijco1{overflow:auto}._1ueijco2{overflow:hidden}._1ueijco3{overflow:visible}._1ueijco4{overflow:auto}._1ueijco5{overflow:hidden}._1ueijco6{overflow-x:auto}._1ueijco7{overflow-x:hidden}._1ueijco8{overflow-x:visible}._1ueijco9{overflow-x:auto}._1ueijcoa{overflow-x:hidden}._1ueijcob{overflow-y:auto}._1ueijcoc{overflow-y:hidden}._1ueijcod{overflow-y:visible}._1ueijcoe{overflow-y:auto}._1ueijcof{overflow-y:hidden}.nxbq1c1{border:var(--infinite-active-cell-border, var(--infinite-active-cell-border-width) var(--infinite-active-cell-border-style) var(--infinite-active-cell-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));background:var(--infinite-active-cell-background, rgba(var(--infinite-active-cell-border-color--r), var(--infinite-active-cell-border-color--g), var(--infinite-active-cell-border-color--b), var(--infinite-active-cell-background-alpha)))}.nxbq1c2{display:block}.nxbq1c3{display:none}.j26lrx0{--infinite-active-row-border-style: var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style));border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));background:var(--infinite-active-row-background, var(--infinite-active-cell-background, rgba(var(--infinite-active-cell-border-color--r), var(--infinite-active-cell-border-color--g), var(--infinite-active-cell-border-color--b), var(--infinite-active-row-background-alpha, var(--infinite-active-cell-background-alpha)))))}.j26lrx1{display:block}.j26lrx2{display:none}._1yeub2v0{outline:none;font-family:var(--infinite-font-family);color:var(--infinite-color);background:var(--infinite-background);min-height:var(--infinite-min-height)}._1yeub2v1{--infinite-row-pointer-events-while-scrolling: none}._1yeub2ve{--infinite-active-cell-background-alpha: var(--infinite-active-cell-background-alpha--table-unfocused);--infinite-active-row-background-alpha: var(--infinite-active-row-background-alpha--table-unfocused, var(--infinite-active-cell-background-alpha--table-unfocused))}._1yeub2vi{border-right:var(--infinite-cell-border)}._1yeub2vj{border-left:var(--infinite-cell-border)}._1yeub2vl{-webkit-user-select:none;-moz-user-select:none;user-select:none}._1yeub2vp{transform:translate(-100%);border-right:var(--infinite-pinned-cell-border);bottom:var(--_1slvgu9m)}._1yeub2vq{left:var(--_1slvgu9f)}._1yeub2vn ._1yeub2vq{visibility:visible}._1yeub2vr{left:calc(var(--_1slvgu9h))}._1yeub2vo ._1yeub2vr{visibility:visible}._7pupv00{will-change:transform;position:absolute;top:0;left:0;pointer-events:var(--infinite-row-pointer-events-while-scrolling);--infinite-column-cell-bg-dont-override: var(--infinite-row-background)}._7pupv01{--infinite-row-background: var(--infinite-row-hover-background);--infinite-row-selected-background: var(--infinite-row-selected-hover-background);--infinite-row-odd-background: var(--infinite-row-hover-background)}._7pupv03{background:var(--infinite-row-background)}._7pupv04{background:var(--infinite-row-odd-background)}._7pupv05{z-index:100}._7pupv07{z-index:100}._7pupv0b{-webkit-padding-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._7pupv0c{-webkit-padding-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-start:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._7pupv0d{-webkit-padding-end:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting));padding-inline-end:calc(var(--infinite-dont-override-group-row-nesting-length) * var(--infinite-group-row-column-nesting))}._1eexc2a0{justify-content:center}._1eexc2a1{justify-content:flex-start}._1eexc2a2{justify-content:flex-start;flex-flow:row-reverse}._1eexc2a3{transition:left .3s}._1eexc2a4{transition:none}._1eexc2a5{padding:var(--infinite-cell-padding);border-left:var(--infinite-cell-border-width) solid transparent;border-right:var(--infinite-cell-border-width) solid transparent}._1yeub2vl ._1eexc2a6{transition:transform var(--infinite-column-reorder-effect-duration)}._1eexc2a7{margin-inline:var(--infinite-selection-checkbox-margin-inline)}._1eexc2a8{color:var(--infinite-cell-color)}._1eexc2ah{background:var(--infinite-row-background)}._1eexc2ai{background:var(--infinite-row-odd-background)}._1eexc2aj{background:var(--infinite-row-selected-background)}._1eexc2am{border-top-left-radius:var(--infinite-cell-border-radius);border-bottom-left-radius:var(--infinite-cell-border-radius)}._1eexc2ao{border-top-right-radius:var(--infinite-cell-border-radius);border-bottom-right-radius:var(--infinite-cell-border-radius)}.qz8ht90[disabled]{opacity:.7}._12zfob11{margin-left:var(--infinite-header-cell-sort-icon-margin)}._12zfob12{margin-left:var(--infinite-header-cell-sort-icon-margin)}._12zfob13{margin-right:var(--infinite-header-cell-sort-icon-margin)}._12zfob14{line-height:0;font-size:10px;border-radius:50%;padding:1px;position:absolute;transition:top .2s;top:0;right:2px}._12zfob15{background:var(--infinite-header-background);top:0;right:0;bottom:0}._12zfob16{background:var(--infinite-header-background);color:var(--infinite-header-color)}._12zfob1e{z-index:10}._12zfob1k{background:var(--infinite-header-cell-hover-background);color:var(--infinite-cell-color);opacity:.8;padding:var(--infinite-cell-padding);padding-left:20px;z-index:2000}._12zfob1l{border-left:var(--infinite-cell-border-width) solid transparent;border-right:var(--infinite-cell-border);background:var(--infinite-header-cell-background);padding:0}._12zfob1l:hover{background:var(--infinite-header-cell-hover-background)}._12zfob1z{border-top-left-radius:var(--infinite-cell-border-radius);border-bottom-left-radius:var(--infinite-cell-border-radius)}._12zfob111{border-top-right-radius:var(--infinite-cell-border-radius);border-bottom-right-radius:var(--infinite-cell-border-radius)}._12zfob119{z-index:10}._1yeub2va ._12zfob11e{--infinite-cell-border: var(--infinite-cell-border-invisible)}._12zfob11g{border-right:var(--infinite-cell-border)}._12zfob11h{cursor:context-menu;-webkit-padding-before:2px;padding-block-start:2px;-webkit-padding-after:2px;padding-block-end:2px;min-width:var(--infinite-header-cell-icon-size);height:var(--infinite-header-cell-icon-size)}._12zfob11h:active{top:1px}._12zfob1l:hover ._12zfob11h{visibility:visible;display:flex}._12zfob11j{display:none}._12zfob11k{padding:var(--infinite-header-cell-padding)}._12zfob11o{flex-direction:row-reverse}._12zfob11p{justify-content:center}._12zfob11q{background:var(--infinite-header-background)}._12zfob11r{padding:var(--infinite-cell-padding);border-bottom:var(--infinite-cell-border);border-right:var(--infinite-cell-border);background:var(--infinite-header-cell-background)}._12zfob11s{border-top:var(--infinite-cell-border)}._1ek6mqy0{-webkit-padding-before:2px;padding-block-start:2px;-webkit-padding-after:2px;padding-block-end:2px;min-width:var(--infinite-header-cell-icon-size);height:var(--infinite-header-cell-icon-size)}.zneyzh0{transform:translate(50%);width:var(--infinite-resize-handle-active-area-width)}.zneyzh0:hover{overflow:visible}.zneyzh2{transform:translate(-50%)}.zneyzh8{transform:none}.zneyzh9{transform:none}.zneyzha{transform:none}.zneyzhb{right:calc((var(--infinite-resize-handle-active-area-width) - var(--infinite-resize-handle-width)) / 2);width:var(--infinite-resize-handle-width)}.zneyzh0:hover .zneyzhb{background:var(--infinite-resize-handle-hover-background)}.zneyzh0:hover .zneyzhd{background:var(--infinite-resize-handle-constrained-hover-background)}.qy58ya0{flex-flow:row;align-items:center;justify-content:center}.qy58ya1{display:flex}.qy58ya2{display:none}.qy58ya3{background:var(--infinite-load-mask-overlay-background);opacity:var(--infinite-load-mask-overlay-opacity)}.qy58ya4{position:relative;padding:var(--infinite-load-mask-padding);color:var(--infinite-load-mask-color);background:var(--infinite-load-mask-text-background);border-radius:var(--infinite-load-mask-border-radius)}.db3arf0{padding:var(--infinite-menu-padding);color:var(--infinite-menu-color);background:var(--infinite-menu-background);border-radius:var(--infinite-menu-border-radius);outline:none;box-shadow:0 6px 12px -2px var(--infinite-menu-shadow-color),0 3px 7px -3px var(--infinite-menu-background)}.db3arf1{display:contents}.db3arf2{padding-block:var(--infinite-menu-cell-padding-vertical);padding-inline:var(--infinite-menu-cell-padding-horizontal);margin-block:var(--infinite-menu-cell-margin-vertical);border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))));border-color:transparent}.db3arf3{opacity:var(--infinite-menu-item-disabled-opacity);background:var(--infinite-menu-item-disabled-background)}.db3arf0:focus-within>.db3arf1>.db3arf9{border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))))}.db3arf0:focus-within>.db3arf1>.db3arf9:first-child:last-child{border:var(--infinite-active-row-border, var(--infinite-active-row-border-width, var(--infinite-active-cell-border-width)) var(--infinite-active-row-border-style, var(--infinite-active-cell-border-style)) var(--infinite-active-row-border-color, rgb(var(--infinite-active-cell-border-color--r) var(--infinite-active-cell-border-color--g) var(--infinite-active-cell-border-color--b))))}.db3arf0:focus-within>.db3arf1>.db3arf9:first-child{border-right-color:transparent}.db3arf0:focus-within>.db3arf1>.db3arf9:last-child{border-left-color:transparent}.db3arf0:focus-within>.db3arf1>.db3arf9:not(:first-child):not(:last-child){border-left-color:transparent;border-right-color:transparent}.db3arfb{background:var(--infinite-menu-item-active-background);opacity:var(--infinite-menu-item-active-opacity)}.db3arfc{background:var(--infinite-menu-item-pressed-background);opacity:var(--infinite-menu-item-pressed-opacity)}.db3arfd{border-top:1px solid currentColor;border-bottom:0;margin-top:calc(var(--infinite-menu-cell-padding-vertical) / 2);margin-bottom:calc(var(--infinite-menu-cell-padding-vertical) / 2)}