import Base from '../elements/BaseWidget.js'; import Gyre from '../lib/gyre.js'; import type PopoverGallery from '../elements/PopoverGallery.js'; import type BasePost from '../elements/BasePost.js'; import type { PropChangeEvent, Posts, WidgetSettings, FeedMetadata, Breakpoint, Breakpoints } from '../types'; export default class ElasticCarousel extends Base { label: string; widgetSettings?: WidgetSettings; feedMetadata?: FeedMetadata; posts?: Posts; previewLoadingColors?: string; startIndex: number; containerEl?: HTMLElement; headerEl?: HTMLElement; innerEl?: HTMLElement; footerEl?: HTMLElement; instagramLogoEl?: HTMLImageElement; labelEl?: HTMLLinkElement; leftArrowEl?: HTMLButtonElement; rightArrowEl?: HTMLButtonElement; slidesContainerEl?: HTMLElement; postEls: Array; popoverGalleryEl?: PopoverGallery; langDirection: 'ltr' | 'rtl'; appliedBreakpoint?: Breakpoint; medianPaletteHSL?: Array; gyre: Gyre; constructor(); setup(): void; _updateLangDirection(): void; _buildLabel(): void; /** * Handle a slide change */ _handleSlideChange(index: number): void; /** * Handle reaching the end */ _handleEnd(atEnd: boolean): void; _handlePropChange({ changedProp, oldValue, newValue, }: PropChangeEvent): void; _handlePostsChange(): void; _handleSettingsChange(oldValue?: WidgetSettings, newValue?: WidgetSettings): void; _handleMetadataChange(): void; /** * Enable popup carousel */ enablePopoverGallery(): Promise; _handleResize(entry: ResizeObserverEntry): void; /** * Handle prev post focus */ _handleFocusPreviousPost(): void; /** * Handle next post focus */ _handleFocusNextPost(): void; /** * Handle post click */ _handlePostClick(post: BasePost): void; /** * Advance to next slide */ _advance(): void; /** * Retreat to previous slide */ _retreat(): void; renderPosts(breakpoint: Breakpoint): void; getMatchingBreakpoint(width: number, breakpoints: Breakpoints): { width: string; numPosts: number; borderRadius: string; applyBorderRadiusToContainer: boolean; postAspectRatio: [number, number]; numColumns: number; gap: { [key: string]: number; }; galleryWallLayout: Array; galleryWallNamedLayout: string; forcePostAspectRatio: boolean; snapToSlide: boolean; bindToScrollPos: boolean; showControls: boolean; controlsPosition: "top" | "bottom" | "sides"; controlsJustification: "left" | "right" | "center" | "split"; controlsMargin: number; buttonBorderRadius: number; showLabel: boolean; labelPosition: "top" | "bottom"; labelJustification: "left" | "right" | "center"; postHeight: number; }; renderBreakpoint(breakpoint: Breakpoint, forceRender?: boolean): void; createPostEls(breakpoint: Breakpoint): Array; static register(name?: string): string; } declare global { interface HTMLElementTagNameMap { 'behold-elastic-carousel': ElasticCarousel; } } //# sourceMappingURL=ElasticCarousel.d.ts.map