UNPKG

ant-design-vue

Version:

An enterprise-class UI design language and Vue-based implementation

66 lines (63 loc) 1.89 kB
import _extends from 'babel-runtime/helpers/extends'; import PropTypes from '../../_util/vue-types'; import BaseMixin from '../../_util/BaseMixin'; import { getOptionProps } from '../../_util/props-util'; export default { name: 'Handle', mixins: [BaseMixin], props: { prefixCls: PropTypes.string, vertical: PropTypes.bool, offset: PropTypes.number, disabled: PropTypes.bool, min: PropTypes.number, max: PropTypes.number, value: PropTypes.number, tabIndex: PropTypes.number, className: PropTypes.string // handleFocus: PropTypes.func.def(noop), // handleBlur: PropTypes.func.def(noop), }, methods: { focus: function focus() { this.$refs.handle.focus(); }, blur: function blur() { this.$refs.handle.blur(); } }, render: function render() { var h = arguments[0]; var _getOptionProps = getOptionProps(this), className = _getOptionProps.className, vertical = _getOptionProps.vertical, offset = _getOptionProps.offset, disabled = _getOptionProps.disabled, min = _getOptionProps.min, max = _getOptionProps.max, value = _getOptionProps.value, tabIndex = _getOptionProps.tabIndex; var postionStyle = vertical ? { bottom: offset + '%' } : { left: offset + '%' }; var elStyle = _extends({}, postionStyle); var ariaProps = {}; if (value !== undefined) { ariaProps = _extends({}, ariaProps, { 'aria-valuemin': min, 'aria-valuemax': max, 'aria-valuenow': value, 'aria-disabled': !!disabled }); } var handleProps = { attrs: _extends({ role: 'slider', tabIndex: disabled ? null : tabIndex || 0 }, ariaProps), 'class': className, on: this.$listeners, ref: 'handle', style: elStyle }; return h('div', handleProps); } };