{"version":3,"file":"button.vue2.mjs","sources":["../../../../../packages/components/button/src/button.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n  name: 'ElButton'\n});\n</script>\n<template>\n  <button\n    ref=\"_ref\"\n    :class=\"[\n      ns.b(),\n      ns.m(_type),\n      ns.m(_size),\n      ns.is('disabled', _disabled),\n      ns.is('loading', loading),\n      ns.is('plain', plain),\n      ns.is('round', round),\n      ns.is('circle', circle),\n      ns.is('text', text),\n      ns.is('link', link),\n      ns.is('has-bg', bg)\n    ]\"\n    :aria-disabled=\"_disabled || loading\"\n    :disabled=\"_disabled || loading\"\n    :autofocus=\"autofocus\"\n    :type=\"nativeType\"\n    @click=\"handleClick\"\n  >\n    <template v-if=\"loading\">\n      <slot v-if=\"$slots.loading\" name=\"loading\" />\n      <el-icon v-else :class=\"ns.is('loading')\">\n        <component :is=\"loadingIcon\" />\n      </el-icon>\n    </template>\n    <el-icon v-else-if=\"icon || $slots.icon\">\n      <component :is=\"icon\" v-if=\"icon\" />\n      <slot v-else name=\"icon\" />\n    </el-icon>\n    <span v-if=\"$slots.default\">\n      <slot />\n    </span>\n  </button>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, ref } from 'vue'\nimport { ElIcon } from '@element-ultra/components/icon'\nimport { useDisabled, useNamespace, useSize } from '@element-ultra/hooks'\nimport { buttonGroupContextKey } from '@element-ultra/tokens'\nimport { buttonEmits, buttonProps } from './button'\n\n\n\nconst props = defineProps(buttonProps)\nconst emit = defineEmits(buttonEmits)\n\nconst buttonGroupContext = inject(buttonGroupContextKey, undefined)\n\nconst ns = useNamespace('button')\nconst _size = useSize({\n  props,\n  fallback: computed(() => buttonGroupContext?.size)\n})\nconst _disabled = useDisabled({ props })\nconst _ref = ref<HTMLButtonElement>()\n\nconst _type = computed(() => props.type || buttonGroupContext?.type || '')\n\nconst handleClick = (evt: MouseEvent) => {\n  emit('click', evt)\n}\n\ndefineExpose({\n  /** @description button html element */\n  ref: _ref,\n  /** @description button size */\n  size: _size,\n  /** @description button type */\n  type: _type,\n  /** @description button disabled */\n  disabled: _disabled\n})\n</script>\n"],"names":["__MACROS_defineComponent"],"mappings":";;;;;;;;;;;;AAEA,MAA6B,cAAAA,eAAyB,CAAA;AAAA,EACpD,IAAM,EAAA,UAAA;AACR,CAAC,CAAA,CAAA;;;;;;;AAoDD,IAAM,MAAA,kBAAA,GAAqB,MAAO,CAAA,qBAAA,EAAuB,KAAS,CAAA,CAAA,CAAA;AAElE,IAAM,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAChC,IAAA,MAAM,QAAQ,OAAQ,CAAA;AAAA,MACpB,KAAA;AAAA,MACA,QAAU,EAAA,QAAA,CAAS,MAAM,kBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,kBAAA,CAAoB,IAAI,CAAA;AAAA,KAClD,CAAA,CAAA;AACD,IAAA,MAAM,SAAY,GAAA,WAAA,CAAY,EAAE,KAAA,EAAO,CAAA,CAAA;AACvC,IAAA,MAAM,OAAO,GAAuB,EAAA,CAAA;AAEpC,IAAA,MAAM,QAAQ,QAAS,CAAA,MAAM,MAAM,IAAQ,KAAA,kBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,kBAAA,CAAoB,SAAQ,EAAE,CAAA,CAAA;AAEzE,IAAM,MAAA,WAAA,GAAc,CAAC,GAAoB,KAAA;AACvC,MAAA,IAAA,CAAK,SAAS,GAAG,CAAA,CAAA;AAAA,KACnB,CAAA;AAEA,IAAa,MAAA,CAAA;AAAA;AAAA,MAEX,GAAK,EAAA,IAAA;AAAA;AAAA,MAEL,IAAM,EAAA,KAAA;AAAA;AAAA,MAEN,IAAM,EAAA,KAAA;AAAA;AAAA,MAEN,QAAU,EAAA,SAAA;AAAA,KACX,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}