addClasses.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. function prepareClasses(entries, prefix) {
  2. const resultClasses = [];
  3. entries.forEach(item => {
  4. if (typeof item === 'object') {
  5. Object.keys(item).forEach(classNames => {
  6. if (item[classNames]) {
  7. resultClasses.push(prefix + classNames);
  8. }
  9. });
  10. } else if (typeof item === 'string') {
  11. resultClasses.push(prefix + item);
  12. }
  13. });
  14. return resultClasses;
  15. }
  16. export default function addClasses() {
  17. const swiper = this;
  18. const {
  19. classNames,
  20. params,
  21. rtl,
  22. el,
  23. device
  24. } = swiper;
  25. // prettier-ignore
  26. const suffixes = prepareClasses(['initialized', params.direction, {
  27. 'free-mode': swiper.params.freeMode && params.freeMode.enabled
  28. }, {
  29. 'autoheight': params.autoHeight
  30. }, {
  31. 'rtl': rtl
  32. }, {
  33. 'grid': params.grid && params.grid.rows > 1
  34. }, {
  35. 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'
  36. }, {
  37. 'android': device.android
  38. }, {
  39. 'ios': device.ios
  40. }, {
  41. 'css-mode': params.cssMode
  42. }, {
  43. 'centered': params.cssMode && params.centeredSlides
  44. }, {
  45. 'watch-progress': params.watchSlidesProgress
  46. }], params.containerModifierClass);
  47. classNames.push(...suffixes);
  48. el.classList.add(...classNames);
  49. swiper.emitContainerClasses();
  50. }