UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

55 lines (49 loc) 1.67 kB
import _defineProperty from 'babel-runtime/helpers/defineProperty'; import _extends from 'babel-runtime/helpers/extends'; import { Icon } from 'ant-design-vue'; import cx from 'classnames'; import PropTypes from 'ant-design-vue/es/_util/vue-types'; import { filterEmpty, getSlots, getClass } from 'ant-design-vue/es/_util/props-util'; import './style/index.less'; var DIcon = { functional: true, name: 'DIcon', props: { type: PropTypes.string, component: PropTypes.any, viewBox: PropTypes.any, spin: PropTypes.bool.def(false), theme: PropTypes.oneOf(['filled', 'outlined', 'twoTone']), twoToneColor: PropTypes.string }, render: function render(h, context) { var props = context.props, slots = context.slots, listeners = context.listeners, data = context.data; var type = props.type; var reg = /^\$-/; if (!type) return null; var classString = cx(_extends({}, getClass(context))); var customProps = _extends({}, context, { 'class': classString, on: _extends({}, listeners) }); var iconNode = null; if (/^\$-/.test(type)) { var _extends2; var _classString = cx(_extends({}, getClass(context), (_extends2 = {}, _defineProperty(_extends2, 'acme-icon', reg.test(type)), _defineProperty(_extends2, 'acme-icon-' + type.replace(reg, ''), reg.test(type)), _extends2))); var customIProps = { 'class': _classString }; iconNode = h('i', customIProps); } else { iconNode = h(Icon, customProps); } return iconNode; } }; DIcon.install = function (Vue) { Vue.component('DIcon', DIcon); }; export default DIcon;