/* Парус 8 - Панели мониторинга - Циклограмма Компонент: Задача */ //--------------------- //Подключение библиотек //--------------------- import React from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Box, Typography } from "@mui/material"; //Интерфейсные компоненты import { hasValue } from "../../core/utils"; //Вспомогательный функции import { P8P_TYPOGRAPHY_VARIANT } from "../../theme/p8p_typography"; //Варианты шрифтов import { P8P_BOX_CYCLOGRAM_TASK } from "../../theme/styles/box"; //Стили контейнеров import { NDEFAULT_HEADER_HEIGHT } from "./p8p_cyclogram_constants"; //Константы циклограммы import { P8P_TYPOGRAPHY_CG_TASK } from "../../theme/styles/typography"; //Стили текста //----------- //Тело модуля //----------- //Задача const P8PCyclogramTask = ({ task, indexGrp, shift, lineHeight, openTaskEditor, taskRenderer }) => { //Рассчитываем ширину задачи const width = task.end !== 0 ? (task.end - task.start) * shift : 0; //Формируем собственное отображение, если требуется const customView = taskRenderer ? taskRenderer({ task, taskHeight: lineHeight, taskWidth: width }) || {} : {}; //Определение количества доступных строк const availableLines = Math.floor(lineHeight / 18); return ( openTaskEditor(task)} > {customView.data ? ( customView.data ) : ( {task.name} )} ); }; //Контроль свойств - Задача P8PCyclogramTask.propTypes = { task: PropTypes.object.isRequired, indexGrp: PropTypes.number, shift: PropTypes.number.isRequired, lineHeight: PropTypes.number.isRequired, openTaskEditor: PropTypes.func.isRequired, taskRenderer: PropTypes.func }; //---------------- //Интерфейс модуля //---------------- export { P8PCyclogramTask };