UNPKG

ketcher-react

Version:
65 lines (64 loc) 2.43 kB
/**************************************************************************** * Copyright 2021 EPAM Systems * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ import { Tools, UiActionAction } from '../action'; interface ItemStatus { selected?: boolean; disabled?: boolean; hidden?: boolean; [key: string]: boolean | string | undefined; } interface StatusMap { [key: string]: ItemStatus; } interface VisibleToolsMap { [key: string]: string; } interface SharedActionProps { status: StatusMap; onOpen: (id: string | undefined, isSelected: boolean) => void; onAction: (action: UiActionAction) => void; opened?: string; visibleTools: VisibleToolsMap; disableableButtons?: string[]; indigoVerification?: boolean; } interface MenuItemWithComponent { id: string; component: (props: SharedActionProps) => JSX.Element; } interface MenuItemWithMenu { id: string; menu: Array<string | MenuItemWithMenu | MenuItemWithComponent>; } declare type MenuItem = string | MenuItemWithMenu | MenuItemWithComponent; interface SharedActionProps { status: StatusMap; onOpen: (id: string | undefined, isSelected: boolean) => void; onAction: (action: UiActionAction) => void; opened?: string; visibleTools: VisibleToolsMap; disableableButtons?: string[]; indigoVerification?: boolean; } interface ActionMenuProps extends SharedActionProps { name: string; menu: MenuItem[]; className?: string; role?: string; } export declare function showMenuOrButton(action: Tools, item: MenuItem, status: ItemStatus, props: SharedActionProps): JSX.Element; declare function ActionMenu({ name, menu, className, role, ...props }: ActionMenuProps): import("react/jsx-runtime").JSX.Element; export default ActionMenu;