{"version":3,"file":"Group.mjs","sources":["../../../../../../packages/components/avatar/src/Group.tsx"],"sourcesContent":["import type { CSSProperties } from 'vue';\nimport { cloneElement, flattenChildren, getPropsSlot } from '@antdv/utils';\nimport { computed, defineComponent, watchEffect } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\n\nimport Popover from '../../popover';\nimport useStyle from '../style';\nimport Avatar from './Avatar';\nimport { useAvatarProviderContext } from './AvatarContext';\n\nimport { groupProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AAvatarGroup',\n  inheritAttrs: false,\n  props: groupProps(),\n  setup(props, { slots, attrs }) {\n    const { prefixCls, direction } = useConfigInject('avatar', props);\n    const groupPrefixCls = computed(() => `${prefixCls.value}-group`);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    watchEffect(() => {\n      const context = { size: props.size, shape: props.shape };\n      useAvatarProviderContext(context);\n    });\n    return () => {\n      const {\n        maxPopoverPlacement = 'top',\n        maxCount,\n        maxStyle,\n        maxPopoverTrigger = 'hover',\n        shape,\n      } = props;\n\n      const cls = {\n        [groupPrefixCls.value]: true,\n        [`${groupPrefixCls.value}-rtl`]: direction.value === 'rtl',\n        [`${attrs.class}`]: !!attrs.class,\n        [hashId.value]: true,\n      };\n\n      const children = getPropsSlot(slots, props);\n      const childrenWithProps = flattenChildren(children).map((child, index) => cloneElement(child, {\n        key: `avatar-key-${index}`,\n      }),\n      );\n\n      const numOfChildren = childrenWithProps.length;\n      if (maxCount && maxCount < numOfChildren) {\n        const childrenShow = childrenWithProps.slice(0, maxCount);\n        const childrenHidden = childrenWithProps.slice(maxCount, numOfChildren);\n\n        childrenShow.push(\n          <Popover\n            key=\"avatar-popover-key\"\n            content={childrenHidden}\n            trigger={maxPopoverTrigger}\n            placement={maxPopoverPlacement}\n            overlayClassName={`${groupPrefixCls.value}-popover`}\n          >\n            <Avatar style={maxStyle} shape={shape}>{`+${numOfChildren - maxCount}`}</Avatar>\n          </Popover>,\n        );\n        return wrapSSR(\n          <div {...attrs} class={cls} style={attrs.style as CSSProperties}>\n            {childrenShow}\n          </div>,\n        );\n      }\n\n      return wrapSSR(\n        <div {...attrs} class={cls} style={attrs.style as CSSProperties}>\n          {childrenWithProps}\n        </div>,\n      );\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","props","groupProps","setup","slots","attrs","prefixCls","direction","useConfigInject","groupPrefixCls","computed","value","wrapSSR","hashId","useStyle","watchEffect","context","size","shape","useAvatarProviderContext","maxPopoverPlacement","maxCount","maxStyle","maxPopoverTrigger","cls","class","children","getPropsSlot","childrenWithProps","flattenChildren","map","child","index","cloneElement","key","numOfChildren","length","childrenShow","slice","childrenHidden","push","_createVNode","Popover","default","Avatar","style"],"mappings":"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"}