@infinite-table/infinite-react 3.1.0 → 3.1.2

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
@@ -301,6 +301,7 @@ declare type InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE = InfiniteTa
301
301
  toggleGroupRow: InfiniteTableToggleGroupRowFn;
302
302
  toggleCurrentGroupRowSelection: () => void;
303
303
  toggleCurrentRowSelection: () => void;
304
+ rowHasSelectedCells: boolean;
304
305
  cellSelected: boolean;
305
306
  selectCurrentRow: () => void;
306
307
  selectRow: InfiniteTableSelectRowFn;
@@ -345,16 +346,17 @@ declare type InfiniteTableColumnVerticalAlignValues = 'start' | 'center' | 'end'
345
346
  declare type InfiniteTableColumnHeader<T> = Renderable | InfiniteTableColumnHeaderRenderFunction<T>;
346
347
  declare type InfiniteTableDataTypeNames = 'string' | 'number' | 'date' | string;
347
348
  declare type InfiniteTableColumnTypeNames = 'string' | 'number' | 'date' | string;
348
- declare type InfiniteTableColumnStyleFnParams<T> = {
349
+ declare type InfiniteTableColumnStylingFnParams<T> = {
349
350
  value: Renderable;
350
351
  column: InfiniteTableComputedColumn<T>;
351
352
  inEdit: boolean;
353
+ rowHasSelectedCells: boolean;
352
354
  editError: InfiniteTableColumnRenderParamBase<T>['editError'];
353
355
  } & InfiniteTableRowInfoDataDiscriminator<T>;
354
- declare type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | React__default.CSSProperties;
356
+ declare type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | React__default.CSSProperties;
355
357
  declare type InfiniteTableColumnHeaderClassNameFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | string;
356
358
  declare type InfiniteTableColumnHeaderStyleFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | React__default.CSSProperties;
357
- declare type InfiniteTableColumnClassNameFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | string;
359
+ declare type InfiniteTableColumnClassNameFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | string;
358
360
  declare type InfiniteTableColumnStyle<T> = CSSProperties | InfiniteTableColumnStyleFn<T>;
359
361
  declare type InfiniteTableColumnAlign<T> = InfiniteTableColumnAlignValues | InfiniteTableColumnAlignFn<T>;
360
362
  declare type InfiniteTableColumnVerticalAlign<T> = InfiniteTableColumnVerticalAlignValues | InfiniteTableColumnVerticalAlignFn<T>;
@@ -362,7 +364,7 @@ declare type InfiniteTableColumnAlignFn<T> = (params: InfiniteTableColumnAlignFn
362
364
  declare type InfiniteTableColumnAlignFnParams<T> = XOR<{
363
365
  isHeader: true;
364
366
  column: InfiniteTableComputedColumn<T>;
365
- }, InfiniteTableColumnStyleFnParams<T> & {
367
+ }, InfiniteTableColumnStylingFnParams<T> & {
366
368
  isHeader: false;
367
369
  }>;
368
370
  declare type InfiniteTableColumnVerticalAlignFn<T> = (params: InfiniteTableColumnAlignFnParams<T>) => InfiniteTableColumnVerticalAlignValues;
@@ -819,7 +821,16 @@ declare class CellSelectionState {
819
821
  private setCellInDeselection;
820
822
  private setCellInSelection;
821
823
  update(stateObject: CellSelectionStateObject): void;
824
+ /**
825
+ * Returns whether there is at least one selected cell in the row
826
+ *
827
+ * @param rowId the row id
828
+ * @param columnIds the columns currently available in the grid
829
+ * @returns boolean
830
+ */
831
+ isCellSelectionInRow(rowId: any, columnIds: string[]): boolean;
822
832
  isCellSelected(rowId: any, colId: string): boolean;
833
+ private isCellSelected_Internal;
823
834
  getState(): CellSelectionStateObject;
824
835
  }
825
836
 
@@ -2027,6 +2038,7 @@ declare type InfiniteTable_RowInfoBase<_T> = {
2027
2038
  indexInAll: number;
2028
2039
  rowSelected: boolean | null;
2029
2040
  isCellSelected: (columnId: string) => boolean;
2041
+ hasSelectedCells: (columnIds: string[]) => boolean;
2030
2042
  };
2031
2043
  declare type InfiniteTable_HasGrouping_RowInfoNormal<T> = {
2032
2044
  dataSourceHasGrouping: true;
@@ -2407,7 +2419,7 @@ declare type MenuProps = {
2407
2419
  onHideIntent?: (state: MenuState) => void;
2408
2420
  bubbleActionsFromSubmenus?: boolean;
2409
2421
  addSubmenuColumnIfNeeded?: boolean;
2410
- onAction?: (key: string, item: MenuItemObject) => void;
2422
+ onAction?: (param: MenuItemActionContext) => void;
2411
2423
  parentMenuId?: string;
2412
2424
  parentMenuItemKey?: string;
2413
2425
  autoFocus?: boolean;
@@ -2461,11 +2473,14 @@ declare type InfiniteTablePropColumnOrder = InfiniteTablePropColumnOrderNormaliz
2461
2473
  declare type InfiniteTablePropColumnVisibility = Record<string, false>;
2462
2474
  declare type InfiniteTableColumnPinnedValues = false | 'start' | 'end';
2463
2475
  declare type InfiniteTablePropColumnPinning = Record<string, true | 'start' | 'end'>;
2464
- declare type InfiniteTableRowStyleFnParams<T> = {
2476
+ declare type InfiniteTableRowStylingFnParams<T> = {
2465
2477
  rowIndex: number;
2478
+ rowHasSelectedCells: boolean;
2479
+ visibleColumnIds: string[];
2480
+ allColumnIds: string[];
2466
2481
  } & InfiniteTableRowInfoDataDiscriminator<T>;
2467
- declare type InfiniteTableRowStyleFn<T> = (params: InfiniteTableRowStyleFnParams<T>) => undefined | React$1.CSSProperties;
2468
- declare type InfiniteTableRowClassNameFn<T> = (params: InfiniteTableRowStyleFnParams<T>) => string | undefined;
2482
+ declare type InfiniteTableRowStyleFn<T> = (params: InfiniteTableRowStylingFnParams<T>) => undefined | React$1.CSSProperties;
2483
+ declare type InfiniteTableRowClassNameFn<T> = (params: InfiniteTableRowStylingFnParams<T>) => string | undefined;
2469
2484
  declare type InfiniteTableCellClassNameFn<T> = InfiniteTableColumn<T>['className'];
2470
2485
  declare type InfiniteTablePropRowStyle<T> = React$1.CSSProperties | InfiniteTableRowStyleFn<T>;
2471
2486
  declare type InfiniteTablePropCellStyle<T> = InfiniteTableColumn<T>['style'];
@@ -2883,7 +2898,7 @@ interface InfiniteTableProps<T> {
2883
2898
  api: InfiniteTableApi<T>;
2884
2899
  dataSourceApi: DataSourceApi<T>;
2885
2900
  }) => void;
2886
- rowProps?: React$1.HTMLProps<HTMLDivElement> | ((rowArgs: InfiniteTableRowStyleFnParams<T>) => React$1.HTMLProps<HTMLDivElement>);
2901
+ rowProps?: React$1.HTMLProps<HTMLDivElement> | ((rowArgs: InfiniteTableRowStylingFnParams<T>) => React$1.HTMLProps<HTMLDivElement>);
2887
2902
  licenseKey?: string;
2888
2903
  scrollTopKey?: string | number;
2889
2904
  autoSizeColumnsKey?: InfiniteTablePropAutoSizeColumnsKey;
package/index.dev.js CHANGED
@@ -7520,7 +7520,7 @@ function getColumnValueToEdit(options) {
7520
7520
  }
7521
7521
  function getColumnRenderingParams(options) {
7522
7522
  var _a, _b;
7523
- const { column, context, rowInfo } = options;
7523
+ const { column, context, rowInfo, visibleColumnsIds } = options;
7524
7524
  const groupByColumnReference = getGroupByColumnReference({
7525
7525
  rowInfo,
7526
7526
  column,
@@ -7540,10 +7540,16 @@ function getColumnRenderingParams(options) {
7540
7540
  });
7541
7541
  const stylingParam = __spreadProps(__spreadValues({
7542
7542
  column: options.column,
7543
- inEdit
7543
+ inEdit,
7544
+ rowHasSelectedCells: false
7544
7545
  }, formattedValueContext), {
7545
7546
  editError: editingCell && editingCell.primaryKey === rowInfo.id && editingCell.columnId === column.id && !editingCell.active && editingCell.accepted instanceof Error ? editingCell.accepted : void 0
7546
7547
  });
7548
+ Object.defineProperty(stylingParam, "rowHasSelectedCells", {
7549
+ get() {
7550
+ return rowInfo.hasSelectedCells(visibleColumnsIds);
7551
+ }
7552
+ });
7547
7553
  const align2 = typeof column.align === "function" ? column.align(__spreadValues({ isHeader: false }, stylingParam)) : (_a = column.align) != null ? _a : "start";
7548
7554
  const verticalAlign = typeof column.verticalAlign === "function" ? column.verticalAlign(__spreadValues({ isHeader: false }, stylingParam)) : (_b = column.verticalAlign) != null ? _b : "center";
7549
7555
  return {
@@ -7573,6 +7579,7 @@ function getColumnRenderParam(options) {
7573
7579
  rowInfo,
7574
7580
  align: align2,
7575
7581
  verticalAlign,
7582
+ visibleColumnsIds,
7576
7583
  columnsMap,
7577
7584
  fieldsToColumn,
7578
7585
  formattedValueContext
@@ -7597,7 +7604,8 @@ function getColumnRenderParam(options) {
7597
7604
  fieldsToColumn,
7598
7605
  align: align2,
7599
7606
  verticalAlign,
7600
- cellSelected
7607
+ cellSelected,
7608
+ rowHasSelectedCells: false
7601
7609
  }, formattedValueContext), {
7602
7610
  editError: editingCell && editingCell.primaryKey === rowInfo.id && editingCell.columnId === column.id && !editingCell.active && editingCell.accepted instanceof Error ? editingCell.accepted : void 0,
7603
7611
  groupByColumn,
@@ -7662,6 +7670,11 @@ function getColumnRenderParam(options) {
7662
7670
  rootGroupBy: dataSourceState.groupBy,
7663
7671
  pivotBy: dataSourceState.pivotBy
7664
7672
  });
7673
+ Object.defineProperty(renderParam, "rowHasSelectedCells", {
7674
+ get() {
7675
+ return rowInfo.hasSelectedCells(visibleColumnsIds);
7676
+ }
7677
+ });
7665
7678
  return renderParam;
7666
7679
  }
7667
7680
  function getRawValueForCell(column, rowInfo) {
@@ -7937,10 +7950,12 @@ function InfiniteTableColumnCellFn(props) {
7937
7950
  api: imperativeApi,
7938
7951
  dataSourceApi
7939
7952
  };
7953
+ const visibleColumnsIds = computed.computedVisibleColumns.map((x) => x.id);
7940
7954
  const colRenderingParams = getColumnRenderingParams({
7941
7955
  column,
7942
7956
  rowInfo,
7943
7957
  columnsMap,
7958
+ visibleColumnsIds,
7944
7959
  fieldsToColumn,
7945
7960
  context: renderingContext
7946
7961
  });
@@ -8007,105 +8022,119 @@ function InfiniteTableColumnCellFn(props) {
8007
8022
  );
8008
8023
  const EditorComponent = (_b = (_a = column.components) == null ? void 0 : _a.Editor) != null ? _b : InfiniteTableColumnEditor;
8009
8024
  const editor = inEdit ? /* @__PURE__ */ React36.createElement(CellEditorContextComponent, { contextValue: renderParam }, /* @__PURE__ */ React36.createElement(EditorComponent, null)) : null;
8010
- const renderChildren = (0, import_react25.useCallback)(() => {
8011
- if (hidden) {
8012
- return null;
8013
- }
8014
- if (inEdit) {
8015
- return null;
8016
- }
8017
- if (renderFunctions.renderGroupIcon) {
8018
- renderParam.renderBag.groupIcon = /* @__PURE__ */ React36.createElement(
8019
- RenderCellHookComponent,
8020
- {
8021
- render: renderFunctions.renderGroupIcon,
8022
- renderParam: __spreadProps(__spreadValues({}, renderParam), {
8023
- renderBag: __spreadValues({}, renderParam.renderBag)
8024
- })
8025
- }
8026
- );
8027
- }
8028
- if (renderFunctions.renderSelectionCheckBox && selectionMode == "multi-row") {
8029
- renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React36.createElement(
8030
- RenderCellHookComponent,
8031
- {
8032
- render: defaultRenderSelectionCheckBox,
8033
- renderParam
8034
- }
8035
- );
8036
- if (renderFunctions.renderSelectionCheckBox !== true) {
8037
- renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React36.createElement(
8025
+ const renderChildren = (0, import_react25.useCallback)(
8026
+ once(() => {
8027
+ if (hidden) {
8028
+ return null;
8029
+ }
8030
+ if (inEdit) {
8031
+ return null;
8032
+ }
8033
+ if (renderFunctions.renderGroupIcon) {
8034
+ renderParam.renderBag.groupIcon = /* @__PURE__ */ React36.createElement(
8038
8035
  RenderCellHookComponent,
8039
8036
  {
8040
- render: renderFunctions.renderSelectionCheckBox,
8037
+ render: renderFunctions.renderGroupIcon,
8041
8038
  renderParam: __spreadProps(__spreadValues({}, renderParam), {
8042
8039
  renderBag: __spreadValues({}, renderParam.renderBag)
8043
8040
  })
8044
8041
  }
8045
8042
  );
8046
8043
  }
8047
- }
8048
- if (renderFunctions.renderValue) {
8049
- renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
8050
- RenderCellHookComponent,
8051
- {
8052
- render: renderFunctions.renderValue,
8053
- renderParam: __spreadProps(__spreadValues({}, renderParam), {
8054
- renderBag: __spreadValues({}, renderParam.renderBag)
8055
- })
8056
- }
8057
- );
8058
- }
8059
- if (rowInfo.isGroupRow && renderFunctions.renderGroupValue) {
8060
- renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
8061
- RenderCellHookComponent,
8062
- {
8063
- render: renderFunctions.renderGroupValue,
8064
- renderParam: __spreadProps(__spreadValues({}, renderParam), {
8065
- renderBag: __spreadValues({}, renderParam.renderBag)
8066
- })
8067
- }
8068
- );
8069
- }
8070
- if (!rowInfo.isGroupRow && renderFunctions.renderLeafValue) {
8071
- renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
8072
- RenderCellHookComponent,
8073
- {
8074
- render: renderFunctions.renderLeafValue,
8075
- renderParam: __spreadProps(__spreadValues({}, renderParam), {
8076
- renderBag: __spreadValues({}, renderParam.renderBag)
8077
- })
8078
- }
8079
- );
8080
- }
8081
- renderParamRef.current = renderParam;
8082
- let valueToRender = renderParam.renderBag.value;
8083
- if (valueToRender instanceof Date) {
8084
- valueToRender = valueToRender.toLocaleDateString();
8085
- }
8086
- const all = /* @__PURE__ */ React36.createElement(React36.Fragment, null, align2 !== "end" ? renderParam.renderBag.groupIcon : null, align2 !== "end" ? renderParam.renderBag.selectionCheckBox : null, valueToRender, align2 === "end" ? renderParam.renderBag.selectionCheckBox : null, align2 === "end" ? renderParam.renderBag.groupIcon : null);
8087
- if (column.render) {
8088
- return /* @__PURE__ */ React36.createElement(
8089
- RenderCellHookComponent,
8090
- {
8091
- render: column.render,
8092
- renderParam: __spreadProps(__spreadValues({}, renderParam), {
8093
- renderBag: __spreadProps(__spreadValues({}, renderParam.renderBag), { all })
8094
- })
8044
+ if (renderFunctions.renderSelectionCheckBox && selectionMode == "multi-row") {
8045
+ renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React36.createElement(
8046
+ RenderCellHookComponent,
8047
+ {
8048
+ render: defaultRenderSelectionCheckBox,
8049
+ renderParam
8050
+ }
8051
+ );
8052
+ if (renderFunctions.renderSelectionCheckBox !== true) {
8053
+ renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React36.createElement(
8054
+ RenderCellHookComponent,
8055
+ {
8056
+ render: renderFunctions.renderSelectionCheckBox,
8057
+ renderParam: __spreadProps(__spreadValues({}, renderParam), {
8058
+ renderBag: __spreadValues({}, renderParam.renderBag)
8059
+ })
8060
+ }
8061
+ );
8095
8062
  }
8096
- );
8097
- }
8098
- return all;
8099
- }, [
8100
- column,
8101
- hidden,
8102
- inEdit,
8103
- ...objectValuesExcept(renderParam, {
8104
- renderBag: true
8105
- })
8106
- ]);
8063
+ }
8064
+ if (renderFunctions.renderValue) {
8065
+ renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
8066
+ RenderCellHookComponent,
8067
+ {
8068
+ render: renderFunctions.renderValue,
8069
+ renderParam: __spreadProps(__spreadValues({}, renderParam), {
8070
+ renderBag: __spreadValues({}, renderParam.renderBag)
8071
+ })
8072
+ }
8073
+ );
8074
+ }
8075
+ if (rowInfo.isGroupRow && renderFunctions.renderGroupValue) {
8076
+ renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
8077
+ RenderCellHookComponent,
8078
+ {
8079
+ render: renderFunctions.renderGroupValue,
8080
+ renderParam: __spreadProps(__spreadValues({}, renderParam), {
8081
+ renderBag: __spreadValues({}, renderParam.renderBag)
8082
+ })
8083
+ }
8084
+ );
8085
+ }
8086
+ if (!rowInfo.isGroupRow && renderFunctions.renderLeafValue) {
8087
+ renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
8088
+ RenderCellHookComponent,
8089
+ {
8090
+ render: renderFunctions.renderLeafValue,
8091
+ renderParam: __spreadProps(__spreadValues({}, renderParam), {
8092
+ renderBag: __spreadValues({}, renderParam.renderBag)
8093
+ })
8094
+ }
8095
+ );
8096
+ }
8097
+ renderParamRef.current = renderParam;
8098
+ let valueToRender = renderParam.renderBag.value;
8099
+ if (valueToRender instanceof Date) {
8100
+ valueToRender = valueToRender.toLocaleDateString();
8101
+ }
8102
+ const all = /* @__PURE__ */ React36.createElement(React36.Fragment, null, align2 !== "end" ? renderParam.renderBag.groupIcon : null, align2 !== "end" ? renderParam.renderBag.selectionCheckBox : null, valueToRender, align2 === "end" ? renderParam.renderBag.selectionCheckBox : null, align2 === "end" ? renderParam.renderBag.groupIcon : null);
8103
+ if (column.render) {
8104
+ return /* @__PURE__ */ React36.createElement(
8105
+ RenderCellHookComponent,
8106
+ {
8107
+ render: column.render,
8108
+ renderParam: __spreadProps(__spreadValues({}, renderParam), {
8109
+ renderBag: __spreadProps(__spreadValues({}, renderParam.renderBag), { all })
8110
+ })
8111
+ }
8112
+ );
8113
+ }
8114
+ return all;
8115
+ }),
8116
+ [
8117
+ column,
8118
+ hidden,
8119
+ inEdit,
8120
+ ...objectValuesExcept(renderParam, {
8121
+ renderBag: true
8122
+ })
8123
+ ]
8124
+ );
8125
+ const visibleColumnIds = computed.computedVisibleColumns.map((x) => x.id);
8126
+ const allColumnIds = computed.computedColumnOrder;
8107
8127
  const rowPropsAndStyleArgs = __spreadProps(__spreadValues({}, formattedValueContext), {
8108
- rowIndex
8128
+ visibleColumnIds,
8129
+ allColumnIds,
8130
+ rowIndex,
8131
+ // we put it as false by default
8132
+ rowHasSelectedCells: false
8133
+ });
8134
+ Object.defineProperty(rowPropsAndStyleArgs, "rowHasSelectedCells", {
8135
+ get() {
8136
+ return rowInfo.hasSelectedCells(visibleColumnIds);
8137
+ }
8109
8138
  });
8110
8139
  const rowComputedClassName = typeof rowClassName === "function" ? rowClassName(rowPropsAndStyleArgs) : rowClassName;
8111
8140
  let colClassName = void 0;
@@ -10311,6 +10340,7 @@ function getEnhancedGroupData(options, deepMapValue) {
10311
10340
  collapsed: false,
10312
10341
  dataSourceHasGrouping: true,
10313
10342
  isCellSelected: returnFalse,
10343
+ hasSelectedCells: returnFalse,
10314
10344
  selfLoaded,
10315
10345
  error: options.error,
10316
10346
  parents,
@@ -10447,6 +10477,7 @@ function enhancedFlatten(param) {
10447
10477
  id: itemId,
10448
10478
  data: item,
10449
10479
  isCellSelected: returnFalse,
10480
+ hasSelectedCells: returnFalse,
10450
10481
  dataSourceHasGrouping: true,
10451
10482
  isGroupRow: false,
10452
10483
  selfLoaded: !!item,
@@ -11741,6 +11772,7 @@ function getRowSelectionApi(param) {
11741
11772
  }
11742
11773
 
11743
11774
  // src/components/DataSource/CellSelectionState.ts
11775
+ var debug4 = dbg("CellSelectionState");
11744
11776
  var WILDCARD = "*";
11745
11777
  var CellSelectionState = class {
11746
11778
  constructor(clone) {
@@ -11783,7 +11815,7 @@ var CellSelectionState = class {
11783
11815
  setCellSelected(rowId, colId, selected) {
11784
11816
  const wildcardRow = rowId === this.wildcard;
11785
11817
  const wildcardColumn = colId === this.wildcard;
11786
- const isSelected = this.isCellSelected(rowId, colId);
11818
+ const isSelected = this.isCellSelected_Internal(rowId, colId);
11787
11819
  if (isSelected === selected) {
11788
11820
  return;
11789
11821
  }
@@ -11961,7 +11993,54 @@ var CellSelectionState = class {
11961
11993
  }
11962
11994
  this.defaultSelection = stateObject.defaultSelection;
11963
11995
  }
11996
+ /**
11997
+ * Returns whether there is at least one selected cell in the row
11998
+ *
11999
+ * @param rowId the row id
12000
+ * @param columnIds the columns currently available in the grid
12001
+ * @returns boolean
12002
+ */
12003
+ isCellSelectionInRow(rowId, columnIds) {
12004
+ if (this.defaultSelection) {
12005
+ const cols2 = this.deselectedRowsToColumns.get(rowId);
12006
+ if (cols2) {
12007
+ if (cols2.has(this.wildcard)) {
12008
+ const explicitlySelectedCols = this.selectedRowsToColumns.get(rowId);
12009
+ return explicitlySelectedCols && explicitlySelectedCols.size > 0 ? columnIds.some((colId) => explicitlySelectedCols.has(colId)) : false;
12010
+ }
12011
+ return columnIds.some((colId) => !cols2.has(colId));
12012
+ }
12013
+ return true;
12014
+ }
12015
+ const cols = this.selectedRowsToColumns.get(rowId);
12016
+ if (cols) {
12017
+ if (cols.has(this.wildcard)) {
12018
+ const explicitlyDeselectedCols = this.deselectedRowsToColumns.get(rowId);
12019
+ if (explicitlyDeselectedCols && explicitlyDeselectedCols.size > 0) {
12020
+ const allDeselected = columnIds.every(
12021
+ (colId) => explicitlyDeselectedCols.has(colId)
12022
+ );
12023
+ return !allDeselected;
12024
+ }
12025
+ return true;
12026
+ }
12027
+ return columnIds ? columnIds.some((colId) => cols.has(colId)) : false;
12028
+ }
12029
+ return false;
12030
+ }
11964
12031
  isCellSelected(rowId, colId) {
12032
+ if (rowId === this.wildcard || colId === this.wildcard) {
12033
+ console.error(
12034
+ `CellSelectionState.isCellSelected should not be called with wildcard`
12035
+ );
12036
+ debug4(
12037
+ `CellSelectionState.isCellSelected should not be called with wildcard`
12038
+ );
12039
+ return false;
12040
+ }
12041
+ return this.isCellSelected_Internal(rowId, colId);
12042
+ }
12043
+ isCellSelected_Internal(rowId, colId) {
11965
12044
  var _a, _b;
11966
12045
  const cacheKey = [rowId, colId];
11967
12046
  const { cache } = this;
@@ -12609,7 +12688,8 @@ function toRowInfo(data, id, index, isRowSelected, cellSelectionState) {
12609
12688
  isGroupRow: false,
12610
12689
  selfLoaded: true,
12611
12690
  rowSelected: false,
12612
- isCellSelected: returnFalse2
12691
+ isCellSelected: returnFalse2,
12692
+ hasSelectedCells: returnFalse2
12613
12693
  };
12614
12694
  if (isRowSelected) {
12615
12695
  rowInfo.rowSelected = isRowSelected(rowInfo);
@@ -12618,6 +12698,9 @@ function toRowInfo(data, id, index, isRowSelected, cellSelectionState) {
12618
12698
  rowInfo.isCellSelected = (colId) => {
12619
12699
  return cellSelectionState.isCellSelected(rowInfo.id, colId);
12620
12700
  };
12701
+ rowInfo.hasSelectedCells = (columnIds) => {
12702
+ return cellSelectionState.isCellSelectionInRow(rowInfo.id, columnIds);
12703
+ };
12621
12704
  }
12622
12705
  return rowInfo;
12623
12706
  }
@@ -12748,6 +12831,7 @@ function concludeReducer(params) {
12748
12831
  const shouldGroup = groupBy.length > 0 || !!pivotBy;
12749
12832
  const selectionDepsChanged = haveDepsChanged(previousState, state, [
12750
12833
  "rowSelection",
12834
+ "cellSelection",
12751
12835
  "isRowSelected",
12752
12836
  "originalLazyGroupDataChangeDetect"
12753
12837
  ]);
@@ -15879,13 +15963,13 @@ function useColumnRowspan(computedVisibleColumns) {
15879
15963
 
15880
15964
  // src/components/InfiniteTable/hooks/useColumnSizeFn.ts
15881
15965
  var import_react42 = require("react");
15882
- var debug4 = dbg("useColumnSizeFn");
15966
+ var debug5 = dbg("useColumnSizeFn");
15883
15967
  function useColumnSizeFn(columns) {
15884
15968
  const columnSize = (0, import_react42.useCallback)(
15885
15969
  (index) => {
15886
15970
  const column = columns[index];
15887
15971
  if (false) {
15888
- debug4("cannot find column at index", index, columns);
15972
+ debug5("cannot find column at index", index, columns);
15889
15973
  }
15890
15974
  return column ? column.computedWidth : 0;
15891
15975
  },
@@ -17260,7 +17344,7 @@ var useLicense = (licenseKey = "") => {
17260
17344
  const valid = (0, import_react50.useMemo)(() => {
17261
17345
  let valid2 = isValidLicense(licenseKey, {
17262
17346
  publishedAt: 1624970570587,
17263
- version: "3.1.0"
17347
+ version: "3.1.2"
17264
17348
  });
17265
17349
  if (!licenseKey && !valid2 && isInsidePlayground) {
17266
17350
  return true;
@@ -19327,15 +19411,16 @@ function MenuComponent(props) {
19327
19411
  if (item.originalMenuItem.onClick) {
19328
19412
  item.originalMenuItem.onClick(event);
19329
19413
  }
19414
+ const onActionParam = {
19415
+ key: item.key,
19416
+ item: item.originalMenuItem,
19417
+ hideMenu: hideAll
19418
+ };
19330
19419
  if (item.originalMenuItem.onAction) {
19331
- item.originalMenuItem.onAction({
19332
- key: item.key,
19333
- item: item.originalMenuItem,
19334
- hideMenu: hideAll
19335
- });
19420
+ item.originalMenuItem.onAction(onActionParam);
19336
19421
  }
19337
19422
  if (onAction) {
19338
- onAction(item.key, item.originalMenuItem);
19423
+ onAction(onActionParam);
19339
19424
  }
19340
19425
  if (item.originalMenuItem.hideMenuOnAction) {
19341
19426
  hideAll();