Skip to content

Commit

Permalink
feat(swiper): expose full API (#19137)
Browse files Browse the repository at this point in the history
* expose full swiper API

* update types

* run build

* run angular build
  • Loading branch information
liamdebeasi authored Aug 27, 2019
1 parent 0e18f04 commit e1fa461
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 5 deletions.
2 changes: 1 addition & 1 deletion angular/src/directives/proxies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -807,7 +807,7 @@ export class IonSlides {
proxyOutputs(this, this.el, ['ionSlidesDidLoad', 'ionSlideTap', 'ionSlideDoubleTap', 'ionSlideWillChange', 'ionSlideDidChange', 'ionSlideNextStart', 'ionSlidePrevStart', 'ionSlideNextEnd', 'ionSlidePrevEnd', 'ionSlideTransitionStart', 'ionSlideTransitionEnd', 'ionSlideDrag', 'ionSlideReachStart', 'ionSlideReachEnd', 'ionSlideTouchStart', 'ionSlideTouchEnd']);
}
}
proxyMethods(IonSlides, ['update', 'updateAutoHeight', 'slideTo', 'slideNext', 'slidePrev', 'getActiveIndex', 'getPreviousIndex', 'length', 'isEnd', 'isBeginning', 'startAutoplay', 'stopAutoplay', 'lockSwipeToNext', 'lockSwipeToPrev', 'lockSwipes']);
proxyMethods(IonSlides, ['update', 'updateAutoHeight', 'slideTo', 'slideNext', 'slidePrev', 'getActiveIndex', 'getPreviousIndex', 'length', 'isEnd', 'isBeginning', 'startAutoplay', 'stopAutoplay', 'lockSwipeToNext', 'lockSwipeToPrev', 'lockSwipes', 'getSwiper']);
proxyInputs(IonSlides, ['mode', 'options', 'pager', 'scrollbar']);

export declare interface IonSpinner extends Components.IonSpinner {}
Expand Down
1 change: 1 addition & 0 deletions core/api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1068,6 +1068,7 @@ ion-slides,prop,pager,boolean,false,false,false
ion-slides,prop,scrollbar,boolean,false,false,false
ion-slides,method,getActiveIndex,getActiveIndex() => Promise<number>
ion-slides,method,getPreviousIndex,getPreviousIndex() => Promise<number>
ion-slides,method,getSwiper,getSwiper() => Promise<any>
ion-slides,method,isBeginning,isBeginning() => Promise<boolean>
ion-slides,method,isEnd,isEnd() => Promise<boolean>
ion-slides,method,length,length() => Promise<number>
Expand Down
4 changes: 4 additions & 0 deletions core/src/components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2388,6 +2388,10 @@ export namespace Components {
*/
'getPreviousIndex': () => Promise<number>;
/**
* Get the Swiper instance. Use this to access the full Swiper API. See https://idangero.us/swiper/api/ for all API options.
*/
'getSwiper': () => Promise<any>;
/**
* Get whether or not the current slide is the first slide.
*/
'isBeginning': () => Promise<boolean>;
Expand Down
12 changes: 12 additions & 0 deletions core/src/components/slides/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -614,6 +614,18 @@ Type: `Promise<number>`



### `getSwiper() => Promise<any>`

Get the Swiper instance.
Use this to access the full Swiper API.
See https://idangero.us/swiper/api/ for all API options.

#### Returns

Type: `Promise<any>`



### `isBeginning() => Promise<boolean>`

Get whether or not the current slide is the first slide.
Expand Down
14 changes: 10 additions & 4 deletions core/src/components/slides/slides.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,16 @@ export class Slides implements ComponentInterface {
swiper.allowTouchMove = !lock;
}

/**
* Get the Swiper instance.
* Use this to access the full Swiper API.
* See https://idangero.us/swiper/api/ for all API options.
*/
@Method()
async getSwiper(): Promise<any> {
return this.swiper;
}

private async initSwiper() {
const finalOptions = this.normalizeOptions();

Expand All @@ -332,10 +342,6 @@ export class Slides implements ComponentInterface {
this.readySwiper(swiper);
}

private getSwiper() {
return this.swiper;
}

private normalizeOptions(): SwiperOptions {
// Base options, can be changed
// TODO Add interface SwiperOptions
Expand Down

0 comments on commit e1fa461

Please sign in to comment.