chowa
Version:
UI component library based on React
89 lines (88 loc) • 2.75 kB
TypeScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import * as PropTypes from 'prop-types';
export interface CarouselProps {
className?: string;
style?: React.CSSProperties;
current?: number;
autoPlay?: boolean;
delay?: number;
showPages?: boolean;
pagesPlacement?: 'inside' | 'outside';
showArrow?: boolean;
arrowTrigger?: 'hover' | 'always' | 'never';
effect?: 'slide' | 'fade' | 'smash';
smashRow?: number;
smashCol?: number;
}
export interface CarouselState {
clientWidth: number;
clientHeight: number;
activeIndex: number;
amount: number;
arrowVisible: boolean;
slideEffectStyle: React.CSSProperties;
slideLock: boolean;
}
declare class Carousel extends React.PureComponent<CarouselProps, CarouselState> {
static propTypes: {
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
current: PropTypes.Requireable<number>;
autoPlay: PropTypes.Requireable<boolean>;
delay: PropTypes.Requireable<number>;
showPages: PropTypes.Requireable<boolean>;
pagesPlacement: PropTypes.Requireable<string>;
showArrow: PropTypes.Requireable<boolean>;
arrowTrigger: PropTypes.Requireable<string>;
effect: PropTypes.Requireable<string>;
smashRow: PropTypes.Requireable<number>;
smashCol: PropTypes.Requireable<number>;
};
static defaultProps: {
current: number;
autoPlay: boolean;
delay: number;
showPages: boolean;
pagesPlacement: string;
showArrow: boolean;
arrowTrigger: string;
effect: string;
smashRow: number;
smashCol: number;
};
static Item: React.SFC<import("./carousel-item").CarouselItemProps>;
private timer;
private resizeObserver;
private wrapperEle;
constructor(props: CarouselProps & {
children: React.ReactNode;
});
componentDidMount(): void;
componentDidUpdate(preProps: CarouselProps & {
children: React.ReactNode;
}): void;
componentWillUnmount(): void;
private updateRenderParams;
private computedItemAmount;
private clearTimer;
private crontab;
private preItemHandler;
private nextItemHandler;
private onMouseLeaveHandler;
private onMouseEnterHandler;
private selectPageHandler;
private onSlideTransitionEnd;
private compileItems;
private renderPages;
private renderArrow;
render(): JSX.Element;
}
export default Carousel;