diff --git a/playground/angular/src/app/home/home.component.ts b/playground/angular/src/app/home/home.component.ts index 4f3d8279d..da3df0e65 100644 --- a/playground/angular/src/app/home/home.component.ts +++ b/playground/angular/src/app/home/home.component.ts @@ -1,7 +1,7 @@ -import { SwiperEvents } from './../../../../../src/types/swiper-events.d'; +import { SwiperEvents } from 'src/types/swiper-events.d'; import { ChangeDetectorRef, Component, NgZone, ViewChild } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; -import { SwiperComponent } from 'src/angular/src/public-api'; +import { SwiperComponent, EventsParams } from 'src/angular/src/public-api'; import SwiperCore, { Navigation, Pagination, @@ -41,7 +41,7 @@ export class HomePage { constructor(private cd: ChangeDetectorRef, private ngZone: NgZone) {} ngOnInit() {} - testEvent(event: Parameters) { + testEvent(event: EventsParams['beforeTransitionStart']) { const [swiper, speed, internal] = event; console.log({ swiper, speed, internal }); } @@ -119,7 +119,7 @@ export class HomePage { slidesEx = ['first', 'second']; - onSlideChange(event: Parameters) { + onSlideChange(event: EventsParams['slideChange']) { const [swiper] = event; if (swiper.isEnd) { // all swiper events are run outside of ngzone, so use ngzone.run or detectChanges to update the view. diff --git a/src/angular/src/public-api.ts b/src/angular/src/public-api.ts index b353843f9..86d4d2661 100644 --- a/src/angular/src/public-api.ts +++ b/src/angular/src/public-api.ts @@ -1,6 +1,7 @@ /* * Public API Surface of angular */ +export * from './swiper-events'; export * from './swiper.module'; export * from './swiper.component'; export * from './swiper-slide.directive'; diff --git a/src/angular/src/swiper-events.ts b/src/angular/src/swiper-events.ts new file mode 100644 index 000000000..5b1bd9b56 --- /dev/null +++ b/src/angular/src/swiper-events.ts @@ -0,0 +1,5 @@ +import { SwiperEvents } from 'swiper/types'; + +export type EventsParams = { + [Property in keyof SwiperEvents]: Parameters; +}; diff --git a/src/angular/src/swiper.component.ts b/src/angular/src/swiper.component.ts index d1f361bc2..4c5a3e329 100644 --- a/src/angular/src/swiper.component.ts +++ b/src/angular/src/swiper.component.ts @@ -22,6 +22,7 @@ import Swiper from 'swiper'; import { Observable, of, Subject } from 'rxjs'; import { getParams } from './utils/get-params'; import { SwiperSlideDirective } from './swiper-slide.directive'; +import { EventsParams } from './swiper-events'; import { extend, isObject, @@ -243,264 +244,218 @@ export class SwiperComponent implements OnInit { Object.assign(this, params); } @Output('_beforeBreakpoint') s__beforeBreakpoint = new EventEmitter< - Parameters + EventsParams['_beforeBreakpoint'] >(); @Output('_containerClasses') s__containerClasses = new EventEmitter< - Parameters + EventsParams['_containerClasses'] >(); - @Output('_slideClass') s__slideClass = new EventEmitter< - Parameters - >(); + @Output('_slideClass') s__slideClass = new EventEmitter(); - @Output('_swiper') s__swiper = new EventEmitter>(); + @Output('_swiper') s__swiper = new EventEmitter(); @Output('activeIndexChange') s_activeIndexChange = new EventEmitter< - Parameters + EventsParams['activeIndexChange'] >(); - @Output('afterInit') s_afterInit = new EventEmitter>(); + @Output('afterInit') s_afterInit = new EventEmitter(); - @Output('autoplay') s_autoplay = new EventEmitter>(); + @Output('autoplay') s_autoplay = new EventEmitter(); - @Output('autoplayStart') s_autoplayStart = new EventEmitter< - Parameters - >(); + @Output('autoplayStart') s_autoplayStart = new EventEmitter(); - @Output('autoplayStop') s_autoplayStop = new EventEmitter< - Parameters - >(); + @Output('autoplayStop') s_autoplayStop = new EventEmitter(); - @Output('autoplayPause') s_autoplayPause = new EventEmitter< - Parameters - >(); + @Output('autoplayPause') s_autoplayPause = new EventEmitter(); - @Output('autoplayResume') s_autoplayResume = new EventEmitter< - Parameters - >(); + @Output('autoplayResume') s_autoplayResume = new EventEmitter(); - @Output('beforeDestroy') s_beforeDestroy = new EventEmitter< - Parameters - >(); + @Output('beforeDestroy') s_beforeDestroy = new EventEmitter(); - @Output('beforeInit') s_beforeInit = new EventEmitter>(); + @Output('beforeInit') s_beforeInit = new EventEmitter(); - @Output('beforeLoopFix') s_beforeLoopFix = new EventEmitter< - Parameters - >(); + @Output('beforeLoopFix') s_beforeLoopFix = new EventEmitter(); - @Output('beforeResize') s_beforeResize = new EventEmitter< - Parameters - >(); + @Output('beforeResize') s_beforeResize = new EventEmitter(); @Output('beforeSlideChangeStart') s_beforeSlideChangeStart = new EventEmitter< - Parameters + EventsParams['beforeSlideChangeStart'] >(); @Output('beforeTransitionStart') s_beforeTransitionStart = new EventEmitter< - Parameters + EventsParams['beforeTransitionStart'] >(); - @Output('breakpoint') s_breakpoint = new EventEmitter>(); + @Output('breakpoint') s_breakpoint = new EventEmitter(); @Output('changeDirection') s_changeDirection = new EventEmitter< - Parameters + EventsParams['changeDirection'] >(); - @Output('click') s_click = new EventEmitter>(); + @Output('click') s_click = new EventEmitter(); - @Output('doubleTap') s_doubleTap = new EventEmitter>(); + @Output('doubleTap') s_doubleTap = new EventEmitter(); - @Output('doubleClick') s_doubleClick = new EventEmitter< - Parameters - >(); + @Output('doubleClick') s_doubleClick = new EventEmitter(); - @Output('destroy') s_destroy = new EventEmitter>(); + @Output('destroy') s_destroy = new EventEmitter(); - @Output('fromEdge') s_fromEdge = new EventEmitter>(); + @Output('fromEdge') s_fromEdge = new EventEmitter(); - @Output('hashChange') s_hashChange = new EventEmitter>(); + @Output('hashChange') s_hashChange = new EventEmitter(); - @Output('hashSet') s_hashSet = new EventEmitter>(); + @Output('hashSet') s_hashSet = new EventEmitter(); - @Output('imagesReady') s_imagesReady = new EventEmitter< - Parameters - >(); + @Output('imagesReady') s_imagesReady = new EventEmitter(); - @Output('init') s_init = new EventEmitter>(); + @Output('init') s_init = new EventEmitter(); - @Output('keyPress') s_keyPress = new EventEmitter>(); + @Output('keyPress') s_keyPress = new EventEmitter(); - @Output('lazyImageLoad') s_lazyImageLoad = new EventEmitter< - Parameters - >(); + @Output('lazyImageLoad') s_lazyImageLoad = new EventEmitter(); - @Output('lazyImageReady') s_lazyImageReady = new EventEmitter< - Parameters - >(); + @Output('lazyImageReady') s_lazyImageReady = new EventEmitter(); - @Output('loopFix') s_loopFix = new EventEmitter>(); + @Output('loopFix') s_loopFix = new EventEmitter(); - @Output('momentumBounce') s_momentumBounce = new EventEmitter< - Parameters - >(); + @Output('momentumBounce') s_momentumBounce = new EventEmitter(); - @Output('navigationHide') s_navigationHide = new EventEmitter< - Parameters - >(); + @Output('navigationHide') s_navigationHide = new EventEmitter(); - @Output('navigationShow') s_navigationShow = new EventEmitter< - Parameters - >(); + @Output('navigationShow') s_navigationShow = new EventEmitter(); - @Output('observerUpdate') s_observerUpdate = new EventEmitter< - Parameters - >(); + @Output('observerUpdate') s_observerUpdate = new EventEmitter(); @Output('orientationchange') s_orientationchange = new EventEmitter< - Parameters + EventsParams['orientationchange'] >(); - @Output('paginationHide') s_paginationHide = new EventEmitter< - Parameters - >(); + @Output('paginationHide') s_paginationHide = new EventEmitter(); @Output('paginationRender') s_paginationRender = new EventEmitter< - Parameters + EventsParams['paginationRender'] >(); - @Output('paginationShow') s_paginationShow = new EventEmitter< - Parameters - >(); + @Output('paginationShow') s_paginationShow = new EventEmitter(); @Output('paginationUpdate') s_paginationUpdate = new EventEmitter< - Parameters + EventsParams['paginationUpdate'] >(); - @Output('progress') s_progress = new EventEmitter>(); + @Output('progress') s_progress = new EventEmitter(); - @Output('reachBeginning') s_reachBeginning = new EventEmitter< - Parameters - >(); + @Output('reachBeginning') s_reachBeginning = new EventEmitter(); - @Output('reachEnd') s_reachEnd = new EventEmitter>(); + @Output('reachEnd') s_reachEnd = new EventEmitter(); @Output('realIndexChange') s_realIndexChange = new EventEmitter< - Parameters + EventsParams['realIndexChange'] >(); - @Output('resize') s_resize = new EventEmitter>(); + @Output('resize') s_resize = new EventEmitter(); - @Output('scroll') s_scroll = new EventEmitter>(); + @Output('scroll') s_scroll = new EventEmitter(); @Output('scrollbarDragEnd') s_scrollbarDragEnd = new EventEmitter< - Parameters + EventsParams['scrollbarDragEnd'] >(); @Output('scrollbarDragMove') s_scrollbarDragMove = new EventEmitter< - Parameters + EventsParams['scrollbarDragMove'] >(); @Output('scrollbarDragStart') s_scrollbarDragStart = new EventEmitter< - Parameters + EventsParams['scrollbarDragStart'] >(); - @Output('setTransition') s_setTransition = new EventEmitter< - Parameters - >(); + @Output('setTransition') s_setTransition = new EventEmitter(); - @Output('setTranslate') s_setTranslate = new EventEmitter< - Parameters - >(); + @Output('setTranslate') s_setTranslate = new EventEmitter(); - @Output('slideChange') s_slideChange = new EventEmitter< - Parameters - >(); + @Output('slideChange') s_slideChange = new EventEmitter(); @Output('slideChangeTransitionEnd') s_slideChangeTransitionEnd = new EventEmitter< - Parameters + EventsParams['slideChangeTransitionEnd'] >(); @Output('slideChangeTransitionStart') s_slideChangeTransitionStart = new EventEmitter< - Parameters + EventsParams['slideChangeTransitionStart'] >(); @Output('slideNextTransitionEnd') s_slideNextTransitionEnd = new EventEmitter< - Parameters + EventsParams['slideNextTransitionEnd'] >(); @Output('slideNextTransitionStart') s_slideNextTransitionStart = new EventEmitter< - Parameters + EventsParams['slideNextTransitionStart'] >(); @Output('slidePrevTransitionEnd') s_slidePrevTransitionEnd = new EventEmitter< - Parameters + EventsParams['slidePrevTransitionEnd'] >(); @Output('slidePrevTransitionStart') s_slidePrevTransitionStart = new EventEmitter< - Parameters + EventsParams['slidePrevTransitionStart'] >(); @Output('slideResetTransitionStart') s_slideResetTransitionStart = new EventEmitter< - Parameters + EventsParams['slideResetTransitionStart'] >(); @Output('slideResetTransitionEnd') s_slideResetTransitionEnd = new EventEmitter< - Parameters + EventsParams['slideResetTransitionEnd'] >(); - @Output('sliderMove') s_sliderMove = new EventEmitter>(); + @Output('sliderMove') s_sliderMove = new EventEmitter(); @Output('sliderFirstMove') s_sliderFirstMove = new EventEmitter< - Parameters + EventsParams['sliderFirstMove'] >(); @Output('slidesLengthChange') s_slidesLengthChange = new EventEmitter< - Parameters + EventsParams['slidesLengthChange'] >(); @Output('slidesGridLengthChange') s_slidesGridLengthChange = new EventEmitter< - Parameters + EventsParams['slidesGridLengthChange'] >(); @Output('snapGridLengthChange') s_snapGridLengthChange = new EventEmitter< - Parameters + EventsParams['snapGridLengthChange'] >(); @Output('snapIndexChange') s_snapIndexChange = new EventEmitter< - Parameters + EventsParams['snapIndexChange'] >(); - @Output('tap') s_tap = new EventEmitter>(); + @Output('tap') s_tap = new EventEmitter(); - @Output('toEdge') s_toEdge = new EventEmitter>(); + @Output('toEdge') s_toEdge = new EventEmitter(); - @Output('touchEnd') s_touchEnd = new EventEmitter>(); + @Output('touchEnd') s_touchEnd = new EventEmitter(); - @Output('touchMove') s_touchMove = new EventEmitter>(); + @Output('touchMove') s_touchMove = new EventEmitter(); @Output('touchMoveOpposite') s_touchMoveOpposite = new EventEmitter< - Parameters + EventsParams['touchMoveOpposite'] >(); - @Output('touchStart') s_touchStart = new EventEmitter>(); + @Output('touchStart') s_touchStart = new EventEmitter(); - @Output('transitionEnd') s_transitionEnd = new EventEmitter< - Parameters - >(); + @Output('transitionEnd') s_transitionEnd = new EventEmitter(); @Output('transitionStart') s_transitionStart = new EventEmitter< - Parameters + EventsParams['transitionStart'] >(); - @Output('update') s_update = new EventEmitter>(); + @Output('update') s_update = new EventEmitter(); - @Output('zoomChange') s_zoomChange = new EventEmitter>(); + @Output('zoomChange') s_zoomChange = new EventEmitter(); @Output('swiper') s_swiper = new EventEmitter(); - @Output('unlock') s_unlock = new EventEmitter>(); + @Output('unlock') s_unlock = new EventEmitter(); @ViewChild('prevElRef', { static: false }) set prevElRef(el: ElementRef) {