ssr.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.install = exports.swiper = exports.Swiper = undefined;
  6. var _swiper = require('swiper/dist/js/swiper.js');
  7. var _swiper2 = _interopRequireDefault(_swiper);
  8. var _objectAssign = require('object-assign');
  9. var _objectAssign2 = _interopRequireDefault(_objectAssign);
  10. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  11. var Swiper = window.Swiper || _swiper2.default;
  12. var DEFAULT_EVENTS = ['beforeDestroy', 'slideChange', 'slideChangeTransitionStart', 'slideChangeTransitionEnd', 'slideNextTransitionStart', 'slideNextTransitionEnd', 'slidePrevTransitionStart', 'slidePrevTransitionEnd', 'transitionStart', 'transitionEnd', 'touchStart', 'touchMove', 'touchMoveOpposite', 'sliderMove', 'touchEnd', 'click', 'tap', 'doubleTap', 'imagesReady', 'progress', 'reachBeginning', 'reachEnd', 'fromEdge', 'setTranslate', 'setTransition', 'resize'];
  13. var swiperDirective = function swiperDirective(globalOptions) {
  14. var getInstanceName = function getInstanceName(el, binding, vnode) {
  15. var instanceName = null;
  16. if (binding.arg) {
  17. instanceName = binding.arg;
  18. } else if (vnode.data.attrs && (vnode.data.attrs.instanceName || vnode.data.attrs['instance-name'])) {
  19. instanceName = vnode.data.attrs.instanceName || vnode.data.attrs['instance-name'];
  20. } else if (el.id) {
  21. instanceName = el.id;
  22. }
  23. return instanceName || 'swiper';
  24. };
  25. return {
  26. bind: function bind(el, binding, vnode) {
  27. var self = vnode.context;
  28. if (el.className.indexOf('swiper-container') === -1) {
  29. el.className += (el.className ? ' ' : '') + 'swiper-container';
  30. }
  31. },
  32. inserted: function inserted(el, binding, vnode) {
  33. var self = vnode.context;
  34. var options = binding.value;
  35. var instanceName = getInstanceName(el, binding, vnode);
  36. var swiper = self[instanceName];
  37. var eventEmit = function eventEmit(vnode, name, data) {
  38. var handlers = vnode.data && vnode.data.on || vnode.componentOptions && vnode.componentOptions.listeners;
  39. if (handlers && handlers[name]) handlers[name].fns(data);
  40. };
  41. if (!swiper) {
  42. var swiperOptions = (0, _objectAssign2.default)({}, globalOptions, options);
  43. swiper = self[instanceName] = new Swiper(el, swiperOptions);
  44. DEFAULT_EVENTS.forEach(function (eventName) {
  45. swiper.on(eventName, function () {
  46. eventEmit.apply(undefined, [vnode, eventName].concat(Array.prototype.slice.call(arguments)));
  47. eventEmit.apply(undefined, [vnode, eventName.replace(/([A-Z])/g, '-$1')].concat(Array.prototype.slice.call(arguments)));
  48. });
  49. });
  50. }
  51. eventEmit(vnode, 'ready', swiper);
  52. },
  53. componentUpdated: function componentUpdated(el, binding, vnode) {
  54. var instanceName = getInstanceName(el, binding, vnode);
  55. var swiper = vnode.context[instanceName];
  56. if (swiper) {
  57. swiper.update && swiper.update();
  58. swiper.navigation && swiper.navigation.update();
  59. swiper.pagination && swiper.pagination.render();
  60. swiper.pagination && swiper.pagination.update();
  61. }
  62. },
  63. unbind: function unbind(el, binding, vnode) {
  64. var instanceName = getInstanceName(el, binding, vnode);
  65. var swiper = vnode.context[instanceName];
  66. if (swiper) {
  67. swiper.destroy && swiper.destroy();
  68. delete vnode.context[instanceName];
  69. }
  70. }
  71. };
  72. };
  73. var swiper = swiperDirective({});
  74. var install = function install(Vue) {
  75. var globalOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  76. Vue.directive('swiper', swiperDirective(globalOptions));
  77. };
  78. var VueAwesomeSwiper = { Swiper: Swiper, swiper: swiper, install: install };
  79. exports.Swiper = Swiper;
  80. exports.swiper = swiper;
  81. exports.install = install;
  82. exports.default = VueAwesomeSwiper;