83 lines
2.4 KiB
JavaScript

/*
Парус 8 - Панели мониторинга - Редакторы панелей
Общие ресурсы компонента "Редактор условия"
*/
//---------------------
//Подключение библиотек
//---------------------
import PropTypes from "prop-types"; //Контроль свойств компонента
//---------
//Константы
//---------
//Доступные операторы условия
const P8P_CC_OPERATORS = [
{ name: "==", value: "equal" },
{ name: "!=", value: "notEqual" },
{ name: "<=", value: "lessEqual" },
{ name: "<", value: "less" },
{ name: ">=", value: "greaterEqual" },
{ name: ">", value: "greater" },
{ name: "in", value: "in" }
];
//Структура параметра поля условия
const P8P_CC_FIELD_PRM_SHAPE = PropTypes.shape({
name: PropTypes.string.isRequired,
value: PropTypes.string.isRequired,
hasElement: PropTypes.bool,
icon: PropTypes.string
});
//Структура поля условия
const P8P_CC_FIELD_SHAPE = PropTypes.shape({
name: PropTypes.string.isRequired,
value: PropTypes.string.isRequired
});
//Структура оператора условия
const P8P_CC_OPERATOR_SHAPE = PropTypes.shape({
name: PropTypes.string.isRequired,
value: PropTypes.string.isRequired
});
//Структура условия
const P8P_CC_SHAPE = PropTypes.shape({
condField: P8P_CC_FIELD_SHAPE.isRequired,
condOperator: P8P_CC_OPERATOR_SHAPE.isRequired,
condElement: PropTypes.string, //Пока
condValue: PropTypes.string.isRequired,
resField: P8P_CC_FIELD_SHAPE.isRequired,
resElement: PropTypes.string, //Пока
resValue: PropTypes.string.isRequired
});
//Начальное состояние поля условия
const P8P_CC_FIELD_INITIAL = {
name: "",
value: ""
};
//Начальное состояние условия
const P8P_CC_INITIAL = {
condField: { ...P8P_CC_FIELD_INITIAL },
condOperator: { ...P8P_CC_OPERATORS[0] },
condElement: "",
condValue: "",
resField: { ...P8P_CC_FIELD_INITIAL },
resElement: "",
resValue: ""
};
//Начальное состояние условий
const P8P_CCS_INITIAL = [];
//----------------
//Интерфейс модуля
//----------------
export { P8P_CC_OPERATORS, P8P_CC_FIELD_PRM_SHAPE, P8P_CC_FIELD_SHAPE, P8P_CC_SHAPE, P8P_CC_INITIAL, P8P_CCS_INITIAL };