tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 5.85 kB
Source Map (JSON)
{"version":3,"file":"avatar-group.mjs","sources":["../../src/avatar/avatar-group.tsx"],"sourcesContent":["import { computed, defineComponent, Fragment, provide, RendererNode } from 'vue';\nimport AvatarGroupProps from './avatar-group-props';\nimport config from '../config';\nimport TAvatar from './avatar';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { isValidSize } from '../_common/js/avatar/utils';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-avatar-group`,\n props: AvatarGroupProps,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const avatarGroupClass = usePrefixClass('avatar-group');\n\n provide('avatarGroup', { ...props });\n\n const direction = props.cascading ? props.cascading.split('-')[0] : 'right';\n const isCustomSize = computed(() => !isValidSize(props.size));\n\n const avatarGroupClasses = computed(() => [\n `${avatarGroupClass.value}`,\n `${avatarGroupClass.value}-offset-${direction}`,\n `${avatarGroupClass.value}-offset-${direction}-${isCustomSize.value ? 'medium' : props.size}`,\n ]);\n\n const onCollapsedItemClick = (e: MouseEvent) => {\n props.onCollapsedItemClick?.({ e });\n };\n\n const readerAvatar = () => {\n const children: Array<RendererNode> = renderTNodeJSX('default');\n const allChildren: Array<RendererNode> = [];\n\n children.forEach((child) => {\n if (child.type === Fragment) {\n allChildren.push(...child.children);\n } else {\n allChildren.push(child);\n }\n });\n\n let isShowCollapse = false;\n let avatarList: Array<RendererNode> = [];\n if (allChildren.length > props.max) {\n avatarList = allChildren.slice(0, props.max);\n isShowCollapse = true;\n } else {\n avatarList = allChildren;\n }\n\n if (isShowCollapse) {\n const collapseAvatar = renderTNodeJSX('collapseAvatar');\n avatarList.push(\n <div class={`${avatarGroupClass.value}__collapse--default`} onClick={onCollapsedItemClick}>\n <TAvatar size={avatarList[0].size || props.size} shape={props.shape}>\n {collapseAvatar || `+${allChildren.length - props.max}`}\n </TAvatar>\n </div>,\n );\n }\n\n return avatarList;\n };\n\n return () => {\n return <div class={avatarGroupClasses.value}>{readerAvatar()}</div>;\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","AvatarGroupProps","setup","renderTNodeJSX","useTNodeJSX","avatarGroupClass","usePrefixClass","provide","_objectSpread","direction","cascading","split","isCustomSize","computed","isValidSize","size","avatarGroupClasses","concat","value","onCollapsedItemClick","e","_props$onCollapsedIte","call","readerAvatar","children","allChildren","forEach","child","type","Fragment","push","apply","_toConsumableArray","isShowCollapse","avatarList","length","max","slice","collapseAvatar","_createVNode","TAvatar","shape","default","_default"],"mappings":"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"}