Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
import { ReactNode, KeyboardEvent } from 'react';
/**
 * DEFAULT PROPS
 */
interface MediaCarouselCommonProps {
    gridGap: number;
    flexWidth?: number;
    desktopColSpan?: number;
    tabletColSpan?: number;
    mobileColSpan?: number;
}
/**
 * RENDER PROPS
 */
interface MediaCarouselRenderProp extends Function {
    (props: MediaCarouselProps, state?: MediaCarouselStateType): ReactNode;
}
interface ItemRenderProp extends Function {
    (item: CarouselItemProps, state?: MediaCarouselStateType): ReactNode;
}
interface CarouselItemProps {
    [key: string]: string | number | boolean;
}
interface KeyboardEventProps {
    (event: KeyboardEvent): void;
}
type CarouselListType = Array<CarouselItemProps>;
/**
 * MEDIA CAROUSEL PROPS
 */
interface MediaCarouselProps extends MediaCarouselCommonProps {
    className?: string;
    children?: ReactNode;
    state?: MediaCarouselStateType;
    list: CarouselListType;
    itemHeight: number | string;
    hasBullets?: boolean;
    hasArrows?: boolean;
    renderItem: ItemRenderProp;
    renderList?: MediaCarouselRenderProp;
    renderArrows?: MediaCarouselRenderProp;
    renderBullets?: MediaCarouselRenderProp;
    renderWrapper?: MediaCarouselRenderProp;
    handleArrowNavigation?: KeyboardEventProps;
}
/**
 * STATE
 */
export interface MediaCarouselStateType {
    position: number;
    count: number;
    slides: number;
    hasPreviousSlide: boolean;
    hasNextSlide: boolean;
    translatePercentage?: number;
    setStep(step: number): void;
    setPosition(currentPosition: number): void;
    toNext(): void;
    toPrevious(): void;
    goTo(position: number): void;
    update(props: MediaCarouselProps): void;
}
declare namespace CssProps {
    type ItemHeight = number;
    type GridGap = number;
    type FlexWidth = number;
    type TranslatePercentage = number;
    type isActive = boolean;
}
export { CarouselItemProps, MediaCarouselProps, CssProps };