neue Homepage auf react basis

This commit is contained in:
2026-08-07 21:39:30 +02:00
parent 164bdd19ad
commit ee89442c04
52191 changed files with 1230242 additions and 58 deletions
@@ -0,0 +1,26 @@
import * as React from 'react';
import type { GridMenuProps } from "../GridMenu.mjs";
export interface GridColumnHeaderMenuProps {
columnMenuId?: string;
columnMenuButtonId?: string;
ContentComponent: React.JSXElementConstructor<any>;
contentComponentProps?: any;
field: string;
open: boolean;
target: HTMLElement | null;
onExited?: GridMenuProps['onExited'];
}
declare function GridColumnHeaderMenu({
columnMenuId,
columnMenuButtonId,
ContentComponent,
contentComponentProps,
field,
open,
target,
onExited
}: GridColumnHeaderMenuProps): React.JSX.Element | null;
declare namespace GridColumnHeaderMenu {
var propTypes: any;
}
export { GridColumnHeaderMenu };
@@ -0,0 +1,26 @@
import * as React from 'react';
import type { GridMenuProps } from "../GridMenu.js";
export interface GridColumnHeaderMenuProps {
columnMenuId?: string;
columnMenuButtonId?: string;
ContentComponent: React.JSXElementConstructor<any>;
contentComponentProps?: any;
field: string;
open: boolean;
target: HTMLElement | null;
onExited?: GridMenuProps['onExited'];
}
declare function GridColumnHeaderMenu({
columnMenuId,
columnMenuButtonId,
ContentComponent,
contentComponentProps,
field,
open,
target,
onExited
}: GridColumnHeaderMenuProps): React.JSX.Element | null;
declare namespace GridColumnHeaderMenu {
var propTypes: any;
}
export { GridColumnHeaderMenu };
@@ -0,0 +1,70 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridColumnHeaderMenu = GridColumnHeaderMenu;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var React = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
var _HTMLElementType = _interopRequireDefault(require("@mui/utils/HTMLElementType"));
var _useGridApiContext = require("../../../hooks/utils/useGridApiContext");
var _GridMenu = require("../GridMenu");
var _jsxRuntime = require("react/jsx-runtime");
function GridColumnHeaderMenu({
columnMenuId,
columnMenuButtonId,
ContentComponent,
contentComponentProps,
field,
open,
target,
onExited
}) {
const apiRef = (0, _useGridApiContext.useGridApiContext)();
const colDef = apiRef.current.getColumn(field);
const hideMenu = (0, _useEventCallback.default)(event => {
if (event) {
// Prevent triggering the sorting
event.stopPropagation();
if (target?.contains(event.target)) {
return;
}
}
apiRef.current.hideColumnMenu();
});
if (!target || !colDef) {
return null;
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridMenu.GridMenu, {
position: `bottom-${colDef.align === 'right' ? 'start' : 'end'}`,
open: open,
target: target,
onClose: hideMenu,
onExited: onExited,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ContentComponent, (0, _extends2.default)({
colDef: colDef,
hideMenu: hideMenu,
open: open,
id: columnMenuId,
labelledby: columnMenuButtonId
}, contentComponentProps))
});
}
process.env.NODE_ENV !== "production" ? GridColumnHeaderMenu.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
columnMenuButtonId: _propTypes.default.string,
columnMenuId: _propTypes.default.string,
ContentComponent: _propTypes.default.elementType.isRequired,
contentComponentProps: _propTypes.default.any,
field: _propTypes.default.string.isRequired,
onExited: _propTypes.default.func,
open: _propTypes.default.bool.isRequired,
target: _HTMLElementType.default
} : void 0;
@@ -0,0 +1,63 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import PropTypes from 'prop-types';
import useEventCallback from '@mui/utils/useEventCallback';
import HTMLElementType from '@mui/utils/HTMLElementType';
import { useGridApiContext } from "../../../hooks/utils/useGridApiContext.mjs";
import { GridMenu } from "../GridMenu.mjs";
import { jsx as _jsx } from "react/jsx-runtime";
function GridColumnHeaderMenu({
columnMenuId,
columnMenuButtonId,
ContentComponent,
contentComponentProps,
field,
open,
target,
onExited
}) {
const apiRef = useGridApiContext();
const colDef = apiRef.current.getColumn(field);
const hideMenu = useEventCallback(event => {
if (event) {
// Prevent triggering the sorting
event.stopPropagation();
if (target?.contains(event.target)) {
return;
}
}
apiRef.current.hideColumnMenu();
});
if (!target || !colDef) {
return null;
}
return /*#__PURE__*/_jsx(GridMenu, {
position: `bottom-${colDef.align === 'right' ? 'start' : 'end'}`,
open: open,
target: target,
onClose: hideMenu,
onExited: onExited,
children: /*#__PURE__*/_jsx(ContentComponent, _extends({
colDef: colDef,
hideMenu: hideMenu,
open: open,
id: columnMenuId,
labelledby: columnMenuButtonId
}, contentComponentProps))
});
}
process.env.NODE_ENV !== "production" ? GridColumnHeaderMenu.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
columnMenuButtonId: PropTypes.string,
columnMenuId: PropTypes.string,
ContentComponent: PropTypes.elementType.isRequired,
contentComponentProps: PropTypes.any,
field: PropTypes.string.isRequired,
onExited: PropTypes.func,
open: PropTypes.bool.isRequired,
target: HTMLElementType
} : void 0;
export { GridColumnHeaderMenu };
@@ -0,0 +1,23 @@
import { GridColumnMenuColumnsItem } from "./menuItems/GridColumnMenuColumnsItem.mjs";
import { GridColumnMenuFilterItem } from "./menuItems/GridColumnMenuFilterItem.mjs";
import { GridColumnMenuSortItem } from "./menuItems/GridColumnMenuSortItem.mjs";
import type { GridGenericColumnMenuProps, GridColumnMenuComponent } from "./GridColumnMenuProps.mjs";
export declare const GRID_COLUMN_MENU_SLOTS: {
columnMenuSortItem: typeof GridColumnMenuSortItem;
columnMenuFilterItem: typeof GridColumnMenuFilterItem;
columnMenuColumnsItem: typeof GridColumnMenuColumnsItem;
};
export declare const GRID_COLUMN_MENU_SLOT_PROPS: {
columnMenuSortItem: {
displayOrder: number;
};
columnMenuFilterItem: {
displayOrder: number;
};
columnMenuColumnsItem: {
displayOrder: number;
};
};
declare const GridGenericColumnMenu: import("react").ForwardRefExoticComponent<GridGenericColumnMenuProps> | import("react").ForwardRefExoticComponent<GridGenericColumnMenuProps & import("react").RefAttributes<HTMLUListElement>>;
declare const GridColumnMenu: GridColumnMenuComponent;
export { GridColumnMenu, GridGenericColumnMenu };
@@ -0,0 +1,23 @@
import { GridColumnMenuColumnsItem } from "./menuItems/GridColumnMenuColumnsItem.js";
import { GridColumnMenuFilterItem } from "./menuItems/GridColumnMenuFilterItem.js";
import { GridColumnMenuSortItem } from "./menuItems/GridColumnMenuSortItem.js";
import type { GridGenericColumnMenuProps, GridColumnMenuComponent } from "./GridColumnMenuProps.js";
export declare const GRID_COLUMN_MENU_SLOTS: {
columnMenuSortItem: typeof GridColumnMenuSortItem;
columnMenuFilterItem: typeof GridColumnMenuFilterItem;
columnMenuColumnsItem: typeof GridColumnMenuColumnsItem;
};
export declare const GRID_COLUMN_MENU_SLOT_PROPS: {
columnMenuSortItem: {
displayOrder: number;
};
columnMenuFilterItem: {
displayOrder: number;
};
columnMenuColumnsItem: {
displayOrder: number;
};
};
declare const GridGenericColumnMenu: import("react").ForwardRefExoticComponent<GridGenericColumnMenuProps> | import("react").ForwardRefExoticComponent<GridGenericColumnMenuProps & import("react").RefAttributes<HTMLUListElement>>;
declare const GridColumnMenu: GridColumnMenuComponent;
export { GridColumnMenu, GridGenericColumnMenu };
@@ -0,0 +1,119 @@
"use strict";
'use client';
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridGenericColumnMenu = exports.GridColumnMenu = exports.GRID_COLUMN_MENU_SLOT_PROPS = exports.GRID_COLUMN_MENU_SLOTS = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _forwardRef = require("@mui/x-internals/forwardRef");
var _useGridColumnMenuSlots = require("../../../hooks/features/columnMenu/useGridColumnMenuSlots");
var _GridColumnMenuContainer = require("./GridColumnMenuContainer");
var _GridColumnMenuColumnsItem = require("./menuItems/GridColumnMenuColumnsItem");
var _GridColumnMenuFilterItem = require("./menuItems/GridColumnMenuFilterItem");
var _GridColumnMenuSortItem = require("./menuItems/GridColumnMenuSortItem");
var _jsxRuntime = require("react/jsx-runtime");
const _excluded = ["defaultSlots", "defaultSlotProps", "slots", "slotProps"];
const GRID_COLUMN_MENU_SLOTS = exports.GRID_COLUMN_MENU_SLOTS = {
columnMenuSortItem: _GridColumnMenuSortItem.GridColumnMenuSortItem,
columnMenuFilterItem: _GridColumnMenuFilterItem.GridColumnMenuFilterItem,
columnMenuColumnsItem: _GridColumnMenuColumnsItem.GridColumnMenuColumnsItem
};
const GRID_COLUMN_MENU_SLOT_PROPS = exports.GRID_COLUMN_MENU_SLOT_PROPS = {
columnMenuSortItem: {
displayOrder: 10
},
columnMenuFilterItem: {
displayOrder: 20
},
columnMenuColumnsItem: {
displayOrder: 30
}
};
const GridGenericColumnMenu = exports.GridGenericColumnMenu = (0, _forwardRef.forwardRef)(function GridGenericColumnMenu(props, ref) {
const {
defaultSlots,
defaultSlotProps,
slots,
slotProps
} = props,
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
const orderedSlots = (0, _useGridColumnMenuSlots.useGridColumnMenuSlots)((0, _extends2.default)({}, other, {
defaultSlots,
defaultSlotProps,
slots,
slotProps
}));
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnMenuContainer.GridColumnMenuContainer, (0, _extends2.default)({}, other, {
ref: ref,
children: orderedSlots.map(([Component, otherProps], index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, (0, _extends2.default)({}, otherProps), index))
}));
});
if (process.env.NODE_ENV !== "production") GridGenericColumnMenu.displayName = "GridGenericColumnMenu";
process.env.NODE_ENV !== "production" ? GridGenericColumnMenu.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: _propTypes.default.object.isRequired,
/**
* Initial `slotProps` - it is internal, to be overrriden by Pro or Premium packages
* @ignore - do not document.
*/
defaultSlotProps: _propTypes.default.object.isRequired,
/**
* Initial `slots` - it is internal, to be overrriden by Pro or Premium packages
* @ignore - do not document.
*/
defaultSlots: _propTypes.default.object.isRequired,
hideMenu: _propTypes.default.func.isRequired,
id: _propTypes.default.string,
labelledby: _propTypes.default.string,
open: _propTypes.default.bool.isRequired,
/**
* Could be used to pass new props or override props specific to a column menu component
* e.g. `displayOrder`
*/
slotProps: _propTypes.default.object,
/**
* `slots` could be used to add new and (or) override default column menu items
* If you register a nee component you must pass it's `displayOrder` in `slotProps`
* or it will be placed in the end of the list
*/
slots: _propTypes.default.object
} : void 0;
const GridColumnMenu = exports.GridColumnMenu = (0, _forwardRef.forwardRef)(function GridColumnMenu(props, ref) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridGenericColumnMenu, (0, _extends2.default)({}, props, {
ref: ref,
defaultSlots: GRID_COLUMN_MENU_SLOTS,
defaultSlotProps: GRID_COLUMN_MENU_SLOT_PROPS
}));
});
if (process.env.NODE_ENV !== "production") GridColumnMenu.displayName = "GridColumnMenu";
GridColumnMenu.defaultSlots = GRID_COLUMN_MENU_SLOTS;
GridColumnMenu.defaultSlotProps = GRID_COLUMN_MENU_SLOT_PROPS;
process.env.NODE_ENV !== "production" ? GridColumnMenu.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: _propTypes.default.object.isRequired,
hideMenu: _propTypes.default.func.isRequired,
id: _propTypes.default.string,
labelledby: _propTypes.default.string,
open: _propTypes.default.bool.isRequired,
/**
* Could be used to pass new props or override props specific to a column menu component
* e.g. `displayOrder`
*/
slotProps: _propTypes.default.object,
/**
* `slots` could be used to add new and (or) override default column menu items
* If you register a nee component you must pass it's `displayOrder` in `slotProps`
* or it will be placed in the end of the list
*/
slots: _propTypes.default.object
} : void 0;
@@ -0,0 +1,114 @@
'use client';
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
const _excluded = ["defaultSlots", "defaultSlotProps", "slots", "slotProps"];
import PropTypes from 'prop-types';
import { forwardRef } from '@mui/x-internals/forwardRef';
import { useGridColumnMenuSlots } from "../../../hooks/features/columnMenu/useGridColumnMenuSlots.mjs";
import { GridColumnMenuContainer } from "./GridColumnMenuContainer.mjs";
import { GridColumnMenuColumnsItem } from "./menuItems/GridColumnMenuColumnsItem.mjs";
import { GridColumnMenuFilterItem } from "./menuItems/GridColumnMenuFilterItem.mjs";
import { GridColumnMenuSortItem } from "./menuItems/GridColumnMenuSortItem.mjs";
import { jsx as _jsx } from "react/jsx-runtime";
export const GRID_COLUMN_MENU_SLOTS = {
columnMenuSortItem: GridColumnMenuSortItem,
columnMenuFilterItem: GridColumnMenuFilterItem,
columnMenuColumnsItem: GridColumnMenuColumnsItem
};
export const GRID_COLUMN_MENU_SLOT_PROPS = {
columnMenuSortItem: {
displayOrder: 10
},
columnMenuFilterItem: {
displayOrder: 20
},
columnMenuColumnsItem: {
displayOrder: 30
}
};
const GridGenericColumnMenu = forwardRef(function GridGenericColumnMenu(props, ref) {
const {
defaultSlots,
defaultSlotProps,
slots,
slotProps
} = props,
other = _objectWithoutPropertiesLoose(props, _excluded);
const orderedSlots = useGridColumnMenuSlots(_extends({}, other, {
defaultSlots,
defaultSlotProps,
slots,
slotProps
}));
return /*#__PURE__*/_jsx(GridColumnMenuContainer, _extends({}, other, {
ref: ref,
children: orderedSlots.map(([Component, otherProps], index) => /*#__PURE__*/_jsx(Component, _extends({}, otherProps), index))
}));
});
if (process.env.NODE_ENV !== "production") GridGenericColumnMenu.displayName = "GridGenericColumnMenu";
process.env.NODE_ENV !== "production" ? GridGenericColumnMenu.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: PropTypes.object.isRequired,
/**
* Initial `slotProps` - it is internal, to be overrriden by Pro or Premium packages
* @ignore - do not document.
*/
defaultSlotProps: PropTypes.object.isRequired,
/**
* Initial `slots` - it is internal, to be overrriden by Pro or Premium packages
* @ignore - do not document.
*/
defaultSlots: PropTypes.object.isRequired,
hideMenu: PropTypes.func.isRequired,
id: PropTypes.string,
labelledby: PropTypes.string,
open: PropTypes.bool.isRequired,
/**
* Could be used to pass new props or override props specific to a column menu component
* e.g. `displayOrder`
*/
slotProps: PropTypes.object,
/**
* `slots` could be used to add new and (or) override default column menu items
* If you register a nee component you must pass it's `displayOrder` in `slotProps`
* or it will be placed in the end of the list
*/
slots: PropTypes.object
} : void 0;
const GridColumnMenu = forwardRef(function GridColumnMenu(props, ref) {
return /*#__PURE__*/_jsx(GridGenericColumnMenu, _extends({}, props, {
ref: ref,
defaultSlots: GRID_COLUMN_MENU_SLOTS,
defaultSlotProps: GRID_COLUMN_MENU_SLOT_PROPS
}));
});
if (process.env.NODE_ENV !== "production") GridColumnMenu.displayName = "GridColumnMenu";
GridColumnMenu.defaultSlots = GRID_COLUMN_MENU_SLOTS;
GridColumnMenu.defaultSlotProps = GRID_COLUMN_MENU_SLOT_PROPS;
process.env.NODE_ENV !== "production" ? GridColumnMenu.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: PropTypes.object.isRequired,
hideMenu: PropTypes.func.isRequired,
id: PropTypes.string,
labelledby: PropTypes.string,
open: PropTypes.bool.isRequired,
/**
* Could be used to pass new props or override props specific to a column menu component
* e.g. `displayOrder`
*/
slotProps: PropTypes.object,
/**
* `slots` could be used to add new and (or) override default column menu items
* If you register a nee component you must pass it's `displayOrder` in `slotProps`
* or it will be placed in the end of the list
*/
slots: PropTypes.object
} : void 0;
export { GridColumnMenu, GridGenericColumnMenu };
@@ -0,0 +1,4 @@
import * as React from 'react';
import type { GridColumnMenuContainerProps } from "./GridColumnMenuProps.mjs";
declare const GridColumnMenuContainer: React.ForwardRefExoticComponent<GridColumnMenuContainerProps> | React.ForwardRefExoticComponent<GridColumnMenuContainerProps & React.RefAttributes<HTMLUListElement>>;
export { GridColumnMenuContainer };
@@ -0,0 +1,4 @@
import * as React from 'react';
import type { GridColumnMenuContainerProps } from "./GridColumnMenuProps.js";
declare const GridColumnMenuContainer: React.ForwardRefExoticComponent<GridColumnMenuContainerProps> | React.ForwardRefExoticComponent<GridColumnMenuContainerProps & React.RefAttributes<HTMLUListElement>>;
export { GridColumnMenuContainer };
@@ -0,0 +1,78 @@
"use strict";
'use client';
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridColumnMenuContainer = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _clsx = _interopRequireDefault(require("clsx"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var React = _interopRequireWildcard(require("react"));
var _styles = require("@mui/material/styles");
var _forwardRef = require("@mui/x-internals/forwardRef");
var _keyboardUtils = require("../../../utils/keyboardUtils");
var _assert = require("../../../utils/assert");
var _gridClasses = require("../../../constants/gridClasses");
var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
var _jsxRuntime = require("react/jsx-runtime");
const _excluded = ["hideMenu", "colDef", "id", "labelledby", "className", "children", "open"];
const StyledMenuList = (0, _styles.styled)(_assert.NotRendered, {
slot: 'internal'
})(() => ({
minWidth: 248
}));
function handleMenuScrollCapture(event) {
if (!event.currentTarget.contains(event.target)) {
return;
}
event.stopPropagation();
}
const GridColumnMenuContainer = exports.GridColumnMenuContainer = (0, _forwardRef.forwardRef)(function GridColumnMenuContainer(props, ref) {
const {
hideMenu,
id,
labelledby,
className,
children,
open
} = props,
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
const rootProps = (0, _useGridRootProps.useGridRootProps)();
const handleListKeyDown = React.useCallback(event => {
if (event.key === 'Tab') {
event.preventDefault();
}
if ((0, _keyboardUtils.isHideMenuKey)(event.key)) {
hideMenu(event);
}
}, [hideMenu]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledMenuList, (0, _extends2.default)({
as: rootProps.slots.baseMenuList,
id: id,
className: (0, _clsx.default)(_gridClasses.gridClasses.menuList, className),
"aria-labelledby": labelledby,
onKeyDown: handleListKeyDown,
onWheel: handleMenuScrollCapture,
onTouchMove: handleMenuScrollCapture,
autoFocus: open
}, other, {
ref: ref,
children: children
}));
});
if (process.env.NODE_ENV !== "production") GridColumnMenuContainer.displayName = "GridColumnMenuContainer";
process.env.NODE_ENV !== "production" ? GridColumnMenuContainer.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: _propTypes.default.object.isRequired,
hideMenu: _propTypes.default.func.isRequired,
id: _propTypes.default.string,
labelledby: _propTypes.default.string,
open: _propTypes.default.bool.isRequired
} : void 0;
@@ -0,0 +1,72 @@
'use client';
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
const _excluded = ["hideMenu", "colDef", "id", "labelledby", "className", "children", "open"];
import clsx from 'clsx';
import PropTypes from 'prop-types';
import * as React from 'react';
import { styled } from '@mui/material/styles';
import { forwardRef } from '@mui/x-internals/forwardRef';
import { isHideMenuKey } from "../../../utils/keyboardUtils.mjs";
import { NotRendered } from "../../../utils/assert.mjs";
import { gridClasses } from "../../../constants/gridClasses.mjs";
import { useGridRootProps } from "../../../hooks/utils/useGridRootProps.mjs";
import { jsx as _jsx } from "react/jsx-runtime";
const StyledMenuList = styled(NotRendered, {
slot: 'internal'
})(() => ({
minWidth: 248
}));
function handleMenuScrollCapture(event) {
if (!event.currentTarget.contains(event.target)) {
return;
}
event.stopPropagation();
}
const GridColumnMenuContainer = forwardRef(function GridColumnMenuContainer(props, ref) {
const {
hideMenu,
id,
labelledby,
className,
children,
open
} = props,
other = _objectWithoutPropertiesLoose(props, _excluded);
const rootProps = useGridRootProps();
const handleListKeyDown = React.useCallback(event => {
if (event.key === 'Tab') {
event.preventDefault();
}
if (isHideMenuKey(event.key)) {
hideMenu(event);
}
}, [hideMenu]);
return /*#__PURE__*/_jsx(StyledMenuList, _extends({
as: rootProps.slots.baseMenuList,
id: id,
className: clsx(gridClasses.menuList, className),
"aria-labelledby": labelledby,
onKeyDown: handleListKeyDown,
onWheel: handleMenuScrollCapture,
onTouchMove: handleMenuScrollCapture,
autoFocus: open
}, other, {
ref: ref,
children: children
}));
});
if (process.env.NODE_ENV !== "production") GridColumnMenuContainer.displayName = "GridColumnMenuContainer";
process.env.NODE_ENV !== "production" ? GridColumnMenuContainer.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: PropTypes.object.isRequired,
hideMenu: PropTypes.func.isRequired,
id: PropTypes.string,
labelledby: PropTypes.string,
open: PropTypes.bool.isRequired
} : void 0;
export { GridColumnMenuContainer };
@@ -0,0 +1,7 @@
import type * as React from 'react';
import type { GridColDef } from "../../../models/colDef/gridColDef.mjs";
export interface GridColumnMenuItemProps {
colDef: GridColDef;
onClick: (event: React.MouseEvent<any>) => void;
[key: string]: any;
}
@@ -0,0 +1,7 @@
import type * as React from 'react';
import type { GridColDef } from "../../../models/colDef/gridColDef.js";
export interface GridColumnMenuItemProps {
colDef: GridColDef;
onClick: (event: React.MouseEvent<any>) => void;
[key: string]: any;
}
@@ -0,0 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
@@ -0,0 +1 @@
export {};
@@ -0,0 +1,20 @@
import type * as React from 'react';
import type { GridColDef } from "../../../models/colDef/gridColDef.mjs";
import type { GridColumnMenuRootProps } from "../../../hooks/features/columnMenu/index.mjs";
export interface GridColumnMenuContainerProps extends React.HTMLAttributes<HTMLUListElement> {
hideMenu: (event: React.SyntheticEvent) => void;
colDef: GridColDef;
open: boolean;
id?: string;
labelledby?: string;
}
export interface GridGenericColumnMenuProps extends GridColumnMenuRootProps, GridColumnMenuContainerProps {}
export interface GridColumnMenuProps extends Omit<GridGenericColumnMenuProps, 'defaultSlots' | 'defaultSlotProps'> {}
/**
* Type for column menu components with static defaultSlots and defaultSlotProps.
* Used by GridColumnMenu, GridProColumnMenu, and GridPremiumColumnMenu.
*/
export type GridColumnMenuComponent = React.ForwardRefExoticComponent<GridColumnMenuProps & React.RefAttributes<HTMLUListElement>> & {
defaultSlots: GridColumnMenuRootProps['defaultSlots'];
defaultSlotProps: GridColumnMenuRootProps['defaultSlotProps'];
};
@@ -0,0 +1,20 @@
import type * as React from 'react';
import type { GridColDef } from "../../../models/colDef/gridColDef.js";
import type { GridColumnMenuRootProps } from "../../../hooks/features/columnMenu/index.js";
export interface GridColumnMenuContainerProps extends React.HTMLAttributes<HTMLUListElement> {
hideMenu: (event: React.SyntheticEvent) => void;
colDef: GridColDef;
open: boolean;
id?: string;
labelledby?: string;
}
export interface GridGenericColumnMenuProps extends GridColumnMenuRootProps, GridColumnMenuContainerProps {}
export interface GridColumnMenuProps extends Omit<GridGenericColumnMenuProps, 'defaultSlots' | 'defaultSlotProps'> {}
/**
* Type for column menu components with static defaultSlots and defaultSlotProps.
* Used by GridColumnMenu, GridProColumnMenu, and GridPremiumColumnMenu.
*/
export type GridColumnMenuComponent = React.ForwardRefExoticComponent<GridColumnMenuProps & React.RefAttributes<HTMLUListElement>> & {
defaultSlots: GridColumnMenuRootProps['defaultSlots'];
defaultSlotProps: GridColumnMenuRootProps['defaultSlotProps'];
};
@@ -0,0 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
@@ -0,0 +1 @@
export {};
@@ -0,0 +1,6 @@
export * from "./GridColumnHeaderMenu.mjs";
export type { GridColumnMenuContainerProps, GridGenericColumnMenuProps, GridColumnMenuProps } from "./GridColumnMenuProps.mjs";
export * from "./GridColumnMenuItemProps.mjs";
export * from "./GridColumnMenuContainer.mjs";
export { GridGenericColumnMenu } from "./GridColumnMenu.mjs";
export * from "./menuItems/index.mjs";
@@ -0,0 +1,6 @@
export * from "./GridColumnHeaderMenu.js";
export type { GridColumnMenuContainerProps, GridGenericColumnMenuProps, GridColumnMenuProps } from "./GridColumnMenuProps.js";
export * from "./GridColumnMenuItemProps.js";
export * from "./GridColumnMenuContainer.js";
export { GridGenericColumnMenu } from "./GridColumnMenu.js";
export * from "./menuItems/index.js";
@@ -0,0 +1,63 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
GridGenericColumnMenu: true
};
Object.defineProperty(exports, "GridGenericColumnMenu", {
enumerable: true,
get: function () {
return _GridColumnMenu.GridGenericColumnMenu;
}
});
var _GridColumnHeaderMenu = require("./GridColumnHeaderMenu");
Object.keys(_GridColumnHeaderMenu).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _GridColumnHeaderMenu[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _GridColumnHeaderMenu[key];
}
});
});
var _GridColumnMenuItemProps = require("./GridColumnMenuItemProps");
Object.keys(_GridColumnMenuItemProps).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _GridColumnMenuItemProps[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _GridColumnMenuItemProps[key];
}
});
});
var _GridColumnMenuContainer = require("./GridColumnMenuContainer");
Object.keys(_GridColumnMenuContainer).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _GridColumnMenuContainer[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _GridColumnMenuContainer[key];
}
});
});
var _GridColumnMenu = require("./GridColumnMenu");
var _menuItems = require("./menuItems");
Object.keys(_menuItems).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _menuItems[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _menuItems[key];
}
});
});
@@ -0,0 +1,8 @@
// shared modules
export * from "./GridColumnHeaderMenu.mjs";
export * from "./GridColumnMenuItemProps.mjs";
export * from "./GridColumnMenuContainer.mjs";
export { GridGenericColumnMenu } from "./GridColumnMenu.mjs";
// items
export * from "./menuItems/index.mjs";
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.mjs";
declare function GridColumnMenuColumnsItem(props: GridColumnMenuItemProps): React.JSX.Element;
declare namespace GridColumnMenuColumnsItem {
var propTypes: any;
}
export { GridColumnMenuColumnsItem };
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.js";
declare function GridColumnMenuColumnsItem(props: GridColumnMenuItemProps): React.JSX.Element;
declare namespace GridColumnMenuColumnsItem {
var propTypes: any;
}
export { GridColumnMenuColumnsItem };
@@ -0,0 +1,27 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridColumnMenuColumnsItem = GridColumnMenuColumnsItem;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var React = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _GridColumnMenuHideItem = require("./GridColumnMenuHideItem");
var _GridColumnMenuManageItem = require("./GridColumnMenuManageItem");
var _jsxRuntime = require("react/jsx-runtime");
function GridColumnMenuColumnsItem(props) {
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnMenuHideItem.GridColumnMenuHideItem, (0, _extends2.default)({}, props)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnMenuManageItem.GridColumnMenuManageItem, (0, _extends2.default)({}, props))]
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuColumnsItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: _propTypes.default.object.isRequired,
onClick: _propTypes.default.func.isRequired
} : void 0;
@@ -0,0 +1,20 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import PropTypes from 'prop-types';
import { GridColumnMenuHideItem } from "./GridColumnMenuHideItem.mjs";
import { GridColumnMenuManageItem } from "./GridColumnMenuManageItem.mjs";
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
function GridColumnMenuColumnsItem(props) {
return /*#__PURE__*/_jsxs(React.Fragment, {
children: [/*#__PURE__*/_jsx(GridColumnMenuHideItem, _extends({}, props)), /*#__PURE__*/_jsx(GridColumnMenuManageItem, _extends({}, props))]
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuColumnsItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: PropTypes.object.isRequired,
onClick: PropTypes.func.isRequired
} : void 0;
export { GridColumnMenuColumnsItem };
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.mjs";
declare function GridColumnMenuFilterItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
declare namespace GridColumnMenuFilterItem {
var propTypes: any;
}
export { GridColumnMenuFilterItem };
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.js";
declare function GridColumnMenuFilterItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
declare namespace GridColumnMenuFilterItem {
var propTypes: any;
}
export { GridColumnMenuFilterItem };
@@ -0,0 +1,43 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridColumnMenuFilterItem = GridColumnMenuFilterItem;
var React = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
var _useGridRootProps = require("../../../../hooks/utils/useGridRootProps");
var _jsxRuntime = require("react/jsx-runtime");
function GridColumnMenuFilterItem(props) {
const {
colDef,
onClick
} = props;
const apiRef = (0, _useGridApiContext.useGridApiContext)();
const rootProps = (0, _useGridRootProps.useGridRootProps)();
const showFilter = React.useCallback(event => {
onClick(event);
apiRef.current.showFilterPanel(colDef.field);
}, [apiRef, colDef.field, onClick]);
if (rootProps.disableColumnFilter || !colDef.filterable) {
return null;
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
onClick: showFilter,
iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuFilterIcon, {
fontSize: "small"
}),
children: apiRef.current.getLocaleText('columnMenuFilter')
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuFilterItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: _propTypes.default.object.isRequired,
onClick: _propTypes.default.func.isRequired
} : void 0;
@@ -0,0 +1,36 @@
import * as React from 'react';
import PropTypes from 'prop-types';
import { useGridApiContext } from "../../../../hooks/utils/useGridApiContext.mjs";
import { useGridRootProps } from "../../../../hooks/utils/useGridRootProps.mjs";
import { jsx as _jsx } from "react/jsx-runtime";
function GridColumnMenuFilterItem(props) {
const {
colDef,
onClick
} = props;
const apiRef = useGridApiContext();
const rootProps = useGridRootProps();
const showFilter = React.useCallback(event => {
onClick(event);
apiRef.current.showFilterPanel(colDef.field);
}, [apiRef, colDef.field, onClick]);
if (rootProps.disableColumnFilter || !colDef.filterable) {
return null;
}
return /*#__PURE__*/_jsx(rootProps.slots.baseMenuItem, {
onClick: showFilter,
iconStart: /*#__PURE__*/_jsx(rootProps.slots.columnMenuFilterIcon, {
fontSize: "small"
}),
children: apiRef.current.getLocaleText('columnMenuFilter')
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuFilterItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: PropTypes.object.isRequired,
onClick: PropTypes.func.isRequired
} : void 0;
export { GridColumnMenuFilterItem };
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.mjs";
declare function GridColumnMenuHideItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
declare namespace GridColumnMenuHideItem {
var propTypes: any;
}
export { GridColumnMenuHideItem };
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.js";
declare function GridColumnMenuHideItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
declare namespace GridColumnMenuHideItem {
var propTypes: any;
}
export { GridColumnMenuHideItem };
@@ -0,0 +1,60 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridColumnMenuHideItem = GridColumnMenuHideItem;
var React = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
var _useGridRootProps = require("../../../../hooks/utils/useGridRootProps");
var _columns = require("../../../../hooks/features/columns");
var _jsxRuntime = require("react/jsx-runtime");
function GridColumnMenuHideItem(props) {
const {
colDef,
onClick
} = props;
const apiRef = (0, _useGridApiContext.useGridApiContext)();
const rootProps = (0, _useGridRootProps.useGridRootProps)();
const visibleColumns = (0, _columns.gridVisibleColumnDefinitionsSelector)(apiRef);
const columnsWithMenu = visibleColumns.filter(col => col.disableColumnMenu !== true);
// do not allow to hide the last column with menu
const disabled = columnsWithMenu.length === 1;
const toggleColumn = React.useCallback(event => {
/**
* Disabled `MenuItem` would trigger `click` event
* after imperative `.click()` call on HTML element.
* Also, click is triggered in testing environment as well.
*/
if (disabled) {
return;
}
apiRef.current.setColumnVisibility(colDef.field, false);
onClick(event);
}, [apiRef, colDef.field, onClick, disabled]);
if (rootProps.disableColumnSelector) {
return null;
}
if (colDef.hideable === false) {
return null;
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
onClick: toggleColumn,
disabled: disabled,
iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuHideIcon, {
fontSize: "small"
}),
children: apiRef.current.getLocaleText('columnMenuHideColumn')
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuHideItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: _propTypes.default.object.isRequired,
onClick: _propTypes.default.func.isRequired
} : void 0;
@@ -0,0 +1,53 @@
import * as React from 'react';
import PropTypes from 'prop-types';
import { useGridApiContext } from "../../../../hooks/utils/useGridApiContext.mjs";
import { useGridRootProps } from "../../../../hooks/utils/useGridRootProps.mjs";
import { gridVisibleColumnDefinitionsSelector } from "../../../../hooks/features/columns/index.mjs";
import { jsx as _jsx } from "react/jsx-runtime";
function GridColumnMenuHideItem(props) {
const {
colDef,
onClick
} = props;
const apiRef = useGridApiContext();
const rootProps = useGridRootProps();
const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);
const columnsWithMenu = visibleColumns.filter(col => col.disableColumnMenu !== true);
// do not allow to hide the last column with menu
const disabled = columnsWithMenu.length === 1;
const toggleColumn = React.useCallback(event => {
/**
* Disabled `MenuItem` would trigger `click` event
* after imperative `.click()` call on HTML element.
* Also, click is triggered in testing environment as well.
*/
if (disabled) {
return;
}
apiRef.current.setColumnVisibility(colDef.field, false);
onClick(event);
}, [apiRef, colDef.field, onClick, disabled]);
if (rootProps.disableColumnSelector) {
return null;
}
if (colDef.hideable === false) {
return null;
}
return /*#__PURE__*/_jsx(rootProps.slots.baseMenuItem, {
onClick: toggleColumn,
disabled: disabled,
iconStart: /*#__PURE__*/_jsx(rootProps.slots.columnMenuHideIcon, {
fontSize: "small"
}),
children: apiRef.current.getLocaleText('columnMenuHideColumn')
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuHideItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: PropTypes.object.isRequired,
onClick: PropTypes.func.isRequired
} : void 0;
export { GridColumnMenuHideItem };
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.mjs";
declare function GridColumnMenuManageItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
declare namespace GridColumnMenuManageItem {
var propTypes: any;
}
export { GridColumnMenuManageItem };
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.js";
declare function GridColumnMenuManageItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
declare namespace GridColumnMenuManageItem {
var propTypes: any;
}
export { GridColumnMenuManageItem };
@@ -0,0 +1,43 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridColumnMenuManageItem = GridColumnMenuManageItem;
var React = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _gridPreferencePanelsValue = require("../../../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
var _useGridRootProps = require("../../../../hooks/utils/useGridRootProps");
var _jsxRuntime = require("react/jsx-runtime");
function GridColumnMenuManageItem(props) {
const {
onClick
} = props;
const apiRef = (0, _useGridApiContext.useGridApiContext)();
const rootProps = (0, _useGridRootProps.useGridRootProps)();
const showColumns = React.useCallback(event => {
onClick(event); // hide column menu
apiRef.current.showPreferences(_gridPreferencePanelsValue.GridPreferencePanelsValue.columns);
}, [apiRef, onClick]);
if (rootProps.disableColumnSelector) {
return null;
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
onClick: showColumns,
iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuManageColumnsIcon, {
fontSize: "small"
}),
children: apiRef.current.getLocaleText('columnMenuManageColumns')
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuManageItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: _propTypes.default.object.isRequired,
onClick: _propTypes.default.func.isRequired
} : void 0;
@@ -0,0 +1,36 @@
import * as React from 'react';
import PropTypes from 'prop-types';
import { GridPreferencePanelsValue } from "../../../../hooks/features/preferencesPanel/gridPreferencePanelsValue.mjs";
import { useGridApiContext } from "../../../../hooks/utils/useGridApiContext.mjs";
import { useGridRootProps } from "../../../../hooks/utils/useGridRootProps.mjs";
import { jsx as _jsx } from "react/jsx-runtime";
function GridColumnMenuManageItem(props) {
const {
onClick
} = props;
const apiRef = useGridApiContext();
const rootProps = useGridRootProps();
const showColumns = React.useCallback(event => {
onClick(event); // hide column menu
apiRef.current.showPreferences(GridPreferencePanelsValue.columns);
}, [apiRef, onClick]);
if (rootProps.disableColumnSelector) {
return null;
}
return /*#__PURE__*/_jsx(rootProps.slots.baseMenuItem, {
onClick: showColumns,
iconStart: /*#__PURE__*/_jsx(rootProps.slots.columnMenuManageColumnsIcon, {
fontSize: "small"
}),
children: apiRef.current.getLocaleText('columnMenuManageColumns')
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuManageItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: PropTypes.object.isRequired,
onClick: PropTypes.func.isRequired
} : void 0;
export { GridColumnMenuManageItem };
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.mjs";
declare function GridColumnMenuSortItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
declare namespace GridColumnMenuSortItem {
var propTypes: any;
}
export { GridColumnMenuSortItem };
@@ -0,0 +1,7 @@
import * as React from 'react';
import type { GridColumnMenuItemProps } from "../GridColumnMenuItemProps.js";
declare function GridColumnMenuSortItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
declare namespace GridColumnMenuSortItem {
var propTypes: any;
}
export { GridColumnMenuSortItem };
@@ -0,0 +1,76 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridColumnMenuSortItem = GridColumnMenuSortItem;
var React = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _useGridSelector = require("../../../../hooks/utils/useGridSelector");
var _gridSortingSelector = require("../../../../hooks/features/sorting/gridSortingSelector");
var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
var _useGridRootProps = require("../../../../hooks/utils/useGridRootProps");
var _jsxRuntime = require("react/jsx-runtime");
function GridColumnMenuSortItem(props) {
const {
colDef,
onClick
} = props;
const apiRef = (0, _useGridApiContext.useGridApiContext)();
const sortModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridSortingSelector.gridSortModelSelector);
const rootProps = (0, _useGridRootProps.useGridRootProps)();
const sortDirection = React.useMemo(() => {
if (!colDef) {
return null;
}
const sortItem = sortModel.find(item => item.field === colDef.field);
return sortItem?.sort;
}, [colDef, sortModel]);
const sortingOrder = colDef.sortingOrder ?? rootProps.sortingOrder;
const onSortMenuItemClick = React.useCallback(event => {
onClick(event);
const direction = event.currentTarget.getAttribute('data-value') || null;
const allowMultipleSorting = rootProps.multipleColumnsSortingMode === 'always';
apiRef.current.sortColumn(colDef.field, direction === sortDirection ? null : direction, allowMultipleSorting);
}, [apiRef, colDef, onClick, sortDirection, rootProps.multipleColumnsSortingMode]);
if (rootProps.disableColumnSorting || !colDef || !colDef.sortable || !sortingOrder.some(item => !!item)) {
return null;
}
const getLabel = key => {
const label = apiRef.current.getLocaleText(key);
return typeof label === 'function' ? label(colDef) : label;
};
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
children: [sortingOrder.includes('asc') && sortDirection !== 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
onClick: onSortMenuItemClick,
"data-value": "asc",
iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuSortAscendingIcon, {
fontSize: "small"
}),
children: getLabel('columnMenuSortAsc')
}) : null, sortingOrder.includes('desc') && sortDirection !== 'desc' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
onClick: onSortMenuItemClick,
"data-value": "desc",
iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuSortDescendingIcon, {
fontSize: "small"
}),
children: getLabel('columnMenuSortDesc')
}) : null, sortingOrder.includes(null) && sortDirection != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
onClick: onSortMenuItemClick,
iconStart: rootProps.slots.columnMenuUnsortIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuUnsortIcon, {
fontSize: "small"
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}),
children: apiRef.current.getLocaleText('columnMenuUnsort')
}) : null]
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuSortItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: _propTypes.default.object.isRequired,
onClick: _propTypes.default.func.isRequired
} : void 0;
@@ -0,0 +1,69 @@
import * as React from 'react';
import PropTypes from 'prop-types';
import { useGridSelector } from "../../../../hooks/utils/useGridSelector.mjs";
import { gridSortModelSelector } from "../../../../hooks/features/sorting/gridSortingSelector.mjs";
import { useGridApiContext } from "../../../../hooks/utils/useGridApiContext.mjs";
import { useGridRootProps } from "../../../../hooks/utils/useGridRootProps.mjs";
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
function GridColumnMenuSortItem(props) {
const {
colDef,
onClick
} = props;
const apiRef = useGridApiContext();
const sortModel = useGridSelector(apiRef, gridSortModelSelector);
const rootProps = useGridRootProps();
const sortDirection = React.useMemo(() => {
if (!colDef) {
return null;
}
const sortItem = sortModel.find(item => item.field === colDef.field);
return sortItem?.sort;
}, [colDef, sortModel]);
const sortingOrder = colDef.sortingOrder ?? rootProps.sortingOrder;
const onSortMenuItemClick = React.useCallback(event => {
onClick(event);
const direction = event.currentTarget.getAttribute('data-value') || null;
const allowMultipleSorting = rootProps.multipleColumnsSortingMode === 'always';
apiRef.current.sortColumn(colDef.field, direction === sortDirection ? null : direction, allowMultipleSorting);
}, [apiRef, colDef, onClick, sortDirection, rootProps.multipleColumnsSortingMode]);
if (rootProps.disableColumnSorting || !colDef || !colDef.sortable || !sortingOrder.some(item => !!item)) {
return null;
}
const getLabel = key => {
const label = apiRef.current.getLocaleText(key);
return typeof label === 'function' ? label(colDef) : label;
};
return /*#__PURE__*/_jsxs(React.Fragment, {
children: [sortingOrder.includes('asc') && sortDirection !== 'asc' ? /*#__PURE__*/_jsx(rootProps.slots.baseMenuItem, {
onClick: onSortMenuItemClick,
"data-value": "asc",
iconStart: /*#__PURE__*/_jsx(rootProps.slots.columnMenuSortAscendingIcon, {
fontSize: "small"
}),
children: getLabel('columnMenuSortAsc')
}) : null, sortingOrder.includes('desc') && sortDirection !== 'desc' ? /*#__PURE__*/_jsx(rootProps.slots.baseMenuItem, {
onClick: onSortMenuItemClick,
"data-value": "desc",
iconStart: /*#__PURE__*/_jsx(rootProps.slots.columnMenuSortDescendingIcon, {
fontSize: "small"
}),
children: getLabel('columnMenuSortDesc')
}) : null, sortingOrder.includes(null) && sortDirection != null ? /*#__PURE__*/_jsx(rootProps.slots.baseMenuItem, {
onClick: onSortMenuItemClick,
iconStart: rootProps.slots.columnMenuUnsortIcon ? /*#__PURE__*/_jsx(rootProps.slots.columnMenuUnsortIcon, {
fontSize: "small"
}) : /*#__PURE__*/_jsx("span", {}),
children: apiRef.current.getLocaleText('columnMenuUnsort')
}) : null]
});
}
process.env.NODE_ENV !== "production" ? GridColumnMenuSortItem.propTypes /* remove-proptypes */ = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "pnpm proptypes" |
// ----------------------------------------------------------------------
colDef: PropTypes.object.isRequired,
onClick: PropTypes.func.isRequired
} : void 0;
export { GridColumnMenuSortItem };
@@ -0,0 +1,5 @@
export * from "./GridColumnMenuColumnsItem.mjs";
export * from "./GridColumnMenuManageItem.mjs";
export * from "./GridColumnMenuFilterItem.mjs";
export * from "./GridColumnMenuHideItem.mjs";
export * from "./GridColumnMenuSortItem.mjs";
@@ -0,0 +1,5 @@
export * from "./GridColumnMenuColumnsItem.js";
export * from "./GridColumnMenuManageItem.js";
export * from "./GridColumnMenuFilterItem.js";
export * from "./GridColumnMenuHideItem.js";
export * from "./GridColumnMenuSortItem.js";
@@ -0,0 +1,60 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _GridColumnMenuColumnsItem = require("./GridColumnMenuColumnsItem");
Object.keys(_GridColumnMenuColumnsItem).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (key in exports && exports[key] === _GridColumnMenuColumnsItem[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _GridColumnMenuColumnsItem[key];
}
});
});
var _GridColumnMenuManageItem = require("./GridColumnMenuManageItem");
Object.keys(_GridColumnMenuManageItem).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (key in exports && exports[key] === _GridColumnMenuManageItem[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _GridColumnMenuManageItem[key];
}
});
});
var _GridColumnMenuFilterItem = require("./GridColumnMenuFilterItem");
Object.keys(_GridColumnMenuFilterItem).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (key in exports && exports[key] === _GridColumnMenuFilterItem[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _GridColumnMenuFilterItem[key];
}
});
});
var _GridColumnMenuHideItem = require("./GridColumnMenuHideItem");
Object.keys(_GridColumnMenuHideItem).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (key in exports && exports[key] === _GridColumnMenuHideItem[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _GridColumnMenuHideItem[key];
}
});
});
var _GridColumnMenuSortItem = require("./GridColumnMenuSortItem");
Object.keys(_GridColumnMenuSortItem).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (key in exports && exports[key] === _GridColumnMenuSortItem[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _GridColumnMenuSortItem[key];
}
});
});
@@ -0,0 +1,5 @@
export * from "./GridColumnMenuColumnsItem.mjs";
export * from "./GridColumnMenuManageItem.mjs";
export * from "./GridColumnMenuFilterItem.mjs";
export * from "./GridColumnMenuHideItem.mjs";
export * from "./GridColumnMenuSortItem.mjs";