Referência da API para Angular

Referência completa dos componentes, das diretivas, dos serviços e dos utilitários de @reelkit/angular.

ReelComponent

Seletor: rk-reel

Inputs

InputTipoPadrãoDescrição
countnumberobrigatórioNúmero total de slides
direction'vertical' | 'horizontal''vertical'Direção do deslocamento
size[number, number] | undefinedundefinedLargura e altura, na forma [largura, altura]. Sem este input, o tamanho é medido pelo ResizeObserver
initialIndexnumber0Índice do slide inicial
loopbooleanfalseLiga o ciclo infinito
transitionTransitionTransformFnslideTransitionFunção do efeito de transição. Prontas: slideTransition, fadeTransition, flipTransition, cubeTransition, zoomTransition
transitionDurationnumber300Duração da animação em ms
swipeDistanceFactornumber0.12Limiar do deslize (0-1)
enableGesturesbooleantrueLiga a navegação por arrasto de toque ou mouse
enableNavKeysbooleantrueLiga a navegação pelas setas do teclado
enableWheelbooleanfalseLiga a navegação pela roda do mouse
wheelDebounceMsnumber200Debounce do evento de roda, em ms
rangeExtractor(index: number, count: number) => number[]defaultRangeExtractorFunção própria para decidir quais índices são renderizados
keyExtractor(index: number, indexInRange: number) => string | numberindex => indexFunção de chave própria para as expressões track do @for (útil com loop)
classNamestring''Classe CSS aplicada ao elemento contêiner raiz
ariaLabelstring'Carousel'Rótulo acessível da região do carrossel

Outputs

OutputTipoDescrição
afterChangeEventEmitter<{ index: number; indexInRange: number }>Emitido depois que a transição de slide termina
beforeChangeEventEmitter<{ index: number; nextIndex: number; indexInRange: number }>Emitido antes de a transição de slide começar
slideDragStartEventEmitter<number>Emitido quando um gesto de arrasto começa
slideDragEndEventEmitter<number>Emitido quando um gesto de arrasto termina (dedo solto)
slideDragCanceledEventEmitter<number>Emitido quando um gesto de arrasto é cancelado (o slide volta ao lugar)
apiReadyEventEmitter<ReelApi>Emitido uma vez, depois da inicialização da view, expondo a API imperativa

Interface ReelApi

Obtida pelo output (apiReady):

typescript
MétodoTipoDescrição
next()() => voidVai para o próximo slide
prev()() => voidVai para o slide anterior
goTo(index, animate?)(number, boolean?) => Promise<void>Navega até um índice de slide específico
adjust()() => voidRecalcula as posições dos slides (útil depois de uma mudança de layout)
observe()() => voidComeça a escutar os eventos de teclado
unobserve()() => voidPara de escutar os eventos de teclado

RkReelItemDirective

Seletor: [rkReelItem] — aplicado a um ng-template dentro do rk-reel.

Contexto do template

html
VariávelTipoDescrição
$implicit (let-i)numberÍndice absoluto do slide (de 0 até count-1)
indexInRangenumberPosição dentro da janela visível (0, 1 ou 2)
size[number, number]Dimensões atuais do slider, na forma [largura, altura], em pixels

ReelIndicatorComponent

Seletor: rk-reel-indicator

Inputs

InputTipoPadrãoDescrição
countnumber | undefinedautomáticoNúmero total de itens. Vem sozinho do contexto do rk-reel que o envolve; passe explicitamente ao usar o indicador isolado
activenumber | undefinedautomáticoÍndice ativo no momento. Vem sozinho do contexto do rk-reel que o envolve; passe explicitamente ao usar o indicador isolado
direction'vertical' | 'horizontal''vertical'Orientação do indicador
radiusnumber3Raio do ponto em pixels
visiblenumber5Máximo de pontos em tamanho normal visíveis ao mesmo tempo
gapnumber4Espaço entre os pontos em pixels
activeColorstring'#fff'Cor do ponto ativo
inactiveColorstring'rgba(255,255,255,0.5)'Cor dos pontos inativos
edgeScalenumber0.5Fator de escala dos pontos que transbordam nas bordas
classNamestring''Classe CSS própria aplicada ao contêiner do indicador
tablistLabelstring'Slide navigation'Rótulo acessível do marco tablist

Outputs

OutputTipoDescrição
dotClickEventEmitter<number>Emitido quando um ponto é clicado; entrega o índice do ponto

RK_REEL_CONTEXT

