149 lines
5.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Парус 8 - Панели мониторинга - Редакторы панелей
Общие ресурсы компонента "Редактор действия"
*/
//---------------------
//Подключение библиотек
//---------------------
import PropTypes from "prop-types"; //Контроль свойств компонента
//---------
//Константы
//---------
//Значения типа по умолчанию
const P8P_CA_DEF_TYPE_VALUE = {
TEXT_VALUE: "Значение",
VARIABLE: "Переменная"
};
//Типы значений по умолчанию
const P8P_CA_DEF_VALUE_TYPES = [...Object.values(P8P_CA_DEF_TYPE_VALUE)];
//Типы действия
const P8P_CA_TYPE = {
openUnit: { code: "openUnit", name: "Открыть раздел", icon: "article" },
openPanel: { code: "openPanel", name: "Открыть панель", icon: "storage" },
setVariable: { code: "setVariable", name: "Установить переменную", icon: "mediation" }
};
//Список полей связываемых с проводником значений
const P8P_CA_SOURCE_FIELDS = ["variableSource"];
//Список полей хранящих объект типа {"Тип", "Значение"}, где может храниться связь с проводником значений
const P8P_CA_OBJECT_SOURCE_FIELDS = ["resultValue", "tabValue", "panelValue"];
//Структура значения с типом
const P8P_CA_OBJECT_VALUE_SHAPE = PropTypes.shape({
type: PropTypes.string,
value: PropTypes.string
});
//Структура входных параметров метода вызова
const P8P_CA_INPUT_PARAM_SHAPE = PropTypes.shape({
parameter: PropTypes.string,
inputParameter: PropTypes.string,
resultValue: P8P_CA_OBJECT_VALUE_SHAPE
});
//Структура параметров действия "Открыть раздел"
const P8P_CA_OPEN_UNIT_PARAMS_SHAPE = PropTypes.shape({
unitCode: PropTypes.string,
unitName: PropTypes.string,
showMethod: PropTypes.string,
showMethodName: PropTypes.string,
inputParams: PropTypes.arrayOf(P8P_CA_INPUT_PARAM_SHAPE),
modal: PropTypes.bool
});
//Структура параметров действия "Открыть панель"
const P8P_CA_OPEN_PANEL_PARAMS_SHAPE = PropTypes.shape({
tabValue: P8P_CA_OBJECT_VALUE_SHAPE,
panelValue: P8P_CA_OBJECT_VALUE_SHAPE
});
//Структура связи переменной действия "Установить переменную"
const P8P_CA_VARIABLE_LINK_SHAPE = PropTypes.shape({
variableSource: PropTypes.string,
resultValue: P8P_CA_OBJECT_VALUE_SHAPE
});
//Структура действия
const P8P_CA_SHAPE = PropTypes.shape({
type: PropTypes.oneOf(Object.keys(P8P_CA_TYPE)).isRequired,
area: PropTypes.string,
element: PropTypes.string,
params: PropTypes.oneOfType([P8P_CA_OPEN_UNIT_PARAMS_SHAPE, P8P_CA_OPEN_PANEL_PARAMS_SHAPE, PropTypes.arrayOf(P8P_CA_VARIABLE_LINK_SHAPE)])
});
//Начальное состояние объекта значения с типом
const P8P_CA_OBJECT_VALUE_INITIAL = {
type: P8P_CA_DEF_TYPE_VALUE.TEXT_VALUE,
value: ""
};
//Начальное состояние входного параметра метода вызова
const P8P_CA_INPUT_PARAM_INITIAL = {
parameter: "",
inputParameter: "",
resultValue: { ...P8P_CA_OBJECT_VALUE_INITIAL }
};
//Начальное состояние параметров действия "Открыть раздел"
const P8P_CA_OPEN_UNIT_INITIAL = {
unitCode: "",
unitName: "",
showMethod: "",
showMethodName: "",
inputParams: [],
modal: true
};
//Начальное состояние параметров действия "Открыть панель"
const P8P_CA_OPEN_PANEL_INITIAL = {
tabValue: { ...P8P_CA_OBJECT_VALUE_INITIAL },
panelValue: { ...P8P_CA_OBJECT_VALUE_INITIAL }
};
//Начальное состояние параметра связи действия "Установить переменную"
const P8P_CA_VARIABLE_LINK_INITIAL = {
variableSource: "",
resultValue: { ...P8P_CA_OBJECT_VALUE_INITIAL }
};
//Начальное состояние действия
const P8P_CA_INITIAL = {
type: P8P_CA_TYPE.openUnit.code,
area: "",
element: "",
params: { ...P8P_CA_OPEN_UNIT_INITIAL }
};
//Начальное состояние действий
const P8P_CAS_INITIAL = [];
//----------------
//Интерфейс модуля
//----------------
export {
P8P_CA_DEF_TYPE_VALUE,
P8P_CA_DEF_VALUE_TYPES,
P8P_CA_TYPE,
P8P_CA_SOURCE_FIELDS,
P8P_CA_OBJECT_SOURCE_FIELDS,
P8P_CA_OBJECT_VALUE_SHAPE,
P8P_CA_OPEN_UNIT_PARAMS_SHAPE,
P8P_CA_OPEN_PANEL_PARAMS_SHAPE,
P8P_CA_VARIABLE_LINK_SHAPE,
P8P_CA_SHAPE,
P8P_CA_INPUT_PARAM_INITIAL,
P8P_CA_OPEN_UNIT_INITIAL,
P8P_CA_OPEN_PANEL_INITIAL,
P8P_CA_VARIABLE_LINK_INITIAL,
P8P_CA_INITIAL,
P8P_CAS_INITIAL
};