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

config

Описание

Опциональный. Определяет структуру таблицы Pivot и способ агрегации данных

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

config?: {
rows?: string | {field: string, method?: string}[],
columns?: string | {field: string, method?: string}[],
values?: string | {field: string, method?: string}[],
filters?: {}
};

Параметры

Параметры config используются для определения того, какие поля будут применяться в качестве строк и столбцов, а также какие дополнительные методы агрегации данных должны применяться к строкам/столбцам.

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

Можно определить values одним из двух равнозначных способов:

  • первый вариант — строка, представляющая идентификатор поля
  • второй вариант — объект, содержащий идентификатор поля и метод агрегации данных

Пример

values: [
"sum(sales)", // первый вариант
{ field: "sales", method: "sum" }, // второй вариант
]
  • filters - (опциональный) определяет способ фильтрации данных в таблице; это объект с идентификаторами полей и правилом фильтрации. Значение по умолчанию — пустой объект. Параметры объекта следующие:
    • field - (опциональный) ключ фильтра, который является идентификатором поля или массивом идентификаторов с критериями фильтрации:
      • equal - (опциональный) принимает числа, строки и значения Date
      • notEqual - (опциональный) принимает числа, строки и значения Date
      • greater - (опциональный) принимает числа и значения Date
      • greaterOrEqual - (опциональный) принимает числа и значения Date
      • less - (опциональный) принимает числа и значения Date
      • lessOrEqual - принимает числа и значения Date
      • between - объект со следующими параметрами:
        • start - Date
        • end - Date
      • notBetween - объект со следующими параметрами:
        • start - Date
        • end - Date
      • contains - принимает строки и числа
      • notContains - принимает строки и числа
      • beginsWith - принимает строки и числа
      • notBeginsWith - принимает строки и числа
      • endsWith - принимает строки и числа
      • notEndsWith - принимает строки и числа
      • includes - (опциональный) массив значений для отображения из уже отфильтрованных; доступен для текстовых значений и дат
информация

Когда config обрабатывается Pivot, его свойства получают дополнительные данные, и если попытаться вернуть состояние конфигурации через метод api.getState(), полный объект будет выглядеть следующим образом:

interface IParsedField {
id: string,
field: string,
method: string | null,
area: 'rows'|'columns'|'values',
base?: string,
label: string,
type: 'number'|'date'|'text'
}

interface IParsedConfig {
rows: IParsedField[],
columns: IParsedField[],
values: IParsedField[],
filters: {
[field: string]: number | string | [] |
{ [operation: string]: number | string | [] | { start:Date, end: Date} }
}
}

Параметры:

  • id - уникальный идентификатор обработанного поля
  • field - название поля
  • method - название операции, используемой для агрегации. Метод является опциональным для строк и столбцов, и если указан, действует как предикат и определяет способ предварительной обработки данных поля перед агрегацией. Для values метод является обязательным параметром.
  • area - область, в которую добавляется поле
  • base - используется в столбцах и строках для полей с предикатом. Определяет исходное название поля, тогда как название поля формируется по шаблону "field_by_predicate"
  • label - текстовая метка
  • type - тип данных

Пример

const table = new pivot.Pivot("#root", {
fields,
data: dataset,
config: {
rows: ["studio", "genre"],
values: [
{
field: "title",
method: "count"
},
{
field: "score",
method: "max"
}
],
filters: {
genre: {
contains: "D",
includes: ["Drama"]
},
title: {
// фильтр для другого поля ("title")
contains: "A"
}
}
}
});