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

Commit dd37c90

Browse files
feat: add event slideToChange
1 parent d06ed89 commit dd37c90

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

doc/features/extra.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ await deck.print();
3939
| -------------------------- |:-----------------:|:-----------------:|
4040
| slideNextDidChange | number | Emitted when the next slide has started. Emit the index of the new active slide. |
4141
| slidePrevDidChange | number | Emitted when the previous slide has ended. Emit the index of the new active slide. |
42+
| slideToChange | number | Emitted when a specific slide as selected. Emit the index of the new selected slide. |
4243
| slideDrag | number | Emitted when the slider is actively being moved. Emit the transformX value of the deck. |
4344
| slideWillChange | number | Emitted before the active slide has changed. Emit the transformX value of the deck. |
4445

doc/features/navigation.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ Furthermore than the default swiping, the [DeckDeckGo] deck expose the following
88
- [Go to next slide](#go-to-next-slide)
99
- [Optional parameters](#pptional-parameters)
1010
- [Go to previous slide](#go-to-previous-slide)
11-
- [Optional parameters](#pptional-parameters)
11+
- [Optional parameters](#optional-parameters)
1212
- [Go to a specific slide](#go-to-a-specific-slide)
13+
- [Parameters](#parameters)
1314
- [Is the deck at the begin](#is-the-deck-at-the-begin)
1415
- [Is the deck at the end](#is-the-deck-at-the-end)
1516
- [Get the index of the current slide](#get-the-index-of-the-current-slide)
@@ -72,6 +73,14 @@ await deck.slidePrev(false, false);
7273
await deck.slideTo(0); // parameters: index: number, speed?: number | undefined
7374
```
7475

76+
#### Parameters
77+
78+
| Parameter | Type | Default | Description |
79+
| -------------------------- |:-----------------:|:-----------------:|:-----------------:|
80+
| index | number | | Slide index of the specific slide. |
81+
| speed | number | 0 | The slide transition speed. |
82+
| 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. |
83+
7584
### Is the deck at the begin
7685

7786
```

src/components.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ export namespace Components {
2323
'pagerPercentage': boolean;
2424
'slideNext': (slideAnimation?: boolean, emitEvent?: boolean) => Promise<void>;
2525
'slidePrev': (slideAnimation?: boolean, emitEvent?: boolean) => Promise<void>;
26-
'slideTo': (index: number, speed?: number) => Promise<void>;
26+
'slideTo': (index: number, speed?: number, emitEvent?: boolean) => Promise<void>;
2727
'toggleFullScreen': () => Promise<void>;
2828
}
2929
interface DeckgoDeckAttributes extends StencilHTMLAttributes {
3030
'keyboard'?: boolean;
3131
'onSlideDrag'?: (event: CustomEvent<number>) => void;
3232
'onSlideNextDidChange'?: (event: CustomEvent<number>) => void;
3333
'onSlidePrevDidChange'?: (event: CustomEvent<number>) => void;
34+
'onSlideToChange'?: (event: CustomEvent<number>) => void;
3435
'onSlideWillChange'?: (event: CustomEvent<number>) => void;
3536
'pager'?: boolean;
3637
'pagerPercentage'?: boolean;

src/components/deck/deckdeckgo-deck/deckdeckgo-deck.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ export class DeckdeckgoDeck {
3636

3737
@Event() slideNextDidChange: EventEmitter<number>;
3838
@Event() slidePrevDidChange: EventEmitter<number>;
39+
@Event() slideToChange: EventEmitter<number>;
3940
@Event() slideDrag: EventEmitter<number>;
4041
@Event() slideWillChange: EventEmitter<number>;
4142

@@ -344,7 +345,7 @@ export class DeckdeckgoDeck {
344345
}
345346

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

361362
await this.lazyLoadImages(this.activeIndex);
362363
await this.doSwipeSlide(slider, speed);
364+
365+
if (emitEvent) {
366+
this.slideToChange.emit(index);
367+
}
363368
}
364369

365370
/* END: Manual sliding */

0 commit comments

Comments
 (0)