arrows.js 3.0 KB

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