{"version":3,"file":"buttons-vue.mjs","sources":["../../../../../../packages/components/buttons/src/buttons-vue.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue'\nimport { buttonsProps } from './buttons'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport {\n  prepareProps,\n  prepareEvents,\n  prepareClassNames,\n  prepareStyles,\n} from '@el-plus/utils/props'\nimport { vRepeatClick, vPermission } from '@el-plus/directives'\nimport { ElMessageBox } from 'element-plus'\nimport { useLocale } from '@el-plus/hooks/use-locale'\nconst bem = createNameSpace('button')\n\nexport default defineComponent({\n  name: 'EpButtons',\n  directives: {\n    [vRepeatClick.name]: vRepeatClick,\n    [vPermission.name]: vPermission,\n  },\n  inheritAttrs: false,\n  props: buttonsProps,\n  setup(props, { emit }) {\n    const { t } = useLocale()\n    const { list, ...buttonProps } = props\n    const customList = computed(() => {\n      return list.filter((button) => {\n        if ('show' in button) {\n          return typeof button.show === 'function'\n            ? button.show(button)\n            : button.show\n        } else if ('hide' in button) {\n          return typeof button.hide === 'function'\n            ? !button.hide(button)\n            : !button.hide\n        }\n        return true\n      })\n    })\n    const clickFn = async (item) => {\n      if (item.confirmBefore) {\n        await item.confirmBefore()\n      }\n      if (item.confirm) {\n        const confirmText =\n          item.confirmText ||\n          `${t('ep.buttons.secondConfirm')}${item.name}${t('ep.buttons.secondConfirmEnd')}？`\n        await ElMessageBox.confirm(confirmText, t('ep.buttons.prompt'), {\n          confirmButtonText: t('ep.buttons.confirm'),\n          cancelButtonText: t('ep.buttons.cancel'),\n          type: 'warning',\n        })\n      }\n      item.onClick && item.onClick()\n    }\n    const getDisabled = (item) => {\n      if (typeof item.disabled === 'function') {\n        return item.disabled()\n      }\n      if (typeof props.disabled === 'function') {\n        return props.disabled()\n      }\n      return props.disabled\n    }\n\n    return () => (\n      <>\n        {customList.value.map((item) => {\n          const permissionArr = item.permission?.split(':') || []\n          return (\n            <el-button\n              class={[bem.b(), prepareClassNames()]}\n              style={prepareStyles()}\n              key={item.prop || item.name}\n              v-slots={{\n                default: () => item.name,\n                ...item.scopedSlots,\n              }}\n              {...{\n                ...prepareProps(buttonProps),\n                ...prepareProps(item, ['scopedSlots', 'name', 'onClick']),\n                disabled: getDisabled(item),\n              }}\n              v-repeat-click={\n                typeof item.onClick === 'function'\n                  ? {\n                      handler: () => clickFn(item),\n                      immediate: true,\n                    }\n                  : () => clickFn(item)\n              }\n              v-permission={{\n                arg: permissionArr[0],\n                value: permissionArr[1],\n              }}\n            ></el-button>\n          )\n        })}\n      </>\n    )\n  },\n})\n"],"names":["bem","createNameSpace","name","directives","vRepeatClick","vPermission","inheritAttrs","props","buttonsProps","setup","emit","t","useLocale","list","buttonProps","customList","computed","filter","button","show","hide","clickFn","item","confirmBefore","confirm","confirmText","ElMessageBox","confirmButtonText","cancelButtonText","type","onClick","getDisabled","disabled","_createVNode","_Fragment","value","map","permissionArr","permission","split","_withDirectives","_resolveComponent","_mergeProps","b","prepareClassNames","prepareStyles","prop","prepareProps","default","scopedSlots","_resolveDirective","handler","immediate","arg"],"mappings":"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"}