149 lines
5.0 KiB
JavaScript
149 lines
5.0 KiB
JavaScript
/*
|
||
Парус 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
|
||
};
|