Appearance
Преобразования настроек диаграммы Ганта
Используйте это руководство, когда значения в подсказках диаграммы Ганта нужно форматировать через настройки schedule.*.
Что можно настроить
Для полей подсказки можно напрямую задать label, template, hidden и order.
С transform панель работает иначе: API настроек хранит данные, а не исполняемый JavaScript. Поэтому перед вызовом createConfig(...) для @mes/aps панель преобразует только безопасные декларативные дескрипторы.
В @mes/aps@1.23.0 необязательные разделы подсказок ограничений, поставок и стрелок зависимостей остаются пустыми, если их нет в настройках. Панель сохраняет это поведение. Форматирование даты добавляется только для явно указанного поддерживаемого поля ограничения, поставки или стрелки последовательности. Само наличие форматтера не делает поле видимым.
Например, следующие настройки включают только дату и количество поставки:
text
schedule.supplyTooltipConfig.date.label = "Дата поставки"
schedule.supplyTooltipConfig.date.order = 1
schedule.supplyTooltipConfig.quantity.label = "Доступно"
schedule.supplyTooltipConfig.quantity.order = 2Панель добавляет преобразование даты к date, сохраняет заданные метаданные и не добавляет остальные поля поставки. Для полей ограничений действует то же правило.
Поддерживаемый дескриптор valueMap
Сейчас панель поддерживает transform.type = valueMap в разделах:
operationTooltipConfig;constraintsTooltipConfig;supplyTooltipConfig;flowArrowTooltipConfig;supplyArrowTooltipConfig;producerArrowTooltipConfig.
После useSettingsFind().mapSettings({ prefix: 'schedule' }) настройки имеют следующую вложенную форму:
json
{
"operationTooltipConfig": {
"late": {
"label": "Опаздывает",
"transform": {
"type": "valueMap",
"values": {
"true": "Да",
"false": "Нет"
},
"fallback": "Не задано"
}
}
}
}Те же значения в API настроек:
text
schedule.operationTooltipConfig.late.label = "Опаздывает"
schedule.operationTooltipConfig.late.transform.type = "valueMap"
schedule.operationTooltipConfig.late.transform.values.true = "Да"
schedule.operationTooltipConfig.late.transform.values.false = "Нет"
schedule.operationTooltipConfig.late.transform.fallback = "Не задано"
schedule.operationTooltipConfig.locked.label = "Заблокирована"
schedule.operationTooltipConfig.locked.transform.type = "valueMap"
schedule.operationTooltipConfig.locked.transform.values.true = "Да"
schedule.operationTooltipConfig.locked.transform.values.false = "Нет"Правила сопоставления
- Ключ сопоставляется со строковым представлением исходного значения.
- Для логических значений используются ключи
trueиfalse. - Для
Dateиспользуется строка в форматеISO 8601. - Если подходящего ключа нет, преобразование возвращает
fallback, когда он задан.
Ограничения
- Строки наподобие
(value) => value ? 'Да' : 'Нет'остаются обычными данными и не выполняются. - Неподдерживаемые типы дескрипторов
transformигнорируются. - Пути настроек с сегментами
__proto__,prototypeилиconstructorотклоняются до построения объекта. - Форматирование даты выполняет отдельный слой панели и только для явно настроенных полей ограничений, поставок и поддерживаемых полей
fromOp.*/toOp.*стрелки последовательности.
Демонстрация
Локальное приложение local-gantt-transform-demo показывает это поведение для подсказок операции. Его данные не содержат ответ зависимостей, поэтому оно не подтверждает преобразования подсказок стрелок.