button2.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var index$1 = require('../../icon/index.js');
  5. var useButton = require('./use-button.js');
  6. var button = require('./button.js');
  7. var buttonCustom = require('./button-custom.js');
  8. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  9. var index = require('../../../hooks/use-namespace/index.js');
  10. const _sfc_main = vue.defineComponent({
  11. ...{
  12. name: "ElButton"
  13. },
  14. __name: "button",
  15. props: button.buttonProps,
  16. emits: button.buttonEmits,
  17. setup(__props, { expose: __expose, emit: __emit }) {
  18. const props = __props;
  19. const emit = __emit;
  20. const buttonStyle = buttonCustom.useButtonCustomStyle(props);
  21. const ns = index.useNamespace("button");
  22. const {
  23. _ref,
  24. _size,
  25. _type,
  26. _disabled,
  27. _props,
  28. _plain,
  29. _round,
  30. _text,
  31. shouldAddSpace,
  32. handleClick
  33. } = useButton.useButton(props, emit);
  34. const buttonKls = vue.computed(() => [
  35. ns.b(),
  36. ns.m(_type.value),
  37. ns.m(_size.value),
  38. ns.is("disabled", _disabled.value),
  39. ns.is("loading", props.loading),
  40. ns.is("plain", _plain.value),
  41. ns.is("round", _round.value),
  42. ns.is("circle", props.circle),
  43. ns.is("text", _text.value),
  44. ns.is("link", props.link),
  45. ns.is("has-bg", props.bg)
  46. ]);
  47. __expose({
  48. ref: _ref,
  49. size: _size,
  50. type: _type,
  51. disabled: _disabled,
  52. shouldAddSpace
  53. });
  54. return (_ctx, _cache) => {
  55. return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tag), vue.mergeProps({
  56. ref_key: "_ref",
  57. ref: _ref
  58. }, vue.unref(_props), {
  59. class: buttonKls.value,
  60. style: vue.unref(buttonStyle),
  61. onClick: vue.unref(handleClick)
  62. }), {
  63. default: vue.withCtx(() => [
  64. _ctx.loading ? (vue.openBlock(), vue.createElementBlock(
  65. vue.Fragment,
  66. { key: 0 },
  67. [
  68. _ctx.$slots.loading ? vue.renderSlot(_ctx.$slots, "loading", { key: 0 }) : (vue.openBlock(), vue.createBlock(vue.unref(index$1.ElIcon), {
  69. key: 1,
  70. class: vue.normalizeClass(vue.unref(ns).is("loading"))
  71. }, {
  72. default: vue.withCtx(() => [
  73. (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.loadingIcon)))
  74. ]),
  75. _: 1
  76. }, 8, ["class"]))
  77. ],
  78. 64
  79. )) : _ctx.icon || _ctx.$slots.icon ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ElIcon), { key: 1 }, {
  80. default: vue.withCtx(() => [
  81. _ctx.icon ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.icon), { key: 0 })) : vue.renderSlot(_ctx.$slots, "icon", { key: 1 })
  82. ]),
  83. _: 3
  84. })) : vue.createCommentVNode("v-if", true),
  85. _ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock(
  86. "span",
  87. {
  88. key: 2,
  89. class: vue.normalizeClass({ [vue.unref(ns).em("text", "expand")]: vue.unref(shouldAddSpace) })
  90. },
  91. [
  92. vue.renderSlot(_ctx.$slots, "default")
  93. ],
  94. 2
  95. )) : vue.createCommentVNode("v-if", true)
  96. ]),
  97. _: 3
  98. }, 16, ["class", "style", "onClick"]);
  99. };
  100. }
  101. });
  102. var Button = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);
  103. exports["default"] = Button;
  104. //# sourceMappingURL=button2.js.map