grep-components 1.24.0-GREPF-2082.2 → 1.24.0-GREPF-2126.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { MenuItemProps, MenuProps } from '@mui/material';
3
- declare type BooleanFunction<T> = (context?: T) => boolean;
4
3
  export declare type DropdownMenuItem<T> = Omit<MenuItemProps, 'disabled'> & {
5
4
  label: string;
6
5
  tooltipText?: string;
7
- disabled?: BooleanFunction<T> | boolean;
6
+ disabled?: boolean;
8
7
  children?: Array<DropdownMenuItem<T>>;
9
8
  handleClick?: (context?: T) => void;
10
9
  };
@@ -6,7 +6,6 @@ export interface Properties<T> extends TableCellProps {
6
6
  column: TableColumn<T>;
7
7
  lines?: number;
8
8
  selected?: boolean;
9
- expanded?: boolean;
10
9
  }
11
10
  declare type ComponentProperties<T> = PropsWithChildren<Properties<T>>;
12
11
  export declare type Component<T> = FunctionComponent<ComponentProperties<T>>;
@@ -8,7 +8,6 @@ interface Properties<T> extends TableRowProps, Pick<TableCellProperties<T>, 'var
8
8
  clickable?: boolean;
9
9
  height?: number;
10
10
  underlineOnFocus?: boolean;
11
- expanded?: boolean;
12
11
  }
13
12
  declare type Component<T> = React.FunctionComponent<Properties<T>>;
14
13
  export declare const GrepTableRow: Component<any>;
package/dist/index.js CHANGED
@@ -3124,9 +3124,9 @@ var CollapsableMenu = function (_a) {
3124
3124
  };
3125
3125
 
3126
3126
  var TooltipMenuItem = function (_a) {
3127
- var children = _a.children, tooltipText = _a.tooltipText, disabled = _a.disabled, props = __rest$1(_a, ["children", "tooltipText", "disabled"]);
3127
+ var children = _a.children, tooltipText = _a.tooltipText, props = __rest$1(_a, ["children", "tooltipText"]);
3128
3128
  return (React__default.createElement(Tooltip, { title: tooltipText },
3129
- React__default.createElement(MenuItem, __assign({ role: "menuitem", disabled: disabled, sx: { pointerEvents: 'inherit !important' } }, props), children)));
3129
+ React__default.createElement(MenuItem, __assign({ role: "menuitem", sx: { pointerEvents: 'inherit !important' } }, props), children)));
3130
3130
  };
3131
3131
 
3132
3132
  var useStyles$g = makeStyles()(function (_a, _b) {
@@ -3218,7 +3218,7 @@ var CollapsableMenuItem = function (_a) {
3218
3218
  var onScrimClick = useCallback$1(function (e) {
3219
3219
  var _a;
3220
3220
  var scrimClick = !((_a = listItemRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target));
3221
- scrimClick && collapse();
3221
+ scrimClick && !disabled && collapse();
3222
3222
  }, [listItemRef, collapse]);
3223
3223
  var handleClick = items ? onToggleClick : onClick;
3224
3224
  useEffect(function () {
@@ -3235,7 +3235,7 @@ var CollapsableMenuItem = function (_a) {
3235
3235
  return window.dispatchEvent(new Event('resize'));
3236
3236
  });
3237
3237
  } }, items)))); };
3238
- return tooltipText ? (React__default.createElement(TooltipMenuItem, { className: classes.root, tooltipText: tooltipText, onMouseOver: function (e) { return e.currentTarget.focus(); }, disabled: disabled, selected: open, onClick: handleClick, onKeyDown: handleKey }, renderInner())) : (React__default.createElement(MenuItem, __assign({ className: classes.root, ref: listItemRef, selected: open, disabled: disabled, onClick: handleClick, onKeyDown: handleKey }, props), renderInner()));
3238
+ return tooltipText ? (React__default.createElement(TooltipMenuItem, { sx: disabled && !items ? { cursor: 'not-allowed' } : {}, className: classes.root, tooltipText: tooltipText, onMouseOver: function (e) { return e.currentTarget.focus(); }, selected: open, onClick: handleClick, onKeyDown: handleKey }, renderInner())) : (React__default.createElement(MenuItem, __assign({ sx: disabled && !items ? { cursor: 'not-allowed' } : {}, className: classes.root, ref: listItemRef, selected: open, onClick: handleClick, onKeyDown: handleKey }, props), renderInner()));
3239
3239
  };
