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- (опциональный) принимает числа, строки и значения DatenotEqual- (опциональный) принимает числа, строки и значения Dategreater- (опциональный) принимает числа и значения DategreaterOrEqual- (опциональный) принимает числа и значения Dateless- (опциональный) принимает числа и значения DatelessOrEqual- принимает числа и значения Datebetween- объект со следующими параметрами:start- Dateend- Date
notBetween- объект со следующими параметрами:start- Dateend- 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"
}
}
}
});