b8c24c3ff56b08abcca7809b8e2e70c97d2d4771ccf627c8fe8bc524b5205357816ff5f27b95d074167e100567cf985b01d9615ad61bcb16b523da106b4abc 3.4 KB

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