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