3240
3240
 
3241
3241
  var useStyles$f = makeStyles()(function (_a) {
@@ -3251,20 +3251,34 @@ var useStyles$f = makeStyles()(function (_a) {
3251
3251
  var DropdownMenu = function (_a) {
3252
3252
  var context = _a.context, menuItems = _a.menuItems, menuProps = __rest$1(_a, ["context", "menuItems"]);
3253
3253
  var classes = useStyles$f().classes;
3254
- var renderChild = function (level) {
3254
+ var renderChild = function (level, parentDisabled) {
3255
3255
  if (level === void 0) { level = 0; }
3256
+ if (parentDisabled === void 0) { parentDisabled = false; }
3256
3257
  // eslint-disable-next-line react/display-name
3257
3258
  return function (item, index) {
3259
+ var _a;
3258
3260
  var label = item.label, children = item.children, handleClick = item.handleClick, disabled = item.disabled, props = __rest$1(item, ["label", "children", "handleClick", "disabled"]);
3261
+ var itemOrParentDisabled = (_a = (parentDisabled || disabled)) !== null && _a !== void 0 ? _a : false;
3259
3262
  props.key = "child-item-".concat(index);
3260
3263
  props.classes = { selected: classes.selected };
3261
3264
  // ninja way, since rewriting existing code on lpu and admin is daunting
3262
3265
  props.onClick = function (e) {
3266
+ if (itemOrParentDisabled) {
3267
+ e.preventDefault();
3268
+ e.stopPropagation();
3269
+ return;
3270
+ }
3263
3271
  menuProps.onClose && menuProps.onClose(e, 'backdropClick');
3264
- handleClick && handleClick(context);
3272
+ !itemOrParentDisabled && handleClick && handleClick(context);
3265
3273
  };
3266
- return (React__default.createElement(CollapsableMenuItem, __assign({ level: level, id: label, disabled: typeof disabled === 'function' ? disabled(context) : disabled, items: children === null || children === void 0 ? void 0 : children.map(renderChild(level + 1)) }, props),
3267
- React__default.createElement("span", { style: { paddingLeft: "".concat(level * 0.5, "rem") } }, label)));
3274
+ var style = !itemOrParentDisabled
3275
+ ? { paddingLeft: "".concat(level * 0.5, "rem") }
3276
+ : {
3277
+ paddingLeft: "".concat(level * 0.5, "rem"),
3278
+ opacity: 0.4,
3279
+ };
3280
+ return (React__default.createElement(CollapsableMenuItem, __assign({ sx: itemOrParentDisabled && !children ? { cursor: 'not-allowed' } : {}, level: level, id: label, disabled: itemOrParentDisabled, items: children === null || children === void 0 ? void 0 : children.map(renderChild(level + 1, itemOrParentDisabled)) }, props),
3281
+ React__default.createElement("span", { style: style }, label)));
3268
3282
  };
3269
3283
  };
3270
3284
  return (React__default.createElement(Menu, __assign({}, menuProps, { anchorOrigin: (menuProps === null || menuProps === void 0 ? void 0 : menuProps.anchorOrigin) || {
@@ -3478,8 +3492,8 @@ var CellValue = styled('span')({
3478
3492
  WebkitBoxOrient: 'vertical',
3479
3493
  });
3480
3494
  var GrepTableRow$1 = function (_a) {
3481
- var row = _a.row, column = _a.column, expanded = _a.expanded, props = __rest$1(_a, ["row", "column", "expanded"]);
3482
- var forceTooltip = column.forceTooltip, getTooltip = column.getTooltip, getCell = column.getCell, lang = column.lang, _b = column.lines, lines = _b === void 0 ? function () { return (expanded ? undefined : 1); } : _b;
3495
+ var row = _a.row, column = _a.column, selected = _a.selected, props = __rest$1(_a, ["row", "column", "selected"]);
3496
+ var forceTooltip = column.forceTooltip, getTooltip = column.getTooltip, getCell = column.getCell, lang = column.lang, _b = column.lines, lines = _b === void 0 ? function () { return (selected ? undefined : 1); } : _b;
3483
3497
  var padding = column.padding;
3484
3498
  var value = (React__default.createElement(CellValue, { style: { WebkitLineClamp: lines(row) }, lang: typeof lang === 'string' ? lang : lang ? lang(row) : '' }, getCell(row)));
3485
3499
  if (forceTooltip || getTooltip) {
@@ -3490,8 +3504,8 @@ var GrepTableRow$1 = function (_a) {
3490
3504
  };
3491
3505
 
3492
3506
  var GrepTableRow = function (_a) {
3493
- var row = _a.row, columns = _a.columns, selected = _a.selected, expanded = _a.expanded, variant = _a.variant; _a.clickable; _a.height; var underlineOnFocus = _a.underlineOnFocus, props = __rest$1(_a, ["row", "columns", "selected", "expanded", "variant", "clickable", "height", "underlineOnFocus"]);
3494
- var render = function (column, index) { return (React__default.createElement(GrepTableRow$1, __assign({ key: index, expanded: expanded }, { column: column, row: row, variant: variant, selected: selected }))); };
3507
+ var row = _a.row, columns = _a.columns, selected = _a.selected, variant = _a.variant; _a.clickable; _a.height; var underlineOnFocus = _a.underlineOnFocus, props = __rest$1(_a, ["row", "columns", "selected", "variant", "clickable", "height", "underlineOnFocus"]);
3508
+ var render = function (column, index) { return (React__default.createElement(GrepTableRow$1, __assign({ key: index }, { column: column, row: row, variant: variant, selected: selected }))); };
3495
3509
  return (React__default.createElement(TableRow, __assign({ sx: {
3496
3510
  ':focus': { textDecoration: underlineOnFocus ? 'underline' : 'none' },
3497
3511
  }, tabIndex: props.tabIndex }, __assign({ selected: selected }, props)), columns.map(render)));
@@ -3667,35 +3681,23 @@ var GrepTable = function (_a) {
3667
3681
  var _d = __read(React__default.useState(null), 2), menuAnchor = _d[0], setMenuAnchor = _d[1];
3668
3682
  var _e = __read(React__default.useState(0), 2), currentPage = _e[0], _setCurrentPage = _e[1];
3669
3683
  var _f = __read(React__default.useState(), 2), selectedRowIndex = _f[0], _setSelectedRowIndex = _f[1];
3670
- var _g = __read(React__default.useState(), 2), expandedRowIndex = _g[0], _setExpandedRowIndex = _g[1];
3671
- var _h = __read(React__default.useState(), 2), dropdownContext = _h[0], setDropdownContext = _h[1];
3684
+ var _g = __read(React__default.useState(), 2), dropdownContext = _g[0], setDropdownContext = _g[1];
3672
3685
  var selectedRow = data[selectedRowIndex] || null;
3673
- var setCurrentPage = useCallback$1(function (index, rowIndex, shouldExpand) {
3686
+ var setCurrentPage = useCallback$1(function (index, rowIndex) {
3674
3687
  index = pagination && index >= 0 ? index : 0;
3675
3688
  _setCurrentPage(index);
3676
3689
  _setSelectedRowIndex(rowIndex);
3677
- if (shouldExpand) {
3678
- _setExpandedRowIndex(rowIndex);
3679
- }
3680
- }, [
3681
- _setCurrentPage,
3682
- _setSelectedRowIndex,
3683
- _setExpandedRowIndex,
3684
- rowsPerPage,
3685
- pagination,
3686
- ]);
3687
- var setSelectedRowIndex = function (index, shouldExpand) {
3688
- if (shouldExpand === void 0) { shouldExpand = true; }
3690
+ }, [_setCurrentPage, _setSelectedRowIndex, rowsPerPage, pagination]);
3691
+ var setSelectedRowIndex = function (index) {
3689
3692
  var hasIndexChanged = index === selectedRowIndex;
3690
3693
  var pageIndex = Math.floor(index / rowsPerPage);
3691
- setCurrentPage(pageIndex, index, shouldExpand);
3694
+ setCurrentPage(pageIndex, index);
3692
3695
  if (hasIndexChanged && onSelectedRowChange) {
3693
3696
  onSelectedRowChange(data[index]);
3694
3697
  }
3695
3698
  };
3696
- var setSelectedElement = function (el, shouldExpand) {
3697
- if (shouldExpand === void 0) { shouldExpand = true; }
3698
- setSelectedRowIndex(getElementIndex(el), shouldExpand);
3699
+ var setSelectedElement = function (el) {
3700
+ return setSelectedRowIndex(getElementIndex(el));
3699
3701
  };
3700
3702
  var tableRef = React__default.useRef(null);
3701
3703
  // focus selected row first tabable item
@@ -3763,22 +3765,15 @@ var GrepTable = function (_a) {
3763
3765
  var clickableRows = !!onRowClick;
3764
3766
  var disabled = isRowDisabled && isRowDisabled(row);
3765
3767
  var rowIndex = index + currentPage * rowsPerPage;
3766
- return (React__default.createElement(GrepTableRow, { key: rowIndex, "data-index": rowIndex, tabIndex: rowTabIndex !== null && rowTabIndex !== void 0 ? rowTabIndex : 0, hover: clickableRows, selected: rowIndex === selectedRowIndex, expanded: rowIndex === expandedRowIndex, clickable: clickableRows, onMouseDown: function (e) {
3767
- if (e.target.type === 'checkbox') {
3768
- e.preventDefault();
3769
- e.stopPropagation();
3770
- setSelectedElement(e.currentTarget, false);
3771
- }
3772
- else {
3773
- setSelectedElement(e.currentTarget);
3774
- if (!disableSelectOnClick) {
3775
- _handleRowClick(row);
3776
- }
3777
- }
3778
- }, columns: rowColumns, row: row, style: { cursor: clickableRows && !disabled ? 'pointer' : '' }, onFocus: function (e) {
3779
- if (selectedRowIndex !== rowIndex) {
3780
- setSelectedElement(e.currentTarget);
3768
+ return (React__default.createElement(GrepTableRow, { key: rowIndex, "data-index": rowIndex, tabIndex: rowTabIndex !== null && rowTabIndex !== void 0 ? rowTabIndex : 0, hover: clickableRows, selected: rowIndex === selectedRowIndex, clickable: clickableRows, onMouseDown: function (_a) {
3769
+ var currentTarget = _a.currentTarget;
3770
+ setSelectedElement(currentTarget);
3771
+ if (!disableSelectOnClick) {
3772
+ _handleRowClick(row);
3781
3773
  }
3774
+ }, columns: rowColumns, row: row, style: { cursor: clickableRows && !disabled ? 'pointer' : '' }, onFocus: function (_a) {
3775
+ var currentTarget = _a.currentTarget;
3776
+ return setSelectedElement(currentTarget);
3782
3777
  }, underlineOnFocus: underlineOnFocus }));
3783
3778
  };
3784
3779
  var onKey = function (e) {