{"version":3,"file":"avatar-group.mjs","names":["cloneVNode","defineComponent","isVNode","provide","reactive","toRef","createTextVNode","_createTextVNode","createVNode","_createVNode","flattedChildren","ElTooltip","useNamespace","ElAvatar","avatarGroupContextKey","avatarGroupProps","name","props","setup","slots","ns","size","shape","avatars","default","visibleAvatars","showCollapseAvatar","collapseAvatars","length","maxCollapseAvatars","slice","hiddenAvatars","push","popperClass","popperStyle","placement","effect","collapseAvatarsTooltip","collapseClass","collapseStyle","content","e","map","node","idx","key","b"],"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"],"mappings":";;;;;;;;;AAeA,2BAAeC,gCAAgB;CAC7Be,MAAM;CACNC,OAAOF;CACPG,MAAMD,OAAO,EAAEE,SAAS;EACtB,MAAMC,KAAKR,aAAa,eAAe;AAEvCT,UACEW,uBACAV,SAAS;GACPiB,MAAMhB,MAAMY,OAAO,OAAO;GAC1BK,OAAOjB,MAAMY,OAAO,QAAO;GAC5B,CACH,CAAC;AAED,eAAa;GACX,MAAMM,UAAUb,gBAAgBS,MAAMK,WAAW,IAAI,EAAE,CAAC;GACxD,IAAIC,iBAAiBF;AAKrB,OAFEN,MAAMU,mBAAmBJ,QAAQK,SAASX,MAAMY,oBAE1B;AACtBJ,qBAAiBF,QAAQO,MAAM,GAAGb,MAAMY,mBAAmB;IAC3D,MAAME,gBAAgBR,QAAQO,MAAMb,MAAMY,mBAAmB;AAE7DJ,mBAAeO,KAAIvB,YAAAE,WAAA;KAAA,eAEFM,MAAMgB;KAAW,eACjBhB,MAAMiB;KAAW,aACnBjB,MAAMkB;KAAS,UAClBlB,MAAMmB;KAAM,YACV,CAACnB,MAAMoB;KAAsB,EAAA;KAGrCb,eAASf,YAAAI,gBAAA;MAAA,QAECI,MAAMI;MAAI,SACTJ,MAAMK;MAAK,SACXL,MAAMqB;MAAa,SACnBrB,MAAMsB;MAAa,EAAA,EAAAf,eAAA,CAAAjB,gBAAA,KAAA,EAEvBwB,cAAcH,OAAM,EAAA,CAE1B;KACDY,eAAS/B,YAAA,OAAA,EAAA,SACKW,GAAGqB,EAAE,mBAAkB,EAAC,EAAA,CACjCV,cAAcW,KAAKC,MAAMC,QACxB1C,QAAQyC,KAAK,GACT3C,WAAW2C,MAAM,EAAEE,KAAKF,KAAKE,OAAOD,KAAK,CAAC,GAC1CD,KACL,CAAA,CAAA;KAEJ,CAGP,CAAC;;AAGH,UAAAlC,YAAA,OAAA,EAAA,SAAmBW,GAAG0B,GAAE,EAAC,EAAA,CAAGrB,eAAc,CAAA;;;CAG/C,CAAC"}