Um InjectionToken<ReelContextValue> que o rk-reel fornece aos seus descendentes. Usado internamente pelo rk-reel-indicator para se ligar sozinho. Injete-o em componentes seus que precisem do contexto do slider.

typescript
PropriedadeTipoDescrição
indexSignal<number>Índice reativo do slide atual
countSignal<number>Contagem reativa do total de itens
goTo(index: number, animate?: boolean) => Promise<void>Navega até um slide por código

BodyLockService

Trava de rolagem do corpo com contagem de referências. Vários chamadores simultâneos (uma galeria e um modal abertos ao mesmo tempo, por exemplo) travam e destravam de forma independente — o corpo só volta ao normal quando o último deles solta. Fornecido na raiz: injete onde quiser.

typescript
MembroTipoDescrição
lockedboolean (getter)Se o corpo está travado no momento
lock()() => voidTrava a rolagem do corpo e compensa a largura da barra de rolagem
unlock()() => voidDevolve ao corpo os estilos de rolagem originais

Utilitários da ponte de sinais

Funções utilitárias que ligam o sistema de sinais do core (@reelkit/core) à API nativa de sinais do Angular. Usadas internamente pelo ReelComponent e disponíveis para integrações próprias.

FunçãoAssinaturaDescrição
toAngularSignal(source: Subscribable<T>, destroyRef: DestroyRef) => Signal<T>Liga um Subscribable do core a um Signal somente leitura do Angular
animatedSignalBridge(source: AnimatedValue, zone: NgZone, cdRef: ChangeDetectorRef, destroyRef: DestroyRef) => Signal<number>Liga um valor animado do core a um Signal do Angular, atualizando por requestAnimationFrame fora da zone
typescript

createOverlayUrlState

OverlayUrlStateOptions

Monta um controlador de estado na URL para o overlay, que você entrega ao <rk-lightbox-url-overlay> pelo input [controller]. Chame-o em um contexto de injeção — na inicialização de um campo ou no construtor; ele se liga na hora e se solta pelo DestroyRef. Passo a passo: Estado na URL na página do Lightbox para Angular.

OpçãoTipoPadrãoDescrição
paramstringobrigatórioParâmetro de consulta que carrega o slide ativo, por exemplo photo.
adapterUrlAdapterHistory APISistema de navegação por onde ler e escrever. Em um app com rotas, passe um adaptador ligado ao Router para que a localização dele não fique desatualizada.
codecUrlCodec<Id>obrigatórioFormato do fio: texto do parâmetro até uma identidade estável. Anda junto do locator como par combinado — espalhe ...urlIndexKey(() => images().length) para a galeria padrão em ?photo=3, ou forneça o seu para que um favorito sobreviva à reordenação.
locatorUrlLocator<Id>obrigatórioLiga a identidade a uma posição e responde pela própria validade: locate (síncrono), locateAsync (plano B assíncrono de uma galeria paginada) e identify (nas escritas).

createRouterUrlAdapter

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

Um UrlAdapter apoiado no Router do Angular. Passe-o na opção adapter de createOverlayUrlState em um app com rotas, para que o Router siga sendo a única fonte de verdade da navegação — escrever history.pushState por trás dele deixa sua localização desatualizada, e a navegação seguinte derruba o parâmetro. As escritas mexem apenas na consulta, então o caminho, o fragmento e chaves repetidas como ?tag=a&tag=b seguem intactos. Cada mudança informa se o Router empilhou na mesma página, substituiu ou andou pelo histórico, de modo que uma galeria aberta por um routerLink fecha com um único passo para trás. Chame-o em um contexto de injeção; a assinatura do router se solta pelo DestroyRef.

Vem de um subcaminho próprio, então um app sem rotas nunca puxa @angular/router para o bundle. @angular/router é uma peer dependency opcional.

typescript

Acessibilidade

<rk-reel> é renderizado como role="region" com aria-roledescription="carousel". Defina o input ariaLabel para dar à região um nome que o leitor de tela anuncie. Uma live region educada anuncia "Slide N de M" a cada troca. Os slides inativos recebem o atributo inert, então o foco e a navegação por tecnologia assistiva passam por cima deles.

<rk-reel-indicator> é renderizado como role="tablist", com tabindex móvel nos pontos; as setas movem o foco e Enter ou Espaço ativa o slide.

Montando um modal próprio em volta de <rk-reel>? captureFocusForReturn, createFocusTrap e getFocusableElements são reexportados por @reelkit/angular para devolver e prender o foco.

Exports do pacote

Todos os exports públicos de @reelkit/angular:

typescript