@ai-group/chat-sdk 2.0.4 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/dist/cjs/client/base.d.ts +2 -2
  2. package/dist/cjs/client/base.js.map +1 -1
  3. package/dist/cjs/components/DislikeFeedback.js +16 -1
  4. package/dist/cjs/components/DislikeFeedback.js.map +2 -2
  5. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +6 -0
  6. package/dist/cjs/components/{XAiWebSDKWrapper.js → XAdkChatbot/XAdkChatbot.stories.js} +29 -40
  7. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +7 -0
  8. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +9 -0
  9. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +158 -0
  10. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +7 -0
  11. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +40 -0
  12. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +59 -0
  13. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +7 -0
  14. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +6 -0
  15. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +95 -0
  16. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +7 -0
  17. package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
  18. package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js +49 -0
  19. package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js.map +7 -0
  20. package/dist/cjs/components/XAdkChatbot/index.d.ts +4 -0
  21. package/dist/cjs/components/XAdkChatbot/index.js +232 -0
  22. package/dist/cjs/components/XAdkChatbot/index.js.map +7 -0
  23. package/dist/cjs/components/XAdkChatbot/styles.d.ts +51 -0
  24. package/dist/cjs/components/XAdkChatbot/styles.js +159 -0
  25. package/dist/cjs/components/XAdkChatbot/styles.js.map +7 -0
  26. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +7 -0
  27. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +144 -0
  28. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +7 -0
  29. package/dist/cjs/components/XAdkWebProvider/index.d.ts +4 -0
  30. package/dist/cjs/components/XAdkWebProvider/index.js +349 -0
  31. package/dist/cjs/components/XAdkWebProvider/index.js.map +7 -0
  32. package/dist/cjs/components/XAdkWebProvider/styles.d.ts +38 -0
  33. package/dist/cjs/components/XAdkWebProvider/styles.js +50 -0
  34. package/dist/cjs/components/XAdkWebProvider/styles.js.map +7 -0
  35. package/dist/cjs/components/XAiChatbot/index.js +15 -13
  36. package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
  37. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +1 -0
  38. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +2 -2
  39. package/dist/cjs/components/XAiJsonView/index.d.ts +8 -0
  40. package/dist/cjs/components/XAiJsonView/index.js +81 -0
  41. package/dist/cjs/components/XAiJsonView/index.js.map +7 -0
  42. package/dist/cjs/components/XAiJsonView/styles.d.ts +39 -0
  43. package/dist/cjs/components/XAiJsonView/styles.js +58 -0
  44. package/dist/cjs/components/XAiJsonView/styles.js.map +7 -0
  45. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +1 -1
  46. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  47. package/dist/cjs/components/XAiSender/index.js +23 -17
  48. package/dist/cjs/components/XAiSender/index.js.map +2 -2
  49. package/dist/cjs/context/AiProviderContext.d.ts +3 -2
  50. package/dist/cjs/context/AiProviderContext.js.map +1 -1
  51. package/dist/cjs/hooks/useADKChat.d.ts +38 -0
  52. package/dist/cjs/hooks/useADKChat.js +595 -0
  53. package/dist/cjs/hooks/useADKChat.js.map +7 -0
  54. package/dist/cjs/hooks/useAgentGenerator.js +6 -6
  55. package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
  56. package/dist/cjs/hooks/useEventStreamRequest.js +6 -3
  57. package/dist/cjs/hooks/useEventStreamRequest.js.map +2 -2
  58. package/dist/cjs/index.d.ts +1 -2
  59. package/dist/cjs/index.js +0 -3
  60. package/dist/cjs/index.js.map +3 -3
  61. package/dist/cjs/services/api.d.ts +36 -19
  62. package/dist/cjs/services/api.js +7 -7
  63. package/dist/cjs/services/api.js.map +2 -2
  64. package/dist/cjs/types/XAdkChatbot.d.ts +197 -0
  65. package/dist/cjs/types/XAdkChatbot.js +18 -0
  66. package/dist/cjs/types/XAdkChatbot.js.map +7 -0
  67. package/dist/cjs/types/XAdkProvider.d.ts +117 -0
  68. package/dist/cjs/types/XAdkProvider.js +18 -0
  69. package/dist/cjs/types/XAdkProvider.js.map +7 -0
  70. package/dist/cjs/types/XAiChatbot.d.ts +2 -2
  71. package/dist/cjs/types/XAiChatbot.js.map +1 -1
  72. package/dist/cjs/types/XAiConversations.d.ts +2 -2
  73. package/dist/cjs/types/XAiConversations.js.map +1 -1
  74. package/dist/cjs/types/index.d.ts +1 -0
  75. package/dist/cjs/types/index.js +3 -1
  76. package/dist/cjs/types/index.js.map +2 -2
  77. package/dist/cjs/utils/providerManager.d.ts +7 -6
  78. package/dist/cjs/utils/providerManager.js.map +2 -2
  79. package/dist/cjs/utils/umdEntry.d.ts +6 -8
  80. package/dist/cjs/utils/umdEntry.js +4 -18
  81. package/dist/cjs/utils/umdEntry.js.map +3 -3
  82. package/dist/esm/client/base.d.ts +2 -2
  83. package/dist/esm/client/base.js.map +1 -1
  84. package/dist/esm/components/DislikeFeedback.js +18 -5
  85. package/dist/esm/components/DislikeFeedback.js.map +1 -1
  86. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +6 -0
  87. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +21 -0
  88. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -0
  89. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +9 -0
  90. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +183 -0
  91. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -0
  92. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +40 -0
  93. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +14 -0
  94. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -0
  95. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +6 -0
  96. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +70 -0
  97. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -0
  98. package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
  99. package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js +32 -0
  100. package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js.map +1 -0
  101. package/dist/esm/components/XAdkChatbot/index.d.ts +4 -0
  102. package/dist/esm/components/XAdkChatbot/index.js +280 -0
  103. package/dist/esm/components/XAdkChatbot/index.js.map +1 -0
  104. package/dist/esm/components/XAdkChatbot/styles.d.ts +51 -0
  105. package/dist/esm/components/XAdkChatbot/styles.js +25 -0
  106. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -0
  107. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +7 -0
  108. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +149 -0
  109. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -0
  110. package/dist/esm/components/XAdkWebProvider/index.d.ts +4 -0
  111. package/dist/esm/components/XAdkWebProvider/index.js +450 -0
  112. package/dist/esm/components/XAdkWebProvider/index.js.map +1 -0
  113. package/dist/esm/components/XAdkWebProvider/styles.d.ts +38 -0
  114. package/dist/esm/components/XAdkWebProvider/styles.js +13 -0
  115. package/dist/esm/components/XAdkWebProvider/styles.js.map +1 -0
  116. package/dist/esm/components/XAiChatbot/index.js +19 -23
  117. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  118. package/dist/esm/components/XAiConversations/XAiConversations.stories.js +3 -3
  119. package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +1 -1
  120. package/dist/esm/components/XAiJsonView/index.d.ts +8 -0
  121. package/dist/esm/components/XAiJsonView/index.js +44 -0
  122. package/dist/esm/components/XAiJsonView/index.js.map +1 -0
  123. package/dist/esm/components/XAiJsonView/styles.d.ts +39 -0
  124. package/dist/esm/components/XAiJsonView/styles.js +19 -0
  125. package/dist/esm/components/XAiJsonView/styles.js.map +1 -0
  126. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +1 -1
  127. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  128. package/dist/esm/components/XAiSender/index.js +2 -2
  129. package/dist/esm/components/XAiSender/index.js.map +1 -1
  130. package/dist/esm/context/AiProviderContext.d.ts +3 -2
  131. package/dist/esm/context/AiProviderContext.js.map +1 -1
  132. package/dist/esm/hooks/useADKChat.d.ts +38 -0
  133. package/dist/esm/hooks/useADKChat.js +855 -0
  134. package/dist/esm/hooks/useADKChat.js.map +1 -0
  135. package/dist/esm/hooks/useAgentGenerator.js +10 -10
  136. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  137. package/dist/esm/hooks/useEventStreamRequest.js +5 -2
  138. package/dist/esm/hooks/useEventStreamRequest.js.map +1 -1
  139. package/dist/esm/index.d.ts +1 -2
  140. package/dist/esm/index.js +1 -2
  141. package/dist/esm/index.js.map +1 -1
  142. package/dist/esm/services/api.d.ts +36 -19
  143. package/dist/esm/services/api.js +8 -8
  144. package/dist/esm/services/api.js.map +1 -1
  145. package/dist/esm/types/XAdkChatbot.d.ts +197 -0
  146. package/dist/esm/types/XAdkChatbot.js +2 -0
  147. package/dist/esm/types/XAdkChatbot.js.map +1 -0
  148. package/dist/esm/types/XAdkProvider.d.ts +117 -0
  149. package/dist/esm/types/XAdkProvider.js +2 -0
  150. package/dist/esm/types/XAdkProvider.js.map +1 -0
  151. package/dist/esm/types/XAiChatbot.d.ts +2 -2
  152. package/dist/esm/types/XAiChatbot.js.map +1 -1
  153. package/dist/esm/types/XAiConversations.d.ts +2 -2
  154. package/dist/esm/types/XAiConversations.js.map +1 -1
  155. package/dist/esm/types/index.d.ts +1 -0
  156. package/dist/esm/types/index.js +1 -0
  157. package/dist/esm/types/index.js.map +1 -1
  158. package/dist/esm/utils/providerManager.d.ts +7 -6
  159. package/dist/esm/utils/providerManager.js.map +1 -1
  160. package/dist/esm/utils/umdEntry.d.ts +6 -8
  161. package/dist/esm/utils/umdEntry.js +8 -37
  162. package/dist/esm/utils/umdEntry.js.map +1 -1
  163. package/dist/umd/chat-sdk.min.css +1 -0
  164. package/dist/umd/chat-sdk.min.js +1 -1
  165. package/dist/umd/static/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  166. package/dist/umd/static/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  167. package/dist/umd/static/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  168. package/dist/umd/static/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  169. package/dist/umd/static/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  170. package/dist/umd/static/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  171. package/dist/umd/static/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  172. package/dist/umd/static/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  173. package/dist/umd/static/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  174. package/dist/umd/static/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  175. package/dist/umd/static/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  176. package/dist/umd/static/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  177. package/dist/umd/static/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  178. package/dist/umd/static/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  179. package/dist/umd/static/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  180. package/dist/umd/static/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  181. package/dist/umd/static/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  182. package/dist/umd/static/KaTeX_Main-Bold.d181c465.woff +0 -0
  183. package/dist/umd/static/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  184. package/dist/umd/static/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  185. package/dist/umd/static/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  186. package/dist/umd/static/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  187. package/dist/umd/static/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  188. package/dist/umd/static/KaTeX_Main-Italic.9024d815.woff +0 -0
  189. package/dist/umd/static/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  190. package/dist/umd/static/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  191. package/dist/umd/static/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  192. package/dist/umd/static/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  193. package/dist/umd/static/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  194. package/dist/umd/static/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  195. package/dist/umd/static/KaTeX_Math-Italic.5295ba48.woff +0 -0
  196. package/dist/umd/static/KaTeX_Math-Italic.939bc644.ttf +0 -0
  197. package/dist/umd/static/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  198. package/dist/umd/static/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  199. package/dist/umd/static/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  200. package/dist/umd/static/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  201. package/dist/umd/static/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  202. package/dist/umd/static/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  203. package/dist/umd/static/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  204. package/dist/umd/static/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  205. package/dist/umd/static/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  206. package/dist/umd/static/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  207. package/dist/umd/static/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  208. package/dist/umd/static/KaTeX_Script-Regular.07505710.woff +0 -0
  209. package/dist/umd/static/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  210. package/dist/umd/static/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  211. package/dist/umd/static/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  212. package/dist/umd/static/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  213. package/dist/umd/static/KaTeX_Size2-Regular.57727022.woff +0 -0
  214. package/dist/umd/static/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  215. package/dist/umd/static/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  216. package/dist/umd/static/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  217. package/dist/umd/static/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  218. package/dist/umd/static/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  219. package/dist/umd/static/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  220. package/dist/umd/static/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  221. package/dist/umd/static/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  222. package/dist/umd/static/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  223. package/dist/umd/static/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  224. package/dist/umd/static/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  225. package/package.json +26 -19
  226. package/dist/cjs/components/XAiWebSDKWrapper.d.ts +0 -9
  227. package/dist/cjs/components/XAiWebSDKWrapper.js.map +0 -7
  228. package/dist/esm/components/XAiWebSDKWrapper.d.ts +0 -9
  229. package/dist/esm/components/XAiWebSDKWrapper.js +0 -45
  230. package/dist/esm/components/XAiWebSDKWrapper.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/umdEntry.tsx"],
