import React from 'react'; import SliderBar, { IProps as P, IState as S } from "./SliderBar"; export interface IRenderDotsProps { /** * Total slides in this slider */ totalSlides: number; /** * Current slide index (from 0) * */ currentSlide: number; /** * How many visible slides (N), slide width = 100% / N */ visibleSlides: number; /** * How mange slides per step (when click previous and next button) */ step: number; /** * How far has scrolled in %, range in [0 ~ (100 - % of visible slides)] */ left: number; /** * A function to call to slide to a target slide [from 0 ~ (length - visible slide - 1)] * @param slideIndex * @returns */ slideTo: (slideIndex: number) => void; } export interface IProps extends P { dotGroupProps?: React.HTMLAttributes; /** * To customize the dot group rendering by using the state props passed in * * @returns */ renderDots?: (props: IRenderDotsProps) => JSX.Element | JSX.Element[]; } export interface IState extends S { } export declare class SliderBarDotGroup extends SliderBar { theDot(key: number, active: boolean, onClick: () => void): JSX.Element; /** * Simple dot rendering, add "active" ClassName to those active dots * * @param props * @returns */ renderDots(props: IRenderDotsProps): JSX.Element[]; render(): JSX.Element; }