{"version":3,"file":"type.mjs","sources":["../../src/chat/type.ts"],"sourcesContent":["/* eslint-disable */\n\nimport exp from 'constants';\nimport { TNode } from '../common';\nimport type { TextareaProps, CollapsePanelProps, AvatarProps } from 'tdesign-vue-next';\n\nexport interface TdChatItemProps {\n  /**\n   * 自定义的操作内容\n   */\n  actions?: string | TNode;\n  /**\n   * 动画效果，支持「渐变加载动画」,「闪烁加载动画」, 「骨架屏」三种\n   * @default skeleton\n   */\n  animation?: 'skeleton' | 'moving' | 'gradient';\n  /**\n   * 自定义的头像配置\n   */\n  avatar?: String | AvatarProps | TNode;\n  /**\n   * 对话单元的内容\n   */\n  content?: string | TNode;\n  /**\n   * 对话单元的时间配置\n   */\n  datetime?: string | TNode;\n  /**\n   * 自定义的昵称\n   */\n  name?: string | TNode;\n  /**\n   * 值为false不显示思维链，为string则显示内置推理内容交互，为对象则单独配置推理内容\n   * @default false\n   */\n  reasoning?: boolean | TdChatReasoning;\n  /**\n   * 角色，不同选项配置不同的样式，支持类型包括用户、助手、错误、模型切换、系统消息\n   */\n  role?: 'user' | 'assistant' | 'error' | 'model-change' | 'system';\n  /**\n   * 新消息是否处于加载状态，加载状态默认显示骨架屏，接口请求返回数据时请将新消息加载状态置为false\n   * @default false\n   */\n  textLoading?: boolean;\n  /**\n   * 气泡框样式，支持基础、线框、文字三种类型\n   * @default text\n   */\n  variant?: 'base' | 'outline' | 'text';\n}\nexport interface TdChatProps {\n  /**\n   * 布局\n   */\n  layout?: Layout;\n  /**\n   * 倒序渲染\n   */\n  reverse?: boolean;\n    /**\n   * 数据\n   */\n  data?: Array<TdChatItemProps>;\n  /**\n   * 接口请求中\n   */\n  textLoading?: boolean;\n  /** 清空历史按钮，值为 true 显示默认操作按钮，值为 false 不显示任何内容，值类型为 Function 表示自定义 */\n  clearHistory?: boolean | TNode;\n  /** 点赞差评复制重新生成按钮集合，值为true显示默认操作按钮 */\n    /**\n   * 自定义操作按钮的插槽\n   */\n  actions?: TNode;\n  // 流式数据加载中\n  isStreamLoad?: boolean;\n  onClear?: (context: { e: MouseEvent }) => void;\n}\nexport interface TdChatListProps {\n  /**\n   * 数据\n   */\n  data?: Array<TdChatItemProps>;\n  /**\n   * 流式消息加载中\n   */\n  textLoading?: boolean;\n  onScroll?: (e: Event) => void;\n};\nexport interface TdChatContentProps {\n  content?: string;\n  role?: string;\n  isNormalText?: boolean;\n  textLoading: boolean;\n}\nexport interface TdChatActionsProps {\n  isGood?: Boolean;\n  isBad?: Boolean;\n  content?: string;\n  disabled?: boolean;\n    /**\n   * 点击时触发\n   */\n  onOperation?: (value:string, context: { e: MouseEvent, index?: number, item?: TdChatItemProps }) => void;\n}\nexport interface TdChatInputProps {\n  placeholder?: string;\n  disabled?: boolean;\n  value: string;\n  modelValue: string;\n  defaultValue: string;\n    /**\n   * 高度自动撑开。 autosize = true 表示组件高度自动撑开，同时，依旧允许手动拖高度。如果设置了 autosize.maxRows 或者 autosize.minRows 则不允许手动调整高度\n   * @default false\n   */\n  autosize?: boolean | { minRows?: number; maxRows?: number };\n  onSend?: \t(value:string, context: { e: MouseEvent | KeyboardEvent }) => void;\n  onStop?: \t(value:string, context: { e: MouseEvent }) => void;\n  onChange?: (value:string, context: { e: InputEvent | MouseEvent | KeyboardEvent }) => void;\n  onBlur?: (value:string, context: { e: FocusEvent }) => void;\n  onFocus?: (value:string, context: { e: FocusEvent }) => void;\n}\nexport interface TdChatSenderProps {\n  /**\n   * 是否禁用输入框\n   * @default false\n   */\n  disabled?: boolean;\n  /**\n   * 输入框默认文案\n   * @default ''\n   */\n  placeholder?: string;\n  /**\n   * 输入框左下角区域扩展\n   */\n  prefix?: string | TNode;\n  /**\n   * 中止按钮是否可点击。等流式数据全部返回结束置为false，注意跟textLoading的控制时机不是同一个\n   * @default false\n   */\n  stopDisabled?: boolean;\n  /**\n   * 输入框右下角区域扩展\n   */\n  suffix?: string | TNode;\n  /**\n   * 透传给  Textarea 组件的全部属性\n   */\n  textareaProps?: TextareaProps;\n  /**\n   * 输入框的值\n   * @default ''\n   */\n  value?: string;\n  /**\n   * 输入框的值，非受控属性\n   * @default ''\n   */\n  defaultValue?: string;\n  /**\n   * 输入框的值\n   * @default ''\n   */\n  modelValue?: string;\n  /**\n   * 输入框聚焦时触发\n   */\n  onBlur?: (value: string, context: { e: FocusEvent }) => void;\n  /**\n   * 输入框值发生变化时触发\n   */\n  onChange?: (value: string, context: { e: InputEvent | MouseEvent | KeyboardEvent }) => void;\n  /**\n   * 输入框聚焦时触发\n   */\n  onFocus?: (value: string, context: { e: FocusEvent }) => void;\n  /**\n   * 点击消息发送的回调方法\n   */\n  onSend?: (value: string, context: { e: MouseEvent | KeyboardEvent }) => void;\n  /**\n   * 点击消息终止的回调方法\n   */\n  onStop?: (value: string, context: { e: MouseEvent }) => void;\n  onFileSelect?: (params: {\n    files: File[];\n    name: UploadActionType;\n  }) => void;\n}\nexport interface MetaData {\n  /**\n   * 角色头像\n   * @description 可选参数，如果不传则使用默认头像\n   */\n  avatar?: string;\n  /**\n   * 名称\n   * @description 可选参数，如果不传则使用默认名称\n   */\n  name?: string;\n  /**\n   * 附加数据\n   * @description 可选参数，如果不传则使用默认名称\n   */\n  [key: string]: any;\n}\nexport interface TdChatItemMeta {\n  avatar?: string;\n  name?: string;\n  role?: string;\n  datetime?: string;\n}\nexport interface TdChatReasoningProps {\n  /**\n   * 透传给 CollapsePanel 组件的全部属性\n   */\n  collapsePanelProps?: CollapsePanelProps;\n  /**\n   * 当前折叠面板展开图标。优先级低于collapsePanelProps.expandIcon\n   */\n  expandIcon?: TNode;\n  /**\n   * 展开图标位置，可选项：left/right\n   * @default right\n   */\n  expandIconPlacement?: 'left' | 'right';\n  /**\n   * 折叠面板头内容。优先级低于collapsePanelProps.header\n   */\n  header?: TNode;\n  /**\n   * 折叠面板尾内容。优先级低于collapsePanelProps.headerRightContent\n   */\n  headerRightContent?: TNode;\n  /**\n   * 展开图标点击事件\n   */\n  onExpandChange?: (value: boolean) => void;\n\n  /**\n   * 是否折叠\n   */\n  collapsed?: boolean;\n}\nexport type ModelRoleEnum = 'assistant' | 'user' | 'error' | 'model-change' | 'system';\n\nexport type Variant = 'text'| 'base' | 'outline'\nexport type Layout = 'single' | 'both'\nexport type animation = 'skeleton' | 'moving' | 'gradient'\nexport interface FetchSSEOptions {\n  success?: (res: SSEEvent) => void; // 流式数据解析成功回调\n  fail?: () => void; // 流式请求失败回调\n  complete?: (isOk: Boolean, msg?: String, requestid?: String) => void; // 流式请求完成回调\n}\nexport interface SSEEvent {\n  type: string | null;\n  data: string | null;\n}\nexport interface BackBottomParams {\n  behavior?: 'auto' | 'smooth';\n}\n\n/** 组件实例方法 */\nexport interface ChatInstanceFunctions {\n  /**\n   * 滚动到底部对话列表底部\n   */\n  scrollToBottom?: (params?:BackBottomParams) => void;\n}\nexport interface TdChatReasoning {\n  expandIconPlacement?: 'left' | 'right';\n  onExpandChange?: (isExpand: boolean) => void;\n  collapsePanelProps?: Object;\n  collapsed?: boolean;\n}\n\nexport type UploadActionType = 'uploadAttachment' | 'uploadImage';\n\nexport interface UploadActionConfig {\n  /**\n   * 动作名称，标识上传类型\n   */\n  name: UploadActionType;\n  /**\n   * 上传属性配置（可选）\n   */\n  uploadProps?: {\n    /**\n     * 是否允许多选\n     */\n    multiple?: boolean;\n    /**\n     * 接受的文件类型\n     */\n    accept?: string;\n  };\n  /**\n   * 上传动作处理函数\n   * @param params - 上传参数对象\n   * @param params.files - 上传的文件列表\n   * @param params.name - 上传动作名称\n   */\n  action: (params: {\n    files: File[];\n    name: UploadActionType;\n  }) => void;\n}"],"names":[],"mappings":";;;;;;AA0FC"}