/* Парус 8 - Панели мониторинга - УДП - Доски задач Компонент: Диалог дополнительных настроек */ //--------------------- //Подключение библиотек //--------------------- import React, { useState } from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Dialog, DialogTitle, DialogContent, DialogActions, IconButton, Icon, Button, Box, Stack } from "@mui/material"; //Интерфейсные компоненты import { CustomInputField } from "./custom_input_field.js"; //Кастомное поле ввода import { sortAttrs, sortDest } from "../layouts.js"; //Допустимые значение поля и направления сортировки import { hasValue } from "../../../core/utils.js"; //Проверка наличия значения import { COMMON_STYLES } from "../styles"; //Общие стили //--------- //Константы //--------- //Стили const STYLES = { SELECT: { width: "100%" } }; //--------------- //Тело компонента //--------------- //Диалог дополнительных настроек const SettingsDialog = ({ initial, onSettingsChange, onClose, ...other }) => { //Состояние дополнительных настроек const [colorRules, seColorRules] = useState(initial.colorRules); //Состояние статусов const [statusesState, setStatusesState] = useState(initial.statusesState); //Изменение поля сортировки const handleSortAttrChange = (item, value) => setStatusesState(pv => ({ ...pv, [item]: value })); //Изменение направления сортировки const handleSortDestChange = newDirection => setStatusesState(pv => ({ ...pv, direction: newDirection })); //При изменении правила заливки событий const handleColorRuleChange = (item, value) => { //Определяем новое правило заливки let newColorRule = colorRules.rules[value]; //Обновляем в основных настройках seColorRules(pv => ({ ...pv, selectedColorRule: newColorRule ? newColorRule : {} })); }; //Генерация содержимого return (