arrows.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.PrevArrow = exports.NextArrow = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  10. var _classNames = _interopRequireDefault(require("../_util/classNames"));
  11. var _vnode = require("../_util/vnode");
  12. var _innerSliderUtils = require("./utils/innerSliderUtils");
  13. function noop() {}
  14. function handler(options, handle, e) {
  15. if (e) {
  16. e.preventDefault();
  17. }
  18. handle(options, e);
  19. }
  20. const PrevArrow = (_, _ref) => {
  21. let {
  22. attrs
  23. } = _ref;
  24. const {
  25. clickHandler,
  26. infinite,
  27. currentSlide,
  28. slideCount,
  29. slidesToShow
  30. } = attrs;
  31. const prevClasses = {
  32. 'slick-arrow': true,
  33. 'slick-prev': true
  34. };
  35. let prevHandler = function (e) {
  36. handler({
  37. message: 'previous'
  38. }, clickHandler, e);
  39. };
  40. if (!infinite && (currentSlide === 0 || slideCount <= slidesToShow)) {
  41. prevClasses['slick-disabled'] = true;
  42. prevHandler = noop;
  43. }
  44. const prevArrowProps = {
  45. key: '0',
  46. 'data-role': 'none',
  47. class: prevClasses,
  48. style: {
  49. display: 'block'
  50. },
  51. onClick: prevHandler
  52. };
  53. const customProps = {
  54. currentSlide,
  55. slideCount
  56. };
  57. let prevArrow;
  58. if (attrs.prevArrow) {
  59. prevArrow = (0, _vnode.cloneElement)(attrs.prevArrow((0, _extends2.default)((0, _extends2.default)({}, prevArrowProps), customProps)), {
  60. key: '0',
  61. class: prevClasses,
  62. style: {
  63. display: 'block'
  64. },
  65. onClick: prevHandler
  66. }, false);
  67. } else {
  68. prevArrow = (0, _vue.createVNode)("button", (0, _objectSpread2.default)({
  69. "key": "0",
  70. "type": "button"
  71. }, prevArrowProps), [' ', (0, _vue.createTextVNode)("Previous")]);
  72. }
  73. return prevArrow;
  74. };
  75. exports.PrevArrow = PrevArrow;
  76. PrevArrow.inheritAttrs = false;
  77. const NextArrow = (_, _ref2) => {
  78. let {
  79. attrs
  80. } = _ref2;
  81. const {
  82. clickHandler,
  83. currentSlide,
  84. slideCount
  85. } = attrs;
  86. const nextClasses = {
  87. 'slick-arrow': true,
  88. 'slick-next': true
  89. };
  90. let nextHandler = function (e) {
  91. handler({
  92. message: 'next'
  93. }, clickHandler, e);
  94. };
  95. if (!(0, _innerSliderUtils.canGoNext)(attrs)) {
  96. nextClasses['slick-disabled'] = true;
  97. nextHandler = noop;
  98. }
  99. const nextArrowProps = {
  100. key: '1',
  101. 'data-role': 'none',
  102. class: (0, _classNames.default)(nextClasses),
  103. style: {
  104. display: 'block'
  105. },
  106. onClick: nextHandler
  107. };
  108. const customProps = {
  109. currentSlide,
  110. slideCount
  111. };
  112. let nextArrow;
  113. if (attrs.nextArrow) {
  114. nextArrow = (0, _vnode.cloneElement)(attrs.nextArrow((0, _extends2.default)((0, _extends2.default)({}, nextArrowProps), customProps)), {
  115. key: '1',
  116. class: (0, _classNames.default)(nextClasses),
  117. style: {
  118. display: 'block'
  119. },
  120. onClick: nextHandler
  121. }, false);
  122. } else {
  123. nextArrow = (0, _vue.createVNode)("button", (0, _objectSpread2.default)({
  124. "key": "1",
  125. "type": "button"
  126. }, nextArrowProps), [' ', (0, _vue.createTextVNode)("Next")]);
  127. }
  128. return nextArrow;
  129. };
  130. exports.NextArrow = NextArrow;
  131. NextArrow.inheritAttrs = false;