'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _babelHelperVueJsxMergeProps = require('babel-helper-vue-jsx-merge-props'); var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _vueTypes = require('../_util/vue-types'); var _vueTypes2 = _interopRequireDefault(_vueTypes); var _propsUtil = require('../_util/props-util'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function isString(str) { return typeof str === 'string'; } exports['default'] = { name: 'Step', props: { prefixCls: _vueTypes2['default'].string, wrapperStyle: _vueTypes2['default'].object, itemWidth: _vueTypes2['default'].string, status: _vueTypes2['default'].string, iconPrefix: _vueTypes2['default'].string, icon: _vueTypes2['default'].any, adjustMarginRight: _vueTypes2['default'].string, stepNumber: _vueTypes2['default'].string, description: _vueTypes2['default'].any, title: _vueTypes2['default'].any, progressDot: _vueTypes2['default'].oneOfType([_vueTypes2['default'].bool, _vueTypes2['default'].func]), tailContent: _vueTypes2['default'].any, icons: _vueTypes2['default'].shape({ finish: _vueTypes2['default'].any, error: _vueTypes2['default'].any }).loose }, methods: { renderIconNode: function renderIconNode() { var _iconClassName; var h = this.$createElement; var _getOptionProps = (0, _propsUtil.getOptionProps)(this), prefixCls = _getOptionProps.prefixCls, stepNumber = _getOptionProps.stepNumber, status = _getOptionProps.status, iconPrefix = _getOptionProps.iconPrefix, icons = _getOptionProps.icons; var progressDot = this.progressDot; if (progressDot === undefined) { progressDot = this.$scopedSlots.progressDot; } var icon = (0, _propsUtil.getComponentFromProp)(this, 'icon'); var title = (0, _propsUtil.getComponentFromProp)(this, 'title'); var description = (0, _propsUtil.getComponentFromProp)(this, 'description'); var iconNode = void 0; var iconClassName = (_iconClassName = {}, (0, _defineProperty3['default'])(_iconClassName, prefixCls + '-icon', true), (0, _defineProperty3['default'])(_iconClassName, iconPrefix + 'icon', true), (0, _defineProperty3['default'])(_iconClassName, iconPrefix + 'icon-' + icon, icon && isString(icon)), (0, _defineProperty3['default'])(_iconClassName, iconPrefix + 'icon-check', !icon && status === 'finish' && icons && !icons.finish), (0, _defineProperty3['default'])(_iconClassName, iconPrefix + 'icon-close', !icon && status === 'error' && icons && !icons.error), _iconClassName); var iconDot = h('span', { 'class': prefixCls + '-icon-dot' }); // `progressDot` enjoy the highest priority if (progressDot) { if (typeof progressDot === 'function') { iconNode = h( 'span', { 'class': prefixCls + '-icon' }, [progressDot({ index: stepNumber - 1, status: status, title: title, description: description, prefixCls: prefixCls })] ); } else { iconNode = h( 'span', { 'class': prefixCls + '-icon' }, [iconDot] ); } } else if (icon && !isString(icon)) { iconNode = h( 'span', { 'class': prefixCls + '-icon' }, [icon] ); } else if (icons && icons.finish && status === 'finish') { iconNode = h( 'span', { 'class': prefixCls + '-icon' }, [icons.finish] ); } else if (icons && icons.error && status === 'error') { iconNode = h( 'span', { 'class': prefixCls + '-icon' }, [icons.error] ); } else if (icon || status === 'finish' || status === 'error') { iconNode = h('span', { 'class': iconClassName }); } else { iconNode = h( 'span', { 'class': prefixCls + '-icon' }, [stepNumber] ); } return iconNode; } }, render: function render() { var _classString; var h = arguments[0]; var _getOptionProps2 = (0, _propsUtil.getOptionProps)(this), prefixCls = _getOptionProps2.prefixCls, itemWidth = _getOptionProps2.itemWidth, _getOptionProps2$stat = _getOptionProps2.status, status = _getOptionProps2$stat === undefined ? 'wait' : _getOptionProps2$stat, tailContent = _getOptionProps2.tailContent, adjustMarginRight = _getOptionProps2.adjustMarginRight; var title = (0, _propsUtil.getComponentFromProp)(this, 'title'); var description = (0, _propsUtil.getComponentFromProp)(this, 'description'); var classString = (_classString = {}, (0, _defineProperty3['default'])(_classString, prefixCls + '-item', true), (0, _defineProperty3['default'])(_classString, prefixCls + '-item-' + status, true), (0, _defineProperty3['default'])(_classString, prefixCls + '-item-custom', (0, _propsUtil.getComponentFromProp)(this, 'icon')), _classString); var stepProps = { 'class': classString, on: this.$listeners }; var stepItemStyle = {}; if (itemWidth) { stepItemStyle.width = itemWidth; } if (adjustMarginRight) { stepItemStyle.marginRight = adjustMarginRight; } return h( 'div', (0, _babelHelperVueJsxMergeProps2['default'])([stepProps, { style: stepItemStyle }]), [h( 'div', { 'class': prefixCls + '-item-tail' }, [tailContent] ), h( 'div', { 'class': prefixCls + '-item-icon' }, [this.renderIconNode()] ), h( 'div', { 'class': prefixCls + '-item-content' }, [h( 'div', { 'class': prefixCls + '-item-title' }, [title] ), description && h( 'div', { 'class': prefixCls + '-item-description' }, [description] )] )] ); } };