filter()
Описание
Фильтрует элементы диаграммы
Использование
filter(
rule?: function,
config?: {
id?: string,
add?: boolean,
permanent?: boolean
}
): void;
// или
filter(
rule?:{
by?: string | number,
match?: string | number | boolean,
compare?: (value, match, item) => {}
},
config?:{
id?: string,
add?: boolean,
permanent?: boolean
}
): void;
Параметры
rule- (необязательный) критерий фильтрации- Если задан как функция, фильтрация будет выполнена по правилу, указанному в этой функции. Функция принимает объект элемента данных в качестве параметра
- Если задан как объект, параметр может иметь следующие атрибуты:
by- (необязательный) ключ атрибута элементаmatch- (необязательный) шаблон для сопоставленияcompare- (необязательный) функция для расширенной фильтрации. Функция возвращает true или false и принимает три параметра:value- значение для сравненияmatch- шаблон для сопоставленияitem- элемент данных, значения которого нужно сравнить (например, фигура)
config- (необязательный) объект, определяющий параметры фильтрации. Объект может содержать следующие свойства:id- (необязательный) id фильтраadd- (необязательный) определяет, будет ли каждая следующая фильтрация применяться к уже отфильтрованным данным (true), или к исходным данным (false, по умолчанию)permanent- (необязательный) true, чтобы сделать текущий фильтр постоянным. Он будет применяться, даже если в объекте конфигурации следующей фильтрации отсутствует свойствоadd:true. Такой фильтр можно удалить только с помощью методаresetFilter()
Пример
const diagram = new dhx.Diagram("diagram_container", {
type: "default"
});
diagram.data.parse(data);
// фильтрация по правилу, заданному в функции
diagram.data.filter(function (shape) {
return shape.id > 3;
});
// фильтрация по ключу атрибута фигуры
diagram.data.filter({ by: "text", match: "Read N" });
Чтобы вернуть диаграмму в исходное состояние, вызовите метод filter() без параметров.
diagram.data.filter();
Полезная статья: Фильтрация элементов
Связанный пример: Diagram. Данные. Фильтрация фигур
Журнал изменений: Обновлено в v6.0