import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
import { TOOLTIP_PLACEMENT } from '../constants';
import { Action } from './Action';
import { useLogic } from './useLogic';
/**
 * Компонент для отображения основных действий в ячейке таблицы DataGrid.
 *
 * Основные действия отображаются в виде отдельных кнопок непосредственно в ячейке
 * и предназначены для наиболее часто используемых операций над строкой данных.
 *
 * @remarks
 * - Компонент автоматически обрабатывает блокирующие операции, что предотвращает одновременное выполнение нескольких действий
 * - Для действий автоматически отображаются тултипы с заданным позиционированием
 *
 * @example
 * ```tsx
 * <DataGridMainActions
 *   actions={[
 *     { name: 'edit', icon: <EditIcon />, onClick: handleEdit },
 *     { name: 'delete', icon: <DeleteIcon />, onClick: handleDelete, isBlockingOperation: true }
 *   ]}
 *   onActionClick={(handler) => (event) => handler(event)}
 *   tooltipPlacement="top"
 * />
 * ```
 */
export const DataGridMainActions = ({ actions, }) => {
    const { processedActions, isDisabled, onActionClick } = useLogic({ actions });
    return (_jsx(_Fragment, { children: processedActions?.map((action) => {
            return (_jsx(Action, { action: action, onActionClick: onActionClick, isDisabled: isDisabled, tooltipPlacement: TOOLTIP_PLACEMENT.mainAction }, action.name));
        }) }));
};
