ant-design-vue
Version:
An enterprise-class UI design language and Vue-based implementation
162 lines (141 loc) • 4.09 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.NextArrow = exports.PrevArrow = undefined;
var _babelHelperVueJsxMergeProps = require('babel-helper-vue-jsx-merge-props');
var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _vnode = require('../../_util/vnode');
var _innerSliderUtils = require('./utils/innerSliderUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function noop() {}
var PrevArrow = exports.PrevArrow = {
functional: true,
clickHandler: function clickHandler(options, handle, e) {
if (e) {
e.preventDefault();
}
handle(options, e);
},
render: function render(createElement, context) {
var h = arguments[0];
var props = context.props;
var clickHandler = props.clickHandler,
infinite = props.infinite,
currentSlide = props.currentSlide,
slideCount = props.slideCount,
slidesToShow = props.slidesToShow;
var prevClasses = { 'slick-arrow': true, 'slick-prev': true };
var prevHandler = function prevHandler(e) {
if (e) {
e.preventDefault();
}
clickHandler({ message: 'previous' });
};
if (!infinite && (currentSlide === 0 || slideCount <= slidesToShow)) {
prevClasses['slick-disabled'] = true;
prevHandler = noop;
}
var prevArrowProps = {
key: '0',
domProps: {
'data-role': 'none'
},
'class': prevClasses,
style: { display: 'block' },
on: {
click: prevHandler
}
};
var customProps = {
currentSlide: currentSlide,
slideCount: slideCount
};
var prevArrow = void 0;
if (props.prevArrow) {
prevArrow = (0, _vnode.cloneElement)(props.prevArrow((0, _extends3['default'])({}, prevArrowProps, {
props: customProps
})), {
key: '0',
'class': prevClasses,
style: { display: 'block' },
on: {
click: prevHandler
}
});
} else {
prevArrow = h(
'button',
(0, _babelHelperVueJsxMergeProps2['default'])([{ key: '0', attrs: { type: 'button' }
}, prevArrowProps]),
[' ', 'Previous']
);
}
return prevArrow;
}
};
var NextArrow = exports.NextArrow = {
functional: true,
clickHandler: function clickHandler(options, handle, e) {
if (e) {
e.preventDefault();
}
handle(options, e);
},
render: function render(createElement, context) {
var h = arguments[0];
var props = context.props;
var clickHandler = props.clickHandler,
currentSlide = props.currentSlide,
slideCount = props.slideCount;
var nextClasses = { 'slick-arrow': true, 'slick-next': true };
var nextHandler = function nextHandler(e) {
if (e) {
e.preventDefault();
}
clickHandler({ message: 'next' });
};
if (!(0, _innerSliderUtils.canGoNext)(props)) {
nextClasses['slick-disabled'] = true;
nextHandler = noop;
}
var nextArrowProps = {
key: '1',
domProps: {
'data-role': 'none'
},
'class': nextClasses,
style: { display: 'block' },
on: {
click: nextHandler
}
};
var customProps = {
currentSlide: currentSlide,
slideCount: slideCount
};
var nextArrow = void 0;
if (props.nextArrow) {
nextArrow = (0, _vnode.cloneElement)(props.nextArrow((0, _extends3['default'])({}, nextArrowProps, {
props: customProps
})), {
key: '1',
'class': nextClasses,
style: { display: 'block' },
on: {
click: nextHandler
}
});
} else {
nextArrow = h(
'button',
(0, _babelHelperVueJsxMergeProps2['default'])([{ key: '1', attrs: { type: 'button' }
}, nextArrowProps]),
[' ', 'Next']
);
}
return nextArrow;
}
};
;