/* Парус 8 - Панели мониторинга - Редактор панелей Компоненты: Таблица (общие ресурсы действия) */ //--------------------- //Подключение библиотек //--------------------- //--------- //Константы //--------- //Собственные значения типа действия const P8P_CA_TABLE_TYPE_VALUE = { COLUMN_VALUE: "Значение графы" }; //Типы значений действий таблицы const P8P_CA_TABLE_VALUE_TYPES = [...Object.values(P8P_CA_TABLE_TYPE_VALUE)]; //Доступные области действий таблицы const P8P_CA_TABLE_ACTION_AREAS = [ { name: "Компонент", area: "component", hasElement: false }, { name: "Графа таблицы", area: "column", hasElement: true }, { name: "Строка таблицы", area: "row", hasElement: false } ]; //------------------------------------ //Вспомогательные функции и компоненты //------------------------------------ //Получение значения собственного типа действия const getDataGridCustomTypeValue = ({ type, value, prms }) => { //Если это значение графы - возвращаем нужное значение, иначе - null return type === P8P_CA_TABLE_TYPE_VALUE.COLUMN_VALUE ? prms.row[value] : null; }; //Считывание обработчиков таблицы const getDataGridHandlers = (handlers, element = null) => { //Возвращаем объект хэндлеров (имеют формат "[Область].[Сегмент]", где [Сегмент] - необязательный) return { onComponentClick: handlers["component."]?.fn, onRowClick: handlers["row."]?.fn, onColumnClick: element ? handlers[`column.${element}`]?.fn : null }; }; //Проверка наличия обработчиков ячеек const isHasCellRender = (handlers, conditions) => { return Object.keys(handlers).some(handler => handler.startsWith("column.") || handler === "row.") || conditions.length !== 0; }; //---------------- //Интерфейс модуля //---------------- export { P8P_CA_TABLE_VALUE_TYPES, P8P_CA_TABLE_ACTION_AREAS, getDataGridCustomTypeValue, getDataGridHandlers, isHasCellRender };