Browse Source

(feat) Bump swiper.js version to V6 && Adapts Spip

pull/3/head
Charles Stephan 2 years ago
parent
commit
b28d1bf848
  1. 11
      .gitattributes
  2. 1
      .gitignore
  3. 4
      inclure/inc-swiper-buttons.html
  4. 5
      inclure/inc-swiper-figure.html
  5. 8
      inclure/inc-swiper-paginations.html
  6. 1
      inclure/inc-swiper-scrollbar.html
  7. 511
      lib/Swiper/CHANGELOG.md
  8. 618
      lib/Swiper/dist/css/swiper.css
  9. 12
      lib/Swiper/dist/css/swiper.min.css
  10. 7151
      lib/Swiper/dist/js/swiper.esm.bundle.js
  11. 7133
      lib/Swiper/dist/js/swiper.esm.js
  12. 8124
      lib/Swiper/dist/js/swiper.js
  13. 13
      lib/Swiper/dist/js/swiper.min.js
  14. 1
      lib/Swiper/dist/js/swiper.min.js.map
  15. 13
      lib/swiper/swiper-bundle.min.css
  16. 14
      lib/swiper/swiper-bundle.min.js
  17. 1
      lib/swiper/swiper-bundle.min.js.map
  18. 71
      modeles/swiper.html
  19. 7
      paquet.xml
  20. 2
      swiper.html
  21. 23
      swiper_pipelines.php
  22. 31
      swiper_spip.css

11
.gitattributes vendored

