transButton.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
  10. var _KeyCode = _interopRequireDefault(require("./KeyCode"));
  11. var _excluded = ["noStyle", "disabled"];
  12. var inlineStyle = {
  13. border: 0,
  14. background: 'transparent',
  15. padding: 0,
  16. lineHeight: 'inherit',
  17. display: 'inline-block'
  18. };
  19. var TransButton = (0, _vue.defineComponent)({
  20. compatConfig: {
  21. MODE: 3
  22. },
  23. name: 'TransButton',
  24. inheritAttrs: false,
  25. props: {
  26. noStyle: {
  27. type: Boolean,
  28. default: undefined
  29. },
  30. onClick: Function,
  31. disabled: {
  32. type: Boolean,
  33. default: undefined
  34. },
  35. autofocus: {
  36. type: Boolean,
  37. default: undefined
  38. }
  39. },
  40. setup: function setup(props, _ref) {
  41. var slots = _ref.slots,
  42. emit = _ref.emit,
  43. attrs = _ref.attrs,
  44. expose = _ref.expose;
  45. var domRef = (0, _vue.ref)();
  46. var onKeyDown = function onKeyDown(event) {
  47. var keyCode = event.keyCode;
  48. if (keyCode === _KeyCode.default.ENTER) {
  49. event.preventDefault();
  50. }
  51. };
  52. var onKeyUp = function onKeyUp(event) {
  53. var keyCode = event.keyCode;
  54. if (keyCode === _KeyCode.default.ENTER) {
  55. emit('click', event);
  56. }
  57. };
  58. var onClick = function onClick(e) {
  59. emit('click', e);
  60. };
  61. var focus = function focus() {
  62. if (domRef.value) {
  63. domRef.value.focus();
  64. }
  65. };
  66. var blur = function blur() {
  67. if (domRef.value) {
  68. domRef.value.blur();
  69. }
  70. };
  71. (0, _vue.onMounted)(function () {
  72. if (props.autofocus) {
  73. focus();
  74. }
  75. });
  76. expose({
  77. focus: focus,
  78. blur: blur
  79. });
  80. return function () {
  81. var _slots$default;
  82. var noStyle = props.noStyle,
  83. disabled = props.disabled,
  84. restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
  85. var mergedStyle = {};
  86. if (!noStyle) {
  87. mergedStyle = (0, _objectSpread2.default)({}, inlineStyle);
  88. }
  89. if (disabled) {
  90. mergedStyle.pointerEvents = 'none';
  91. }
  92. return (0, _vue.createVNode)("div", (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
  93. "role": "button",
  94. "tabindex": 0,
  95. "ref": domRef
  96. }, restProps), attrs), {}, {
  97. "onClick": onClick,
  98. "onKeydown": onKeyDown,
  99. "onKeyup": onKeyUp,
  100. "style": (0, _objectSpread2.default)((0, _objectSpread2.default)({}, mergedStyle), attrs.style || {})
  101. }), [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)]);
  102. };
  103. }
  104. });
  105. var _default = TransButton;
  106. exports.default = _default;