swiper-react.d.ts 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467
  1. import * as React from 'react';
  2. import { SwiperOptions, Swiper as SwiperClass } from '../types/';
  3. interface Swiper extends SwiperOptions {
  4. /**
  5. * Swiper container tag
  6. *
  7. * @default 'div'
  8. */
  9. tag?: string;
  10. /**
  11. * Swiper wrapper tag
  12. *
  13. * @default 'div'
  14. */
  15. wrapperTag?: string;
  16. /**
  17. * Get Swiper instance
  18. */
  19. onSwiper?: (swiper: SwiperClass) => void;
  20. /**
  21. * Event will be fired in when autoplay started
  22. */
  23. onAutoplayStart?: (swiper: SwiperClass) => void;
  24. /**
  25. * Event will be fired when autoplay stopped
  26. */
  27. onAutoplayStop?: (swiper: SwiperClass) => void;
  28. /**
  29. * Event will be fired when slide changed with autoplay
  30. */
  31. onAutoplay?: (swiper: SwiperClass) => void;/**
  32. * Event will be fired on window hash change
  33. */
  34. onHashChange?: (swiper: SwiperClass) => void;
  35. /**
  36. * Event will be fired when swiper updates the hash
  37. */
  38. onHashSet?: (swiper: SwiperClass) => void;/**
  39. * Event will be fired on mousewheel scroll
  40. */
  41. onScroll?: (swiper: SwiperClass, event: WheelEvent) => void;/**
  42. * Event will be fired in the beginning of lazy loading of image
  43. */
  44. onLazyImageLoad?: (swiper: SwiperClass, slideEl: HTMLElement, imageEl: HTMLElement) => void;
  45. /**
  46. * Event will be fired when lazy loading image will be loaded
  47. */
  48. onLazyImageReady?: (swiper: SwiperClass, slideEl: HTMLElement, imageEl: HTMLElement) => void;/**
  49. * Event will be fired on key press
  50. */
  51. onKeyPress?: (swiper: SwiperClass, keyCode: string) => void;/**
  52. * Event will be fired on navigation hide
  53. */
  54. onNavigationHide?: (swiper: SwiperClass) => void;
  55. /**
  56. * Event will be fired on navigation show
  57. */
  58. onNavigationShow?: (swiper: SwiperClass) => void;/**
  59. * Event will be fired on draggable scrollbar drag start
  60. */
  61. onScrollbarDragStart?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  62. /**
  63. * Event will be fired on draggable scrollbar drag move
  64. */
  65. onScrollbarDragMove?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  66. /**
  67. * Event will be fired on draggable scrollbar drag end
  68. */
  69. onScrollbarDragEnd?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;/**
  70. * Event will be fired after pagination rendered
  71. */
  72. onPaginationRender?: (swiper: SwiperClass, paginationEl: HTMLElement) => void;
  73. /**
  74. * Event will be fired when pagination updated
  75. */
  76. onPaginationUpdate?: (swiper: SwiperClass, paginationEl: HTMLElement) => void;
  77. /**
  78. * Event will be fired on pagination hide
  79. */
  80. onPaginationHide?: (swiper: SwiperClass) => void;
  81. /**
  82. * Event will be fired on pagination show
  83. */
  84. onPaginationShow?: (swiper: SwiperClass) => void;/**
  85. * Event will be fired on zoom change
  86. */
  87. onZoomChange?: (swiper: SwiperClass, scale: number, imageEl: HTMLElement, slideEl: HTMLElement) => void;
  88. /**
  89. * Fired right after Swiper initialization.
  90. * @note Note that with `swiper.on('init')` syntax it will
  91. * work only in case you set `init: false` parameter.
  92. *
  93. * @example
  94. * ```js
  95. * const swiper = new Swiper('.swiper', {
  96. * init: false,
  97. * // other parameters
  98. * });
  99. * swiper.on('init', function() {
  100. * // do something
  101. * });
  102. * // init Swiper
  103. * swiper.init();
  104. * ```
  105. *
  106. * @example
  107. * ```js
  108. * // Otherwise use it as the parameter:
  109. * const swiper = new Swiper('.swiper', {
  110. * // other parameters
  111. * on: {
  112. * init: function () {
  113. * // do something
  114. * },
  115. * }
  116. * });
  117. * ```
  118. */
  119. onInit?: (swiper: SwiperClass) => any;
  120. /**
  121. * Event will be fired right before Swiper destroyed
  122. */
  123. onBeforeDestroy?: (swiper: SwiperClass) => void;
  124. /**
  125. * Event will be fired when currently active slide is changed
  126. */
  127. onSlideChange?: (swiper: SwiperClass) => void;
  128. /**
  129. * Event will be fired in the beginning of animation to other slide (next or previous).
  130. */
  131. onSlideChangeTransitionStart?: (swiper: SwiperClass) => void;
  132. /**
  133. * Event will be fired after animation to other slide (next or previous).
  134. */
  135. onSlideChangeTransitionEnd?: (swiper: SwiperClass) => void;
  136. /**
  137. * Same as "slideChangeTransitionStart" but for "forward" direction only
  138. */
  139. onSlideNextTransitionStart?: (swiper: SwiperClass) => void;
  140. /**
  141. * Same as "slideChangeTransitionEnd" but for "forward" direction only
  142. */
  143. onSlideNextTransitionEnd?: (swiper: SwiperClass) => void;
  144. /**
  145. * Same as "slideChangeTransitionStart" but for "backward" direction only
  146. */
  147. onSlidePrevTransitionStart?: (swiper: SwiperClass) => void;
  148. /**
  149. * Same as "slideChangeTransitionEnd" but for "backward" direction only
  150. */
  151. onSlidePrevTransitionEnd?: (swiper: SwiperClass) => void;
  152. /**
  153. * Event will be fired in the beginning of transition.
  154. */
  155. onTransitionStart?: (swiper: SwiperClass) => void;
  156. /**
  157. * Event will be fired after transition.
  158. */
  159. onTransitionEnd?: (swiper: SwiperClass) => void;
  160. /**
  161. * Event will be fired when user touch Swiper. Receives `touchstart` event as an arguments.
  162. */
  163. onTouchStart?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  164. /**
  165. * Event will be fired when user touch and move finger over Swiper. Receives `touchmove` event as an arguments.
  166. */
  167. onTouchMove?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  168. /**
  169. * Event will be fired when user touch and move finger over Swiper in direction opposite to direction parameter. Receives `touchmove` event as an arguments.
  170. */
  171. onTouchMoveOpposite?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  172. /**
  173. * Event will be fired when user touch and move finger over Swiper and move it. Receives `touchmove` event as an arguments.
  174. */
  175. onSliderMove?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  176. /**
  177. * Event will be fired when user release Swiper. Receives `touchend` event as an arguments.
  178. */
  179. onTouchEnd?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  180. /**
  181. * Event will be fired when user click/tap on Swiper. Receives `touchend` event as an arguments.
  182. */
  183. onClick?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  184. /**
  185. * Event will be fired when user click/tap on Swiper. Receives `touchend` event as an arguments.
  186. */
  187. onTap?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  188. /**
  189. * Event will be fired when user double tap on Swiper's container. Receives `touchend` event as an arguments
  190. */
  191. onDoubleTap?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  192. /**
  193. * Event will be fired right after all inner images are loaded. updateOnImagesReady should be also enabled
  194. */
  195. onImagesReady?: (swiper: SwiperClass) => void;
  196. /**
  197. * Event will be fired when Swiper progress is changed, as an arguments it receives progress that is always from 0 to 1
  198. */
  199. onProgress?: (swiper: SwiperClass, progress: number) => void;
  200. /**
  201. * Event will be fired when Swiper reach its beginning (initial position)
  202. */
  203. onReachBeginning?: (swiper: SwiperClass) => void;
  204. /**
  205. * Event will be fired when Swiper reach last slide
  206. */
  207. onReachEnd?: (swiper: SwiperClass) => void;
  208. /**
  209. * Event will be fired when Swiper goes to beginning or end position
  210. */
  211. onToEdge?: (swiper: SwiperClass) => void;
  212. /**
  213. * Event will be fired when Swiper goes from beginning or end position
  214. */
  215. onFromEdge?: (swiper: SwiperClass) => void;
  216. /**
  217. * Event will be fired when swiper's wrapper change its position. Receives current translate value as an arguments
  218. */
  219. onSetTranslate?: (swiper: SwiperClass, translate: number) => void;
  220. /**
  221. * Event will be fired everytime when swiper starts animation. Receives current transition duration (in ms) as an arguments
  222. */
  223. onSetTransition?: (swiper: SwiperClass, transition: number) => void;
  224. /**
  225. * Event will be fired on window resize right before swiper's onresize manipulation
  226. */
  227. onResize?: (swiper: SwiperClass) => void;
  228. /**
  229. * Event will be fired if observer is enabled and it detects DOM mutations
  230. */
  231. onObserverUpdate?: (swiper: SwiperClass) => void;
  232. /**
  233. * Event will be fired right before "loop fix"
  234. */
  235. onBeforeLoopFix?: (swiper: SwiperClass) => void;
  236. /**
  237. * Event will be fired after "loop fix"
  238. */
  239. onLoopFix?: (swiper: SwiperClass) => void;
  240. /**
  241. * Event will be fired on breakpoint change
  242. */
  243. onBreakpoint?: (swiper: SwiperClass, breakpointParams: SwiperOptions) => void;
  244. /**
  245. * !INTERNAL: Event will fired right before breakpoint change
  246. */
  247. _beforeBreakpoint?: (swiper: SwiperClass, breakpointParams: SwiperOptions) => void;
  248. /**
  249. * !INTERNAL: Event will fired after setting CSS classes on swiper container element
  250. */
  251. _containerClasses?: (swiper: SwiperClass, classNames: string) => void;
  252. /**
  253. * !INTERNAL: Event will fired after setting CSS classes on swiper slide element
  254. */
  255. _slideClass?: (swiper: SwiperClass, slideEl: HTMLElement, classNames: string) => void;
  256. /**
  257. * !INTERNAL: Event will fired after setting CSS classes on all swiper slides
  258. */
  259. _slideClasses?: (
  260. swiper: SwiperClass,
  261. slides: { slideEl: HTMLElement; classNames: string; index: number }[],
  262. ) => void;
  263. /**
  264. * !INTERNAL: Event will fired as soon as swiper instance available (before init)
  265. */
  266. _swiper?: (swiper: SwiperClass) => void;
  267. /**
  268. * !INTERNAL: Event will be fired on free mode touch end (release) and there will no be momentum
  269. */
  270. _freeModeNoMomentumRelease?: (swiper: SwiperClass) => void;
  271. /**
  272. * Event will fired on active index change
  273. */
  274. onActiveIndexChange?: (swiper: SwiperClass) => void;
  275. /**
  276. * Event will fired on snap index change
  277. */
  278. onSnapIndexChange?: (swiper: SwiperClass) => void;
  279. /**
  280. * Event will fired on real index change
  281. */
  282. onRealIndexChange?: (swiper: SwiperClass) => void;
  283. /**
  284. * Event will fired right after initialization
  285. */
  286. onAfterInit?: (swiper: SwiperClass) => void;
  287. /**
  288. * Event will fired right before initialization
  289. */
  290. onBeforeInit?: (swiper: SwiperClass) => void;
  291. /**
  292. * Event will fired before resize handler
  293. */
  294. onBeforeResize?: (swiper: SwiperClass) => void;
  295. /**
  296. * Event will fired before slide change transition start
  297. */
  298. onBeforeSlideChangeStart?: (swiper: SwiperClass) => void;
  299. /**
  300. * Event will fired before transition start
  301. */
  302. onBeforeTransitionStart?: (swiper: SwiperClass, speed: number, internal: any) => void; // what is internal?
  303. /**
  304. * Event will fired on direction change
  305. */
  306. onChangeDirection?: (swiper: SwiperClass) => void;
  307. /**
  308. * Event will be fired when user double click/tap on Swiper
  309. */
  310. onDoubleClick?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;
  311. /**
  312. * Event will be fired on swiper destroy
  313. */
  314. onDestroy?: (swiper: SwiperClass) => void;
  315. /**
  316. * Event will be fired on momentum bounce
  317. */
  318. onMomentumBounce?: (swiper: SwiperClass) => void;
  319. /**
  320. * Event will be fired on orientation change (e.g. landscape -> portrait)
  321. */
  322. onOrientationchange?: (swiper: SwiperClass) => void;
  323. /**
  324. * Event will be fired in the beginning of animation of resetting slide to current one
  325. */
  326. onSlideResetTransitionStart?: (swiper: SwiperClass) => void;
  327. /**
  328. * Event will be fired in the end of animation of resetting slide to current one
  329. */
  330. onSlideResetTransitionEnd?: (swiper: SwiperClass) => void;
  331. /**
  332. * Event will be fired with first touch/drag move
  333. */
  334. onSliderFirstMove?: (swiper: SwiperClass, event: TouchEvent) => void;
  335. /**
  336. * Event will be fired when number of slides has changed
  337. */
  338. onSlidesLengthChange?: (swiper: SwiperClass) => void;
  339. /**
  340. * Event will be fired when slides grid has changed
  341. */
  342. onSlidesGridLengthChange?: (swiper: SwiperClass) => void;
  343. /**
  344. * Event will be fired when snap grid has changed
  345. */
  346. onSnapGridLengthChange?: (swiper: SwiperClass) => void;
  347. /**
  348. * Event will be fired after swiper.update() call
  349. */
  350. onUpdate?: (swiper: SwiperClass) => void;
  351. /**
  352. * Event will be fired when swiper is locked (when `watchOverflow` enabled)
  353. */
  354. onLock?: (swiper: SwiperClass) => void;
  355. /**
  356. * Event will be fired when swiper is unlocked (when `watchOverflow` enabled)
  357. */
  358. onUnlock?: (swiper: SwiperClass) => void;
  359. }
  360. interface SlideData {
  361. isActive: boolean;
  362. isVisible: boolean;
  363. isDuplicate: boolean;
  364. isPrev: boolean;
  365. isNext: boolean;
  366. }
  367. interface SwiperSlide {
  368. /**
  369. * Slide tag
  370. *
  371. * @default 'div'
  372. */
  373. tag?: string;
  374. /**
  375. * Enables additional wrapper required for zoom mode
  376. *
  377. * @default false
  378. */
  379. zoom?: boolean;
  380. /**
  381. * Slide's index in slides array/collection
  382. *
  383. * @default false
  384. */
  385. virtualIndex?: number;
  386. /**
  387. * Slide's child element or render function
  388. *
  389. * @default undefined
  390. */
  391. children?: React.ReactNode | ((slideData: SlideData) => React.ReactNode);
  392. }
  393. interface Swiper
  394. extends Omit<
  395. React.HTMLAttributes<HTMLElement>,
  396. | 'onProgress'
  397. | 'onClick'
  398. | 'onTouchEnd'
  399. | 'onTouchMove'
  400. | 'onTouchStart'
  401. | 'onTransitionEnd'
  402. | 'onKeyPress'
  403. | 'onDoubleClick'
  404. | 'onScroll'
  405. > {}
  406. interface SwiperSlide extends React.HTMLAttributes<HTMLElement> {}
  407. declare const Swiper: React.FunctionComponent<Swiper>;
  408. declare const SwiperSlide: React.VoidFunctionComponent<SwiperSlide>;
  409. export { Swiper, SwiperSlide };