{"version":3,"file":"button-group2.mjs","sources":["../../../../../../../packages/components/button-group/src/button-group.vue"],"sourcesContent":["<script lang=\"ts\">\nimport {\n  //  computed,\n  defineComponent,\n  ref,\n  watch,\n} from 'vue'\n// import { useGlobalConfig } from '@tav-ui/hooks/global/useGlobalConfig'\nimport Button from '@tav-ui/components/button'\nimport { useScrollToCenter } from '@tav-ui/hooks'\nimport { isNullOrUnDef } from '@tav-ui/utils'\nimport { buttonGroupProps } from './types'\n// import type { Ref } from 'vue'\nimport type { ButtonGroupItem } from './types'\nimport type { ElRef } from '../../modal/src/types'\n\nexport default defineComponent({\n  name: 'TaButtonGroup',\n  components: { Button },\n  props: buttonGroupProps,\n  emits: ['btnClick', 'update:active'],\n  setup(props, { emit }) {\n    const scrollRef = ref(null)\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const clickHandle = (data: ButtonGroupItem, index: number, event?: Event) => {\n      if (data.value == props.active) return\n      emit('update:active', data.value)\n      emit('btnClick', data)\n    }\n\n    const { scrollToCenter } = useScrollToCenter(scrollRef)\n    watch(\n      () => props.active,\n      (v) => {\n        const buttonIndex = props.buttons.findIndex((btn) => btn.value === v)\n        const buttonEl = (scrollRef.value as ElRef)?.querySelectorAll('button')[buttonIndex]\n        buttonEl && scrollToCenter(buttonEl)\n      },\n      {\n        immediate: true,\n      }\n    )\n\n    // const permissions = useGlobalConfig('permissions') as Ref<Record<string, any>>\n    // const filterButton = computed(() =>\n    //   props.buttons.filter((btn) => {\n    //     if (!btn.permission) return true\n    //     return permissions.value[btn.permission]?.ifShow\n    //   })\n    // )\n    // if (props.buttons.length !== filterButton.value.length) {\n    //   const nextBtn = filterButton.value[0]\n    //   if (nextBtn) {\n    //     clickHandle(nextBtn, 0)\n    //   } else {\n    //     emit('update:active', -1)\n    //   }\n    // }\n\n    const getNumber = (num: any, item: any): string | number => {\n      if (isNullOrUnDef(num)) {\n        return 0\n      }\n      // 可以给组件配，也可以自定义配置\n      const badgeMax = item.badgeMax || props.badgeMax\n      if (props.badgeMax) {\n        return num > badgeMax ? `${badgeMax}+` : num\n      } else {\n        return num\n      }\n    }\n    return {\n      scrollRef,\n      getNumber,\n      clickHandle,\n      // filterButton,\n    }\n  },\n})\n</script>\n\n<template>\n  <div class=\"ta-button-group\" @click.stop>\n    <div ref=\"scrollRef\" class=\"ta-button-group-inner\">\n      <Button\n        v-for=\"(item, index) in buttons\"\n        :key=\"item.value\"\n        :type=\"active == item.value ? 'primary' : 'default'\"\n        :disabled=\"item.disabled\"\n        :loading=\"item.loading\"\n        :permission=\"item.permission\"\n        :permission-code=\"item.permissionCode\"\n        :use-permission=\"item.usePermission\"\n        @click=\"clickHandle(item, index, $event)\"\n      >\n        {{ item.label }}\n        <span v-if=\"item.number != null\">（{{ item.number }}）</span>\n        <sup v-if=\"item.badge != null\" class=\"badge-count\">\n          <template v-if=\"item.badge !== true\">\n            {{ getNumber(item.badge, item) }}\n          </template>\n          <template v-else-if=\"item.number != null\">\n            {{ getNumber(item.number, item) }}\n          </template>\n        </sup>\n      </Button>\n    </div>\n    <slot />\n  </div>\n</template>\n"],"names":["Button","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","_createBlock","_toDisplayString","_createCommentVNode","_createTextVNode"],"mappings":"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"}