Довідник API для Angular

Повний довідник @reelkit/angular : компоненти, директиви, сервіси та утиліти.

ReelComponent

Селектор: rk-reel

Inputs

InputТипТипове значенняОпис
countnumberrequiredЗагальна кількість слайдів
direction'vertical' | 'horizontal''vertical'Напрямок прокручування
size[number, number] | undefinedundefinedШирина й висота у вигляді [width, height]. Якщо не задано, вимірюється автоматично через ResizeObserver
initialIndexnumber0Початковий індекс слайда
loopbooleanfalseВмикає нескінченний цикл
transitionTransitionTransformFnslideTransitionФункція ефекту переходу. Вбудовані: slideTransition, fadeTransition, flipTransition, cubeTransition, zoomTransition
transitionDurationnumber300Тривалість анімації в мілісекундах
swipeDistanceFactornumber0.12Поріг свайпу (0–1)
enableGesturesbooleantrueВмикає навігацію перетягуванням дотиком або мишею
enableNavKeysbooleantrueВмикає навігацію стрілками клавіатури
enableWheelbooleanfalseВмикає навігацію колесом миші
wheelDebounceMsnumber200Дебаунс події колеса в мілісекундах
rangeExtractor(index: number, count: number) => number[]defaultRangeExtractorВласна функція, що визначає, які індекси рендеряться
keyExtractor(index: number, indexInRange: number) => string | numberindex => indexВласна функція ключів для виразів track у @for (корисно з циклом)
classNamestring''Клас CSS для кореневого контейнера
ariaLabelstring'Carousel'Доступна назва області каруселі

Outputs

OutputТипОпис
afterChangeEventEmitter<{ index: number; indexInRange: number }>Видається після завершення переходу між слайдами
beforeChangeEventEmitter<{ index: number; nextIndex: number; indexInRange: number }>Видається перед початком переходу між слайдами
slideDragStartEventEmitter<number>Видається на початку перетягування
slideDragEndEventEmitter<number>Видається, коли перетягування завершується (палець або кнопку відпустили)
slideDragCanceledEventEmitter<number>Видається, коли перетягування скасовано (слайд повертається назад)
apiReadyEventEmitter<ReelApi>Видається один раз після ініціалізації подання й відкриває імперативний API

Інтерфейс ReelApi

Отримується через вихід (apiReady) :

typescript
МетодТипОпис
next()() => voidПерейти до наступного слайда
prev()() => voidПерейти до попереднього слайда
goTo(index, animate?)(number, boolean?) => Promise<void>Перехід до слайда за індексом
adjust()() => voidПерерахувати позиції слайдів (корисно після зміни макета)
observe()() => voidПочати слухати події клавіатури
unobserve()() => voidПрипинити слухати події клавіатури

RkReelItemDirective

Селектор: [rkReelItem] — застосовується до ng-template inside rk-reel.

Контекст шаблону

html
VariableТипОпис
$implicit (let-i)numberАбсолютний індекс слайда (від 0 до count-1)
indexInRangenumberПозиція у видимому вікні (0, 1 або 2)
size[number, number]Поточні розміри слайдера як [width, height] у пікселях

ReelIndicatorComponent

Селектор: rk-reel-indicator

Inputs

InputТипТипове значенняОпис
countnumber | undefinedautoЗагальна кількість елементів. Береться з контексту батьківського rk-reel, якщо компонент вкладений у нього; передавайте явно за окремого використання
activenumber | undefinedautoПоточний активний індекс. Береться з контексту батьківського rk-reel, якщо компонент вкладений у нього; передавайте явно за окремого використання
direction'vertical' | 'horizontal''vertical'Орієнтація індикатора
radiusnumber3Радіус точки в пікселях
visiblenumber5Максимум одночасно видимих точок звичайного розміру
gapnumber4Відстань між точками в пікселях
activeColorstring'#fff'Колір активної точки
inactiveColorstring'rgba(255,255,255,0.5)'Колір неактивної точки
edgeScalenumber0.5Коефіцієнт масштабу крайніх точок за межами видимого
classNamestring''Власний клас CSS для контейнера індикатора
tablistLabelstring'Slide navigation'Доступна назва орієнтира tablist

Outputs

OutputТипОпис
dotClickEventEmitter<number>Видається на клік по точці; передає індекс точки

RK_REEL_CONTEXT

