/* Парус 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 };