UNPKG

ngx-bootstrap-ci

Version:
121 lines (120 loc) 3.99 kB
/*** * pause (not yet supported) (?string='hover') - event group name which pauses * the cycling of the carousel, if hover pauses on mouseenter and resumes on * mouseleave keyboard (not yet supported) (?boolean=true) - if false * carousel will not react to keyboard events * note: swiping not yet supported */ /**** * Problems: * 1) if we set an active slide via model changes, .active class remains on a * current slide. * 2) if we have only one slide, we shouldn't show prev/next nav buttons * 3) if first or last slide is active and noWrap is true, there should be * "disabled" class on the nav buttons. * 4) default interval should be equal 5000 */ import { EventEmitter, NgZone, OnDestroy } from '@angular/core'; import { LinkedList } from 'ngx-bootstrap/utils'; import { SlideComponent } from './slide.component'; import { CarouselConfig } from './carousel.config'; export declare enum Direction { UNKNOWN = 0, NEXT = 1, PREV = 2, } /** * Base element to create carousel */ export declare class CarouselComponent implements OnDestroy { private ngZone; /** If `true` — carousel will not cycle continuously and will have hard stops (prevent looping) */ noWrap: boolean; /** If `true` — will disable pausing on carousel mouse hover */ noPause: boolean; /** If `true` — carousel-indicators are visible */ showIndicators: boolean; /** Will be emitted when active slide has been changed. Part of two-way-bindable [(activeSlide)] property */ activeSlideChange: EventEmitter<number>; /** Index of currently displayed slide(started for 0) */ activeSlide: number; /** * Delay of item cycling in milliseconds. If false, carousel won't cycle * automatically. */ interval: number; readonly slides: SlideComponent[]; protected currentInterval: any; protected _currentActiveSlide: number; protected _interval: number; protected _slides: LinkedList<SlideComponent>; protected isPlaying: boolean; protected destroyed: boolean; readonly isBs4: boolean; constructor(config: CarouselConfig, ngZone: NgZone); ngOnDestroy(): void; /** * Adds new slide. If this slide is first in collection - set it as active * and starts auto changing * @param slide */ addSlide(slide: SlideComponent): void; /** * Removes specified slide. If this slide is active - will roll to another * slide * @param slide */ removeSlide(slide: SlideComponent): void; /** * Rolling to next slide * @param force: {boolean} if true - will ignore noWrap flag */ nextSlide(force?: boolean): void; /** * Rolling to previous slide * @param force: {boolean} if true - will ignore noWrap flag */ previousSlide(force?: boolean): void; /** * Rolling to specified slide * @param index: {number} index of slide, which must be shown */ selectSlide(index: number): void; /** * Starts a auto changing of slides */ play(): void; /** * Stops a auto changing of slides */ pause(): void; /** * Finds and returns index of currently displayed slide */ getCurrentSlideIndex(): number; /** * Defines, whether the specified index is last in collection * @param index */ isLast(index: number): boolean; /** * Defines next slide index, depending of direction * @param direction: Direction(UNKNOWN|PREV|NEXT) * @param force: {boolean} if TRUE - will ignore noWrap flag, else will * return undefined if next slide require wrapping */ private findNextSlideIndex(direction, force); /** * Sets a slide, which specified through index, as active * @param index */ private _select(index); /** * Starts loop of auto changing of slides */ private restartTimer(); /** * Stops loop of auto changing of slides */ private resetTimer(); }