Перейти к основному содержимому

update-config

Описание

Срабатывает при изменении строк, столбцов или функций агрегации через интерфейс Pivot

Это действие удобно для сохранения пользовательской конфигурации агрегации, чтобы её можно было применить при следующем использовании виджета, позволяя пользователю продолжить с того места, где он остановился.

Использование

"update-config": ({
rows: string[],
columns: string[],
values: [],
filters: {}
}) => boolean | void;

Параметры

Колбэк события принимает объект с обработанными параметрами config:

  • rows - строки таблицы Pivot. Объект с идентификатором поля и методом извлечения данных; параметры объекта:
    • field - идентификатор поля
    • method - метод извлечения данных (для полей с данными на основе времени)
  • columns - определяет столбцы таблицы Pivot. Объект с идентификатором поля и методом извлечения данных; параметры объекта:
    • field - идентификатор поля
    • method - определяет метод извлечения данных (для полей с данными на основе времени). По умолчанию методы доступны для полей на основе времени (тип date) со следующими значениями: "year", "quarter", "month", "week", "day", "hour", "minute"
  • values - определяет агрегацию данных для ячеек таблицы Pivot. Объект, содержащий идентификатор поля и метод агрегации данных. Параметры объекта:
    • field - идентификатор поля
    • method - определяет метод извлечения данных; о методах и доступных вариантах см. Применение методов
  • filters - (необязательный) определяет способ фильтрации данных в таблице; объект с идентификаторами полей и методом агрегации данных. Описание объекта filter смотрите здесь: config
К сведению

Для обработки внутренних событий можно использовать методы Event Bus

Возвращаемое значение

Колбэк может возвращать boolean или void.
Если функция-обработчик события возвращает false, операция, вызвавшая событие, блокируется и выполнение update-config прерывается.

Пример

const table = new pivot.Pivot("#root", {
fields,
data: dataset,
config: {
rows: ["studio", "genre"],
columns: [],
values: [
{
field: "title",
method: "count"
},
{
field: "score",
method: "max"
}
]
}
});
//вывести объект config в консоль
table.api.on("update-config", (config) => {
console.log("Config has changed", config);
});

Полезные статьи: api.intercept()