4
- "sourcesContent": ["import React, { createRef } from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport { Messages } from '@/types/XAiMessage';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '@/components/XAiChatbot';\nimport XAiConversations from '@/components/XAiConversations';\nimport type { SendContent } from '@/types';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n providerRef = createRef<XAiProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: Messages) => void;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <div style={{ display: 'flex', justifyContent: 'center', flex: 1 }}>\n <XAiChatbot />\n </div>\n </XAiProvider>\n </div>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <div style={{ display: 'flex', justifyContent: 'center', flex: 1 }}>\n <XAiChatbot />\n </div>\n </XAiProvider>\n </div>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()\n static initChatbot(props: XAiSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(props.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n // 兼容旧版本的静态方法\n static create(props: XAiSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n sessions: this.providerRef.current?.getSessions(),\n };\n }\n\n chat(content: SendContent) {\n this.providerRef.current?.chat(content);\n }\n\n stop() {\n this.providerRef.current?.stopChat();\n }\n\n reChat() {\n this.providerRef.current?.reChat();\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
5
- "mappings": "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",
6
- "names": ["ReactDOM", "XAiProvider", "XAiConversations", "XAiChatbot"]
4
+ "sourcesContent": ["import { createRef } from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps, XAdkProviderHandle } from '@/types/XAdkProvider';\nimport { Messages } from '@/types/XAiMessage';\nimport XAdkWebProvider from '@/components/XAdkWebProvider';\n// import type { SendContent } from '@/types';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n providerRef = createRef<XAdkProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: Messages) => void;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAdkWebProvider ref={this.providerRef} {...this.props} />\n </div>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAdkWebProvider ref={this.providerRef} {...this.props} />\n </div>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()\n static initChatbot(props: XAiSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(props.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n // 兼容旧版本的静态方法\n static create(props: XAiSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n sessions: this.providerRef.current?.getSessions(),\n };\n }\n\n chat(content: string) {\n this.providerRef.current?.startChat(content);\n }\n\n stop() {\n this.providerRef.current?.stopChat();\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,oBAAqB;AAGrB,6BAA4B;AAgClB;AA7BV,IAAM,YAAN,MAAgB;AAAA,EAgBd,YAAY,WAAwB,OAAoB;AATxD,2BAAc,wBAA8B;AAU1C,SAAK,YAAY;AACjB,SAAK,QAAQ;AACb,SAAK,UAAU,MAAM;AACrB,SAAK,YAAY,MAAM;AACvB,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,QAAQ;AACN,QAAI,cAAAA,QAAS,YAAY;AACvB,WAAK,OAAO,cAAAA,QAAS,WAAW,KAAK,SAAS;AAC9C,WAAK,KAAK;AAAA,QACR,4CAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO,GAC1C,sDAAC,uBAAAC,SAAA,EAAgB,KAAK,KAAK,aAAc,GAAG,KAAK,OAAO,GAC1D;AAAA,MACF;AAAA,IACF,OAAO;AAEL,oBAAAD,QAAS;AAAA,QACP,4CAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO,GAC1C,sDAAC,uBAAAC,SAAA,EAAgB,KAAK,KAAK,aAAc,GAAG,KAAK,OAAO,GAC1D;AAAA,QACA,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EAEA,UAAU;AACR,QAAI,KAAK,QAAQ,KAAK,KAAK,SAAS;AAClC,WAAK,KAAK,QAAQ;AAAA,IACpB;AAAA,EACF;AAAA;AAAA,EAGA,OAAO,YAAY,OAA+B;AAzDpD;AA0DI,QAAI;AAGJ,SAAI,WAAM,mBAAN,mBAAsB,IAAI;AAC5B,YAAM,oBAAoB,SAAS,eAAe,MAAM,eAAe,EAAE;AACzE,UAAI,mBAAmB;AACrB,oBAAY;AAAA,MACd,OAAO;AAEL,oBAAY,SAAS,cAAc,KAAK;AACxC,kBAAU,KAAK,MAAM,eAAe;AAAA,MACtC;AAAA,IACF,OAAO;AAEL,kBAAY,SAAS,cAAc,KAAK;AACxC,gBAAU,KAAK;AAAA,IACjB;AAGA,QAAI,MAAM,gBAAgB;AACxB,YAAM,EAAE,IAAI,GAAG,WAAW,IAAI,MAAM;AACpC,aAAO,OAAO,UAAU,OAAO,UAAU;AAAA,IAC3C;AAGA,QAAI,CAAC,UAAU,YAAY;AACzB,eAAS,KAAK,YAAY,SAAS;AAAA,IACrC;AAEA,WAAO,IAAI,UAAU,WAAW,KAAK;AAAA,EACvC;AAAA;AAAA,EAGA,OAAO,OAAO,OAA+B;AAC3C,WAAO,KAAK,YAAY,KAAK;AAAA,EAC/B;AAAA;AAAA,EAGA,UAAU;AAhGZ;AAiGI,WAAO;AAAA,MACL,UAAS,UAAK,YAAY,YAAjB,mBAA0B;AAAA,MACnC,WAAU,UAAK,YAAY,YAAjB,mBAA0B;AAAA,MACpC,WAAU,UAAK,YAAY,YAAjB,mBAA0B;AAAA,IACtC;AAAA,EACF;AAAA,EAEA,KAAK,SAAiB;AAxGxB;AAyGI,eAAK,YAAY,YAAjB,mBAA0B,UAAU;AAAA,EACtC;AAAA,EAEA,OAAO;AA5GT;AA6GI,eAAK,YAAY,YAAjB,mBAA0B;AAAA,EAC5B;AACF;AAIA,OAAO,YAAY;AAGnB,IAAO,mBAAQ;",
6
+ "names": ["ReactDOM", "XAdkWebProvider"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import { BubbleDataType } from '@ant-design/x/es/bubble/BubbleList';
1
+ import BubbleDataType from "@ant-design/x/es/bubble/BubbleList";
2
2
  export interface AiClient {
3
3
  appName: string;
4
4
  icon: string;
@@ -6,4 +6,4 @@ export interface AiClient {
6
6
  stream?(message: string, onMessage: (msg: any) => void): void;
7
7
  close?(): void;
8
8
  }
9
- export type MessageType = BubbleDataType;
9
+ export type MessageType = typeof BubbleDataType;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/client/base.ts"],"sourcesContent":["// baseClient.ts\nimport { BubbleDataType } from '@ant-design/x/es/bubble/BubbleList';\n\nexport interface AiClient {\n appName: string;\n icon: string;\n send(message: string): Promise<any>;\n stream?(message: string, onMessage: (msg: any) => void): void;\n close?(): void;\n}\n\nexport type MessageType = BubbleDataType;\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/client/base.ts"],"sourcesContent":["// baseClient.ts\nimport BubbleDataType from \"@ant-design/x/es/bubble/BubbleList\"\n\nexport interface AiClient {\n appName: string;\n icon: string;\n send(message: string): Promise<any>;\n stream?(message: string, onMessage: (msg: any) => void): void;\n close?(): void;\n}\n\nexport type MessageType = typeof BubbleDataType;\n"],"mappings":""}
@@ -8,6 +8,7 @@ import FeedbackTags from "./FeedbackTags";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
10
  export var DislikeFeedback = function DislikeFeedback(_ref) {
11
+ var _msg$raw;
11
12
  var msg = _ref.msg,
12
13
  activeColor = _ref.activeColor,
13
14
  onSubmit = _ref.onSubmit;
@@ -103,11 +104,23 @@ export var DislikeFeedback = function DislikeFeedback(_ref) {
103
104
  })]
104
105
  })
105
106
  }),
