import { default as WJElement } from '../wje-element/element.js'; /** * @summary Carousel class that extends WJElement. * @documentation https://elements.webjet.sk/components/carousel * @status stable * @augments WJElement * @slot - The carousel main content. * @cssproperty [--wje-carousel-size=100%] - Effective size of one carousel item. * @cssproperty [--wje-carousel-gap=0.5rem] - Gap between carousel items. */ export default class Carousel extends WJElement { /** * Getter for the CSS stylesheet. * @returns {*} */ static get cssStyleSheet(): any; /** * Getter for the observed attributes. * @returns {string[]} */ static get observedAttributes(): string[]; slidePerPage: number; /** * Active slide attribute. * @param value */ set activeSlide(value: number | number); /** * Active slide attribute. * @returns {number|number} */ get activeSlide(): number | number; /** * Pagination attribute. * @returns {boolean} */ get pagination(): boolean; /** * Navigation attribute. * @returns {boolean} */ get navigation(): boolean; /** * Thumbnails attribute. * @returns {boolean} */ get thumbnails(): boolean; /** * Loop attribute. * @returns {boolean} */ get loop(): boolean; /** * Continuous loop attribute. * @returns {boolean} */ get continuousLoop(): boolean; /** * Before draw method for the Carousel. */ beforeDraw(): void; /** * Draw method for the Carousel. * @returns {DocumentFragment} */ draw(): DocumentFragment; prevButton: Element; nextButton: Element; slides: HTMLDivElement; /** * After draw method for the Carousel. */ afterDraw(): void; /** * Sync `activeSlide` to the slide whose leading edge is closest to the snap start. */ syncActiveToSnapStart(): void; /** * Syncs computed CSS variables derived from `slide-per-page`. */ syncSlideMetrics(): void; /** * Returns the inline scroll padding used by the snap area. * @returns {number} */ getScrollPaddingInlineStart(): number; /** * Returns the interaction scroll behavior for UI controls. * Continuous multi-slide loops use instant snapping to avoid blank edge states * while the browser is still animating a previous smooth scroll. * @returns {string} */ getControlBehavior(): string; /** * Sets up the IntersectionObserver for the Carousel. */ setIntersectionObserver(): void; intersectionObserver: IntersectionObserver; entriesMap: Map; records: IntersectionObserverEntry[]; /** * Goes to the slide. * @param index * @param behavior * @param next */ goToSlide(index: any, behavior?: string, next?: boolean): void; /** * Sets the active class on the currently targeted visual slide and removes it elsewhere. * @param {number} vIndex */ setActiveVisualSlide(vIndex: number): void; /** * Syncs ARIA attributes on the carousel and slides. */ syncAria(): void; /** * Clones the first and last items. */ cloneFirstAndLastItems(): void; /** * Creates a sanitized loop clone that does not inherit transient render state * such as inline `visibility: hidden` from the source slide. * @param {HTMLElement} item * @returns {HTMLElement} */ createLoopClone(item: HTMLElement): HTMLElement; /** * Removes loop clones so they can be rebuilt for the current configuration. */ removeLoopClones(): void; /** * Returns how many slides should be cloned on each side when loop is enabled. * @param {number} totalSlides * @returns {number} */ getLoopCloneCount(totalSlides?: number): number; /** * Scrolls the carousel to a visual slide index. * @param {number} vIndex * @param {string} behavior */ scrollToVisualIndex(vIndex: number, behavior?: string): void; snapRestoreFrame: any; /** * Goes to the next slide. */ removeActiveSlide(): void; /** * Goes to the next slide. */ changePagination(): void; /** * Goes to the next slide. */ changeThumbnails(): void; /** * Goes to the next slide. * @returns {Element} */ createNextButton(): Element; /** * Goes to the next slide. * @returns {Element} */ createPreviousButton(): Element; /** * Goes to the next slide. * @returns {Element} */ createPagination(): Element; /** * Goes to the next slide. * @returns {Element} */ createThumbnails(): Element; /** * Goes to the next slide. */ nextSlide(): void; /** * Goes to the previous slide. */ previousSlide(): void; /** * Goes to the slide. * @returns {Array} */ getSlides(): any[]; /** * Goes to the slide. * @returns {Array} */ getSlidesWithClones(): any[]; /** Maps logical index to visual index, including leading clones when loop is enabled. */ getVisualIndexForLogical(index: any): any; /** Maps visual index to logical index, including edge clones when loop is enabled. */ getLogicalIndexForVisual(vIndex: any): any; /** * Returns the maximum logical slide index that can still render a full viewport. * @param {number} totalSlides * @returns {number} */ getMaxVisibleStartIndex(totalSlides?: number): number; /** * Normalizes a logical index for the active loop mode. * @param {number} index * @param {number} totalSlides * @returns {number} */ normalizeLoopIndex(index: number, totalSlides?: number): number; /** * Returns how many logical positions are reachable for the current loop mode. * @param {number} totalSlides * @returns {number} */ getLoopLogicalCount(totalSlides?: number): number; /** * Returns the pagination indexes for the current carousel mode. * @returns {number[]} */ getPaginationIndexes(): number[]; /** * Goes to the slide. * @returns {boolean} */ canGoNext(): boolean; /** * Goes to the slide. * @returns {boolean} */ canGoPrevious(): boolean; }