Компонент Calendar для Angular | ng-hub-ui-calendar
Компонент календаря для Angular с представлениями событий, drag and drop, шаблонами, интернационализацией и CSS-переменными для интерфейсов планирования.
Справочник API
Вот полный контракт calendar: всё, что можно привязать, прослушать, спроецировать и тематизировать, собрано в одном месте. Подключите то, что нужно, и оформите так, как хотите — это standalone и дружит с сигналами.
Входные свойства
Настройте calendar с помощью 6 входных свойств. Привязывайте их, как любой @Input в Angular.
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
events | CalendarEvent<T>[] | [] | Массив событий для отображения в календаре |
view | 'month' | 'week' | 'day' | 'year' | 'month' | Текущий тип представления (двусторонняя привязка с viewChange) |
selectedDate | Date | new Date() | Текущая выбранная дата (двусторонняя привязка с dateChange) |
config | CalendarConfig | {} | Параметры конфигурации для календаря |
eventClass | string | ((event: CalendarEvent) => string) | undefined | CSS-класс(ы) для применения к событиям, может быть статическим или динамическим |
weekStartsOn | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 0 | День начала недели (0 = воскресенье, 1 = понедельник и т. д.) |
События
Реагируйте на то, что делает calendar, — 5 событий, к которым можно подключить вашу логику.
| Имя | Тип | Описание |
|---|---|---|
eventClick | CalendarEvent<T> | Вызывается при клике по событию |
dayClick | CalendarDay<T> | Вызывается при клике по ячейке дня |
eventDrop | { event: CalendarEvent<T>; newDate: Date; previousDate: Date } | Вызывается при перетаскивании события на другой день |
viewChange | CalendarViewType | Вызывается при изменении типа представления |
dateChange | Date | Вызывается, когда навигация изменяет отображаемую дату |
Шаблоны
Сделайте его своим — 2 слотов шаблона позволяют проецировать собственную разметку.
| Имя | Описание | Пример |
|---|---|---|
eventTpt | Шаблон для отрисовки отдельных событий. Контекст: { event: CalendarEvent } | <ng-template eventTpt let-event="event">{{ event.title }}</ng-template> |
dayCellTpt | Шаблон для настройки отрисовки ячейки дня. Контекст: { day: CalendarDay } | <ng-template dayCellTpt let-day="day">{{ day.date | date }}</ng-template> |
CSS-переменные
CSS-переменные пока не задокументированы.
Стилизация и тематизация
Примеры стилизации пока не задокументированы. В этом разделе будут рецепты кастомизации и примеры тематизации.