An InjectionToken<ReelContextValue> який надає rk-reel своїм нащадкам. Використовується всередині rk-reel-indicator для автоматичного під’єднання. Впроваджуйте його у власні компоненти, яким потрібен контекст слайдера.

typescript
ВластивістьТипОпис
indexSignal<number>Реактивний індекс поточного слайда
countSignal<number>Реактивна загальна кількість елементів
goTo(index: number, animate?: boolean) => Promise<void>Програмний перехід до слайда

BodyLockService

Блокування прокручування body з підрахунком посилань. Кілька одночасних викликачів (наприклад, відкриті водночас Lightbox і модальне вікно) блокують і розблоковують незалежно — body повертається до норми лише коли останній із них звільнить. Надається на рівні кореня — впроваджуйте будь-де.

typescript
ЧленТипОпис
lockedboolean (getter)Чи заблоковано body просто зараз
lock()() => voidЗаблокувати прокручування body й компенсувати ширину смуги прокручування
unlock()() => voidПовернути початкові стилі прокручування body

Утиліти мосту сигналів

Допоміжні функції, що з’єднують систему сигналів ядра (@reelkit/core) with Angular's native signal API. Used internally by ReelComponent; also available for custom framework integrations.

FunctionSignatureОпис
toAngularSignal(source: Subscribable<T>, destroyRef: DestroyRef) => Signal<T>Місток від Subscribable з ядра до сигналу Angular лише для читання
animatedSignalBridge(source: AnimatedValue, zone: NgZone, cdRef: ChangeDetectorRef, destroyRef: DestroyRef) => Signal<number>Місток від анімованого значення ядра до сигналу Angular, що оновлюється через requestAnimationFrame поза зоною
typescript

createOverlayUrlState

OverlayUrlStateOptions

Будує контролер стану в URL для оверлея, який ви передаєте в <rk-lightbox-url-overlay> як його [controller] . Викликайте його в контексті впровадження — в ініціалізаторі поля або в конструкторі; він під’єднується одразу й звільняється через DestroyRef. Покроковий розбір: Стан в URL на сторінці Lightbox для Angular.

OptionТипТипове значенняОпис
paramstringrequiredПараметр запиту, що несе активний слайд, наприклад photo.
adapterUrlAdapterHistory APIСистема навігації, через яку читати й писати. У застосунку з роутером передайте адаптер на базі Router, щоб місцеположення роутера не застаріло.
codecUrlCodec<Id>requiredФормат передавання: текст параметра в стабільну ідентичність. Іде разом із локатором як узгоджена пара — розгорніть ...urlIndexKey(() => images().length) для типової галереї з ?photo=3 або передайте власний, щоб закладка пережила зміну порядку.
locatorUrlLocator<Id>requiredЗіставляє ідентичність із позицією і сам відповідає за свою чинність: locate (синхронно), locateAsync (запасний варіант для посторінкової галереї), identify (для запису).

createRouterUrlAdapter

@reelkit/angular/ng-router-url-adapter

A UrlAdapter на базі Angular Router. Передайте його як adapter у createOverlayUrlState у застосунку з роутером, щоб Router лишався єдиним джерелом правди про навігацію: запис history.pushState повз Router лишає його місцеположення застарілим, і наступна навігація втрачає параметр. Викликайте його в контексті впровадження; підписка NavigationEnd звільняється через DestroyRef.

Постачається з окремого підшляху, тож застосунок без роутингу ніколи не тягне @angular/router у свій бандл. @angular/router — необов’язкова peer-залежність.

typescript

Accessibility

<rk-reel> рендериться як role="region" з aria-roledescription="carousel". Задайте пропс ariaLabel щоб дати області назву для екранного читача. Ввічлива жива область оголошує «Слайд N з M» на кожну зміну слайда. Неактивні слайди отримують атрибут inert , тож фокус і навігація допоміжних технологій їх пропускають.

<rk-reel-indicator> рендериться як role="tablist" з рухомим tabindex на точках; стрілки переміщують фокус, а Enter або Space активує слайд.

Будуєте власне модальне вікно навколо <rk-reel>? captureFocusForReturn, createFocusTrap, та getFocusableElements — вони реекспортовані з @reelkit/angular для повернення й утримання фокуса.

Експорти пакета

Усі публічні експорти з @reelkit/angular:

typescript