element-plus
Version:
A Component Library for Vue 3
1 lines • 5.01 kB
Source Map (JSON)
{"version":3,"file":"avatar-group.mjs","sources":["../../../../../../packages/components/avatar/src/avatar-group.tsx"],"sourcesContent":["import {\n cloneVNode,\n defineComponent,\n isVNode,\n provide,\n reactive,\n toRef,\n} from 'vue'\nimport { flattedChildren } from '@element-plus/utils'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { useNamespace } from '@element-plus/hooks'\nimport ElAvatar from './avatar.vue'\nimport { avatarGroupContextKey } from './constants'\nimport { avatarGroupProps } from './avatar-group-props'\n\nexport default defineComponent({\n name: 'ElAvatarGroup',\n props: avatarGroupProps,\n setup(props, { slots }) {\n const ns = useNamespace('avatar-group')\n\n provide(\n avatarGroupContextKey,\n reactive({\n size: toRef(props, 'size'),\n shape: toRef(props, 'shape'),\n })\n )\n\n return () => {\n const avatars = flattedChildren(slots.default?.() ?? [])\n let visibleAvatars = avatars\n\n const showCollapseAvatar =\n props.collapseAvatars && avatars.length > props.maxCollapseAvatars\n\n if (showCollapseAvatar) {\n visibleAvatars = avatars.slice(0, props.maxCollapseAvatars)\n const hiddenAvatars = avatars.slice(props.maxCollapseAvatars)\n\n visibleAvatars.push(\n <ElTooltip\n popperClass={props.popperClass}\n popperStyle={props.popperStyle}\n placement={props.placement}\n effect={props.effect}\n disabled={!props.collapseAvatarsTooltip}\n >\n {{\n default: () => (\n <ElAvatar\n size={props.size}\n shape={props.shape}\n class={props.collapseClass}\n style={props.collapseStyle}\n >\n + {hiddenAvatars.length}\n </ElAvatar>\n ),\n content: () => (\n <div class={ns.e('collapse-avatars')}>\n {hiddenAvatars.map((node, idx) =>\n isVNode(node)\n ? cloneVNode(node, { key: node.key ?? idx })\n : node\n )}\n </div>\n ),\n }}\n </ElTooltip>\n )\n }\n\n return <div class={ns.b()}>{visibleAvatars}</div>\n }\n },\n})\n"],"names":["name","props","avatarGroupProps","setup","slots","ns","useNamespace","provide","avatarGroupContextKey","reactive","size","toRef","shape","avatars","flattedChildren","default","visibleAvatars","showCollapseAvatar","collapseAvatars","length","maxCollapseAvatars","slice","hiddenAvatars","push","_createVNode","ElTooltip","popperClass","popperStyle","placement","effect","collapseAvatarsTooltip","ElAvatar","collapseClass","collapseStyle","_createTextVNode","content","e","map","node","idx","_a","isVNode","cloneVNode","key","b"],"mappings":"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"}