1
1
/*!
2
2
* Splide.js
3
- * Version : 3.5.3
3
+ * Version : 3.5.4
4
4
* License : MIT
5
5
* Copyright: 2021 Naotoshi Fujita
6
6
*/
@@ -371,6 +371,7 @@ const EVENT_MOUNTED = "mounted";
371
371
const EVENT_READY = "ready" ;
372
372
const EVENT_MOVE = "move" ;
373
373
const EVENT_MOVED = "moved" ;
374
+ const EVENT_SHIFTED = "shifted" ;
374
375
const EVENT_CLICK = "click" ;
375
376
const EVENT_ACTIVE = "active" ;
376
377
const EVENT_INACTIVE = "inactive" ;
@@ -786,12 +787,12 @@ function Slide$1(Splide2, index, slideIndex, slide) {
786
787
slide . id = `${ root . id } -slide${ pad ( index + 1 ) } ` ;
787
788
}
788
789
bind ( slide , "click keydown" , ( e ) => {
789
- emit ( e . type === "click" ? EVENT_CLICK : EVENT_SLIDE_KEYDOWN , this , e ) ;
790
+ emit ( e . type === "click" ? EVENT_CLICK : EVENT_SLIDE_KEYDOWN , self , e ) ;
790
791
} ) ;
791
- on ( [ EVENT_REFRESH , EVENT_REPOSITIONED , EVENT_MOVED , EVENT_SCROLLED ] , update . bind ( this ) ) ;
792
- on ( EVENT_NAVIGATION_MOUNTED , initNavigation . bind ( this ) ) ;
792
+ on ( [ EVENT_REFRESH , EVENT_REPOSITIONED , EVENT_SHIFTED , EVENT_MOVED , EVENT_SCROLLED ] , update ) ;
793
+ on ( EVENT_NAVIGATION_MOUNTED , initNavigation ) ;
793
794
if ( updateOnMove ) {
794
- on ( EVENT_MOVE , onMove . bind ( this ) ) ;
795
+ on ( EVENT_MOVE , onMove ) ;
795
796
}
796
797
}
797
798
function destroy ( ) {
@@ -808,21 +809,18 @@ function Slide$1(Splide2, index, slideIndex, slide) {
808
809
setAttribute ( slide , ARIA_LABEL , label ) ;
809
810
setAttribute ( slide , ARIA_CONTROLS , controls ) ;
810
811
setAttribute ( slide , ROLE , "menuitem" ) ;
811
- updateActivity . call ( this , isActive ( ) ) ;
812
+ updateActivity ( isActive ( ) ) ;
812
813
}
813
- function onMove ( next , prev , dest ) {
814
+ function onMove ( ) {
814
815
if ( ! destroyed ) {
815
- update . call ( this ) ;
816
- if ( dest === index ) {
817
- updateActivity . call ( this , true ) ;
818
- }
816
+ update ( ) ;
819
817
}
820
818
}
821
819
function update ( ) {
822
820
if ( ! destroyed ) {
823
821
const { index : currIndex } = Splide2 ;
824
- updateActivity . call ( this , isActive ( ) ) ;
825
- updateVisibility . call ( this , isVisible ( ) ) ;
822
+ updateActivity ( isActive ( ) ) ;
823
+ updateVisibility ( isVisible ( ) ) ;
826
824
toggleClass ( slide , CLASS_PREV , index === currIndex - 1 ) ;
827
825
toggleClass ( slide , CLASS_NEXT , index === currIndex + 1 ) ;
828
826
}
@@ -833,7 +831,7 @@ function Slide$1(Splide2, index, slideIndex, slide) {
833
831
if ( isNavigation ) {
834
832
setAttribute ( slide , ARIA_CURRENT , active || null ) ;
835
833
}
836
- emit ( active ? EVENT_ACTIVE : EVENT_INACTIVE , this ) ;
834
+ emit ( active ? EVENT_ACTIVE : EVENT_INACTIVE , self ) ;
837
835
}
838
836
}
839
837
function updateVisibility ( visible ) {
@@ -847,14 +845,15 @@ function Slide$1(Splide2, index, slideIndex, slide) {
847
845
}
848
846
if ( visible !== hasClass ( slide , CLASS_VISIBLE ) ) {
849
847
toggleClass ( slide , CLASS_VISIBLE , visible ) ;
850
- emit ( visible ? EVENT_VISIBLE : EVENT_HIDDEN , this ) ;
848
+ ! isClone && emit ( visible ? EVENT_VISIBLE : EVENT_HIDDEN , self ) ;
851
849
}
852
850
}
853
851
function style$1 ( prop , value , useContainer ) {
854
852
style ( useContainer && container || slide , prop , value ) ;
855
853
}
856
854
function isActive ( ) {
857
- return Splide2 . index === index ;
855
+ const { index : curr } = Splide2 ;
856
+ return curr === index || options . cloneStatus && curr === slideIndex ;
858
857
}
859
858
function isVisible ( ) {
860
859
if ( Splide2 . is ( FADE ) ) {
@@ -873,7 +872,7 @@ function Slide$1(Splide2, index, slideIndex, slide) {
873
872
}
874
873
return diff <= distance ;
875
874
}
876
- return {
875
+ const self = {
877
876
index,
878
877
slideIndex,
879
878
slide,
@@ -885,6 +884,7 @@ function Slide$1(Splide2, index, slideIndex, slide) {
885
884
style : style$1 ,
886
885
isWithin
887
886
} ;
887
+ return self ;
888
888
}
889
889
890
890
function Slides ( Splide2 , Components2 , options ) {
@@ -1199,6 +1199,7 @@ function Move(Splide2, Components2, options) {
1199
1199
if ( dest !== index ) {
1200
1200
Transition . cancel ( ) ;
1201
1201
translate ( shift ( position , dest > index ) , true ) ;
1202
+ emit ( EVENT_SHIFTED ) ;
1202
1203
}
1203
1204
set ( MOVING ) ;
1204
1205
emit ( EVENT_MOVE , index , prev , dest ) ;
@@ -1218,7 +1219,9 @@ function Move(Splide2, Components2, options) {
1218
1219
}
1219
1220
function translate ( position , preventLoop ) {
1220
1221
if ( ! Splide2 . is ( FADE ) ) {
1221
- list . style . transform = `translate${ resolve ( "X" ) } (${ preventLoop ? position : loop ( position ) } px)` ;
1222
+ const destination = preventLoop ? position : loop ( position ) ;
1223
+ list . style . transform = `translate${ resolve ( "X" ) } (${ destination } px)` ;
1224
+ position !== destination && emit ( EVENT_SHIFTED ) ;
1222
1225
}
1223
1226
}
1224
1227
function loop ( position ) {
@@ -1386,7 +1389,7 @@ function Controller(Splide2, Components2, options) {
1386
1389
dest = toIndex ( toPage ( dest ) ) ;
1387
1390
} else {
1388
1391
if ( isLoop ) {
1389
- dest = perMove ? dest : dest < 0 ? - ( slideCount % perPage || perPage ) : slideCount ;
1392
+ dest = perMove || hasFocus ( ) ? dest : dest < 0 ? - ( slideCount % perPage || perPage ) : slideCount ;
1390
1393
} else if ( options . rewind ) {
1391
1394
dest = dest < 0 ? end : 0 ;
1392
1395
} else {
@@ -2254,6 +2257,7 @@ const DEFAULTS = {
2254
2257
speed : 400 ,
2255
2258
waitForTransition : true ,
2256
2259
perPage : 1 ,
2260
+ cloneStatus : true ,
2257
2261
arrows : true ,
2258
2262
pagination : true ,
2259
2263
interval : 5e3 ,
@@ -2823,4 +2827,4 @@ class SplideRenderer {
2823
2827
}
2824
2828
}
2825
2829
2826
- export { CLASSES , CLASS_ACTIVE , CLASS_ARROW , CLASS_ARROWS , CLASS_ARROW_NEXT , CLASS_ARROW_PREV , CLASS_AUTOPLAY , CLASS_CLONE , CLASS_CONTAINER , CLASS_INITIALIZED , CLASS_LIST , CLASS_LOADING , CLASS_NEXT , CLASS_PAGINATION , CLASS_PAGINATION_PAGE , CLASS_PAUSE , CLASS_PLAY , CLASS_PREV , CLASS_PROGRESS , CLASS_PROGRESS_BAR , CLASS_ROOT , CLASS_SLIDE , CLASS_SLIDER , CLASS_SPINNER , CLASS_TRACK , CLASS_VISIBLE , EVENT_ACTIVE , EVENT_ARROWS_MOUNTED , EVENT_ARROWS_UPDATED , EVENT_AUTOPLAY_PAUSE , EVENT_AUTOPLAY_PLAY , EVENT_AUTOPLAY_PLAYING , EVENT_CLICK , EVENT_DESTROY , EVENT_DRAG , EVENT_DRAGGED , EVENT_DRAGGING , EVENT_HIDDEN , EVENT_INACTIVE , EVENT_LAZYLOAD_LOADED , EVENT_MOUNTED , EVENT_MOVE , EVENT_MOVED , EVENT_NAVIGATION_MOUNTED , EVENT_PAGINATION_MOUNTED , EVENT_PAGINATION_UPDATED , EVENT_READY , EVENT_REFRESH , EVENT_REPOSITIONED , EVENT_RESIZE , EVENT_RESIZED , EVENT_SCROLL , EVENT_SCROLLED , EVENT_SLIDE_KEYDOWN , EVENT_UPDATED , EVENT_VISIBLE , EventBus , EventInterface , RequestInterval , STATUS_CLASSES , Splide , SplideRenderer , State , Throttle , Splide as default } ;
2830
+ export { CLASSES , CLASS_ACTIVE , CLASS_ARROW , CLASS_ARROWS , CLASS_ARROW_NEXT , CLASS_ARROW_PREV , CLASS_AUTOPLAY , CLASS_CLONE , CLASS_CONTAINER , CLASS_INITIALIZED , CLASS_LIST , CLASS_LOADING , CLASS_NEXT , CLASS_PAGINATION , CLASS_PAGINATION_PAGE , CLASS_PAUSE , CLASS_PLAY , CLASS_PREV , CLASS_PROGRESS , CLASS_PROGRESS_BAR , CLASS_ROOT , CLASS_SLIDE , CLASS_SLIDER , CLASS_SPINNER , CLASS_TRACK , CLASS_VISIBLE , EVENT_ACTIVE , EVENT_ARROWS_MOUNTED , EVENT_ARROWS_UPDATED , EVENT_AUTOPLAY_PAUSE , EVENT_AUTOPLAY_PLAY , EVENT_AUTOPLAY_PLAYING , EVENT_CLICK , EVENT_DESTROY , EVENT_DRAG , EVENT_DRAGGED , EVENT_DRAGGING , EVENT_HIDDEN , EVENT_INACTIVE , EVENT_LAZYLOAD_LOADED , EVENT_MOUNTED , EVENT_MOVE , EVENT_MOVED , EVENT_NAVIGATION_MOUNTED , EVENT_PAGINATION_MOUNTED , EVENT_PAGINATION_UPDATED , EVENT_READY , EVENT_REFRESH , EVENT_REPOSITIONED , EVENT_RESIZE , EVENT_RESIZED , EVENT_SCROLL , EVENT_SCROLLED , EVENT_SHIFTED , EVENT_SLIDE_KEYDOWN , EVENT_UPDATED , EVENT_VISIBLE , EventBus , EventInterface , RequestInterval , STATUS_CLASSES , Splide , SplideRenderer , State , Throttle , Splide as default } ;
0 commit comments