/*
    Парус 8 - Панели мониторинга - Редактор панелей
    Компоненты: График (общие ресурсы действия)
*/

//---------------------
//Подключение библиотек
//---------------------

//---------
//Константы
//---------

//Собственные значения типа действия
const P8P_CA_CHART_TYPE_VALUE = {
    GRPH_ELEMENT: "Элемент графика"
};

//Типы значений действий графика
const P8P_CA_CHART_VALUE_TYPES = [...Object.values(P8P_CA_CHART_TYPE_VALUE)];

//Доступные области действий графика
const P8P_CA_CHART_ACTION_AREAS = [
    { name: "Компонент", area: "component", hasElement: false },
    { name: "Элемент графика", area: "chart_item", hasElement: false }
];

//------------------------------------
//Вспомогательные функции и компоненты
//------------------------------------

//Получение значения собственного типа действия
const getChartCustomTypeValue = ({ type, value, prms }) => {
    //Если это элемента графика - возвращаем нужное значение, иначе - null
    return type === P8P_CA_CHART_TYPE_VALUE.GRPH_ELEMENT ? prms.item[value] : null;
};

//Считывание обработчиков графика
const getChartHandlers = handlers => {
    //Возвращаем объект хэндлеров (имеют формат "[Область].[Сегмент]", где [Сегмент] - необязательный)
    return {
        onComponentClick: handlers["component."]?.fn,
        onChartItemClick: handlers["chart_item."]?.fn
    };
};

//----------------
//Интерфейс модуля
//----------------

export { P8P_CA_CHART_VALUE_TYPES, P8P_CA_CHART_ACTION_AREAS, getChartCustomTypeValue, getChartHandlers };
