UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 5.13 kB
{"version":3,"file":"button.vue2.mjs","sources":["../../../../../../packages/components/button/src/button.vue"],"sourcesContent":["<template>\n <component\n :is=\"tag\"\n ref=\"_ref\"\n v-bind=\"_props\"\n :class=\"buttonKls\"\n :style=\"buttonStyle\"\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\n v-if=\"$slots.default\"\n :class=\"{ [ns.em('text', 'expand')]: shouldAddSpace }\"\n >\n <slot />\n </span>\n </component>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, markRaw } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { Loading } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useButton } from './use-button'\nimport { buttonEmits } from './button'\nimport { useButtonCustomStyle } from './button-custom'\n\nimport type { ButtonProps } from './button'\n\ndefineOptions({\n name: 'ElButton',\n})\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n disabled: undefined,\n type: '',\n nativeType: 'button',\n loadingIcon: markRaw(Loading),\n plain: undefined,\n text: undefined,\n round: undefined,\n autoInsertSpace: undefined,\n tag: 'button',\n})\n\nconst emit = defineEmits(buttonEmits)\n\nconst buttonStyle = useButtonCustomStyle(props)\nconst ns = useNamespace('button')\nconst {\n _ref,\n _size,\n _type,\n _disabled,\n _props,\n _plain,\n _round,\n _text,\n shouldAddSpace,\n handleClick,\n} = useButton(props, emit)\nconst buttonKls = computed(() => [\n ns.b(),\n ns.m(_type.value),\n ns.m(_size.value),\n ns.is('disabled', _disabled.value),\n ns.is('loading', props.loading),\n ns.is('plain', _plain.value),\n ns.is('round', _round.value),\n ns.is('circle', props.circle),\n ns.is('text', _text.value),\n ns.is('link', props.link),\n ns.is('has-bg', props.bg),\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 /** @description whether adding space */\n shouldAddSpace,\n})\n</script>\n"],"names":["_createBlock","_resolveDynamicComponent","_mergeProps","_unref","_createElementBlock","_Fragment","$slots","_renderSlot","_normalizeClass","_openBlock"],"mappings":"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"}