106
- children: msg.isLike === -1 ? /*#__PURE__*/_jsx(DislikeFilled, {
107
- style: {
108
- color: activeColor
109
- }
110
- }) : /*#__PURE__*/_jsx(DislikeOutlined, {})
107
+ children: (((_msg$raw = msg.raw) === null || _msg$raw === void 0 ? void 0 : _msg$raw.isLike) || msg.isLike) === -1 ? /*#__PURE__*/_jsx(Button, {
108
+ type: "text",
109
+ size: "small",
110
+ icon: /*#__PURE__*/_jsx(DislikeFilled, {
111
+ style: {
112
+ color: activeColor
113
+ }
114
+ })
115
+ }) : /*#__PURE__*/_jsx(Button, {
116
+ type: "text",
117
+ size: "small",
118
+ icon: /*#__PURE__*/_jsx(DislikeOutlined, {
119
+ style: {
120
+ color: '#949494'
121
+ }
122
+ })
123
+ })
111
124
  });
112
125
  };
113
126
  export default DislikeFeedback;
@@ -1 +1 @@
1
- {"version":3,"names":["Button","Form","Input","message","Popover","React","useState","DislikeFilled","DislikeOutlined","FeedbackTags","jsx","_jsx","jsxs","_jsxs","DislikeFeedback","_ref","msg","activeColor","onSubmit","_Form$useForm","useForm","_Form$useForm2","_slicedToArray","form","_useState","_useState2","showFeedback","setShowFeedback","trigger","open","onOpenChange","v","_msg$isLike","isLike","warning","resetFields","title","children","style","color","fontWeight","marginBottom","content","Item","name","TextArea","rows","placeholder","dependencies","noStyle","_ref2","getFieldValue","feedbackTags","feedbackDescription","disabled","length","type","block","onClick","_asyncToGenerator","_regeneratorRuntime","mark","_callee","formData","res","wrap","_callee$","_context","prev","next","validateFields","sent","stop"],"sources":["../../../src/components/DislikeFeedback.tsx"],"sourcesContent":["import { Button, Form, Input, message, Popover } from 'antd';\nimport React, { useState } from 'react';\nimport { DislikeFilled, DislikeOutlined } from '@ant-design/icons';\nimport FeedbackTags from './FeedbackTags';\n\nexport interface DislikeFeedbackProps {\n msg: any;\n activeColor: string;\n onSubmit: (v: any) => Promise<boolean>;\n}\n\nexport const DislikeFeedback: React.FC<DislikeFeedbackProps> = ({ msg, activeColor, onSubmit }) => {\n const [form] = Form.useForm();\n const [showFeedback, setShowFeedback] = useState(false);\n return (\n <Popover\n trigger={['click']}\n open={showFeedback}\n onOpenChange={(v) => {\n const isLike = msg.isLike ?? 0;\n if (v && isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (v) {\n form.resetFields();\n }\n setShowFeedback(v);\n }}\n title={(\n <div>\n <div>抱歉,未能满足您的需求</div>\n <div style={{ color: '#999', fontWeight: 'normal', marginBottom: 12 }}>\n 为提升您的使用体验,请告诉我们不足的方向\n </div>\n </div>\n )}\n content={(\n <div>\n <Form form={form}>\n <Form.Item name=\"feedbackTags\" style={{ marginBottom: 12 }}>\n <FeedbackTags />\n </Form.Item>\n <Form.Item name=\"feedbackDescription\" style={{ marginBottom: 12 }}>\n <Input.TextArea rows={4} placeholder=\"欢迎说说你的想法\" />\n </Form.Item>\n <Form.Item dependencies={['feedbackTags', 'feedbackDescription']} noStyle>\n {({ getFieldValue }) => {\n const feedbackTags = getFieldValue('feedbackTags') || [];\n const feedbackDescription = getFieldValue('feedbackDescription');\n const disabled = !feedbackTags.length && !feedbackDescription;\n return (\n <Button\n type=\"primary\"\n block\n disabled={disabled}\n onClick={async () => {\n const formData = await form.validateFields();\n const res = await onSubmit(formData);\n if (res) {\n setShowFeedback(false);\n }\n }}\n >\n 提交反馈\n </Button>\n );\n }}\n </Form.Item>\n </Form>\n </div>\n )}\n >\n {msg.isLike === -1\n ? (\n <DislikeFilled style={{ color: activeColor }} />\n )\n : (\n <DislikeOutlined />\n )}\n </Popover>\n );\n};\n\nexport default DislikeFeedback;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Button","Form","Input","message","Popover","React","useState","DislikeFilled","DislikeOutlined","FeedbackTags","jsx","_jsx","jsxs","_jsxs","DislikeFeedback","_ref","_msg$raw","msg","activeColor","onSubmit","_Form$useForm","useForm","_Form$useForm2","_slicedToArray","form","_useState","_useState2","showFeedback","setShowFeedback","trigger","open","onOpenChange","v","_msg$isLike","isLike","warning","resetFields","title","children","style","color","fontWeight","marginBottom","content","Item","name","TextArea","rows","placeholder","dependencies","noStyle","_ref2","getFieldValue","feedbackTags","feedbackDescription","disabled","length","type","block","onClick","_asyncToGenerator","_regeneratorRuntime","mark","_callee","formData","res","wrap","_callee$","_context","prev","next","validateFields","sent","stop","raw","size","icon"],"sources":["../../../src/components/DislikeFeedback.tsx"],"sourcesContent":["import { Button, Form, Input, message, Popover } from 'antd';\nimport React, { useState } from 'react';\nimport { DislikeFilled, DislikeOutlined } from '@ant-design/icons';\nimport FeedbackTags from './FeedbackTags';\n\nexport interface DislikeFeedbackProps {\n msg: any;\n activeColor: string;\n onSubmit: (v: any) => Promise<boolean>;\n}\n\nexport const DislikeFeedback: React.FC<DislikeFeedbackProps> = ({ msg, activeColor, onSubmit }) => {\n const [form] = Form.useForm();\n const [showFeedback, setShowFeedback] = useState(false);\n return (\n <Popover\n trigger={['click']}\n open={showFeedback}\n onOpenChange={(v) => {\n const isLike = msg.isLike ?? 0;\n if (v && isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (v) {\n form.resetFields();\n }\n setShowFeedback(v);\n }}\n title={(\n <div>\n <div>抱歉,未能满足您的需求</div>\n <div style={{ color: '#999', fontWeight: 'normal', marginBottom: 12 }}>\n 为提升您的使用体验,请告诉我们不足的方向\n </div>\n </div>\n )}\n content={(\n <div>\n <Form form={form}>\n <Form.Item name=\"feedbackTags\" style={{ marginBottom: 12 }}>\n <FeedbackTags />\n </Form.Item>\n <Form.Item name=\"feedbackDescription\" style={{ marginBottom: 12 }}>\n <Input.TextArea rows={4} placeholder=\"欢迎说说你的想法\" />\n </Form.Item>\n <Form.Item dependencies={['feedbackTags', 'feedbackDescription']} noStyle>\n {({ getFieldValue }) => {\n const feedbackTags = getFieldValue('feedbackTags') || [];\n const feedbackDescription = getFieldValue('feedbackDescription');\n const disabled = !feedbackTags.length && !feedbackDescription;\n return (\n <Button\n type=\"primary\"\n block\n disabled={disabled}\n onClick={async () => {\n const formData = await form.validateFields();\n const res = await onSubmit(formData);\n if (res) {\n setShowFeedback(false);\n }\n }}\n >\n 提交反馈\n </Button>\n );\n }}\n </Form.Item>\n </Form>\n </div>\n )}\n >\n {(msg.raw?.isLike || msg.isLike) === -1\n ? (\n <Button\n type=\"text\"\n size=\"small\"\n icon={<DislikeFilled style={{ color: activeColor }} />}\n />\n )\n : (\n <Button\n type=\"text\"\n size=\"small\"\n icon={<DislikeOutlined style={{ color: '#949494' }} />}\n />\n )}\n </Popover>\n );\n};\n\nexport default DislikeFeedback;\n"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ import XAdkChatbot from '.';
3
+ declare const meta: Meta<typeof XAdkChatbot>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const 基础用法: Story;
@@ -0,0 +1,21 @@
1
+ import XAdkChatbot from '.';
2
+ var meta = {
3
+ title: 'AI组件/XAdkChatbot 聊天框',
4
+ component: XAdkChatbot,
5
+ parameters: {
6
+ layout: 'centered'
7
+ },
8
+ tags: ['autodocs'],
9
+ argTypes: {
10
+ messages: {
11
+ description: '消息列表'
12
+ }
13
+ }
14
+ };
15
+ export default meta;
16
+ export var 基础用法 = {
17
+ args: {
18
+ messages: []
19
+ }
20
+ };
21
+ //# sourceMappingURL=XAdkChatbot.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["XAdkChatbot","meta","title","component","parameters","layout","tags","argTypes","messages","description","基础用法","args"],"sources":["../../../../src/components/XAdkChatbot/XAdkChatbot.stories.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Divider } from 'antd';\nimport { MessageRole, MessageStatus } from '@/types/XAiMessage';\nimport type { Messages } from '@/types/XAiMessage';\nimport documentIcon from '@/assets/document.svg';\nimport XAiProvider from '../XAiProvider';\nimport XAdkChatbot from '.';\nimport { useProviderContext, useProviderMethods } from '@/hooks/useProviderContext';\n\nconst meta: Meta<typeof XAdkChatbot> = {\n title: 'AI组件/XAdkChatbot 聊天框',\n component: XAdkChatbot,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {\n messages: {\n description: '消息列表',\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const 基础用法: Story = {\n args: {\n messages: [],\n },\n};"],"mappings":"AAOA,OAAOA,WAAW,MAAM,GAAG;AAG3B,IAAMC,IAA8B,GAAG;EACrCC,KAAK,EAAE,sBAAsB;EAC7BC,SAAS,EAAEH,WAAW;EACtBI,UAAU,EAAE;IACVC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,QAAQ,EAAE;IACRC,QAAQ,EAAE;MACRC,WAAW,EAAE;IACf;EACF;AACF,CAAC;AAED,eAAeR,IAAI;AAGnB,OAAO,IAAMS,IAAW,GAAG;EACzBC,IAAI,EAAE;IACJH,QAAQ,EAAE;EACZ;AACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { IMessage } from "../../../../types";
3
+ export interface FunctionCallRenderProps {
4
+ msg: IMessage;
5
+ showDetail?: boolean;
6
+ onConfirm?: (confirmed: boolean) => void;
7
+ }
8
+ declare const FunctionCallRender: React.FC<FunctionCallRenderProps>;
9
+ export default FunctionCallRender;
@@ -0,0 +1,183 @@
1
+ import React from 'react';
2
+ import { Alert, Button, Flex, Form, Popover, Tooltip, Typography } from 'antd';
3
+ import { CopyOutlined, ToolOutlined, CheckCircleTwoTone, LoadingOutlined, UserSwitchOutlined, InfoCircleOutlined } from '@ant-design/icons';
4
+ import { useStyles } from "./styles";
5
+ import JsonView from "../../../XAiJsonView";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ var FunctionCallRender = function FunctionCallRender(_ref) {
9
+ var _msg$functionResponse;
10
+ var msg = _ref.msg,
11
+ showDetail = _ref.showDetail,
12
+ onConfirm = _ref.onConfirm;
13
+ var styles = useStyles();
14
+ var fnCall = msg.functionCall;
15
+ var fnRes = msg.functionResponse;
16
+ var name = (fnCall === null || fnCall === void 0 ? void 0 : fnCall.name) || (fnRes === null || fnRes === void 0 ? void 0 : fnRes.name);
17
+ if (name === 'adk_request_confirmation') {
18
+ var _msg$functionCall;
19
+ if (fnRes) {
20
+ var _fnRes$response;
21
+ if (msg.role === 'bot') return null;
22
+ var _confirmed = (_fnRes$response = fnRes.response) === null || _fnRes$response === void 0 ? void 0 : _fnRes$response.confirmed;
23
+ return /*#__PURE__*/_jsx("div", {
24
+ className: styles.wrapper,
25
+ children: _confirmed ? /*#__PURE__*/_jsx(Alert, {
26
+ message: "\u5DF2\u786E\u8BA4",
27
+ type: "success",
28
+ showIcon: true,
29
+ className: styles.alert
30
+ }) : /*#__PURE__*/_jsx(Alert, {
31
+ message: "\u5DF2\u53D6\u6D88",
32
+ type: "error",
33
+ showIcon: true,
34
+ className: styles.alert
35
+ })
36
+ }, msg.id);
37
+ }
38
+ var originalFn = msg === null || msg === void 0 || (_msg$functionCall = msg.functionCall) === null || _msg$functionCall === void 0 || (_msg$functionCall = _msg$functionCall.args) === null || _msg$functionCall === void 0 ? void 0 : _msg$functionCall.originalFunctionCall;
39
+ return /*#__PURE__*/_jsx("div", {
40
+ className: styles.wrapper,
41
+ children: /*#__PURE__*/_jsxs("div", {
42
+ className: styles.confirm,
43
+ children: [/*#__PURE__*/_jsxs("div", {
44
+ className: "mb-4",
45
+ children: ["\u8BF7\u786E\u8BA4\u662F\u5426\u6267\u884C\u5DE5\u5177\uFF1A", originalFn === null || originalFn === void 0 ? void 0 : originalFn.name, "\uFF1F"]
46
+ }), /*#__PURE__*/_jsxs(Flex, {
47
+ justify: "end",
48
+ gap: 8,
49
+ children: [/*#__PURE__*/_jsx(Button, {
50
+ type: "default",
51
+ onClick: function onClick() {
52
+ return onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(false);
53
+ },
54
+ children: "\u53D6\u6D88"
55
+ }), /*#__PURE__*/_jsx(Button, {
56
+ type: "primary",
57
+ onClick: function onClick() {
58
+ return onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(true);
59
+ },
60
+ children: "\u786E\u8BA4"
61
+ })]
62
+ })]
63
+ })
64
+ }, msg.id);
65
+ }
66
+ if (name === 'transferToAgent') {
67
+ var _fnCall$args;
68
+ var agentName = (_fnCall$args = fnCall.args) === null || _fnCall$args === void 0 ? void 0 : _fnCall$args.agentName;
69
+ return /*#__PURE__*/_jsx("div", {
70
+ className: styles.wrapper,
71
+ children: /*#__PURE__*/_jsxs("div", {
72
+ className: styles.fnCall,
73
+ children: [/*#__PURE__*/_jsx(UserSwitchOutlined, {
74
+ style: {
75
+ color: '#888'
76
+ }
77
+ }), /*#__PURE__*/_jsxs(Typography.Text, {
78
+ ellipsis: {
79
+ tooltip: agentName
80
+ },
81
+ style: {
82
+ maxWidth: 300,
83
+ lineHeight: '16px'
84
+ },
85
+ children: ["\u4EFB\u52A1\u8F6C\u4EA4\uFF1A", agentName]
86
+ }), msg.functionResponse ? /*#__PURE__*/_jsx(CheckCircleTwoTone, {
87
+ twoToneColor: "#52c41a"
88
+ }) : /*#__PURE__*/_jsx(LoadingOutlined, {})]
89
+ })
90
+ }, msg.id);
91
+ }
92
+ var renderItem = function renderItem(obj, text) {
93
+ var str = JSON.stringify(obj, null, 2);
94
+ return /*#__PURE__*/_jsx(Form.Item, {
95
+ label: /*#__PURE__*/_jsxs(Flex, {
96
+ align: "center",
97
+ children: [/*#__PURE__*/_jsx("span", {
98
+ className: "mr-2",
99
+ children: text
100
+ }), /*#__PURE__*/_jsx(Typography.Text, {
101
+ copyable: {
102
+ text: str,
103
+ icon: /*#__PURE__*/_jsx(CopyOutlined, {})
104
+ }
105
+ })]
106
+ }),
107
+ style: {
108
+ marginBottom: 12
109
+ },
110
+ children: /*#__PURE__*/_jsx(JsonView, {
111
+ value: str
112
+ })
113
+ });
114
+ };
115
+ var renderResponse = function renderResponse() {
116
+ var res = msg.functionResponse;
117
+ if (res) {
118
+ var _res$response;
119
+ if ((_res$response = res.response) !== null && _res$response !== void 0 && _res$response.error) {
120
+ return /*#__PURE__*/_jsx(Tooltip, {
121
+ title: res.response.error,
122
+ children: /*#__PURE__*/_jsx(InfoCircleOutlined, {
123
+ style: {
124
+ color: '#faad14'
125
+ }
126
+ })
127
+ });
128
+ }
129
+ return /*#__PURE__*/_jsx(CheckCircleTwoTone, {
130
+ twoToneColor: "#52c41a"
131
+ });
132
+ }
133
+ return /*#__PURE__*/_jsx(LoadingOutlined, {});
134
+ };
135
+ return /*#__PURE__*/_jsx("div", {
136
+ className: styles.wrapper,
137
+ children: showDetail ? /*#__PURE__*/_jsx(Popover, {
138
+ placement: "left",
139
+ content: /*#__PURE__*/_jsxs(Form, {
140
+ style: {
141
+ width: 400
142
+ },
143
+ layout: "vertical",
144
+ children: [renderItem(fnCall.args, '工具参数'), renderItem((_msg$functionResponse = msg.functionResponse) === null || _msg$functionResponse === void 0 ? void 0 : _msg$functionResponse.response, '工具响应')]
145
+ }),
146
+ children: /*#__PURE__*/_jsxs("div", {
147
+ className: styles.fnCall,
148
+ children: [/*#__PURE__*/_jsx(ToolOutlined, {
149
+ style: {
150
+ color: '#888'
151
+ }
152
+ }), /*#__PURE__*/_jsxs(Typography.Text, {
153
+ ellipsis: {
154
+ tooltip: name
155
+ },
156
+ style: {
157
+ maxWidth: 300,
158
+ lineHeight: '16px'
159
+ },
160
+ children: ["\u8C03\u7528\u5DE5\u5177\uFF1A", name]
161
+ }), renderResponse()]
162
+ })
163
+ }) : /*#__PURE__*/_jsxs("div", {
164
+ className: styles.fnCall,
165
+ children: [/*#__PURE__*/_jsx(ToolOutlined, {
166
+ style: {
167
+ color: '#888'
168
+ }
169
+ }), /*#__PURE__*/_jsxs(Typography.Text, {
170
+ ellipsis: {
171
+ tooltip: name
172
+ },
173
+ style: {
174
+ maxWidth: 300,
175
+ lineHeight: '16px'
176
+ },
177
+ children: ["\u8C03\u7528\u5DE5\u5177\uFF1A", name]
178
+ }), renderResponse()]
179
+ })
180
+ }, msg.id);
181
+ };
182
+ export default FunctionCallRender;
183
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Alert","Button","Flex","Form","Popover","Tooltip","Typography","CopyOutlined","ToolOutlined","CheckCircleTwoTone","LoadingOutlined","UserSwitchOutlined","InfoCircleOutlined","useStyles","JsonView","jsx","_jsx","jsxs","_jsxs","FunctionCallRender","_ref","_msg$functionResponse","msg","showDetail","onConfirm","styles","fnCall","functionCall","fnRes","functionResponse","name","_msg$functionCall","_fnRes$response","role","confirmed","response","className","wrapper","children","message","type","showIcon","alert","id","originalFn","args","originalFunctionCall","confirm","justify","gap","onClick","_fnCall$args","agentName","style","color","Text","ellipsis","tooltip","maxWidth","lineHeight","twoToneColor","renderItem","obj","text","str","JSON","stringify","Item","label","align","copyable","icon","marginBottom","value","renderResponse","res","_res$response","error","title","placement","content","width","layout"],"sources":["../../../../../../src/components/XAdkChatbot/components/FunctionCallRender/index.tsx"],"sourcesContent":["import React from 'react';\nimport { Alert, Button, Flex, Form, Popover, Tooltip, Typography } from 'antd';\nimport { CopyOutlined, ToolOutlined, CheckCircleTwoTone, LoadingOutlined, UserSwitchOutlined, InfoCircleOutlined } from '@ant-design/icons';\nimport type { IMessage, FunctionCall } from '@/types';\nimport { useStyles } from './styles';\nimport JsonView from '@/components/XAiJsonView';\n\nexport interface FunctionCallRenderProps {\n msg: IMessage;\n showDetail?: boolean;\n onConfirm?: (confirmed: boolean) => void;\n}\n\nconst FunctionCallRender: React.FC<FunctionCallRenderProps> = ({ msg, showDetail, onConfirm }) => {\n const styles = useStyles();\n const fnCall = msg.functionCall as FunctionCall;\n const fnRes = msg.functionResponse;\n const name = fnCall?.name || fnRes?.name;\n if (name === 'adk_request_confirmation') {\n if (fnRes) {\n if (msg.role === 'bot') return null;\n const confirmed = fnRes.response?.confirmed;\n return (\n <div key={msg.id} className={styles.wrapper}>\n {confirmed\n ? <Alert message=\"已确认\" type=\"success\" showIcon className={styles.alert} />\n : <Alert message=\"已取消\" type=\"error\" showIcon className={styles.alert} />}\n </div>\n );\n }\n const originalFn = msg?.functionCall?.args?.originalFunctionCall;\n return (\n <div key={msg.id} className={styles.wrapper}>\n <div className={styles.confirm}>\n <div className=\"mb-4\">请确认是否执行工具:{originalFn?.name}?</div>\n <Flex justify=\"end\" gap={8}>\n <Button type=\"default\" onClick={() => onConfirm?.(false)}>取消</Button>\n <Button type=\"primary\" onClick={() => onConfirm?.(true)}>\n 确认\n </Button>\n </Flex>\n </div>\n </div>\n );\n }\n if (name === 'transferToAgent') {\n const agentName = fnCall.args?.agentName;\n return (\n <div key={msg.id} className={styles.wrapper}>\n <div className={styles.fnCall}>\n <UserSwitchOutlined style={{ color: '#888' }} />\n <Typography.Text\n ellipsis={{ tooltip: agentName }}\n style={{ maxWidth: 300, lineHeight: '16px' }}\n >\n 任务转交:{agentName}\n </Typography.Text>\n {msg.functionResponse\n ? <CheckCircleTwoTone twoToneColor=\"#52c41a\" />\n : <LoadingOutlined />}\n </div>\n </div>\n );\n }\n const renderItem = (obj: any, text: string) => {\n const str = JSON.stringify(obj, null, 2);\n return (\n <Form.Item\n label={(\n <Flex align=\"center\">\n <span className=\"mr-2\">{text}</span>\n <Typography.Text\n copyable={{\n text: str,\n icon: <CopyOutlined />,\n }}\n />\n </Flex>\n )}\n style={{ marginBottom: 12 }}\n >\n <JsonView value={str} />\n </Form.Item>\n );\n };\n const renderResponse = () => {\n const res = msg.functionResponse;\n if (res) {\n if (res.response?.error) {\n return (\n <Tooltip title={res.response.error}>\n <InfoCircleOutlined style={{ color: '#faad14' }} />\n </Tooltip>\n );\n }\n return <CheckCircleTwoTone twoToneColor=\"#52c41a\" />;\n }\n return <LoadingOutlined />;\n };\n return (\n <div key={msg.id} className={styles.wrapper}>\n {showDetail ? (\n <Popover\n placement=\"left\"\n content={(\n <Form style={{ width: 400 }} layout=\"vertical\">\n {renderItem(fnCall.args, '工具参数')}\n {renderItem(msg.functionResponse?.response, '工具响应')}\n </Form>\n )}\n >\n <div className={styles.fnCall}>\n <ToolOutlined style={{ color: '#888' }} />\n <Typography.Text\n ellipsis={{ tooltip: name }}\n style={{ maxWidth: 300, lineHeight: '16px' }}\n >\n 调用工具:{name}\n </Typography.Text>\n {renderResponse()}\n </div>\n </Popover>\n ) : (\n <div className={styles.fnCall}>\n <ToolOutlined style={{ color: '#888' }} />\n <Typography.Text\n ellipsis={{ tooltip: name }}\n style={{ maxWidth: 300, lineHeight: '16px' }}\n >\n 调用工具:{name}\n </Typography.Text>\n {renderResponse()}\n </div>\n )}\n </div>\n );\n};\n\nexport default FunctionCallRender;\n"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export declare const useStyles: () => {
2
+ wrapper: string;
3
+ fnCall: string;
4
+ confirm: string;
5
+ alert: string;
6
+ } & {
7
+ w: (width: string | number) => string;
8
+ h: (height: string | number) => string;
9
+ p: (padding: string) => string;
10
+ pb: (padding: string | number) => string;
11
+ pt: (padding: string | number) => string;
12
+ pl: (padding: string | number) => string;
13
+ pr: (padding: string | number) => string;
14
+ m: (margin: string) => string;
15
+ mb: (margin: string | number) => string;
16
+ mt: (margin: string | number) => string;
17
+ ml: (margin: string | number) => string;
18
+ mr: (margin: string | number) => string;
19
+ text: (size: string | number) => string;
20
+ weight: (size: number) => string;
21
+ textColor: (c: string) => string;
22
+ bg: (c: string) => string;
23
+ rs: (radius: string | number) => string;
24
+ gap: (g: string | number) => string;
25
+ flex: string;
26
+ flexCenter: string;
27
+ flexBetween: string;
28
+ flexColumn: string;
29
+ flex1: string;
30
+ cursor: (type: string) => string;
31
+ border: (color: string, width?: string) => string;
32
+ boxShadow: (shadow: string) => string;
33
+ transition: (property?: string, duration?: string) => string;
34
+ overflow: (type: string) => string;
35
+ position: (type: string) => string;
36
+ zIndex: (index: number) => string;
37
+ flexCenterGap2: string;
38
+ flexCenterGap4: string;
39
+ };
40
+ export default useStyles;
@@ -0,0 +1,14 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
3
+ import { css } from '@emotion/css';
4
+ import { withBasicStyles } from "../../../../styles/common";
5
+ export var useStyles = withBasicStyles(function () {
6
+ return {
7
+ wrapper: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: flex-start;\n margin-bottom: 12px;\n "]))),
8
+ fnCall: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 12px;\n border-radius: 24px;\n line-height: 16px;\n border: 1px solid #e7e7e7;\n cursor: pointer;\n "]))),
9
+ confirm: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: 12px;\n border-radius: 12px;\n border: 1px solid #e7e7e7;\n "]))),
10
+ alert: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n line-height: 1;\n border-radius: 24px;\n "])))
11
+ };
12
+ });
13
+ export default useStyles;
14
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["css","withBasicStyles","useStyles","wrapper","_templateObject","_taggedTemplateLiteral","fnCall","_templateObject2","confirm","_templateObject3","alert","_templateObject4"],"sources":["../../../../../../src/components/XAdkChatbot/components/FunctionCallRender/styles.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { withBasicStyles } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n wrapper: css`\n display: flex;\n justify-content: flex-start;\n margin-bottom: 12px;\n `,\n\n fnCall: css`\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 12px;\n border-radius: 24px;\n line-height: 16px;\n border: 1px solid #e7e7e7;\n cursor: pointer;\n `,\n\n confirm: css`\n padding: 12px;\n border-radius: 12px;\n border: 1px solid #e7e7e7;\n `,\n\n alert: css`\n line-height: 1;\n border-radius: 24px;\n `,\n}));\n\nexport default useStyles;\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe;AAExB,OAAO,IAAMC,SAAS,GAAGD,eAAe,CAAC;EAAA,OAAO;IAC9CE,OAAO,EAAEH,GAAG,CAAAI,eAAA,KAAAA,eAAA,GAAAC,sBAAA,4FAIX;IAEDC,MAAM,EAAEN,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,yMASV;IAEDG,OAAO,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,0FAIX;IAEDK,KAAK,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA;EAIZ,CAAC;AAAA,CAAC,CAAC;AAEH,eAAeH,SAAS"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface MarkdownRenderProps {
3
+ text: string;
4
+ }
5
+ declare const MarkdownRender: React.FC<MarkdownRenderProps>;
6
+ export default MarkdownRender;
@@ -0,0 +1,70 @@
1
+ import React from 'react';
2
+ import XMarkdown from '@ant-design/x-markdown';
3
+ import HighlightCode from '@ant-design/x-markdown/plugins/HighlightCode';
4
+ import Latex from '@ant-design/x-markdown/plugins/Latex';
5
+ import { Flex } from 'antd';
6
+ import { BarsOutlined, BulbOutlined, ThunderboltOutlined, CheckCircleOutlined } from '@ant-design/icons';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ import { jsxs as _jsxs } from "react/jsx-runtime";
9
+ var CodeComponent = function CodeComponent(props) {
10
+ var _className$match;
11
+ var className = props.className,
12
+ children = props.children;
13
+ var lang = (className === null || className === void 0 || (_className$match = className.match(/language-(\w+)/)) === null || _className$match === void 0 ? void 0 : _className$match[1]) || '';
14
+ if (typeof children !== 'string') return null;
15
+ return /*#__PURE__*/_jsx(HighlightCode, {
16
+ lang: lang,
17
+ children: children
18
+ });
19
+ };
20
+ var ThinkComponent = /*#__PURE__*/React.memo(function (props) {
21
+ var type = props.type || '';
22
+ var titleMap = {
23
+ planning: '规划',
24
+ replanning: '重新规划',
25
+ reasoning: '推理',
26
+ action: '行动',
27
+ final_answer: '最终答案'
28
+ };
29
+ var iconMap = {
30
+ planning: /*#__PURE__*/_jsx(BarsOutlined, {}),
31
+ replanning: /*#__PURE__*/_jsx(BarsOutlined, {}),
32
+ reasoning: /*#__PURE__*/_jsx(BulbOutlined, {}),
33
+ action: /*#__PURE__*/_jsx(ThunderboltOutlined, {}),
34
+ final_answer: /*#__PURE__*/_jsx(CheckCircleOutlined, {})
35
+ };
36
+ return /*#__PURE__*/_jsxs(Flex, {
37
+ align: "center",
38
+ gap: 8,
39
+ style: {
40
+ color: '#888',
41
+ margin: '4px 0'
42
+ },
43
+ children: [type in titleMap && iconMap[type], /*#__PURE__*/_jsx("span", {
44
+ children: titleMap[type]
45
+ })]
46
+ });
47
+ });
48
+ var MarkdownRender = function MarkdownRender(_ref) {
49
+ var text = _ref.text;
50
+ var markdown = text.replaceAll(/\/\*\s*PLANNING\s*\*\//g, '<tag type="planning"></tag>').replaceAll(/\/\*\s*REPLANNING\s*\*\//g, '<tag type="replanning"></tag>').replaceAll(/\/\*\s*REASONING\s*\*\//g, '<tag type="reasoning"></tag>').replaceAll(/\/\*\s*ACTION\s*\*\//g, '<tag type="action"></tag>').replaceAll(/\/\*\s*FINAL_ANSWER\s*\*\//g, '<tag type="final_answer"></tag>');
51
+ return /*#__PURE__*/_jsx(XMarkdown, {
52
+ content: markdown,
53
+ paragraphTag: "div",
54
+ config: {
55
+ extensions: Latex()
56
+ },
57
+ components: {
58
+ tag: ThinkComponent,
59
+ code: CodeComponent
60
+ },
61
+ streaming: {
62
+ enableAnimation: true,
63
+ animationConfig: {
64
+ fadeDuration: 400
65
+ }
66
+ }
67
+ });
68
+ };
69
+ export default MarkdownRender;
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","XMarkdown","HighlightCode","Latex","Flex","BarsOutlined","BulbOutlined","ThunderboltOutlined","CheckCircleOutlined","jsx","_jsx","jsxs","_jsxs","CodeComponent","props","_className$match","className","children","lang","match","ThinkComponent","memo","type","titleMap","planning","replanning","reasoning","action","final_answer","iconMap","align","gap","style","color","margin","MarkdownRender","_ref","text","markdown","replaceAll","content","paragraphTag","config","extensions","components","tag","code","streaming","enableAnimation","animationConfig","fadeDuration"],"sources":["../../../../../../src/components/XAdkChatbot/components/MarkdownRender/index.tsx"],"sourcesContent":["import React from 'react';\nimport XMarkdown, { type ComponentProps } from '@ant-design/x-markdown';\nimport HighlightCode from '@ant-design/x-markdown/plugins/HighlightCode';\nimport Latex from '@ant-design/x-markdown/plugins/Latex';\nimport { Flex } from 'antd';\nimport { BarsOutlined, BulbOutlined, ThunderboltOutlined, CheckCircleOutlined } from '@ant-design/icons';\n\nconst CodeComponent: React.FC<ComponentProps> = (props) => {\n const { className, children } = props;\n const lang = className?.match(/language-(\\w+)/)?.[1] || '';\n\n if (typeof children !== 'string') return null;\n return <HighlightCode lang={lang}>{children}</HighlightCode>;\n};\n\nexport interface MarkdownRenderProps {\n text: string;\n}\n\nconst ThinkComponent = React.memo((props: ComponentProps) => {\n const type = (props.type || '') as string;\n const titleMap: Record<string, string> = {\n planning: '规划',\n replanning: '重新规划',\n reasoning: '推理',\n action: '行动',\n final_answer: '最终答案',\n };\n const iconMap = {\n planning: <BarsOutlined />,\n replanning: <BarsOutlined />,\n reasoning: <BulbOutlined />,\n action: <ThunderboltOutlined />,\n final_answer: <CheckCircleOutlined />,\n };\n\n return (\n <Flex align=\"center\" gap={8} style={{ color: '#888', margin: '4px 0' }}>\n {type in titleMap && iconMap[type as keyof typeof iconMap]}\n <span>{titleMap[type]}</span>\n </Flex>\n );\n});\n\nconst MarkdownRender: React.FC<MarkdownRenderProps> = ({ text }) => {\n const markdown = text\n .replaceAll(/\\/\\*\\s*PLANNING\\s*\\*\\//g, '<tag type=\"planning\"></tag>')\n .replaceAll(/\\/\\*\\s*REPLANNING\\s*\\*\\//g, '<tag type=\"replanning\"></tag>')\n .replaceAll(/\\/\\*\\s*REASONING\\s*\\*\\//g, '<tag type=\"reasoning\"></tag>')\n .replaceAll(/\\/\\*\\s*ACTION\\s*\\*\\//g, '<tag type=\"action\"></tag>')\n .replaceAll(/\\/\\*\\s*FINAL_ANSWER\\s*\\*\\//g, '<tag type=\"final_answer\"></tag>');\n return (\n <XMarkdown\n content={markdown}\n paragraphTag=\"div\"\n config={{\n extensions: Latex(),\n }}\n components={{\n tag: ThinkComponent,\n code: CodeComponent,\n }}\n streaming={{\n enableAnimation: true,\n animationConfig: {\n fadeDuration: 400,\n },\n }}\n />\n );\n};\n\nexport default MarkdownRender;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAA+B,wBAAwB;AACvE,OAAOC,aAAa,MAAM,8CAA8C;AACxE,OAAOC,KAAK,MAAM,sCAAsC;AACxD,SAASC,IAAI,QAAQ,MAAM;AAC3B,SAASC,YAAY,EAAEC,YAAY,EAAEC,mBAAmB,EAAEC,mBAAmB,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEzG,IAAMC,aAAuC,GAAG,SAA1CA,aAAuCA,CAAIC,KAAK,EAAK;EAAA,IAAAC,gBAAA;EACzD,IAAQC,SAAS,GAAeF,KAAK,CAA7BE,SAAS;IAAEC,QAAQ,GAAKH,KAAK,CAAlBG,QAAQ;EAC3B,IAAMC,IAAI,GAAG,CAAAF,SAAS,aAATA,SAAS,gBAAAD,gBAAA,GAATC,SAAS,CAAEG,KAAK,CAAC,gBAAgB,CAAC,cAAAJ,gBAAA,uBAAlCA,gBAAA,CAAqC,CAAC,CAAC,KAAI,EAAE;EAE1D,IAAI,OAAOE,QAAQ,KAAK,QAAQ,EAAE,OAAO,IAAI;EAC7C,oBAAOP,IAAA,CAACR,aAAa;IAACgB,IAAI,EAAEA,IAAK;IAAAD,QAAA,EAAEA;EAAQ,CAAgB,CAAC;AAC9D,CAAC;AAMD,IAAMG,cAAc,gBAAGpB,KAAK,CAACqB,IAAI,CAAC,UAACP,KAAqB,EAAK;EAC3D,IAAMQ,IAAI,GAAIR,KAAK,CAACQ,IAAI,IAAI,EAAa;EACzC,IAAMC,QAAgC,GAAG;IACvCC,QAAQ,EAAE,IAAI;IACdC,UAAU,EAAE,MAAM;IAClBC,SAAS,EAAE,IAAI;IACfC,MAAM,EAAE,IAAI;IACZC,YAAY,EAAE;EAChB,CAAC;EACD,IAAMC,OAAO,GAAG;IACdL,QAAQ,eAAEd,IAAA,CAACL,YAAY,IAAE,CAAC;IAC1BoB,UAAU,eAAEf,IAAA,CAACL,YAAY,IAAE,CAAC;IAC5BqB,SAAS,eAAEhB,IAAA,CAACJ,YAAY,IAAE,CAAC;IAC3BqB,MAAM,eAAEjB,IAAA,CAACH,mBAAmB,IAAE,CAAC;IAC/BqB,YAAY,eAAElB,IAAA,CAACF,mBAAmB,IAAE;EACtC,CAAC;EAED,oBACEI,KAAA,CAACR,IAAI;IAAC0B,KAAK,EAAC,QAAQ;IAACC,GAAG,EAAE,CAAE;IAACC,KAAK,EAAE;MAAEC,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;IAAQ,CAAE;IAAAjB,QAAA,GACpEK,IAAI,IAAIC,QAAQ,IAAIM,OAAO,CAACP,IAAI,CAAyB,eAC1DZ,IAAA;MAAAO,QAAA,EAAOM,QAAQ,CAACD,IAAI;IAAC,CAAO,CAAC;EAAA,CACzB,CAAC;AAEX,CAAC,CAAC;AAEF,IAAMa,cAA6C,GAAG,SAAhDA,cAA6CA,CAAAC,IAAA,EAAiB;EAAA,IAAXC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAC3D,IAAMC,QAAQ,GAAGD,IAAI,CAClBE,UAAU,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CACpEA,UAAU,CAAC,2BAA2B,EAAE,+BAA+B,CAAC,CACxEA,UAAU,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CACtEA,UAAU,CAAC,uBAAuB,EAAE,2BAA2B,CAAC,CAChEA,UAAU,CAAC,6BAA6B,EAAE,iCAAiC,CAAC;EAC/E,oBACE7B,IAAA,CAACT,SAAS;IACRuC,OAAO,EAAEF,QAAS;IAClBG,YAAY,EAAC,KAAK;IAClBC,MAAM,EAAE;MACNC,UAAU,EAAExC,KAAK,CAAC;IACpB,CAAE;IACFyC,UAAU,EAAE;MACVC,GAAG,EAAEzB,cAAc;MACnB0B,IAAI,EAAEjC;IACR,CAAE;IACFkC,SAAS,EAAE;MACTC,eAAe,EAAE,IAAI;MACrBC,eAAe,EAAE;QACfC,YAAY,EAAE;MAChB;IACF;EAAE,CACH,CAAC;AAEN,CAAC;AAED,eAAef,cAAc"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { IMessage } from "../../../../types";
3
+ export interface ThinkRenderProps {
4
+ msg: IMessage;
5
+ loading?: boolean;
6
+ }
7
+ declare const ThinkRender: React.FC<ThinkRenderProps>;
8
+ export default ThinkRender;
@@ -0,0 +1,32 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import { Think } from '@ant-design/x';
3
+ import React, { useEffect, useState } from 'react';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ var ThinkRender = function ThinkRender(_ref) {
6
+ var msg = _ref.msg,
7
+ loading = _ref.loading;
8
+ var _useState = useState(false),
9
+ _useState2 = _slicedToArray(_useState, 2),
10
+ expand = _useState2[0],
11
+ setExpand = _useState2[1];
12
+ useEffect(function () {
13
+ if (loading) {
14
+ setExpand(true);
15
+ } else {
16
+ setExpand(false);
17
+ }
18
+ }, [loading]);
19
+ return /*#__PURE__*/_jsx(Think, {
20
+ title: loading ? '思考中...' : '深度思考',
21
+ loading: loading,
22
+ expanded: expand,
23
+ onExpand: function onExpand() {
24
+ return setExpand(function (v) {
25
+ return !v;
26
+ });
27
+ },
28
+ children: msg.text
29
+ });
30
+ };
31
+ export default ThinkRender;
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Think","React","useEffect","useState","jsx","_jsx","ThinkRender","_ref","msg","loading","_useState","_useState2","_slicedToArray","expand","setExpand","title","expanded","onExpand","v","children","text"],"sources":["../../../../../../src/components/XAdkChatbot/components/ThinkRender/index.tsx"],"sourcesContent":["import { Think } from '@ant-design/x';\nimport React, { useEffect, useState } from 'react';\nimport type { IMessage } from '@/types';\n\nexport interface ThinkRenderProps {\n msg: IMessage;\n loading?: boolean;\n}\n\nconst ThinkRender: React.FC<ThinkRenderProps> = ({ msg, loading }) => {\n const [expand, setExpand] = useState(false);\n useEffect(() => {\n if (loading) {\n setExpand(true);\n } else {\n setExpand(false);\n }\n }, [loading]);\n\n return (\n <Think\n title={loading ? '思考中...' : '深度思考'}\n loading={loading}\n expanded={expand}\n onExpand={() => setExpand((v) => !v)}\n >\n {msg.text}\n </Think>\n );\n};\n\nexport default ThinkRender;\n"],"mappings":";AAAA,SAASA,KAAK,QAAQ,eAAe;AACrC,OAAOC,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQnD,IAAMC,WAAuC,GAAG,SAA1CA,WAAuCA,CAAAC,IAAA,EAAyB;EAAA,IAAnBC,GAAG,GAAAD,IAAA,CAAHC,GAAG;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;EAC7D,IAAAC,SAAA,GAA4BP,QAAQ,CAAC,KAAK,CAAC;IAAAQ,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAApCG,MAAM,GAAAF,UAAA;IAAEG,SAAS,GAAAH,UAAA;EACxBT,SAAS,CAAC,YAAM;IACd,IAAIO,OAAO,EAAE;MACXK,SAAS,CAAC,IAAI,CAAC;IACjB,CAAC,MAAM;MACLA,SAAS,CAAC,KAAK,CAAC;IAClB;EACF,CAAC,EAAE,CAACL,OAAO,CAAC,CAAC;EAEb,oBACEJ,IAAA,CAACL,KAAK;IACJe,KAAK,EAAEN,OAAO,GAAG,QAAQ,GAAG,MAAO;IACnCA,OAAO,EAAEA,OAAQ;IACjBO,QAAQ,EAAEH,MAAO;IACjBI,QAAQ,EAAE,SAAAA,SAAA;MAAA,OAAMH,SAAS,CAAC,UAACI,CAAC;QAAA,OAAK,CAACA,CAAC;MAAA,EAAC;IAAA,CAAC;IAAAC,QAAA,EAEpCX,GAAG,CAACY;EAAI,CACJ,CAAC;AAEZ,CAAC;AAED,eAAed,WAAW"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { XAdkChatbotProps } from "../../types";
3
+ declare const XAdkChatbot: React.FC<XAdkChatbotProps>;
4
+ export default XAdkChatbot;