Мы рады сообщить, что вышла новая версия 5.2 нашего набора веб-компонентов Bryntum. Среди основных моментов в этом выпуске: разделение задач/событий, отзывчивость календаря, визуализация задач и событий в нерабочее время и многое другое.

Разделить задачи

Gantt и Scheduler Pro теперь поддерживают разделение задачи/события, превращая одну задачу в связанные сегменты, которые можно перетаскивать и изменять размер по отдельности. Проверьте это для Ганта в новой демонстрации split-tasks:

А в новом демо сплит-события в Scheduler Pro:

Отзывчивость календаря

Календарь теперь использует Отзывчивый миксин (который был переработан), представленный в TaskBoard, чтобы лучше соответствовать меньшим размерам экрана путем скрытия/замены частей пользовательского интерфейса. Он включается автоматически, попробуйте его в любой демо-версии. Вот два снимка экрана из базовой демонстрации на экранах двух разных размеров:

Ускорение экспорта PDF

Функция экспорта PDF имеет новый режим «прямого рендеринга», который теперь включен по умолчанию. Больше не нужно прокручивать набор данных, что улучшает UX и значительно сокращает время, необходимое для создания контента, который серверная часть затем обрабатывает для создания PDF.

Улучшенная типизация TypeScript

Наш продукт поставляется с типами TypeScript, которые мы пытаемся улучшить с каждым выпуском. API слишком велик, чтобы создавать эти типизации вручную, вместо этого мы генерируем их на основе нашей документации. Таким образом, качество наших типов напрямую связано с качеством нашей документации по API.

В этом выпуске мы улучшили и то, и другое, позволив указать, что функция или свойство, которые принимают объект конфигурации для определенного класса, теперь вместо универсального object могут принимать типизированный объект.

Например, конфигурация cellEditor сетки Column позволяет настроить плавающее Editor, используемое для редактирования ячейки. Раньше он принимал нетипизированный object, но теперь вместо этого он принимает EditorConfig (что при типизации переводится как Partial<EditorConfig&gt).

type ColumnConfig = { 
    align: 'left'|'center'|'right'|'start'|'end' 
    autoHeight: boolean 
    cellCls: string 
    cellEditor: Partial<EditorConfig> 
    ... 
}

Поддержка заполнения тиков Ганта

Гант теперь поддерживает масштабирование задач для заполнения целых тиков (самая нижняя единица оси времени, «ячейки») с использованием конфигурации (которая была перенесена из Планировщика). Улучшение заключается в том, что теперь он также подходит для диапазонов нерабочего времени для более цельного вида. Попробуйте это в новой демо-версии «fill-ticks»:

Визуализация событий и задач в нерабочее время

У Ганта есть новая функция TaskNonWorkingTime, которая визуализирует нерабочее время из календаря задачи. Проверьте это в новой демонстрации «календарей»:

Аналогичным образом, в Scheduler есть новая функция EventNonWorkingTime (которая наиболее правильная в Scheduler Pro), которая отображает диапазоны нерабочего времени как заштрихованные части событий. Используется в «демонстрации нерабочего времени события» в Scheduler Pro:

Выбор времени в Планировщике

В Планировщике появилась новая функция TimeSelection, которая позволяет пользователям выбирать временной интервал в заголовке оси времени. Цель выбора зависит от приложения, в сопроводительной демонстрации «выбор времени» его можно использовать для выбора пересекающихся событий или фильтрации недоступных ресурсов:

Сворачиваемые столбцы сетки

Сгруппированные столбцы в сетке теперь могут быть свернуты пользователем при настройке с помощью collapsible: true. При настройке можно выбрать один из двух режимов: либо свертывание скрывает все столбцы в группе, кроме первого, либо переключает видимость столбцов в группе, чтобы отображались ранее скрытые столбцы, и наоборот. Поставляется с новыми демонстрациями в Grid, Scheduler и Gantt, все они называются «складные столбцы». Демонстрация сетки:

Демонстрация планировщика:

Демонстрация Ганта:

Улучшенная функция TreeGroup

Функция TreeGroup, представленная в версии 5.0.0, была переработана, чтобы сделать ее более полезной. Он больше не преобразует исходное хранилище, а вместо этого создает ссылки на исходные записи в «магазине отображения» и преобразует его.

Для Ганта это имеет большое преимущество, заключающееся в том, что исходная древовидная структура, используемая при планировании, остается нетронутой, а задачи в сгруппированном представлении по-прежнему можно редактировать и они будут придерживаться правил исходной структуры. В предыдущей реализации все задачи нужно было помечать как запланированные вручную, что делало представление доступным только для чтения.

Еще одним преимуществом является то, что новый подход также работает в планировщике, и в качестве бонуса он более производительный, чем старый подход. Scheduler поставляется с новой демонстрацией «древовидной группировки»:

События мыши для ResourceTimeRanges

Теперь можно включить события мыши для временных диапазонов ресурсов, настроив эту функцию с помощью enableMouseEvents : true. При этом будут запускаться такие события, как щелчок, наведение мыши и т. д. с префиксом «resourceTimeRange», например, resourceTimeRangeClick. Конфигурация используется в новой демонстрации приложения «бронирование» в планировщике:

Добавление содержимого в пустые ячейки в календаре

В календаре появился новый emptyCellRenderer, который позволяет вставлять пользовательский контент в пустые дни в представлении месяца. Используется в новой демонстрации «show-booking»:

Больше новостей

  • Календарь теперь может отображать все дни недели в заголовке в режиме просмотра дня.
  • Функции TimeRanges и NonWorkingTime теперь используют виртуализированный рендеринг, отображая только диапазоны (и линии) рендеринга.
  • Появился новый виджет ViewPresetCombo, который позволяет пользователю выбирать между набором пресетов просмотра. Например, день, неделя и месяц
  • Базовые линии в Гантте теперь могут быть более легко оформлены путем добавления cls или style в данные.
  • Столбцы сетки теперь можно переименовывать с помощью контекстного меню.
  • В TaskBoard появился новый isTaskSelectable API, соответствующий планировщикам isEventSelectable

Сведения о выпуске

Полную информацию об этом выпуске см. в журналах изменений, руководствах «Что нового» и руководствах по обновлению для каждого продукта.

Подведение итогов

В версии 5.2 добавлено множество новых функций и демонстраций, основанных почти исключительно на отзывах, полученных от наших клиентов и сообщества. Мы надеемся, что вам понравится этот релиз, и, пожалуйста, продолжайте оставлять свои отзывы. Есть ли конкретная функция, которую вы хотели бы добавить следующей?

Загрузить бесплатную пробную версию 5.2

Первоначально опубликовано на https://www.bryntum.com 14 октября 2022 г.