{"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,IAAA,uBAAeC,gCAAgB;CAC7Be,MAAM;CACNC,OAAOF;CACPG,MAAMD,OAAO,EAAEE,SAAS;EACtB,MAAMC,KAAKR,aAAa,cAAc;EAEtCT,QACEW,uBACAV,SAAS;GACPiB,MAAMhB,MAAMY,OAAO,MAAM;GACzBK,OAAOjB,MAAMY,OAAO,OAAO;EAC7B,CAAC,CACH;EAEA,aAAa;GACX,MAAMM,UAAUb,gBAAgBS,MAAMK,UAAU,KAAK,CAAA,CAAE;GACvD,IAAIC,iBAAiBF;GAKrB,IAFEN,MAAMU,mBAAmBJ,QAAQK,SAASX,MAAMY,oBAE1B;IACtBJ,iBAAiBF,QAAQO,MAAM,GAAGb,MAAMY,kBAAkB;IAC1D,MAAME,gBAAgBR,QAAQO,MAAMb,MAAMY,kBAAkB;IAE5DJ,eAAeO,KAAIvB,YAAAE,WAAA;KAAA,eAEFM,MAAMgB;KAAW,eACjBhB,MAAMiB;KAAW,aACnBjB,MAAMkB;KAAS,UAClBlB,MAAMmB;KAAM,YACV,CAACnB,MAAMoB;IAAsB,GAAA;KAGrCb,eAASf,YAAAI,gBAAA;MAAA,QAECI,MAAMI;MAAI,SACTJ,MAAMK;MAAK,SACXL,MAAMqB;MAAa,SACnBrB,MAAMsB;KAAa,GAAA,EAAAf,eAAA,CAAAjB,gBAAA,IAAA,GAEvBwB,cAAcH,MAAM,EAAA,CAAA;KAG3BY,eAAS/B,YAAA,OAAA,EAAA,SACKW,GAAGqB,EAAE,kBAAkB,EAAC,GAAA,CACjCV,cAAcW,KAAKC,MAAMC,QACxB1C,QAAQyC,IAAI,IACR3C,WAAW2C,MAAM,EAAEE,KAAKF,KAAKE,OAAOD,IAAI,CAAC,IACzCD,IACN,CAAC,CAAA;IAEJ,CAAA,CAGP;GACF;GAEA,OAAAlC,YAAA,OAAA,EAAA,SAAmBW,GAAG0B,EAAE,EAAC,GAAA,CAAGrB,cAAc,CAAA;EAC5C;CACF;AACF,CAAC"}