import { Component, Children, cloneElement } from 'react'; import cx from 'classnames'; import { WindowResizeHandler } from '../utils/component/WindowResizeHandler'; import Icon from '../icon'; import SwiperDots, { IDotsType, IDotsTheme } from './SwiperDots'; function setStyle(target: any, styles: any) { const { style } = target; Object.keys(styles).forEach(attribute => { style[attribute] = styles[attribute]; }); } export interface ISwiperProps { className?: string; transitionDuration?: number; autoplay?: boolean; autoplayInterval?: number; dots?: boolean | IDotsType; dotsColor?: string; dotsSize?: 'normal' | 'small' | 'large'; dotsTheme?: IDotsTheme; arrows?: boolean | 'hover'; arrowsDisabled?: { left?: boolean; right?: boolean; }; arrowsSize: 'normal' | 'large'; arrowsType?: 'dark' | 'light'; onChange?: (current: number, prev: number | null) => void; children?: React.ReactNode; renderPrevArrow?: (onPrev: () => void, disabled: boolean) => React.ReactNode; renderNextArrow?: (onNext: () => void, disabled: boolean) => React.ReactNode; } export interface ISwiperState { currentIndex: number; prevProps?: ISwiperProps; } const defaultRenderPrevArrow: ISwiperProps['renderPrevArrow'] = ( onPrev, disabled ) => { return (