UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

66 lines 2.73 kB
import { SxProps } from '@mui/material'; import { IconName } from '../../../IconSvg/IconSvg'; import { DropdownMenuItem } from '../../../menu/DropdownMenu'; import { MouseEvent } from 'react'; type EntityActionMenuDropdownMenuType = 'DOWNLOAD' | 'PRIMARY'; type EntityActionMenuDropdownMenuConfiguration = { visible: boolean; tooltipText?: string; disabled?: boolean; }; export type ActionConfiguration = { visible: boolean; text: string; disabled?: boolean; tooltipText?: string; onClick?: (e: MouseEvent) => void; href?: string; }; export type ActionConfigurationMap = Record<string, ActionConfiguration>; export type MenuConfigurationMap = Record<EntityActionMenuDropdownMenuType, EntityActionMenuDropdownMenuConfiguration>; export type ActionViewProps = { action: string; icon?: IconName; textSx?: SxProps; iconSx?: SxProps; }; export type EntityActionMenuLayout = { buttonActions: ActionViewProps[]; downloadMenuActions: ActionViewProps[][]; primaryMenuActions: ActionViewProps[][]; primaryMenuText: string; primaryMenuEndIcon: IconName; menuButtonSx?: SxProps; }; export type EntityActionMenuProps = { actionConfiguration: ActionConfigurationMap; menuConfiguration: MenuConfigurationMap; layout: EntityActionMenuLayout; }; declare function getUnmappedActions(actionConfiguration: ActionConfigurationMap, layout: EntityActionMenuLayout): ActionConfigurationMap; /** * Given a group of dropdown menu items and an action configuration, * return a list of dropdown menu items with non-visible and non-configured actions removed. * @param group * @param actionConfiguration */ declare function mapAndFilterItemsInMenuGroup(group: ActionViewProps[], actionConfiguration: ActionConfigurationMap): DropdownMenuItem[]; /** * Given a list of groups of dropdown menu actions, returns a list of dropdown menu item * groups where non-visible actions have been removed, and groups with no visible actions * have been removed. * @param menuActions * @param actionConfiguration */ declare function mapAndFilterMenuGroups(menuActions: ActionViewProps[][], actionConfiguration: ActionConfigurationMap): DropdownMenuItem[][]; /** * The EntityActionMenu renders a menu that displays the actions that can be invoked on an Entity page. */ export default function EntityActionMenu(props: EntityActionMenuProps): import("react/jsx-runtime").JSX.Element; export declare const EXPORTED_FOR_UNIT_TESTING: { getUnmappedActions: typeof getUnmappedActions; mapAndFilterItemsInMenuGroup: typeof mapAndFilterItemsInMenuGroup; mapAndFilterMenuGroups: typeof mapAndFilterMenuGroups; }; export {}; //# sourceMappingURL=EntityActionMenu.d.ts.map