/*
    Парус 8 - Панели мониторинга - РО - Редактор настройки регламентированного отчёта
    Компонент панели: Панель инструментов карточки показателя
*/

//---------------------
//Подключение библиотек
//---------------------

import React from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента
import { Stack, IconButton, Icon, Typography, Link } from "@mui/material"; //Интерфейсные компоненты
import { STYLES as COMMON_STYLES } from "../common"; //Общие стили и константы

//---------
//Константы
//---------

//Стили
const STYLES = {
    CONTAINER: { ...COMMON_STYLES.TOOLBAR, width: "100%", position: "unset", right: "unset", height: "40px" }
};

//-----------
//Тело модуля
//-----------

//Панель инструментов карточки показателя
const MarkCardToolbar = ({ title, desc, onOpen, onEdit, onDelete, onCnAdd, showButtons = false }) => {
    return (
        <Stack direction={"row"} alignItems={"center"} justifyContent={"space-between"} sx={STYLES.CONTAINER} title={desc}>
            <Typography noWrap p={1} textAlign={"left"} variant={"subtitle1"} component={"div"} sx={COMMON_STYLES.FONT_MARK_CARD_HEAD}>
                {showButtons ? (
                    <Link sx={COMMON_STYLES.LINK} onClick={onOpen}>
                        {title}
                    </Link>
                ) : (
                    title
                )}
            </Typography>
            {showButtons && (
                <Stack direction={"row"}>
                    <IconButton title={"Исправить показатель"} onClick={onEdit}>
                        <Icon>edit</Icon>
                    </IconButton>
                    <IconButton title={"Добавить элемент состава"} onClick={onCnAdd}>
                        <Icon>library_add</Icon>
                    </IconButton>
                    <IconButton title={"Удалить показатель"} onClick={onDelete}>
                        <Icon>delete</Icon>
                    </IconButton>
                </Stack>
            )}
        </Stack>
    );
};

//Контроль свойств - Панель инструментов карточки показателя
MarkCardToolbar.propTypes = {
    title: PropTypes.string,
    desc: PropTypes.string,
    onOpen: PropTypes.func.isRequired,
    onEdit: PropTypes.func.isRequired,
    onDelete: PropTypes.func.isRequired,
    onCnAdd: PropTypes.func.isRequired,
    showButtons: PropTypes.bool
};

//----------------
//Интерфейс модуля
//----------------

export { MarkCardToolbar };
