"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _babelHelperVueJsxMergeProps = _interopRequireDefault(require("@vue/babel-helper-vue-jsx-merge-props")); var _utils = require("../utils"); var _functional = require("../utils/functional"); var _info = _interopRequireDefault(require("../info")); // Utils // Components var _createNamespace = (0, _utils.createNamespace)('icon'), createComponent = _createNamespace[0], bem = _createNamespace[1]; function isImage(name) { return name ? name.indexOf('/') !== -1 : false; } // compatible with legacy usage, should be removed in next major version var LEGACY_MAP = { medel: 'medal', 'medel-o': 'medal-o', 'calender-o': 'calendar-o' }; function correctName(name) { return name && LEGACY_MAP[name] || name; } function Icon(h, props, slots, ctx) { var _props$badge; var name = correctName(props.name); var imageIcon = isImage(name); if (process.env.NODE_ENV === 'development' && props.info) { console.warn('[Vant] Icon: "info" prop is deprecated, use "badge" prop instead.'); } return h(props.tag, (0, _babelHelperVueJsxMergeProps.default)([{ "class": [props.classPrefix, imageIcon ? '' : props.classPrefix + "-" + name], "style": { color: props.color, fontSize: (0, _utils.addUnit)(props.size) } }, (0, _functional.inherit)(ctx, true)]), [slots.default && slots.default(), imageIcon && h("img", { "class": bem('image'), "attrs": { "src": name } }), h(_info.default, { "attrs": { "dot": props.dot, "info": (_props$badge = props.badge) != null ? _props$badge : props.info } })]); } Icon.props = { dot: Boolean, name: String, size: [Number, String], // @deprecated // should be removed in next major version info: [Number, String], badge: [Number, String], color: String, tag: { type: String, default: 'i' }, classPrefix: { type: String, default: bem() } }; var _default = createComponent(Icon); exports.default = _default;