@ -4,18 +4,13 @@ base/swiper.php -text
formulaires/configurer_swiper.html -text
formulaires/editer_swiper.html -text
formulaires/editer_swiper.php -text
inclure/inc-swiper-buttons.html -text
inclure/inc-swiper-figure.html -text
inclure/inc-swiper-paginations.html -text
inclure/inc-swiper-scrollbar.html -text
lang/paquet-swiper_fr.php -text
lang/swiper_fr.php -text
lib/Swiper/CHANGELOG.md -text
lib/Swiper/dist/css/swiper.css -text
lib/Swiper/dist/css/swiper.min.css -text
lib/Swiper/dist/js/swiper.esm.bundle.js -text
lib/Swiper/dist/js/swiper.esm.js -text
lib/Swiper/dist/js/swiper.js -text
lib/Swiper/dist/js/swiper.min.js -text
lib/Swiper/dist/js/swiper.min.js.map -text
lib/swiper/* -text
modeles/swiper.html -text
/paquet.xml -text
prive/objets/contenu/swiper.html -text

1
.gitignore vendored

@ -0,0 +1 @@
.DS_Store

4
inclure/inc-swiper-buttons.html

@ -0,0 +1,4 @@
[(#CONFIG{swiper/navigation}|oui)
<div class="swiper-button-prev[ (#CONFIG{swiper/couleur}|oui)swiper-button-white]"></div>
<div class="swiper-button-next[ (#CONFIG{swiper/couleur}|oui)swiper-button-white]"></div>
]

5
inclure/inc-swiper-figure.html

@ -1,8 +1,9 @@
<BOUCLE_FIGURE_DOCUMENT(DOCUMENTS){id_document}>
<BOUCLE_FIGURE_DOCUMENT(DOCUMENTS) {id_document}>
<figure
class="swiper-slide"
id="swiper-slide_#ID_DOCUMENT"
style="background-image:url(#GET{small,#FICHIER})">
style="background-image:url(#FICHIER)"
>
[(#REM)On laisse le fichier mais on le cache en css pour la SEO]
[(#FICHIER
|balise_img

8
inclure/inc-swiper-paginations.html

@ -1,7 +1 @@
[(#CONFIG{swiper/pagination}|oui)
<div class="swiper-pagination[ (#CONFIG{swiper/couleur}|oui)swiper-pagination-white]"></div>]
[(#CONFIG{swiper/navigation}|oui)
<div class="swiper-button-prev[ (#CONFIG{swiper/couleur}|oui)swiper-button-white]"></div>
<div class="swiper-button-next[ (#CONFIG{swiper/couleur}|oui)swiper-button-white]"></div>]
[(#CONFIG{swiper/scrollbar}|oui)
<div class="swiper-scrollbar"></div>]
[(#CONFIG{swiper/pagination}|oui)<div class="swiper-pagination[ (#CONFIG{swiper/couleur}|oui)swiper-pagination-white]"></div>]

1
inclure/inc-swiper-scrollbar.html

@ -0,0 +1 @@
[(#CONFIG{swiper/scrollbar}|oui)<div class="swiper-scrollbar"></div>]

511
lib/Swiper/CHANGELOG.md

@ -1,511 +0,0 @@
# Change Log
## [Swiper 4.5.0](https://github.com/nolimits4web/swiper/compare/v4.5.0...v4.5.0) - Released on February 22, 2019
* Core
* New `swiper.changeDirection()` method to change direction from horizontal to vertical (and back) dynamically
* `direction` parameter can be used in breakpoints
* Virtual Slides
* `swiper.virtual.appendSlide` now accepts array of slides to add
* `swiper.virtual.prependSlide` now accepts array of slides to prepend
* New `swiper.virtual.removeSlide(indexes)` to remove virtual selected slides
* New `swiper.virtual.removeAllSlides()` to remove all virtual slides
* Navigation
* Now it emits `navigationHide` and `navigationShow` events when on nav hide/show
* Pagination
* Now it emits `paginationHide` and `paginationShow` events when on pagination hide/show
* Dom7 updated to latest 2.1.3
* Fixed issue when `.once` bound event could still be there after unbinding it with `.off`
* Source
* Source styles are now available in SCSS in addition to LESS
* Minor fixes and improvements
## [Swiper 4.4.6](https://github.com/nolimits4web/swiper/compare/v4.4.5...v4.4.6) - Released on December 19, 2018
* Core
* Fixed issue with wrong slide size calculation in some cases
## [Swiper 4.4.5](https://github.com/nolimits4web/swiper/compare/v4.4.2...v4.4.5) - Released on December 14, 2018
* Core
* New `observeSlideChildren` parameter to enable auto update on slide children update
* Fixed issue when slide padding was not considered when calculating sizes
* Fixed issue with wrong touch support detection on Windows Chrome
* Fixed some issues with wrong slides grid calculation in multi row mode
* Zoom
* Now it emits `zoomChange` event with `scale`, `imageEl` and `slideEl` arguments
* Minor fixes
## [Swiper 4.4.2](https://github.com/nolimits4web/swiper/compare/v4.4.1...v4.4.2) - Released on November 1, 2018
* New `touchStartForcePreventDefault` parameter to force touch start event prevent default
* Breakpoints fix when breakpoint keys are strings
* Fixed issue when draggable scrollbar may not work on desktop Safari
* Fixed issue with wrong sort of Virtual Slides
* Minor fixes
## [Swiper 4.4.1](https://github.com/nolimits4web/swiper/compare/v4.4.0...v4.4.1) - Released on September 14, 2018
* Fixed issue with preventing touchstart event
## [Swiper 4.4.0](https://github.com/nolimits4web/swiper/compare/v4.3.5...v4.4.0) - Released on September 14, 2018
* Core
* New `centerInsufficientSlides` parameter to center slides if the amount of slides less than `slidesPerView`
* New `breakpointsInverse` parameter (boolean), if enabled then it will count breakpoints in reversed direction, e.g. will override parameters if window width is more than specified breakpoint
* Virtual Slides
* New `addSlidesBefore` and `addSlidesAfter` parameters to increase amount of pre-rendered slides
* Thumbs
* All new "Thumbs" module/component designed to control slider thumbnails, in more logical and correct way than with Controller module.
* Lots of minor fixes
## [Swiper 4.3.5](https://github.com/nolimits4web/swiper/compare/v4.3.3...v4.3.5) - Released on July 31, 2018
* Core
* `iOSEdgeSwipeThreshold` parameter renamed to just `edgeSwipeThreshold`. Old `iOSEdgeSwipeThreshold` name is still supported
* Improved observer performance if there are many mutations at a time. Thanks to @rayvincent-bsd
* Controller
* Fixed issue with wrong auto height resizing
* Scrollbar
* Fixed issue when it was using active event listeners instead of passive. Thanks to @nyon
* Minor fixes
## [Swiper 4.3.3](https://github.com/nolimits4web/swiper/compare/v4.3.2...v4.3.3) - Released on June 5, 2018
* Core
* Fixed issue when slidePrev goes to wrong slide #2650
* Fixed issue when roundLength was not considered for grids calculation #2656
* Fixed typo in API #2659
## [Swiper 4.3.2](https://github.com/nolimits4web/swiper/compare/v4.3.0...v4.3.2) - Released on June 1, 2018
* Core
* Added `addSlide(index, slide)` method to add slide at required position. Thanks to @kochizufan
* Fixed issue with loop #2647. Thanks to @kochizufan
* Pagination
* New `formatFractionCurrent(number)` parameter to format current number in Fraction pagination
* New `formatFractionTotal(number)` parameter to format total number in Fraction pagination
* Minor fixes
## [Swiper 4.3.0](https://github.com/nolimits4web/swiper/compare/v4.2.6...v4.3.0) - Released on May 27, 2018
* Core
* Fixed issue when `swipeBack` sometimes slides to wrong slide
* Fixed issue when window resizing can break Coverflow effect layout
* Fixed issue with wrong detection of `iOSEdgeSwipeDetection`. Thanks to @langjun
* Dom7 update to latest v2.0.6:
* Fixed issue with remove event listeners when they was not added
* Minor fixes
## [Swiper 4.2.6](https://github.com/nolimits4web/swiper/compare/v4.2.5...v4.2.6) - Released on May 1, 2018
* `console.log` cleanup
## [Swiper 4.2.5](https://github.com/nolimits4web/swiper/compare/v4.2.2...v4.2.5) - Released on April 29, 2018
* Core
* Prevent apply grab cursor when swiper is locked
* Fixed breakpoint with loop getting wrong realIndex when on init
* Fixed "transformed" slides sizes calculation that could cause issues in with Coverflow effect
* Autoplay
* Fixed issue that can cause memory leak
* Dom7 update to latest
*Imporved internal events proxies logic for better memory management
* Minor fixes
## [Swiper 4.2.2](https://github.com/nolimits4web/swiper/compare/v4.2.0...v4.2.2) - Released on April 1, 2018
* Core
* Respect and update breakpoints when calling Swiper's `.update()` method
* Pagination
* New `progressbarOpposite` parameter to make pagination progressbar opposite to `direction` parameter, means vertical progressbar for horizontal swiper direction and horizontal progressbar for vertical swiper direction
* Mousewheel
* Fixed issue in `loop` + `freeMode` for loop not being set correctly
* Minor fixes
## [Swiper 4.2.0](https://github.com/nolimits4web/swiper/compare/v4.1.6...v4.2.0) - Released on March 16, 2018
* Core
* `swiper.updateAutoHeight(speed)` now supports `speed` parameter to resize swiper wrapper with duration
* Fixed issues in free mode with `freeModeSticky` not being able to snap to closest snap point
* New `swiper.slideToClosest()` method to slide to closest snap point when it is somewhere in between
* A11y (Accessibility)
* It is now enabled by default (if installed)
* Controller
* Fixed RTL issue when vertical swiper controls horizontal one
* Lazy
* Fixed issue when lazy loading not always triggered on window resize
* Minor fixes
## [Swiper 4.1.6](https://github.com/nolimits4web/swiper/compare/v4.1.5...v4.1.6) - Released on February 11, 2018
* Fixed onTouchMoveOpposite event on touch devices
## [Swiper 4.1.5](https://github.com/nolimits4web/swiper/compare/v4.1.0...v4.1.5) - Released on February 10, 2018
* Improved touch events support on desktop Windows devices with touch screen
* Improved "loop fix" when slider is in the free mode
* New `noSwipingSelector` parameter that can be used instead of `noSwipingClass`
* New `preventIntercationOnTransition` parameter to prevent interaction during slice change transition
* New `.slideToLoop` method to be used in loop mode
* Fixed issue with `slideChange` events being fired when slide wasn't actually changed
* Scrollbar
* Now doesn't require to enable `simulateTouch` for desktops when it is `draggable`
* Keyboard
* Fixed detection statement whether a swiper is in the viewport
* Pagination
* Added new multiple main bullets support for dynamic bullets pagination
* Zoom
* Now supports Virtual Slides
* Minor fixes
## [Swiper 4.1.0](https://github.com/nolimits4web/swiper/compare/v4.0.7...v4.1.0) - Released on January 13, 2018
* Improved IE 10 support. But it is recommended to use [__proto__ polyfill](https://www.npmjs.com/package/proto-polyfill)
* Improved touch support for Edge
* New `watchOverflow` (disabled by default). When enabled Swiper will be disabled and hide navigation buttons on case there are not enough slides for sliding
* Autoplay
* New `reverseDirection` to enable autoplay in reverse direction
* New `waitForTransition` parameter when autoplay will wait for wrapper transition to continue (enabled by default). Can be disabled in case of using Virtual Translate when your slider may not have transition
* Keyboard
* New `onlyInViewport` parameter (enabled by default). When enabled it will control sliders that are currently in viewport
## [Swiper 4.0.7](https://github.com/nolimits4web/swiper/compare/v4.0.6...v4.0.7) - Released on November 28, 2017
* Fixed issue with not working correctly `touchReleaseOnEdges` on iOS
* Fixed issue with not working allowSlideNext/Prev change on Breakpoints
* Fixed wrong scrollbar dragging when using custom `dragSize`
* Minor fixes
## [Swiper 4.0.6](https://github.com/nolimits4web/swiper/compare/v4.0.5...v4.0.6) - Released on November 13, 2017
* Fixed Coverflow effect issue using with breakpoints
* `iOSEdgeSwipeDetection` will also be in consideration with right-edge swipe
* Fixed `freeModeSticky` behavior in RTL mode
* Swiper now emits `breakpoint` event on breakpoint change
* Minor fixes
## [Swiper 4.0.5](https://github.com/nolimits4web/swiper/compare/v4.0.3...v4.0.5) - Released on November 7, 2017
* Fixed issue with not working `noSwiping` parameter
* Parallax now considers `slidesPerGroup` parameter
* Zoom: imporved gestures handling
* Pagination: fixed issues with wrong positioned dynamic-bullets when there are not enough slides
* Fixed issues with some effects being broken with enabled `breakpoints`
* Minor fixes
## [Swiper 4.0.3](https://github.com/nolimits4web/swiper/compare/v4.0.2...v4.0.3) - Released on October 27, 2017
* Fixed Parallax opacity and scale transitions
* Better compatability with SSR by using dummy `document` object
* Fixed styles for dynamic pagination buttons in RTL mode
* Fixed issue with last pagination button not being active with `slidesPerView: 'auto'`
* Renamed build tasks: `build-dev` -> `build:dev`, `build-prod` -> `build:prod`
## [Swiper 4.0.2](https://github.com/nolimits4web/swiper/compare/v4.0.1...v4.0.2) - Released on October 18, 2017
* Lazy loading support for Virtual slides
* Added `beforeResize` event
* Minor fixes
## [Swiper 4.0.1](https://github.com/nolimits4web/swiper/compare/v4.0.0...v4.0.1) - Released on October 11, 2017
* Fixed issue with pagination being broken with loop mode
* Reworked `realIndex` calculation ordering
* ES-module files renamed (**possible breaking change**):
* `swiper.module.js` -> `swiper.esm.bundle.js` (exported by default)
* `swiper.modular.js` -> `swiper.esm.js`
* Minor fixes
## [Swiper 4.0.0](https://github.com/nolimits4web/swiper/compare/v3.4.2...v4.0.0) - Released on October 4, 2017 🎉
* New API (check [Documentation](http://idangero.us/swiper/api/))
* Virtual Slides - new module that keeps in DOM just required amount of slides
* Source code has been fully rewritten in ES-next syntax
* Dist package contains additional ES-next modules:
* `swiper.module.js` - swiper bundle for `import Swiper from 'swiper'`
* `swiper.modular.js` - modular version for using Swiper with required components only
* New `scripts/build-config.js` for creating custom Swiper build with required components and custom color theme
* jQuery version of Swiper has been removed
* Imporved compatibility with server-side rendering
* Hundreds of improvements and fixes
## Swiper 4.0.0-beta.4 - Released on September 20, 2017
* Fixed issue with draggable Scrollbar in RTL layout
* Minor fixes
## Swiper 4.0.0-beta.3 - Released on September 13, 2017
* Dom7 update to latest version
* Small core refactoring to get better results within tree-shaking bundles
## Swiper 4.0.0-beta.2 - Released on September 2, 2017
* Disable a11y by default
* Fixed issue with events sharing between multiple swipers
* Fixed issue with resize handling after destroy
* Few minor fixes
## Swiper 4.0.0-beta.1 - Released on August 30, 2017
* Initial 4.0.0 release
## Swiper 3.4.2 - Released on March 10, 2017
* Fixed an issue with lazy loading callbacks when swiper is destroyed
* New `onAfterResize` and `onBeforeResize` callbacks
* New `onKeyPress` callback when keyboard control is used
* Fixed Chrome+Windows issue with not clickable links that have "title" attribute
* Minor fixes
## Swiper 3.4.1 - Released on December 13, 2016
* Fixed Zoom for RTL
* Improved slideToClickedSlide behavior when loop is enabled
* Minor fixes
## Swiper 3.4.0 - Released on October 16, 2016
* **Custom build** available. Now you can create custom swiper build using the folowing modules: effects, lazy-load, scrollbar, controller, hashnav, history, keyboard, mousewheel, parallax, zoom, a11y. Using cli `gulp custom -zoom,effects,lazy-loading`
* New **zoom** functionality that enables double tap and pinch to zoom slide's inner image:
* Required slide layout for zoom:
```
<div class="swiper-slide">
<div class="swiper-zoom-container">
<img src="path/to/image">
</div>
</div>
```
* New zoom parameters:
* `zoom` - enable zoom functionality
* `zoomMax` - maximum image zoom multiplier, by default is `3`
* `zoomMin` - minimum image zoom multiplier, by default is `1`
* `zoomToggle` - enable/disable zoom-in by slide's double tap
* `zoomMax` can be also overridden for specific slide by using `data-swiper-zoom` attribute
* New `swiper.enableTouchControl()` and `swiper.disableTouchControl()` methods to enable disable touch control (it toggles `onlyExternal` parameter)
* New `swiper.realIndex` property in addition to `swiper.activeIndex` that returns index of active slide considering loop
* New **History API** with new `history` parameter. It uses history pushState to set active slide URL
* New `hashnavWatchState` parameter to navigate through slides (when hashnav is enabled) by browser history or by setting directly hash on document location
* New `replaceState` parameter that work in addition to hashnav or history to replace current url state with the new one instead of adding it to history
* New methods `s.unsetGrabCursor()` and `s.setGrabCursor()` to enable/disable grab cursor
* Draggable Scrollbar now works when `simulateTouch:false`
* New `normalizeSlideIndex` parameter to improve work of controller (see #1766)
* `lazyLoadingInPrevNextAmount` now works with `slidesPerView: 'auto'`
* New `passiveListeners` parameter to use passive event listeners to improve scrolling performance on mobile devices. Enabled by default
* New `freeModeMomentumVelocityRatio` parameter to control moment velocity
* Now it is possible to specify autoplay delay for every (or specific) slides by using `data-swiper-autoplay` attribute on them
* Lazy loading now also respects `sizes` responsive images attribute
* Improved mousewheel cross browser behavior (see #1797)
* New `mousewheelEventsTarged` parameter (by default 'container') where you can specify mousewheel events target
* New `onScroll` event/callback that triggers when swiping/scrolling happens with mousewheel
* New `touchReleaseOnEdges` parameter to release touch events on slider edge position (beginning, end) and allow for further page scrolling
* Multirow (slidesPerColumn) support for vertical direction, which is in this case becomes multicolumn
* `paginationBulletRender` now accepts `swiper` instance as a first argument, `paginationBulletRender(index, className)` -> `paginationBulletRender(swiper, index, className)`
* New "swiper-slide-duplicate-active", "swiper-slide-duplicate-next", "swiper-slide-duplicate-prev" classes that will be added in loop mode to the slides representing duplicated looped slides
* All css classes are now configurable via new parameters: lazyLoadingClass, notificationClass, containerModifierClass, paginationClickableClass, paginationModifierClass, lazyStatusLoadingClass, lazyStatusLoadedClass, lazyPreloaderClass, notificationClass, preloaderClass, zoomContainerClass, slideDuplicateActiveClass, slideDuplicateNextClass, slideDuplicatePrevClass
## Swiper 3.3.1 - Released on February 7, 2016
* New `uniqueNavElements` parameter. If enabled (by default) and navigation elements' parameters passed as the string (like `.pagination`) then Swiper will look for such elements through child elements first. Applies for pagination, prev/next buttons and scrollbar
* New `onPaginationRendered` callback. Will be fired after pagination elements generated and added to DOM
* New `.reLoop()` method, which combines `.destroyLoop()` + `.createLoop()` methods with additional positioning fixes. Useful to call after you have changed `slidesPerView` parameter, it will dynamically recreate duplicated slides required for loop
* New `.nextButton` and `.prevButton` properties with Dom7/jQuery element with next/prev button HTML element
* Fixed not working mousewheel control in IE 11
* Fixed issue with lazy loading images not being recalculated after window resize
* Fixed issues when using loop with breakpoints changing `slidesPerView/Group` parameters
* Numerous minor fixes
## Swiper 3.3.0 - Released on January 10, 2016
* New 3D Flip effect. Can be enabled with `effect: 'flip' parameter
* New types of pagination with new parameters:
* `paginationType` - type of pagination. Can be `'bullets'` (default) or `'fraction'` or `'progress'` or `'custom'`
* `paginationFractionRender(swiper, currentClass, totalClass)` - custom function to render "fraction" type pagination
* `paginationProgressRender(swiper, progressbarClass)` - custom function to render "progress" type pagination
* `paginationCustomRender(swiper, current, total)` - custom function to render "custom" type pagination
* New `lazyLoadingInPrevNextAmount` parameter allows to lazy load images in specified amount of next/prev slides
* New `autoplayStopOnLast` parameter (`true` by default) tells to autoplay should it stop on last slide or start from first slide
* New `onAutoplay(swiper)` callback
* Minor fixes
## Swiper 3.2.7 - Released on December 7, 2015
* Fixed issue with using HTMLElements for next/prevButton parameters with breakpoints
* Fixed issue with not working Auto Height when using Controller
## Swiper 3.2.6 - Released on November 28, 2015
* Fixed issue in RTL layout using `mousewheelControl`
* Fixed issue in RTL layout using Parallax
## Swiper 3.2.5 - Released on November 21, 2015
* New "Auto Height" mode when container/wrapper adopts to the height of currently active slide. Can be enabled with `autoHeight: true` parameter
* Fixed issue with break points in FireFox
* Fixed issue with wrong slides position when using effects
* Fixed issue with none-updated scroll bar after using `setWrapperTranslate`
* Minor fixes
## Swiper 3.2.0 - Released on November 7, 2015
* Added responsive breakpoints support using new `breakpoints` parameter. Now you can specify different `slidesPerView` and other similar parameters for different sizes:
```js
slidesPerView: 5,
spaceBetween: 50,
breakpoints: {
1024: {
slidesPerView: 4,
spaceBetween: 40
},
768: {
slidesPerView: 3,
spaceBetween: 30
},
320: {
slidesPerView: 1,
spaceBetween: 10
}
}
```
* New callbacks: `onSlideNextStart`, `onSlideNextEnd`, `onSlidePrevStart`, `onSlidePrevEnd`
* Added Meteor package `meteor add nolimits4web:swiper`
* Fixed issue with mouse touchMove/End callbacks firing all the time
* Fixed issue with mousewheel in Chrome
* Minor fixes
## Swiper 3.1.7 - Released on October 10, 2015
* Fixed issue with lazy loading trying to download `undefined`-src images
* Fixed lazy loading on slides using jQuery version
* Fixed issue with `slideToClickedSlide` with `loop` and `centeredSlides`
* Fixed issue with wrong slides fill when number of slides less than `slidesPerView * slidesPerColumn` with `slidesPerColumnFill: 'row'`
* Minor fixes
## Swiper 3.1.5 - Released on September 28, 2015
* Added support for images `srcset` with lazy loading using `data-srcset` attribute
* Fixed new Chrome errors with `WebkitCSSMatrix`
* Fixed issue with `slideToClickedSlide` with `loop` and `centeredSlides`
* New `freeModeMinimumVelocity` parameter to set minimum required touch velocity to trigger free mode momentum
* Ability to make the Scrollbar draggable using new paramaters:
* `scrollbarDraggable` - (boolean) by default is `false`. Allows to enable draggable scrollbar
* `scrollbarSnapOnRelease` - (boolean) by default is `false`. Control slider snap on scrollbar release
* Minor fixes
## Swiper 3.1.2 - Released on August 22, 2015
* Fixed issues with loop and mousewheel when swiper stopped on last slide
* Imporved mouse wheel behavior in latest Chrome
* Fixed issue with `slidesPerView: 'auto'` and enabled `loop:true` mode to set `loopedSlides` to the amount of slides by default (if not specified)
* New `mousewheelSensitivity: 1` parameter allows to tweak mouse wheel sensitivity
* Fixed issue with updating swiper when swiping is locked (with `allowSwipeToNext`/`allowSwipeToPrev`)
* Fixed issue with wrong calculating of "visible" slides with enabled `centeredSlides`
* CSS fixes for 3D effects
* New options to release Swiper events for swipe-to-go-back work in iOS UIWebView with two options:
* `iOSEdgeSwipeDetection` (by default is `false`) - enable ios edge detection and release Swiper events
* `iOSEdgeSwipeThreshold` (default value is `20`) - area in `px` from left edge of screen to release events
* Improved source maps
* Minor fixes
## Swiper 3.1.0 - Released on July 14, 2015
* Accessibility (a11y)
* Fixed issue with wrong buttons labels
* Added support for pagination bullets
* New accessibility parameter for pagination label `paginationBulletMessage: 'Go to slide {{index}}'`
* Controler
* New parameter `controlBy` which can be 'slide' (by default) or 'container'. Defines a way how to control another slider: slide by slide or depending on all slides/container (like before)
* Now controllers in `controlBy: 'slide'` (default) mode will respect grid of each other
* Pagination
* New `paginationElement` parameter defines which HTML tag will be use to represent single pagination bullet. By default it is `span`
* New `roundLengths` parameter (by default is `false`) to round values of slides width and height to prevent blurry texts on usual resolution screens
* New `slidesOffsetBefore: 0` and `slidesOffsetAfter: 0` (in px) parameters to add additional slide offset within a container
* Correct calculation for slides size when use CSS padding on `.swiper-container`
* Fixed issue with not working onResize handler when swipes are locked
* Fixed issue with "jumping" effect when you disable `onlyExternal` during touchmove
* Fixed issue when slider goes to previos slide from last slide after window resize
* Added new `swiper.jquery.umd.js` version for the environment where both Swiper and jQuery included as modules
* Minor fixes
## Swiper 3.0.8 - Released on June 14, 2015
* Fixed issue with wrong active index and callbacks in Fade effect
* New mousewheel parameters:
* `mousewheelReleaseOnEdges` - will release mousewheel event and allow page scrolling when swiper is on edge positions (in the beginning or in the end)
* `mousewheelInvert` - option to invert mousewheel slides
* Fixed issue with lazy loading in next slides when `slidesPerView` > 1
* Fixed issue with resistance bounds when swiping is locked
* Fixed issue with wrong slides order in multi-row mode (when `slidesPerColumn` > 1)
* Fixed issue with not working keyboard control in RTL mode
* Fixed issue with nested fade-effect swipers
* Minor fixes
## Swiper 3.0.7 - Released on April 25, 2015
* New `width` and `height` parameters to force Swiper size, useful when it is hidden on intialization
* Better support for "Scroll Container". So now Swiper can be used as a scroll container with one single "scrollable"/"swipeable" slide
* Added lazy loading for background images with `data-background` attribute on required elements
* New "Sticky Free Mode" (with `freeModeSticky` parameter) which will snap to slides positions in free mode
* Fixed issues with lazy loading
* Fixed slide removing when loop mode is enabled
* Fixed issues with Autoplay and Fade effect
* Minor fixes
## Swiper 3.0.6 - Released on March 27, 2015
* Fixed sometimes wrong slides position when using "Fade" effect
* `.destroy(deleteInstance, cleanupStyles)` method now has second `cleanupStyles` argument, when passed - all custom styles will be removed from slides, wrapper and container. Useful if you need to destroy Swiper and to init again with new options or in different direction
* Minor fixes
## Swiper 3.0.5 - Released on March 21, 2015
* New Keyboard accessibility module to provide foucsable navigation buttons and basic ARIA for screen readers with new parameters:
* `a11y: false` - enable accessibility
* `prevSlideMessage: 'Previous slide'` - message for screen readers for previous button
* `nextSlideMessage: 'Next slide'` - message for screen readers for next button
* `firstSlideMessage: 'This is the first slide'` - message for screen readers for previous button when swiper is on first slide
* `lastSlideMessage: 'This is the last slide'` - message for screen readers for next button when swiper is on last slide
* New Emitter module. It allows to work with callbacks like with events, even adding them after initialization with new methods:
* `.on(event, handler)` - add event/callback
* `.off(event, handler)` - remove this event/callback
* `.once(event, handler)` - add event/callback that will be executed only once
* Plugins API is back. It allows to write custom Swiper plugins
* Better support for browser that don't support flexbox layout
* New parameter `setWrapperSize` (be default it is `false`) to provide better compatibility with browser without flexbox support. Enabled this option and plugin will set width/height on swiper wrapper equal to total size of all slides
* New `virtualTranslate` parameter. When it is enabled swiper will be operated as usual except it will not move. Useful when you may need to create custom slide transition
* Added support for multiple Pagination containers
* Fixed `onLazyImage...` callbacks
* Fixed issue with not accessible links inside of Slides on Android < 4.4
* Fixed pagination bullets behavior in loop mode with specified `slidesPerGroup`
* Fixed issues with clicks on IE 10+ touch devices
* Fixed issues with Coverflow support on IE 10+
* Hashnav now will update document hash after transition to prevent browsers UI lags, not in the beginning like before
* Super basic support for IE 9 with swiper.jquery version. No animation and transitions, but basic stuff like switching slides/pagination/scrollbars works
## Swiper 3.0.4 - Released on March 6, 2015
* New Images Lazy Load component
* With new parameters `lazyLoading`, `lazyLoadingInPrevNext`, `lazyLoadingOnTransitionStart` (all disabled by default)
* With new callbacks `onLazyImageLoad` and `onLazyImageReady`
* `updateOnImages` ready split into 2 parameters:
* `preloadImages` (by default is true) - to preload all images on swiper init
* `updateOnImages` (by default is true) - update swiper when all images loaded
* Fixed issues with touchmove on fouces form elements
* New `onObserverUpdate` callback function to be called after updates by ovserver
* Fixed issue with not working inputs with keyboard control for jQuery version
* New `paginationBulletRender` parameter that accepts function which allow custom pagination elements layout
* Hash Navigation will run callback dpending on `runCallbacksOnInit` parameter
* `watchVisibility` parameter renamed to `watchSlidesVisibility`
## Swiper 3.0.3 - Released on March 1, 2015
* Fixed issue with not firing onSlideChangeEnd callback after calling .slideTo with
runCallbacks=false
* Fixed values of isBeginning/isEnd when there is only one slide
* New `crossFade` option for fade effect
* Improved support for devices with both touch and mouse inputs, not yet on IE
* Fixed not correctly working mousewheel and keyobard control in swiper.jquery version
* New parallax module for transitions with parallax effects on internal elements
* Improved .update and .onResize methods
* Minor fixes
## Swiper 3.0.2 - Released on February 22, 2015
* Fixed issue with keyboard events not cleaned up with Swiper.destroy
* Encoded inline SVG images for IE support
* New callbacks
* onInit (swiper)
* onTouchMoveOpposite (swiper, e)
* Fixed free mode momentum in RTL layout
* `.update` method improved to fully cover what `onResize` do for full and correct update
* Exposed `swiper.touches` object with the following properties: `startX`, `startY`, `currentX`, `currentY`, `diff`
* New methods to remove slides
* `.removeSlide(index)` or `.removeSlide([indexes])` - to remove selected slides
* `.removeAllSlides()` - to remove all slides
## Swiper 3.0.1 - Released on February 13, 2015
* Fixed issue with navigation buttons in Firefox in loop mode
* Fixed issue with image dragging in IE 10+
## Swiper 3.0.0 - Released on February 11, 2015
* Initial release of all new Swiper 3
* Removed features
* Dropped support for old browsers. Now it is compatible with:
* iOS 7+
* Android 4+ (multirow mode only for Android 4.4+)
* Latest Chrome, Safari, Firefox and Opera desktop browsers
* WP 8+, IE 10+ (3D effects may not work correctly on IE because of wrong nested 3D transform support)
* Scroll Container. Removed in favor of pure CSS `overflow: auto` with `-webkit-overflow-scrolling: touch`
* New features
* Swiper now uses modern flexbox layout, which by itself give more features and advantages
* Such Swiper 2.x plugins as Hash Navigation, Smooth Progress, 3D Flow and Scrollbar are now incorporated into Swiper 3.x core
* Full RTL support
* Built-in navigation buttons/arrows
* Controller. Now one Swiper could be controlled (or control itself) by another Swiper
* Multi row slides layout with `slidesPerColumn` option
* Better support for nested Swipers, now it is possible to use same-direction nested Swipers, like horizontal in horizontal
* Space between slides
* New transition effects: 3D Coverflow, 3D Cube and Fade transitions
* Slides are `border-box` now, so it is possible to use borders and paddings directly on slides
* Auto layout mode (`slidesPerView: 'auto'`) now gives more freedom, you can even specify slides sizes in % and use margins on them
* Mutation Observers. If enabled, Swiper will watch for changes in Dom and update its layout automatically
* Better clicks prevention during swiping
* Many of API methods, parameters and callbacks are changed
* Added a bit lightweight jQuery/Zepto version of Swiper that can be used if you use jQuery/Zepto in your project

618
lib/Swiper/dist/css/swiper.css vendored

@ -1,618 +0,0 @@
/**
* Swiper 4.5.0
* Most modern mobile touch slider and framework with hardware accelerated transitions
* http://www.idangero.us/swiper/
*
* Copyright 2014-2019 Vladimir Kharlampidi
*
* Released under the MIT License
*
* Released on: February 22, 2019
*/
.swiper-container {
margin: 0 auto;
position: relative;
overflow: hidden;
list-style: none;
padding: 0;
/* Fix of Webkit flickering */
z-index: 1;
}
.swiper-container-no-flexbox .swiper-slide {
float: left;
}
.swiper-container-vertical > .swiper-wrapper {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
}
.swiper-wrapper {
position: relative;
width: 100%;
height: 100%;
z-index: 1;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-transition-property: -webkit-transform;
transition-property: -webkit-transform;
-o-transition-property: transform;
transition-property: transform;
transition-property: transform, -webkit-transform;
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
.swiper-container-android .swiper-slide,
.swiper-wrapper {
-webkit-transform: translate3d(0px, 0, 0);
transform: translate3d(0px, 0, 0);
}
.swiper-container-multirow > .swiper-wrapper {
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.swiper-container-free-mode > .swiper-wrapper {
-webkit-transition-timing-function: ease-out;
-o-transition-timing-function: ease-out;
transition-timing-function: ease-out;
margin: 0 auto;
}
.swiper-slide {
-webkit-flex-shrink: 0;
-ms-flex-negative: 0;
flex-shrink: 0;
width: 100%;
height: 100%;
position: relative;
-webkit-transition-property: -webkit-transform;
transition-property: -webkit-transform;
-o-transition-property: transform;
transition-property: transform;
transition-property: transform, -webkit-transform;
}
.swiper-slide-invisible-blank {
visibility: hidden;
}
/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
height: auto;
}
.swiper-container-autoheight .swiper-wrapper {
-webkit-box-align: start;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start;
-webkit-transition-property: height, -webkit-transform;
transition-property: height, -webkit-transform;
-o-transition-property: transform, height;
transition-property: transform, height;
transition-property: transform, height, -webkit-transform;
}
/* 3D Effects */
.swiper-container-3d {
-webkit-perspective: 1200px;
perspective: 1200px;
}
.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
}
.swiper-container-3d .swiper-slide-shadow-left {
background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-right {
background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-top {
background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-bottom {
background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
/* IE10 Windows Phone 8 Fixes */
.swiper-container-wp8-horizontal,
.swiper-container-wp8-horizontal > .swiper-wrapper {
-ms-touch-action: pan-y;
touch-action: pan-y;
}
.swiper-container-wp8-vertical,
.swiper-container-wp8-vertical > .swiper-wrapper {
-ms-touch-action: pan-x;
touch-action: pan-x;
}
.swiper-button-prev,
.swiper-button-next {
position: absolute;
top: 50%;
width: 27px;
height: 44px;
margin-top: -22px;
z-index: 10;
cursor: pointer;
background-size: 27px 44px;
background-position: center;
background-repeat: no-repeat;
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
opacity: 0.35;
cursor: auto;
pointer-events: none;
}
.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
left: 10px;
right: auto;
}
.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
right: 10px;
left: auto;
}
.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-lock {
display: none;
}
.swiper-pagination {
position: absolute;
text-align: center;
-webkit-transition: 300ms opacity;
-o-transition: 300ms opacity;
transition: 300ms opacity;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
bottom: 10px;
left: 0;
width: 100%;
}
/* Bullets */
.swiper-pagination-bullets-dynamic {
overflow: hidden;
font-size: 0;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
-webkit-transform: scale(0.33);
-ms-transform: scale(0.33);
transform: scale(0.33);
position: relative;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
-webkit-transform: scale(0.66);
-ms-transform: scale(0.66);
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
-webkit-transform: scale(0.33);
-ms-transform: scale(0.33);
transform: scale(0.33);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
-webkit-transform: scale(0.66);
-ms-transform: scale(0.66);
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
-webkit-transform: scale(0.33);
-ms-transform: scale(0.33);
transform: scale(0.33);
}
.swiper-pagination-bullet {
width: 8px;
height: 8px;
display: inline-block;
border-radius: 100%;
background: #000;
opacity: 0.2;
}
button.swiper-pagination-bullet {
border: none;
margin: 0;
padding: 0;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
cursor: pointer;
}
.swiper-pagination-bullet-active {
opacity: 1;
background: #007aff;
}
.swiper-container-vertical > .swiper-pagination-bullets {
right: 10px;
top: 50%;
-webkit-transform: translate3d(0px, -50%, 0);
transform: translate3d(0px, -50%, 0);
}
.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 6px 0;
display: block;
}
.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
width: 8px;
}
.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
display: inline-block;
-webkit-transition: 200ms top, 200ms -webkit-transform;
transition: 200ms top, 200ms -webkit-transform;
-o-transition: 200ms transform, 200ms top;
transition: 200ms transform, 200ms top;
transition: 200ms transform, 200ms top, 200ms -webkit-transform;
}
.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 0 4px;
}
.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
left: 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
white-space: nowrap;
}
.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
-webkit-transition: 200ms left, 200ms -webkit-transform;
transition: 200ms left, 200ms -webkit-transform;
-o-transition: 200ms transform, 200ms left;
transition: 200ms transform, 200ms left;
transition: 200ms transform, 200ms left, 200ms -webkit-transform;
}
.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
-webkit-transition: 200ms right, 200ms -webkit-transform;
transition: 200ms right, 200ms -webkit-transform;
-o-transition: 200ms transform, 200ms right;
transition: 200ms transform, 200ms right;
transition: 200ms transform, 200ms right, 200ms -webkit-transform;
}
/* Progress */
.swiper-pagination-progressbar {
background: rgba(0, 0, 0, 0.25);
position: absolute;
}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
background: #007aff;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
-webkit-transform: scale(0);
-ms-transform: scale(0);
transform: scale(0);
-webkit-transform-origin: left top;
-ms-transform-origin: left top;
transform-origin: left top;
}
.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
-webkit-transform-origin: right top;
-ms-transform-origin: right top;
transform-origin: right top;
}
.swiper-container-horizontal > .swiper-pagination-progressbar,
.swiper-container-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
width: 100%;
height: 4px;
left: 0;
top: 0;
}
.swiper-container-vertical > .swiper-pagination-progressbar,
.swiper-container-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
width: 4px;
height: 100%;
left: 0;
top: 0;
}
.swiper-pagination-white .swiper-pagination-bullet-active {
background: #ffffff;
}
.swiper-pagination-progressbar.swiper-pagination-white {
background: rgba(255, 255, 255, 0.25);
}
.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill {
background: #ffffff;
}
.swiper-pagination-black .swiper-pagination-bullet-active {
background: #000000;
}
.swiper-pagination-progressbar.swiper-pagination-black {
background: rgba(0, 0, 0, 0.25);
}
.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill {
background: #000000;
}
.swiper-pagination-lock {
display: none;
}
/* Scrollbar */
.swiper-scrollbar {
border-radius: 10px;
position: relative;
-ms-touch-action: none;
background: rgba(0, 0, 0, 0.1);
}
.swiper-container-horizontal > .swiper-scrollbar {
position: absolute;
left: 1%;
bottom: 3px;
z-index: 50;
height: 5px;
width: 98%;
}
.swiper-container-vertical > .swiper-scrollbar {
position: absolute;
right: 3px;
top: 1%;
z-index: 50;
width: 5px;
height: 98%;
}
.swiper-scrollbar-drag {
height: 100%;
width: 100%;
position: relative;
background: rgba(0, 0, 0, 0.5);
border-radius: 10px;
left: 0;
top: 0;
}
.swiper-scrollbar-cursor-drag {
cursor: move;
}
.swiper-scrollbar-lock {
display: none;
}
.swiper-zoom-container {
width: 100%;
height: 100%;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
text-align: center;
}
.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
max-width: 100%;
max-height: 100%;
-o-object-fit: contain;
object-fit: contain;
}
.swiper-slide-zoomed {
cursor: move;
}
/* Preloader */
.swiper-lazy-preloader {
width: 42px;
height: 42px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -21px;
margin-top: -21px;
z-index: 10;
-webkit-transform-origin: 50%;
-ms-transform-origin: 50%;
transform-origin: 50%;
-webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
animation: swiper-preloader-spin 1s steps(12, end) infinite;
}
.swiper-lazy-preloader:after {
display: block;
content: '';
width: 100%;
height: 100%;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
background-position: 50%;
background-size: 100%;
background-repeat: no-repeat;
}
.swiper-lazy-preloader-white:after {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
@-webkit-keyframes swiper-preloader-spin {
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes swiper-preloader-spin {
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
/* a11y */
.swiper-container .swiper-notification {
position: absolute;
left: 0;
top: 0;
pointer-events: none;
opacity: 0;
z-index: -1000;
}
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
-webkit-transition-timing-function: ease-out;
-o-transition-timing-function: ease-out;
transition-timing-function: ease-out;
}
.swiper-container-fade .swiper-slide {
pointer-events: none;
-webkit-transition-property: opacity;
-o-transition-property: opacity;
transition-property: opacity;
}
.swiper-container-fade .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-cube {
overflow: visible;
}
.swiper-container-cube .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
visibility: hidden;
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
width: 100%;
height: 100%;
}
.swiper-container-cube .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-cube.swiper-container-rtl .swiper-slide {
-webkit-transform-origin: 100% 0;
-ms-transform-origin: 100% 0;
transform-origin: 100% 0;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
pointer-events: auto;
visibility: visible;
}
.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.swiper-container-cube .swiper-cube-shadow {
position: absolute;
left: 0;
bottom: 0px;
width: 100%;
height: 100%;
background: #000;
opacity: 0.6;
-webkit-filter: blur(50px);
filter: blur(50px);
z-index: 0;
}
.swiper-container-flip {
overflow: visible;
}
.swiper-container-flip .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
}
.swiper-container-flip .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-flip .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-right {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.swiper-container-coverflow .swiper-wrapper {
/* Windows 8 IE 10 fix */
-ms-perspective: 1200px;
}

12
lib/Swiper/dist/css/swiper.min.css vendored

File diff suppressed because one or more lines are too long

7151
lib/Swiper/dist/js/swiper.esm.bundle.js vendored

File diff suppressed because it is too large Load Diff

7133
lib/Swiper/dist/js/swiper.esm.js vendored

File diff suppressed because it is too large Load Diff

8124
lib/Swiper/dist/js/swiper.js vendored

File diff suppressed because it is too large Load Diff

13
lib/Swiper/dist/js/swiper.min.js vendored

File diff suppressed because one or more lines are too long

1
lib/Swiper/dist/js/swiper.min.js.map vendored

File diff suppressed because one or more lines are too long

13
lib/swiper/swiper-bundle.min.css vendored

File diff suppressed because one or more lines are too long

14
lib/swiper/swiper-bundle.min.js vendored

File diff suppressed because one or more lines are too long

1
lib/swiper/swiper-bundle.min.js.map

File diff suppressed because one or more lines are too long

71
modeles/swiper.html

@ -1,34 +1,83 @@
[(#REM) Cas de l'objet]
[(#SET{rand,#VAL{1}|rand{400000}})]
<B_SWIPER>
<div class="swiper-container[ swiper_(#ID_SWIPER)]">
<div class="swiper-container[ swiper_(#ID_SWIPER)][ (#ENV{args/align})][ (#ENV{class})]">
<div class="swiper-wrapper">
<BOUCLE_SWIPER(DOCUMENTS) {id_swiper} {par rang_lien, num titre, titre} {si #ENV{id_swiper}} {extension==jpg|png|gif}>
<INCLURE{fond=inclure/inc-swiper-figure, id_document,rel=#GET{rand}} />
<BOUCLE_SWIPER(DOCUMENTS)
{id_swiper}
{par rang_lien, num titre, titre}
{si #ENV{id_swiper}}
{extension==jpg|png|gif}>
<INCLURE{fond=inclure/inc-swiper-figure, id_document, rel=#GET{rand}} />
</BOUCLE_SWIPER>
</div>
[(#TOTAL_BOUCLE|>{1}|oui)<INCLURE{fond=inclure/inc-swiper-paginations} />]
[(#TOTAL_BOUCLE|>{1}|oui)
<INCLURE{fond=inclure/inc-swiper-paginations} />
<INCLURE{fond=inclure/inc-swiper-buttons} />
<INCLURE{fond=inclure/inc-swiper-scrollbar} />
]
</div>
</B_SWIPER>
[(#REM) Cas d'un article]
<B_SWIPER_ARTICLE>
<div class="swiper-container[ swiper_article_(#ID_ARTICLE)]">
<div class="swiper-container[ swiper_article_(#ID_ARTICLE)][ (#ENV{args/align})][ (#ENV{class})]">
<div class="swiper-wrapper">
<BOUCLE_SWIPER_ARTICLE(DOCUMENTS) {id_article} {par rang_lien, num titre, titre} {si #ENV{multiple}|non} {si #ENV{id_swiper}|non} {extension==jpg|png|gif}>
<INCLURE{fond=inclure/inc-swiper-figure, id_document,rel=#GET{rand}} />
<BOUCLE_SWIPER_ARTICLE(DOCUMENTS)
{id_article}
{par rang_lien, num titre, titre}
{si #ENV{multiple}|non}
{si #ENV{id_swiper}|non}
{extension==jpg|png|gif}>
<INCLURE{fond=inclure/inc-swiper-figure, id_document, rel=#GET{rand}} />
</BOUCLE_SWIPER_ARTICLE>
</div>
[(#TOTAL_BOUCLE|>{1}|oui)<INCLURE{fond=inclure/inc-swiper-paginations} />]
[(#TOTAL_BOUCLE|>{1}|oui)
<INCLURE{fond=inclure/inc-swiper-paginations} />
<INCLURE{fond=inclure/inc-swiper-buttons} />
<INCLURE{fond=inclure/inc-swiper-scrollbar} />
]
</div>
</B_SWIPER_ARTICLE>
[(#REM) Cas d'une rubrique]
<B_SWIPER_RUBRIQUE>
<div class="swiper-container[ swiper_rubrique(#ID_RUBRIQUE)][ (#ENV{args/align})][ (#ENV{class})]">
<div class="swiper-wrapper">
<BOUCLE_SWIPER_RUBRIQUE(DOCUMENTS)
{id_rubrique}
{par rang_lien, num titre, titre}
{si #ENV{multiple}|non}
{si #ENV{id_swiper}|non}
{si #ENV{id_article}|non}
{extension==jpg|png|gif}
>
<INCLURE{fond=inclure/inc-swiper-figure, id_document, rel=#GET{rand}} />
</BOUCLE_SWIPER_RUBRIQUE>
</div>
[(#TOTAL_BOUCLE|>{1}|oui)
<INCLURE{fond=inclure/inc-swiper-paginations} />
<INCLURE{fond=inclure/inc-swiper-buttons} />
<INCLURE{fond=inclure/inc-swiper-scrollbar} />
]
</div>
</B_SWIPER_RUBRIQUE>
[(#SET{multiple,[(#ENV{multiple}|explode{","})]})]
<B_SWIPER_AU_CHOIX>
<div class="swiper-container swiper_documents">
<div class="swiper-container swiper_documents[ (#ENV{args/align})][ (#ENV{class})]">
<div class="swiper-wrapper">
<BOUCLE_SWIPER_AU_CHOIX(DOCUMENTS){id_document IN #GET{multiple}}{extension==jpg|png|gif}>
<BOUCLE_SWIPER_AU_CHOIX(DOCUMENTS)
{id_document IN #GET{multiple}}
{extension==jpg|png|gif}
>
<INCLURE{fond=inclure/inc-swiper-figure, id_document,rel=#GET{rand}} />
</BOUCLE_SWIPER_AU_CHOIX>
</div>
[(#TOTAL_BOUCLE|>{1}|oui)<INCLURE{fond=inclure/inc-swiper-paginations} />]
[(#TOTAL_BOUCLE|>{1}|oui)
<INCLURE{fond=inclure/inc-swiper-paginations} />
<INCLURE{fond=inclure/inc-swiper-buttons} />
<INCLURE{fond=inclure/inc-swiper-scrollbar} />
]
</div>
</B_SWIPER_AU_CHOIX>

7
paquet.xml

@ -1,21 +1,20 @@
<paquet
prefix="swiper"
categorie="multimedia"
version="1.1.1"
version="1.2.0"
etat="test"
compatibilite="[3.2.0;3.2.*]"
logo="prive/themes/spip/images/swiper-64.png"
documentation="https://www.lesmoutonssauvages.com/article37"
documentation="https://contrib.spip.net/article5347"
schema="1.0.0"
>
<nom>Swiper</nom>
<auteur lien='https://www.lesmoutonssauvages.com'>Charles Stephan</auteur>
<credit lien='https://github.com/nolimits4web'>Vladimir Kharlampidi (nolimits4web)</credit>
<licence>GNU/GPL</licence>
<necessite nom="saisies" compatibilite="[3.23.2;]" />
<necessite nom="cextras" compatibilite="[3.11.3;[" />

2
swiper.html

@ -17,9 +17,7 @@
</head>
<body class="pas_surlignable page_swiper">
[(#MODELE{swiper,env})]
</body>
</html>
</BOUCLE_principale>

23
swiper_pipelines.php

@ -17,24 +17,23 @@ function swiper_configurateur() {
$c = lire_config('swiper');
$flux = '<script type="text/javascript">';
$flux .= ' var swiper_options = '.$c["swiper_options"];
$flux .= ' , mySwipers={};';
$flux .= ' $(document).ready(function(){ ';
$flux .= ' const swiper_options = '.$c["swiper_options"];
$flux .= ' , spipSwipers = {}';
$flux .= ' , swipersInstantiation = function() { ';
$flux .= ' var target = swiper_options.containerModifierClass || ".swiper-container";';
$flux .= ' target = $(target);';
$flux .= ' if (target.length) {';
$flux .= ' target.each(function(i,el) { mySwipers[i] = new Swiper($(el), swiper_options); })';
$flux .= ' }';
$flux .= ' })';
$flux .= ' if (target.length) target.each(function(i,el) { spipSwipers[i] = new Swiper(el, swiper_options); })';
$flux .= ' };';
$flux .= '$(document).ready(swipersInstantiation);';
$flux .= 'onAjaxLoad(swipersInstantiation)';
$flux .= '</script>';
return $flux;
}
function swiper_insert_head($flux) {
$lib = find_in_path('lib/Swiper/dist/js/swiper.min.js');
$lib = find_in_path('lib/swiper/swiper-bundle.min.js');
$flux .='<script src="'.$lib.'" type="text/javascript"></script>';
$flux .= swiper_configurateur();
@ -43,7 +42,7 @@ function swiper_insert_head($flux) {
function swiper_insert_head_css($flux) {
$css = find_in_path('lib/Swiper/dist/css/swiper.min.css');
$css = find_in_path('lib/swiper/swiper-bundle.min.css');
$flux .='<link rel="stylesheet" type="text/css" href="'.$css.'">';
$swiper_spip_css = find_in_path('swiper_spip.css');
@ -54,13 +53,13 @@ function swiper_insert_head_css($flux) {
function swiper_header_prive($flux) {
$css = find_in_path('lib/Swiper/dist/css/swiper.min.css');
$css = find_in_path('lib/swiper/swiper-bundle.min.css');
$flux .='<link rel="stylesheet" type="text/css" href="'.$css.'">';
$swiper_spip_css = find_in_path('swiper_spip.css');
$flux .='<link rel="stylesheet" type="text/css" href="'.$swiper_spip_css.'">';
$lib = find_in_path('lib/Swiper/dist/js/swiper.min.js');
$lib = find_in_path('lib/swiper/swiper-bundle.min.js');
$flux .='<script src="'.$lib.'" type="text/javascript"></script>';
$flux .= swiper_configurateur();

31
swiper_spip.css

@ -1,5 +1,22 @@
.swiper-container {
height: 300px;
width: 500px;
}
.swiper-container.left {
margin-left:inherit;
float:left;
margin-right: 1em;
}
.swiper-container.right {
margin-right:inherit;
float:right;