TransBtn.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { createVNode as _createVNode } from "vue";
  2. import { cloneVNode, isVNode } from 'vue';
  3. import PropTypes from '../_util/vue-types';
  4. const TransBtn = (props, _ref) => {
  5. let {
  6. slots
  7. } = _ref;
  8. var _a;
  9. const {
  10. class: className,
  11. customizeIcon,
  12. customizeIconProps,
  13. onMousedown,
  14. onClick
  15. } = props;
  16. let icon;
  17. if (typeof customizeIcon === 'function') {
  18. icon = customizeIcon(customizeIconProps);
  19. } else {
  20. icon = isVNode(customizeIcon) ? cloneVNode(customizeIcon) : customizeIcon;
  21. }
  22. return _createVNode("span", {
  23. "class": className,
  24. "onMousedown": event => {
  25. event.preventDefault();
  26. if (onMousedown) {
  27. onMousedown(event);
  28. }
  29. },
  30. "style": {
  31. userSelect: 'none',
  32. WebkitUserSelect: 'none'
  33. },
  34. "unselectable": "on",
  35. "onClick": onClick,
  36. "aria-hidden": true
  37. }, [icon !== undefined ? icon : _createVNode("span", {
  38. "class": className.split(/\s+/).map(cls => `${cls}-icon`)
  39. }, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)])]);
  40. };
  41. TransBtn.inheritAttrs = false;
  42. TransBtn.displayName = 'TransBtn';
  43. TransBtn.props = {
  44. class: String,
  45. customizeIcon: PropTypes.any,
  46. customizeIconProps: PropTypes.any,
  47. onMousedown: Function,
  48. onClick: Function
  49. };
  50. export default TransBtn;