vue-ant-patterns
Version:
vue-ant-patterns
95 lines (73 loc) • 2.68 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _antDesignVue = require('ant-design-vue');
var _buttonTypes = require('ant-design-vue/lib/button/buttonTypes');
var _buttonTypes2 = _interopRequireDefault(_buttonTypes);
var _propsUtil = require('ant-design-vue/lib/_util/props-util');
var _vueTypes = require('ant-design-vue/lib/_util/vue-types');
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _dIcon = require('../d-icon');
var _dIcon2 = _interopRequireDefault(_dIcon);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
/*
* @Description:
* @Autor: w.pengfei
* @Date: 2019-12-13 12:30:12
* @LastEditors: w.pengfei
* @LastEditTime: 2020-10-09 18:41:11
*/
var buttonProps = (0, _buttonTypes2['default'])();
var DIconButton = {
// functional: true,
name: 'DIconButton',
props: (0, _extends3['default'])({}, (0, _buttonTypes2['default'])(), {
active: _vueTypes2['default'].bool.def(false),
size: _vueTypes2['default'].oneOf(['xs', 'small', 'large', 'default']).def('default'),
icon: _vueTypes2['default'].string
}),
render: function render() {
var h = arguments[0];
var $slots = this.$slots,
$listeners = this.$listeners,
$attrs = this.$attrs,
$props = this.$props,
active = this.active;
var cls = (0, _classnames2['default'])({
'icon-button': 1,
active: active,
'icon-button-xs': $props.size === 'xs'
});
var icon = $props.icon,
rest = (0, _objectWithoutProperties3['default'])($props, ['icon']);
var cloneProps = (0, _extends3['default'])({}, rest);
var iconNode = icon ? h(_dIcon2['default'], {
attrs: { type: icon }
}) : null;
if (cloneProps.size === 'xs') {
delete cloneProps.size;
delete cloneProps.active;
}
var ButtonProps = (0, _extends3['default'])({}, $attrs, {
props: (0, _extends3['default'])({}, cloneProps),
on: (0, _extends3['default'])({}, $listeners),
'class': cls
});
return h(
_antDesignVue.Button,
ButtonProps,
[iconNode || $slots['default']]
);
}
};
DIconButton.install = function (Vue) {
Vue.component(DIconButton.name, DIconButton);
};
exports['default'] = DIconButton;