@infinite-table/infinite-react 3.0.15 → 3.1.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/README.md CHANGED
@@ -84,7 +84,7 @@ It's fully typed and offers you great developer experience to help you get up an
84
84
 
85
85
  ## 🏢 Enterprise-ready
86
86
 
87
- Infinite Table is ready to power your enterprise apps, as it supports advanced [data fetching](https://infinite-table.com/docs/learn/working-with-data#data-loading-strategies), [filtering](https://infinite-table.com/docs/learn/filtering), [sorting](https://infinite-table.com/docs/learn/sorting/overview), [grouping](https://infinite-table.com/docs/learn/grouping-and-pivoting/grouping-rows), [pivoting](https://infinite-table.com/docs/learn/grouping-and-pivoting/pivoting/overview), [aggregations](https://infinite-table.com/docs/learn/grouping-and-pivoting/group-aggregations), [https://infinite-table.com/docs/learn/selection/row-selection](row & cell selection), [live pagination](https://infinite-table.com/docs/learn/working-with-data/live-pagination), [lazy loading](https://infinite-table.com/docs/learn/working-with-data/lazy-loading) - all of those with support for both client-side and server-side implementations.
87
+ Infinite Table is ready to power your enterprise apps, as it supports advanced [data fetching](https://infinite-table.com/docs/learn/working-with-data#data-loading-strategies), [filtering](https://infinite-table.com/docs/learn/filtering), [sorting](https://infinite-table.com/docs/learn/sorting/overview), [grouping](https://infinite-table.com/docs/learn/grouping-and-pivoting/grouping-rows), [pivoting](https://infinite-table.com/docs/learn/grouping-and-pivoting/pivoting/overview), [aggregations](https://infinite-table.com/docs/learn/grouping-and-pivoting/group-aggregations), [row & cell selection](https://infinite-table.com/docs/learn/selection/row-selection), [live pagination](https://infinite-table.com/docs/learn/working-with-data/live-pagination), [lazy loading](https://infinite-table.com/docs/learn/working-with-data/lazy-loading) - all of those with support for both client-side and server-side implementations.
88
88
 
89
89
  You can choose to leverage our built-in implementations in the browser or you can process your data on the server with full support from our-side.
90
90
 
package/index.d.ts CHANGED
@@ -2360,6 +2360,10 @@ interface MenuState extends MenuMappedState, MenuDerivedState, MenuSetupState {
2360
2360
  }
2361
2361
  declare type MenuApi = {
2362
2362
  focus: VoidFunction;
2363
+ /**
2364
+ * hides this and all parent menus
2365
+ */
2366
+ hideMenu: VoidFunction;
2363
2367
  getMenuId: () => string;
2364
2368
  getParentMenuId: () => string | undefined;
2365
2369
  };
@@ -2413,6 +2417,11 @@ declare type MenuItemDefinition = MenuItemObject | MenuDecoration | MenuSeparato
2413
2417
  declare type MenuItemSubMenu = Omit<MenuProps, 'children' | 'items'> & {
2414
2418
  items: (MenuItemObject | MenuSeparator)[];
2415
2419
  };
2420
+ declare type MenuItemActionContext = {
2421
+ hideMenu: () => void;
2422
+ key: string;
2423
+ item: MenuItemObject;
2424
+ };
2416
2425
  declare type MenuItemObject = {
2417
2426
  key: string;
2418
2427
  label: NonUndefined<MenuRenderable>;
@@ -2423,7 +2432,8 @@ declare type MenuItemObject = {
2423
2432
  style?: CSSProperties;
2424
2433
  className?: string;
2425
2434
  onClick?: (event: React.MouseEvent) => void;
2426
- onAction?: (key: string, item: MenuItemObject) => void;
2435
+ onAction?: (params: MenuItemActionContext) => void;
2436
+ hideMenuOnAction?: boolean;
2427
2437
  [k: string]: any;
2428
2438
  };
2429
2439
  declare type MenuDecoration = MenuRenderable;
@@ -3034,4 +3044,4 @@ declare const components: {
3034
3044
  NumberFilterEditor: typeof NumberFilterEditor;
3035
3045
  };
3036
3046
 
3037
- export { AdvancedAlignable, CellSelectionState, 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, DataSourcePropCellSelection_MultiCell, DataSourcePropCellSelection_SingleCell, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnCellSelectionChange_MultiCell, DataSourcePropOnCellSelectionChange_SingleCell, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropPivotBy, DataSourcePropRowInfoReducers, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropSortFn, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourceProps, DataSourceRawReducer, DataSourceRemoteData, DataSourceRowInfoReducer, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, DeepMap, ElementContainerGetter, GroupRowsState, InfiniteColumnEditorContextType, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnCellContextType, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnValueFormatterParams, InfiniteTableColumnValueGetterParams, InfiniteTableColumnsMap, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropGetCellContextMenuItems, InfiniteTablePropGetColumnMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropMultiSortBehavior, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTableRowClassNameFn, InfiniteTableRowInfo, InfiniteTableRowStyleFn, InfiniteTableState, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuIconProps, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, OverlayShowParams, RowSelectionState, Scrollbars, ShowOverlayFn, components, debounce, debug, defaultFilterTypes, defaultFilterTypes as filterTypes, flatten, getComponentStateRoot, group, interceptMap, multisort, useComponentState, useDataSource, useEffectWithChanges, useInfiniteColumnCell, useInfiniteColumnEditor, useInfiniteColumnFilterEditor, useInfiniteHeaderCell, useOverlay, useOverlayPortal, useRowInfoReducers };
3047
+ export { AdvancedAlignable, CellSelectionState, 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, DataSourcePropCellSelection_MultiCell, DataSourcePropCellSelection_SingleCell, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnCellSelectionChange_MultiCell, DataSourcePropOnCellSelectionChange_SingleCell, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropPivotBy, DataSourcePropRowInfoReducers, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropSortFn, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourceProps, DataSourceRawReducer, DataSourceRemoteData, DataSourceRowInfoReducer, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, DebugLogger, DeepMap, ElementContainerGetter, GroupRowsState, InfiniteColumnEditorContextType, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnCellContextType, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnValueFormatterParams, InfiniteTableColumnValueGetterParams, InfiniteTableColumnsMap, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropGetCellContextMenuItems, InfiniteTablePropGetColumnMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropMultiSortBehavior, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTableRowClassNameFn, InfiniteTableRowInfo, InfiniteTableRowStyleFn, InfiniteTableState, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuIconProps, MenuItemActionContext, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, OverlayShowParams, RowSelectionState, Scrollbars, ShowOverlayFn, components, debounce, debug, defaultFilterTypes, defaultFilterTypes as filterTypes, flatten, getComponentStateRoot, group, interceptMap, multisort, useComponentState, useDataSource, useEffectWithChanges, useInfiniteColumnCell, useInfiniteColumnEditor, useInfiniteColumnFilterEditor, useInfiniteHeaderCell, useOverlay, useOverlayPortal, useRowInfoReducers };
package/index.dev.js CHANGED
@@ -17260,7 +17260,7 @@ var useLicense = (licenseKey = "") => {
17260
17260
  const valid = (0, import_react50.useMemo)(() => {
17261
17261
  let valid2 = isValidLicense(licenseKey, {
17262
17262
  publishedAt: 1624970570587,
17263
- version: "3.0.15"
17263
+ version: "3.1.0"
17264
17264
  });
17265
17265
  if (!licenseKey && !valid2 && isInsidePlayground) {
17266
17266
  return true;
@@ -19136,6 +19136,7 @@ function renderSubmenuForItem(item, config) {
19136
19136
  setActiveItemKey,
19137
19137
  setKeyboardActiveItemKey,
19138
19138
  constrainTo,
19139
+ onHideIntent,
19139
19140
  api
19140
19141
  } = config;
19141
19142
  const overlayId = `${parentMenuId}-submenu`;
@@ -19160,6 +19161,11 @@ function renderSubmenuForItem(item, config) {
19160
19161
  (_a = itemMenu == null ? void 0 : itemMenu.onShow) == null ? void 0 : _a.call(itemMenu, state, api2);
19161
19162
  setSubmenuApi(api2);
19162
19163
  },
19164
+ onHideIntent: (state) => {
19165
+ var _a;
19166
+ (_a = itemMenu == null ? void 0 : itemMenu.onHideIntent) == null ? void 0 : _a.call(itemMenu, state);
19167
+ onHideIntent(state);
19168
+ },
19163
19169
  onHide: (state) => {
19164
19170
  if (state.focused) {
19165
19171
  setActiveItemKey(null);
@@ -19298,6 +19304,7 @@ function MenuComponent(props) {
19298
19304
  setActiveItemKey,
19299
19305
  setKeyboardActiveItemKey,
19300
19306
  parentMenuId: menuId,
19307
+ onHideIntent: hideAll,
19301
19308
  api
19302
19309
  });
19303
19310
  if (alignTo) {
@@ -19321,11 +19328,18 @@ function MenuComponent(props) {
19321
19328
  item.originalMenuItem.onClick(event);
19322
19329
  }
19323
19330
  if (item.originalMenuItem.onAction) {
19324
- item.originalMenuItem.onAction(item.key, item.originalMenuItem);
19331
+ item.originalMenuItem.onAction({
19332
+ key: item.key,
19333
+ item: item.originalMenuItem,
19334
+ hideMenu: hideAll
19335
+ });
19325
19336
  }
19326
19337
  if (onAction) {
19327
19338
  onAction(item.key, item.originalMenuItem);
19328
19339
  }
19340
+ if (item.originalMenuItem.hideMenuOnAction) {
19341
+ hideAll();
19342
+ }
19329
19343
  };
19330
19344
  const {
19331
19345
  showOverlay,
@@ -19494,8 +19508,14 @@ function MenuComponent(props) {
19494
19508
  });
19495
19509
  }, []);
19496
19510
  const shouldSelectFirstItemOnFocus = (0, import_react57.useRef)(true);
19511
+ const hideAll = (0, import_react57.useCallback)(() => {
19512
+ var _a;
19513
+ const state = getState();
19514
+ (_a = state.onHideIntent) == null ? void 0 : _a.call(state, state);
19515
+ }, [getState]);
19497
19516
  const [api] = (0, import_react57.useState)(() => {
19498
19517
  const result2 = {
19518
+ hideMenu: hideAll,
19499
19519
  focus: () => {
19500
19520
  if (domRef.current) {
19501
19521
  domRef.current.focus();
package/index.dev.mjs CHANGED
@@ -17241,7 +17241,7 @@ var useLicense = (licenseKey = "") => {
17241
17241
  const valid = useMemo11(() => {
17242
17242
  let valid2 = isValidLicense(licenseKey, {
17243
17243
  publishedAt: 1624970570587,
17244
- version: "3.0.15"
17244
+ version: "3.1.0"
17245
17245
  });
17246
17246
  if (!licenseKey && !valid2 && isInsidePlayground) {
17247
17247
  return true;
@@ -19127,6 +19127,7 @@ function renderSubmenuForItem(item, config) {
19127
19127
  setActiveItemKey,
19128
19128
  setKeyboardActiveItemKey,
19129
19129
  constrainTo,
19130
+ onHideIntent,
19130
19131
  api
19131
19132
  } = config;
19132
19133
  const overlayId = `${parentMenuId}-submenu`;
@@ -19151,6 +19152,11 @@ function renderSubmenuForItem(item, config) {
19151
19152
  (_a = itemMenu == null ? void 0 : itemMenu.onShow) == null ? void 0 : _a.call(itemMenu, state, api2);
19152
19153
  setSubmenuApi(api2);
19153
19154
  },
19155
+ onHideIntent: (state) => {
19156
+ var _a;
19157
+ (_a = itemMenu == null ? void 0 : itemMenu.onHideIntent) == null ? void 0 : _a.call(itemMenu, state);
19158
+ onHideIntent(state);
19159
+ },
19154
19160
  onHide: (state) => {
19155
19161
  if (state.focused) {
19156
19162
  setActiveItemKey(null);
@@ -19289,6 +19295,7 @@ function MenuComponent(props) {
19289
19295
  setActiveItemKey,
19290
19296
  setKeyboardActiveItemKey,
19291
19297
  parentMenuId: menuId,
19298
+ onHideIntent: hideAll,
19292
19299
  api
19293
19300
  });
19294
19301
  if (alignTo) {
@@ -19312,11 +19319,18 @@ function MenuComponent(props) {
19312
19319
  item.originalMenuItem.onClick(event);
19313
19320
  }
19314
19321
  if (item.originalMenuItem.onAction) {
19315
- item.originalMenuItem.onAction(item.key, item.originalMenuItem);
19322
+ item.originalMenuItem.onAction({
19323
+ key: item.key,
19324
+ item: item.originalMenuItem,
19325
+ hideMenu: hideAll
19326
+ });
19316
19327
  }
19317
19328
  if (onAction) {
19318
19329
  onAction(item.key, item.originalMenuItem);
19319
19330
  }
19331
+ if (item.originalMenuItem.hideMenuOnAction) {
19332
+ hideAll();
19333
+ }
19320
19334
  };
19321
19335
  const {
19322
19336
  showOverlay,
@@ -19485,8 +19499,14 @@ function MenuComponent(props) {
19485
19499
  });
19486
19500
  }, []);
19487
19501
  const shouldSelectFirstItemOnFocus = useRef28(true);
19502
+ const hideAll = useCallback25(() => {
19503
+ var _a;
19504
+ const state = getState();
19505
+ (_a = state.onHideIntent) == null ? void 0 : _a.call(state, state);
19506
+ }, [getState]);
19488
19507
  const [api] = useState20(() => {
19489
19508
  const result2 = {
19509
+ hideMenu: hideAll,
19490
19510
  focus: () => {
19491
19511
  if (domRef.current) {
19492
19512
  domRef.current.focus();