{"version":3,"file":"comment.mjs","sources":["../../src/comment/comment.tsx"],"sourcesContent":["import { computed, defineComponent, h, nextTick, onMounted, ref, toRefs, watch } from 'vue';\nimport { isFunction, isObject } from 'lodash-es';\nimport { ChevronDownSIcon, ChevronUpSIcon } from 'tdesign-icons-vue-next';\nimport Avatar from '../avatar';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useResizeObserver } from '../hooks/useResizeObserver';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { useConfig } from '../config-provider/useConfig';\nimport type { CommentActionItem, CommentFold, CommentFoldState } from './type';\nimport CommentProps from './props';\n\nconst DEFAULT_COMMENT_FOLDS = {\n  state: 'collapsed',\n  total: 0,\n  step: 3,\n} as unknown as CommentFold;\n\nexport default defineComponent({\n  name: 'TComment',\n  props: CommentProps,\n  setup(props) {\n    const renderTNodeJSX = useTNodeJSX();\n    const renderContent = useContent();\n    const commentClass = usePrefixClass('comment');\n    const { globalConfig } = useConfig('comment');\n\n    const { folds, defaultFolds } = toRefs(props);\n\n    const innerFoldsState = ref<CommentFoldState>(defaultFolds.value?.state || 'collapsed');\n    const foldSteps = ref(0);\n    const replyBodyRef = ref<HTMLDivElement>(null);\n    const replyInnerRef = ref<HTMLDivElement>(null);\n\n    const isControlled = computed(() => folds.value !== undefined);\n    const commentFolds = computed(() => folds.value || defaultFolds.value || DEFAULT_COMMENT_FOLDS);\n\n    // 折叠/展开文案，优先使用业务传入的 content，其次回退到全局国际化配置\n    const foldsContent = computed(() => {\n      const userContent = commentFolds.value.content || {};\n      return {\n        collapsed: userContent.collapsed ?? globalConfig.value.collapsedText,\n        partial: userContent.partial ?? [globalConfig.value.expandMoreText, globalConfig.value.collapseText],\n        expanded: userContent.expanded ?? globalConfig.value.collapseText,\n      };\n    });\n\n    // 当前实际使用的折叠状态\n    const curFoldsState = computed<CommentFoldState>(() => {\n      return isControlled.value ? folds.value?.state || 'collapsed' : innerFoldsState.value;\n    });\n\n    // 受控模式下，当外部 folds.state 或 step 变化时同步 foldSteps\n    watch([() => folds.value?.state, () => commentFolds.value.step], ([newState]) => {\n      if (!isControlled.value) {\n        return;\n      }\n      if (newState === 'collapsed') {\n        foldSteps.value = 0;\n      } else if (newState === 'expanded') {\n        foldSteps.value = (commentFolds.value.step || 3) - 1;\n      }\n    });\n\n    const handleClickActions = (event: Event, action: CommentActionItem | any) => {\n      props.onActions?.({ action, e: event });\n    };\n\n    const handleClickFold = (event: Event, isExpand: boolean) => {\n      if (!isExpand) {\n        // 收起：重置为 collapsed\n        foldSteps.value = 0;\n        if (!isControlled.value) {\n          innerFoldsState.value = 'collapsed';\n        }\n        props.onFolds?.({\n          fold: { ...commentFolds.value, state: 'collapsed' },\n          e: event,\n        });\n        return;\n      }\n\n      // 展开：递增步进并计算下一状态\n      foldSteps.value += 1;\n      const nextState: CommentFoldState =\n        foldSteps.value >= (commentFolds.value.step || 3) - 1 ? 'expanded' : 'partial';\n\n      if (!isControlled.value) {\n        innerFoldsState.value = nextState;\n      }\n      props.onFolds?.({\n        fold: { ...commentFolds.value, state: nextState },\n        e: event,\n      });\n    };\n\n    const renderAvatar = () => {\n      const avatarValue = props.avatar;\n      if (typeof avatarValue === 'string') {\n        return <Avatar class={`${commentClass.value}__avatar`} image={avatarValue} />;\n      }\n      if (isObject(avatarValue) && typeof avatarValue !== 'function') {\n        return <Avatar class={`${commentClass.value}__avatar`} {...(avatarValue as any)} />;\n      }\n      return renderTNodeJSX('avatar');\n    };\n\n    const renderAuthor = () => <div class={`${commentClass.value}__author`}>{renderTNodeJSX('author')}</div>;\n\n    const renderContentNode = () => <div class={`${commentClass.value}__content`}>{renderTNodeJSX('content')}</div>;\n\n    const renderActionItemContent = (item: CommentActionItem) => {\n      const { content } = item;\n      if (isFunction(content)) {\n        return (content as Function)(h, { disabled: item.disabled });\n      }\n      return content;\n    };\n\n    const renderFooter = () => {\n      const renderActions = () => {\n        const { actions } = props;\n        if (!actions) {\n          return null;\n        }\n        if (!Array.isArray(actions)) {\n          return <div onClick={(e: Event) => handleClickActions(e, actions)}>{renderTNodeJSX('actions')}</div>;\n        }\n        const renderLeftPlacement = () =>\n          actions\n            .filter((item) => item.placement === 'start')\n            .map((item) => (\n              <div key={item.key} onClick={(e: Event) => handleClickActions(e, item)}>\n                {renderActionItemContent(item)}\n              </div>\n            ));\n        const renderRightPlacement = () =>\n          actions\n            .filter((item) => item.placement === 'end')\n            .map((item) => (\n              <div key={item.key} onClick={(e: Event) => handleClickActions(e, item)}>\n                {renderActionItemContent(item)}\n              </div>\n            ));\n        return (\n          <>\n            <div class={`${commentClass.value}-block`}>{renderLeftPlacement()}</div>\n            <div class={`${commentClass.value}-block`}>{renderRightPlacement()}</div>\n          </>\n        );\n      };\n\n      return (\n        <div class={`${commentClass.value}__bottom`}>\n          <div class={`${commentClass.value}__date`}>{renderTNodeJSX('datetime')}</div>\n          <div class={`${commentClass.value}__actions`}>{renderActions()}</div>\n        </div>\n      );\n    };\n\n    const renderFoldsContent = () => {\n      const content = foldsContent.value;\n      if (curFoldsState.value === 'collapsed') {\n        // 全收起\n        return (\n          <div class={`${commentClass.value}__folds-item`} onClick={(e: Event) => handleClickFold(e, true)}>\n            {content.collapsed}\n            <ChevronDownSIcon size=\"16px\" />\n          </div>\n        );\n      }\n      if (curFoldsState.value === 'partial') {\n        // 半展开\n        const partialContent = content.partial as any;\n        return (\n          <>\n            <div class={`${commentClass.value}__folds-item`} onClick={(e: Event) => handleClickFold(e, true)}>\n              {Array.isArray(partialContent) ? partialContent[0] : partialContent}\n              <ChevronDownSIcon size=\"16px\" />\n            </div>\n            <div class={`${commentClass.value}__folds-item`} onClick={(e: Event) => handleClickFold(e, false)}>\n              {Array.isArray(partialContent) ? partialContent[1] : null}\n              <ChevronUpSIcon size=\"16px\" />\n            </div>\n          </>\n        );\n      }\n      // 全展开\n      return (\n        <div class={`${commentClass.value}__folds-item`} onClick={(e: Event) => handleClickFold(e, false)}>\n          {content.expanded}\n          <ChevronUpSIcon size=\"16px\" />\n        </div>\n      );\n    };\n\n    const renderFolds = () => {\n      if (!commentFolds.value.total || commentFolds.value.total <= 1) {\n        return null;\n      }\n      return <div class={`${commentClass.value}__folds`}>{renderFoldsContent()}</div>;\n    };\n\n    const renderReply = () => {\n      return (\n        <div class={`${commentClass.value}__reply`}>\n          <div ref={replyBodyRef} class={`${commentClass.value}__reply-body`}>\n            <div ref={replyInnerRef} class={`${commentClass.value}__reply-inner`}>\n              {renderContent('reply', 'default')}\n            </div>\n          </div>\n          {renderFolds()}\n        </div>\n      );\n    };\n\n    // 根据回复区内容高度同步设置容器高度\n    const updateReplyBodyHeight = () => {\n      const body = replyBodyRef.value;\n      const inner = replyInnerRef.value;\n      if (body && inner) {\n        body.style.height = `${inner.scrollHeight}px`;\n      }\n    };\n\n    // 首次渲染后同步设置高度，避免闪烁\n    onMounted(() => {\n      nextTick(updateReplyBodyHeight);\n    });\n\n    // 监听回复区内容高度变化，驱动过渡动画\n    useResizeObserver(replyInnerRef, updateReplyBodyHeight);\n\n    return () => (\n      <div class={`${commentClass.value}`}>\n        <div class={`${commentClass.value}__inner`}>\n          {renderAvatar()}\n          <div class={`${commentClass.value}__detail`}>\n            {renderAuthor()}\n            {renderContentNode()}\n            {renderFooter()}\n          </div>\n        </div>\n        {renderReply()}\n      </div>\n    );\n  },\n});\n"],"names":["DEFAULT_COMMENT_FOLDS","state","total","step","defineComponent","name","props","CommentProps","setup","_defaultFolds$value","renderTNodeJSX","useTNodeJSX","renderContent","useContent","commentClass","usePrefixClass","_useConfig","useConfig","globalConfig","_toRefs","toRefs","folds","defaultFolds","innerFoldsState","ref","value","foldSteps","replyBodyRef","replyInnerRef","isControlled","computed","commentFolds","foldsContent","_userContent$collapse","_userContent$partial","_userContent$expanded","userContent","content","collapsed","collapsedText","partial","expandMoreText","collapseText","expanded","curFoldsState","_folds$value","watch","_folds$value2","_ref","_ref2","_slicedToArray","newState","handleClickActions","event","action","_props$onActions","onActions","call","e","handleClickFold","isExpand","_props$onFolds2","_props$onFolds","onFolds","fold","nextState","renderAvatar","avatarValue","avatar","_createVNode","Avatar","concat","isObject","_mergeProps","renderAuthor","renderContentNode","renderActionItemContent","item","isFunction","h","disabled","renderFooter","renderActions","actions","Array","isArray","onClick","renderLeftPlacement","filter","placement","map","key","renderRightPlacement","_Fragment","renderFoldsContent","ChevronDownSIcon","partialContent","ChevronUpSIcon","renderFolds","renderReply","updateReplyBodyHeight","body","inner","style","height","scrollHeight","onMounted","nextTick","useResizeObserver"],"mappings":"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"}