{"version":3,"file":"avatar-group.vue2.mjs","sources":["../../../../../../packages/components/avatar/src/avatar-group.vue"],"sourcesContent":["<template>\r\n  <a-avatar-group\r\n    v-bind=\"attrs\"\r\n    :key=\"avatarKey\"\r\n    :class=\"[bem.b()]\"\r\n    :max-count=\"maxCount\"\r\n    :max-style=\"\r\n      maxStyle ? maxStyle : { 'background-color': moreBg, color: moreColor }\r\n    \"\r\n  >\r\n    <slot>\r\n      <template v-for=\"(item, index) in groupList\" :key=\"index\">\r\n        <!-- 带文字提示 -->\r\n        <ll-tooltip\r\n          v-if=\"item.tooltip\"\r\n          :tip=\"item.tooltip\"\r\n          :container-style=\"{\r\n            ...(index !== 0 &&\r\n            (index <= getIndex ||\r\n              !props.maxCount ||\r\n              props.maxCount > groupList.length)\r\n              ? { 'margin-inline-start': dynamicSpace + 'px' }\r\n              : {}),\r\n            ...(index === getIndex\r\n              ? { 'margin-inline-end': dynamicSpace + 8 + 'px' }\r\n              : {}),\r\n          }\"\r\n          @mouseenter=\"handleHover(true, index)\"\r\n          @mouseleave=\"handleHover(false, -1)\"\r\n        >\r\n          <ll-avatar\r\n            v-bind=\"filterAtt(item)\"\r\n            :src=\"item.value\"\r\n            :icon=\"{ iconName: item.value, color: item.color }\"\r\n            :text=\"item.value\"\r\n            :style=\"{\r\n              'background-color': item.backgroundColor,\r\n              'border-color': item.borderColor,\r\n              color: item.color,\r\n            }\"\r\n            @click=\"handleAvatarClick(item, item.value, index)\"\r\n          />\r\n        </ll-tooltip>\r\n        <ll-avatar\r\n          v-else\r\n          v-bind=\"filterAtt(item)\"\r\n          :src=\"item.value\"\r\n          :icon=\"{ iconName: item.value, color: item.color }\"\r\n          :text=\"item.value\"\r\n          :style=\"{\r\n            'background-color': item.backgroundColor,\r\n            'border-color': item.borderColor,\r\n            color: item.color,\r\n            ...(index !== 0 &&\r\n            (index <= getIndex ||\r\n              !props.maxCount ||\r\n              props.maxCount > groupList.length)\r\n              ? { 'margin-inline-start': dynamicSpace + 'px' }\r\n              : {}),\r\n            ...(index === getIndex\r\n              ? { 'margin-inline-end': dynamicSpace + 8 + 'px' }\r\n              : {}),\r\n          }\"\r\n          @click=\"handleAvatarClick(item, item.value, index)\"\r\n          @mouseenter=\"handleHover(true, index)\"\r\n          @mouseleave=\"handleHover(false, -1)\"\r\n        />\r\n      </template>\r\n    </slot>\r\n  </a-avatar-group>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { createNamespace } from '@ll-plus/utils'\r\nimport { computed, ref, useAttrs, watch } from 'vue'\r\nimport { avatarGroupProps } from './avatar'\r\n\r\n// 1.defineOptions\r\ndefineOptions({ name: 'LlAvatarGroup' })\r\n\r\nconst attrs = useAttrs()\r\n\r\n// 2.props/emits\r\nconst props = defineProps(avatarGroupProps)\r\nconst emits = defineEmits(['click', 'mouseenter', 'mouseleave'])\r\n\r\n// 3.const\r\nconst bem = createNamespace('avatar-group')\r\n\r\nconst avatarKey = ref(0)\r\n\r\nconst isHovered = ref(false) // 悬停状态标识\r\n\r\nconst handleHover = (v: boolean, index: number) => {\r\n  emits(v ? 'mouseenter' : 'mouseleave')\r\n  if (getIndex.value !== -1 && index > getIndex.value) {\r\n    return\r\n  }\r\n\r\n  if (props.useHover) {\r\n    isHovered.value = v\r\n  } else {\r\n    isHovered.value = false\r\n  }\r\n}\r\n\r\nconst dynamicSpace = computed(() => {\r\n  return isHovered.value ? 0 : props.avatarSpace\r\n})\r\n\r\n// 4.methods\r\nconst handleAvatarClick = (item: any, value: string, index: number) => {\r\n  emits('click', item, value, index)\r\n}\r\n\r\nconst filterAtt = (item: any) => {\r\n  const newItem = { ...item }\r\n  delete newItem.tooltip\r\n  delete newItem.backgroundColor\r\n  delete newItem.value\r\n  delete newItem.borderColor\r\n  delete newItem.color\r\n  return newItem\r\n}\r\n\r\n// 获取“更多头像”前一位索引\r\nconst getIndex = computed(() => {\r\n  if (0 < props.maxCount && props.maxCount <= props.groupList.length) {\r\n    return props.maxCount - 1\r\n  }\r\n  return -1\r\n})\r\n\r\nwatch([() => attrs.size, () => attrs.shape], () => {\r\n  avatarKey.value++ // 改变key强制重新渲染\r\n})\r\n</script>\r\n"],"names":["_createBlock","_mergeProps","_unref","maxCount","maxStyle","moreBg","moreColor","_renderSlot","_openBlock","_createElementBlock","_Fragment","_renderList","groupList","_createCommentVNode","_createVNode"],"mappings":"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"}