Timeline и шаги прогресса для Angular | ng-hub-ui-milestones

Компонент timeline и шагов прогресса для Angular: вертикальный или горизонтальный, полностью настраиваемые узлы, контент внутри и рядом с каждым шагом, тематизация через CSS-переменные.

Справочник API

Вот полный контракт milestones: всё, что можно привязать, прослушать, спроецировать и тематизировать, собрано в одном месте. Подключите то, что нужно, и оформите так, как хотите — это standalone и дружит с сигналами.

Входные свойства

Настройте milestones с помощью 6 входных свойств. Привязывайте их, как любой @Input в Angular.

ИмяТипПо умолчаниюОписание
orientation (hub-milestones)'vertical' | 'horizontal''vertical'Направление макета временной шкалы.
state (hub-milestone)'complete' | 'active' | 'pending' | 'error''pending'Визуальное state узла; определяет цвета узла и соединителя.
color (hub-milestone)string''Переопределение цвета для каждого узла (любой CSS-цвет). Имеет приоритет над цветом state.
label (hub-milestone)string''Запасной текст, отображаемый внутри узла, когда шаблон `hubMilestoneNode` не предоставлен.
pulse (hub-milestones)booleanfalseПри установке на `<hub-milestones>` активный узел излучает мягкую расходящуюся волну, привлекая внимание к текущему шагу. Опционально; учитывает `prefers-reduced-motion`.
reveal (hub-milestones)booleantrueКогда таймлайн появляется в области просмотра, он анимирует заполнение акцентной линии до активного узла. Включено по умолчанию — настраивается глобально через `provideHubMilestones({ reveal: false })` или для экземпляра через `[reveal]`. Учитывает `prefers-reduced-motion`.

События

События пока не задокументированы.

Шаблоны

Сделайте его своим — 2 слотов шаблона позволяют проецировать собственную разметку.

ИмяОписаниеПример
hubMilestoneNodeПомечает `<ng-template>`, содержимое которого отрисовывается ВНУТРИ круга вехи (число, иконка, эмодзи, аватар). Имеет приоритет над `label` и автонумерацией.<hub-milestone> <ng-template hubMilestoneNode>★</ng-template> <h4>Shipped</h4> </hub-milestone>
hub-milestone body (ng-content)Любое содержимое, спроецированное напрямую в `hub-milestone` (вне шаблона узла), отрисовывается как тело рядом с кругом.<hub-milestone state="active"> <h4>Payment</h4> <p>Enter your payment method.</p> </hub-milestone>