Skip to content
This repository has been archived by the owner on Feb 6, 2024. It is now read-only.

Commit

Permalink
feat: add event slideToChange
Browse files Browse the repository at this point in the history
  • Loading branch information
peterpeterparker committed Nov 28, 2018
1 parent d06ed89 commit dd37c90
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 3 deletions.
1 change: 1 addition & 0 deletions doc/features/extra.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ await deck.print();
| -------------------------- |:-----------------:|:-----------------:|
| slideNextDidChange | number | Emitted when the next slide has started. Emit the index of the new active slide. |
| slidePrevDidChange | number | Emitted when the previous slide has ended. Emit the index of the new active slide. |
| slideToChange | number | Emitted when a specific slide as selected. Emit the index of the new selected slide. |
| slideDrag | number | Emitted when the slider is actively being moved. Emit the transformX value of the deck. |
| slideWillChange | number | Emitted before the active slide has changed. Emit the transformX value of the deck. |

Expand Down
11 changes: 10 additions & 1 deletion doc/features/navigation.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ Furthermore than the default swiping, the [DeckDeckGo] deck expose the following
- [Go to next slide](#go-to-next-slide)
- [Optional parameters](#pptional-parameters)
- [Go to previous slide](#go-to-previous-slide)
- [Optional parameters](#pptional-parameters)
- [Optional parameters](#optional-parameters)
- [Go to a specific slide](#go-to-a-specific-slide)
- [Parameters](#parameters)
- [Is the deck at the begin](#is-the-deck-at-the-begin)
- [Is the deck at the end](#is-the-deck-at-the-end)
- [Get the index of the current slide](#get-the-index-of-the-current-slide)
Expand Down Expand Up @@ -72,6 +73,14 @@ await deck.slidePrev(false, false);
await deck.slideTo(0); // parameters: index: number, speed?: number | undefined
```

#### Parameters

| Parameter | Type | Default | Description |
| -------------------------- |:-----------------:|:-----------------:|:-----------------:|
| index | number | | Slide index of the specific slide. |
| speed | number | 0 | The slide transition speed. |
| emitEvent | boolean | true | In case you would not like to emit the event `slideToChange`. Note that if you would use this parameter, the above `speed` parameter must be provided too. |

### Is the deck at the begin

```
Expand Down
3 changes: 2 additions & 1 deletion src/components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,15 @@ export namespace Components {
'pagerPercentage': boolean;
'slideNext': (slideAnimation?: boolean, emitEvent?: boolean) => Promise<void>;
'slidePrev': (slideAnimation?: boolean, emitEvent?: boolean) => Promise<void>;
'slideTo': (index: number, speed?: number) => Promise<void>;
'slideTo': (index: number, speed?: number, emitEvent?: boolean) => Promise<void>;
'toggleFullScreen': () => Promise<void>;
}
interface DeckgoDeckAttributes extends StencilHTMLAttributes {
'keyboard'?: boolean;
'onSlideDrag'?: (event: CustomEvent<number>) => void;
'onSlideNextDidChange'?: (event: CustomEvent<number>) => void;
'onSlidePrevDidChange'?: (event: CustomEvent<number>) => void;
'onSlideToChange'?: (event: CustomEvent<number>) => void;
'onSlideWillChange'?: (event: CustomEvent<number>) => void;
'pager'?: boolean;
'pagerPercentage'?: boolean;
Expand Down
7 changes: 6 additions & 1 deletion src/components/deck/deckdeckgo-deck/deckdeckgo-deck.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export class DeckdeckgoDeck {

@Event() slideNextDidChange: EventEmitter<number>;
@Event() slidePrevDidChange: EventEmitter<number>;
@Event() slideToChange: EventEmitter<number>;
@Event() slideDrag: EventEmitter<number>;
@Event() slideWillChange: EventEmitter<number>;

Expand Down Expand Up @@ -344,7 +345,7 @@ export class DeckdeckgoDeck {
}

@Method()
async slideTo(index: number, speed?: number | undefined) {
async slideTo(index: number, speed?: number | undefined, emitEvent: boolean = true) {
if (index > this.length || index < 0) {
return;
}
Expand All @@ -360,6 +361,10 @@ export class DeckdeckgoDeck {

await this.lazyLoadImages(this.activeIndex);
await this.doSwipeSlide(slider, speed);

if (emitEvent) {
this.slideToChange.emit(index);
}
}

/* END: Manual sliding */
Expand Down

0 comments on commit dd37c90

Please sign in to comment.