forked from CITKParus/P8-Panels
64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
/*
|
|
Парус 8 - Панели мониторинга
|
|
Вспомогательные стили Paper
|
|
*/
|
|
|
|
//---------------------
|
|
//Подключение библиотек
|
|
//---------------------
|
|
|
|
import { useTheme } from "@mui/material/styles"; //Хук темы приложения
|
|
import { STATE } from "../../../app.text"; //Типовые текстовые ресурсы и константы
|
|
import { P8P_COLOR_STATE, P8P_COLOR_STATE_BG } from "../colors/common"; //Дополнительные цвета - общие
|
|
|
|
//---------
|
|
//Константы
|
|
//---------
|
|
|
|
//Цвета заливки индикатора
|
|
const P8P_INDICATOR_BG_COLOR = {
|
|
[STATE.OK]: P8P_COLOR_STATE_BG[STATE.OK],
|
|
[STATE.ERR]: P8P_COLOR_STATE_BG[STATE.ERR],
|
|
[STATE.WARN]: P8P_COLOR_STATE_BG[STATE.WARN]
|
|
};
|
|
|
|
//Цвета текста и иконок индикатора
|
|
const P8P_INDICATOR_COLOR = {
|
|
[STATE.OK]: P8P_COLOR_STATE[STATE.OK],
|
|
[STATE.ERR]: P8P_COLOR_STATE[STATE.ERR],
|
|
[STATE.WARN]: P8P_COLOR_STATE[STATE.WARN]
|
|
};
|
|
|
|
//-----------------------
|
|
//Вспомогательные функции
|
|
//-----------------------
|
|
|
|
//----------------
|
|
//Интерфейс модуля
|
|
//----------------
|
|
|
|
//Стиль для контейнера индикатора
|
|
export const P8P_PAPER_INDICATOR = ({ state, color, backgroundColor, clickable }) => {
|
|
//Определение темы приложения
|
|
const theme = useTheme();
|
|
//Возвращаем стиль
|
|
return {
|
|
height: "100%",
|
|
width: "100%",
|
|
padding: "10px",
|
|
overflow: "hidden",
|
|
backgroundColor: backgroundColor || P8P_INDICATOR_BG_COLOR[state],
|
|
color: color || P8P_INDICATOR_COLOR[state],
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
justifyContent: "center",
|
|
...(clickable
|
|
? {
|
|
cursor: "pointer",
|
|
"&:hover": { filter: "brightness(0.92) !important" },
|
|
"&:active": { backgroundColor: theme.palette.P8PAction.active }
|
|
}
|
|
: {})
|
|
};
|
|
};
|