index.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports["default"] = void 0;
  5. var _babelHelperVueJsxMergeProps = _interopRequireDefault(require("@vue/babel-helper-vue-jsx-merge-props"));
  6. var _utils = require("../utils");
  7. var _functional = require("../utils/functional");
  8. var _info = _interopRequireDefault(require("../info"));
  9. var _src = require("../utils/validate/src");
  10. var _use = (0, _utils.use)('icon'),
  11. sfc = _use[0];
  12. function Icon(h, props, slots, ctx) {
  13. var urlIcon = (0, _src.isSrc)(props.name);
  14. return h(props.tag, (0, _babelHelperVueJsxMergeProps["default"])([{
  15. "class": [props.classPrefix, urlIcon ? 'van-icon--image' : props.classPrefix + "-" + props.name],
  16. "style": {
  17. color: props.color,
  18. fontSize: props.size
  19. }
  20. }, (0, _functional.inherit)(ctx, true)]), [slots["default"] && slots["default"](), urlIcon && h("img", {
  21. "attrs": {
  22. "src": props.name
  23. }
  24. }), h(_info["default"], {
  25. "attrs": {
  26. "info": props.info
  27. }
  28. })]);
  29. }
  30. Icon.props = {
  31. name: String,
  32. size: String,
  33. color: String,
  34. info: [String, Number],
  35. tag: {
  36. type: String,
  37. "default": 'i'
  38. },
  39. classPrefix: {
  40. type: String,
  41. "default": 'van-icon'
  42. }
  43. };
  44. var _default = sfc(Icon);
  45. exports["default"] = _default;