Селектор
Примечание
Функциональность доступна только в рамках тарифного плана Business.
Селектор описывает набор контролов для проставления параметров чартам дашборда.
Чарт парсит параметр и применяет соответствующую фильтрацию по полю, с которым связан параметр (см. пример). Если селектору передаются числовые значения параметров, приведите их к строке или массиву строк. Это позволит избежать несогласованности отображения данных в разных состояниях виджета, например когда он просто отображается на дашборде и когда открыт на редактирование.
Примечание
Во время первоначальной отрисовки дашборда параметры всех чартов остаются статичными. Динамическое изменение параметров возможно только при последующем изменении селекторов.
В результате выполнения вкладки Controls экспортируются данные для отрисовки элементов управления чарта — контролов. Вкладка доступна только для визуализаций График, Advanced-чарт, Таблица, Селектор.
Основное назначение контролов — изменение параметров и перерисовка чарта. Подробнее о параметрах чарта см. в описании вкладки Params.
Структура на вкладке Controls
На вкладке Controls в module.exports необходимо сформировать структуру:
module.exports = {
controls: [
{
// структура одного контрола
},
...
],
};
Структура контрола зависит от его типа.
Общие для всех контролов поля
Есть общие для всех типов контролов поля:
-
type— тип контрола. Обязательное поле, тип значения строка из доступных значений:input,textarea,datepicker,range-datepicker,select,checkbox,line-break,button. -
param— название связанного параметра. Обязательное поле, тип значения строка. Доступно для всех типов контролов кромеline-break. При изменении значения такого контрола такое же значение будет у связанного параметра при следующей перерисовке чарта. -
updateOnChange— признак для инициации изменения его значения и перерисовки чарта. Значение можно выставить у каждого контрола, если нужна его перерисовка при изменении или, например, только у кнопки, тогда по клику будут применены все изменения контролов сразу. Необязательное поле, тип значения boolean. Доступно для всех типов контролов, кромеline-break. -
updateControlsOnChange— признак для инициации перерисовки всего блока контролов и изменения его значения, без перерисовки всего чарта целиком. Необязательное поле, тип значения boolean. Доступно для всех типов контролов, кромеline-break.Примечание
На вкладке Sources будут запрошены только те источники, у которых выставлено свойство
ui: true. Вызов метода Editor.getLoadedData() после такой перерисовки вернет данные только по перезапрошенным источникам. -
width— ширина контрола. Необязательное поле, тип значения строка или число из возможных значений css-свойств. Доступно для всех типов контролов, кромеbuttonиline-break. -
hidden— признак, скрывать ли контрол со страницы. Необязательное поле, тип значения boolean. -
label— внешний заголовок селектора. Необязательное поле, тип значения строка. Доступно для всех типов контролов, кромеline-break. -
labelPlacement— расположение внешнего заголовка селектора. Необязательное поле, тип значения строка из возможных значений:topилиleft. Доступно для всех типов контролов, кромеcheckbox,buttonиline-break. -
innerLabel— внутренний заголовок. Необязательное поле, тип значения строка. Доступно для всех типов контролов, кромеcheckbox,buttonиline-break. -
required— признак, является ли контрол обязательным для заполнения. В этом случае задайте дефолтное значение связанного с контролом параметра, иначе контрол будет подсвечиваться красным, а в выборке для чарта будет использовано пустое значение параметра. Доступно для всех типов контролов, кромеline-break. -
accentType— настройка акцентного выделения контрола цветом. Необязательное поле, возможное значение строка info. Доступно для всех типов контролов, кроме button иline-break. -
operation— для контрола можно указать оператор через словарьOPERATIONS. После этого к параметру будет добавляться строка, определяющая тип оператора, например, селектор с операторомGTи значением42будет задавать параметр__gt_42. Доступно для всех типов контролов, кроме button иline-break.
Поле ввода
Контрол с type: "input" (однострочное) или type: "textarea" (многострочное).
Кроме общих полей контролов доступно:
placeholder — текст-заглушка, отображаемая, когда у поля нет содержимого. Необязательное поле, тип значения строка.
Календарь (одиночная дата)
Контрол с type: "datepicker". Значением связанного параметра должна быть строка с ISO датой или относительная дата.
Кроме общих полей контролов доступно:
minDate— минимальное возможное значение в ISO. Необязательное поле, тип значения строка илиnull, например'2024-09-30'.maxDate— минимальное возможное значение в ISO. Необязательное поле, тип значения строка илиnull, например'2025-09-30'.
Календарь (интервал дат)
Контрол с type: "range-datepicker". Если используется поле param вместо paramFrom и paramTo, то его значением должен быть интервал. Значением связанного параметра должна быть строка с ISO датой или относительная дата.
Кроме общих полей контролов доступно:
paramFrom— название связанный параметр начала интервала (вместо поляparam). Обязательное поле, тип значения строка в ISO формате или относительная дата.aramTo— название связанный параметр конца интервала (вместо поляparam). Обязательное поле, тип значения строка в ISO формате или относительная дата.minDate— минимальное возможное значение в ISO формате. Необязательное поле, тип значения строка илиnull, например,'2024-09-30'.maxDate— минимальное возможное значение в ISO формате. Необязательное поле, тип значения строка илиnull, например'2025-09-30'.
Список
Контрол с type: "select".
Кроме общих полей контролов доступно:
-
multiselect— признак, включен ли множественный выбор. Необязательное поле, тип значения boolean. -
searchable— признак, включена ли поисковая строка. Необязательное поле, тип значения boolean. -
content— содержимое выпадающего списка. Обязательное поле, тип массив объектов:[ { title: "<string>", value: "<string>", }, ... ],Где:
title— выводимое название опции. Обязательное поле, тип значения строка.value— значение опции, при выборе устанавливается в качестве значения связанного параметра. Обязательное поле, тип значения строка.valueобязательно должно быть строкой, т.к. все параметры приводятся к строке (true->'true',42->'42'). Иначе значение параметра не совпадет ни с одним из перечисленных, а выглядеть будет как будто значение не выбрано.
Чекбокс
Контрол с type: "checkbox".
Переход на новую строку
Контрол с type: "line-break".
Кнопка
Контрол с type: "button".
Кроме общих полей контролов доступно:
-
theme— тема кнопки. Необязательное поле. Тип значения — строка из возможных значений поляviewкомпонентыButtonиз дизайн-системы Gravity UI. Значение по умолчанию —action. Пример внешнего вида . -
onClick— действие по клику на кнопку. Обязательное поле, тип объект:{ action: "<string>", args: <object>, },Где:
-
action— тип действия, обязательное поле, возможные значения:-
setParams— устанавливает новые переданных статичных вargsпараметров по клику, пример описания действия:onClick: { action: "setParams", args: { month: "May", region: "RU", } } -
setInitialParams— устанавливает дефолтное значение параметров:- в превью, редактировании чарта/селектора — к значениям параметров на вкладке Params;
- на дашборде — к значениям параметров в настройках чарта/селектора;
- фолбэк — к значениям параметров на вкладке Params.
пример описания действия:
onClick: { action: "setInitialParams" }
-
-
args— статические аргументы. Обязательное поле, формат зависит от типа действия.
-
Доступные методы
Этот вид чарта поддерживает тот же функционал, что и таблица в визарде, есть возможность кастомизации стилей, настройки кросс-фильтрации, пагинации и т. п.
Добавление селектора на дашборд и в отчет
Добавление Селектора JS в отчет аналогично добавлению обычного селектора в отдельную секцию со всеми селекторами.
При необходимости создайте алиасы для связи селектора с другими виджетами на дашборде.
Специальные параметры
Чтобы в настройках параметров внешнего селектора указать относительную дату, используйте формат вида __relative_<знак><количество><единица измерения>.