/*
Парус 8 - Панели мониторинга - Примеры для разработчиков
Пример: Индикатор "P8PIndicator"
*/
//---------------------
//Подключение библиотек
//---------------------
import React, { useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента
import { Typography, Stack, Divider } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений
import { P8P_INDICATOR_VARIANT, P8P_INDICATOR_STATE, P8PIndicator } from "../../components/p8p_indicator"; //Индикатор
//---------
//Константы
//---------
//Стили
const STYLES = {
CONTAINER: { textAlign: "center", paddingTop: "20px" },
TITLE: { paddingBottom: "15px" },
DIVIDER: { margin: "15px" }
};
//-----------
//Тело модуля
//-----------
//Пример: Индикатор "P8PIndicator"
const Indicator = ({ title }) => {
//Подключение к контексту сообщений
const { showMsgInfo } = useContext(MessagingСtx);
//Генерация содержимого
return (
{title}
Иконка
{/* Индикатор (без иконки) */}
{/* Индикатор (с иконкой 1) */}
{/* Индикатор (с иконкой 2) */}
Состояние
{/* Индикатор (нейтральный) */}
{/* Индикатор (позитивный) */}
{/* Индикатор (пограничный) */}
{/* Индикатор (негативный) */}
Скругление
{/* Индикатор (скругленный) */}
{/* Индикатор (квадратный) */}
Парение
{/* Индикатор (парение - 0) */}
{/* Индикатор (парение - 3) */}
{/* Индикатор (парение - 6) */}
{/* Индикатор (парение - 12) */}
{/* Индикатор (парение - 18) */}
Исполнение
{/* Индикатор (парение) */}
{/* Индикатор (рамка) */}
Подсказка
{/* Индикатор (подсказка без форматирования) */}
{/* Индикатор (подсказка с форматирование) */}
постоянная, равная отношению длины окружности
к её диаметру:
π = L/d
`}
/>
Активность
{[P8P_INDICATOR_STATE.UNDEFINED, P8P_INDICATOR_STATE.OK, P8P_INDICATOR_STATE.WARN, P8P_INDICATOR_STATE.ERR].map(
(indicatorState, i) => (
showMsgInfo(`Нажатие на индикатор #${i + 1}`)}
hint={`Подсказка индикатора #${i + 1}`}
/>
)
)}
Пользовательские цвета
{[
["yellow", "black"],
["darkred", "yellow"],
["orange", "darkblue"],
["magenta", "darkmagenta"]
].map((userColor, i) => (
))}
);
};
//Контроль свойств - Пример: Индикатор "P8PIndicator"
Indicator.propTypes = {
title: PropTypes.string.isRequired
};
//----------------
//Интерфейс модуля
//----------------
export { Indicator };