@gientech/modual 2.2.3-fix.6 → 2.2.3-fix.8

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 (523) hide show
  1. package/README.md +761 -761
  2. package/{dist/assets/GientechStreamReader-Bae2-4f7.js → assets/GientechStreamReader-r5ZTSZk2.js} +1 -1
  3. package/{dist/assets/LeftOutlined-COk0w5nY.js → assets/LeftOutlined-DZMeGbKk.js} +1 -1
  4. package/{dist/assets/circle-plus-DOKqXUMk.js → assets/circle-plus-B73z_SUN.js} +1 -1
  5. package/{src/modules/database/assets → assets}/database.svg +11 -11
  6. package/{src/modules/database/assets → assets}/database_add.svg +53 -53
  7. package/{dist/assets → assets}/database_connect.svg +66 -66
  8. package/{dist/assets → assets}/database_upload.svg +29 -29
  9. package/{dist/assets → assets}/databse.svg +6 -6
  10. package/{dist/assets → assets}/defaultWeLogo.svg +14 -14
  11. package/{dist/assets → assets}/graph.svg +4 -4
  12. package/{src/assets/img → assets}/iconAi.svg +9 -9
  13. package/{dist/assets/index-BKbpfN9S.js → assets/index-97Oe7YBe.js} +1 -1
  14. package/{dist/assets/index-BXdyn2W3.js → assets/index-B4k3tK0f.js} +1 -1
  15. package/{dist/assets/index-Bin0NZwF.js → assets/index-BDc2zBbG.js} +7 -3
  16. package/assets/index-BIEKgWu0.js +27 -0
  17. package/assets/index-CzZQWA2P.js +1 -0
  18. package/{dist/assets/index-CpSzj-Sx.js → assets/index-DHK_n74G.js} +58 -73
  19. package/assets/index-DPA1HCWQ.js +1372 -0
  20. package/assets/index-DPyRygOA.js +745 -0
  21. package/assets/index-YHUI3QVz.js +943 -0
  22. package/{dist/assets/index-vfI1_Qg0.js → assets/index-iOuQJ8vu.js} +1 -1
  23. package/{dist/assets/index-Ct_k24Ar.js → assets/index-usBlUHOb.js} +1 -1
  24. package/{src/modules/assistantConfig/assets → assets}/knowledge.svg +4 -4
  25. package/{src/modules/database/assets → assets}/mysql.svg +14 -14
  26. package/assets/plus-BICgMvz9.js +6 -0
  27. package/assets/search-CD5YKija.js +6 -0
  28. package/{dist/assets → assets}/sensitive.svg +5 -5
  29. package/assets/style-Blt3Kyyt.js +196 -0
  30. package/assets/style2.css +1 -0
  31. package/{dist/assets/triangle-alert-CaJaaCaZ.js → assets/triangle-alert-C4Z1AkGW.js} +1 -1
  32. package/{dist/assets/x-B65AntWN.js → assets/x-DWGzNb9c.js} +1 -1
  33. package/{dist/assistantConfig.js → assistantConfig.js} +14 -9
  34. package/chat.js +1 -0
  35. package/chatCompare.js +1 -0
  36. package/database.js +20 -0
  37. package/{dist/databaseId.js → databaseId.js} +1 -1
  38. package/{dist/databaseTable.js → databaseTable.js} +1 -1
  39. package/index.js +1 -0
  40. package/modelManage.js +1 -0
  41. package/package.json +44 -125
  42. package/{dist/sensitive.js → sensitive.js} +6 -6
  43. package/streamFilesReader.js +1 -0
  44. package/{public/worker → worker}/pdf.worker.min.js +21 -21
  45. package/.editorconfig +0 -38
  46. package/.prettierignore +0 -16
  47. package/.prettierrc +0 -17
  48. package/CHANGELOG.md +0 -162
  49. package/Dockerfile +0 -15
  50. package/USAGE.md +0 -247
  51. package/bash.exe.stackdump +0 -40
  52. package/components.json +0 -21
  53. package/default.conf +0 -19
  54. package/dist/README.md +0 -761
  55. package/dist/assets/database.svg +0 -11
  56. package/dist/assets/database_add.svg +0 -53
  57. package/dist/assets/iconAi.svg +0 -9
  58. package/dist/assets/index-1PwCuRjv.js +0 -1061
  59. package/dist/assets/index-7QvYA6eT.js +0 -1
  60. package/dist/assets/index-BhUNGJOe.js +0 -27
  61. package/dist/assets/index-DT3qkjJ3.js +0 -750
  62. package/dist/assets/index-lFBFf_0k.js +0 -1890
  63. package/dist/assets/knowledge.svg +0 -4
  64. package/dist/assets/mysql.svg +0 -14
  65. package/dist/assets/style-CfNUqKAA.js +0 -196
  66. package/dist/assets/style2.css +0 -1
  67. package/dist/chat.js +0 -1
  68. package/dist/chatCompare.js +0 -1
  69. package/dist/database.js +0 -20
  70. package/dist/index.js +0 -1
  71. package/dist/modelManage.js +0 -1
  72. package/dist/package.json +0 -73
  73. package/dist/streamFilesReader.js +0 -1
  74. package/dist/worker/pdf.worker.min.js +0 -22
  75. package/doc_assets/images/1.png +0 -0
  76. package/doc_assets/images/3.png +0 -0
  77. package/doc_assets/images/component-screenshot.png +0 -1
  78. package/doc_assets//346/226/271/346/241/210/v2.0.7/345/217/230/346/233/264/346/200/273/347/273/223.md +0 -115
  79. package/doc_assets//346/226/271/346/241/210//344/274/230/345/214/226/346/226/271/346/241/210-/345/244/232/344/274/232/350/257/235SSE/350/277/236/346/216/245/347/256/241/347/220/206.md +0 -504
  80. package/doc_assets//346/226/271/346/241/210//346/215/242/350/241/214/346/240/274/345/274/217/344/277/235/346/214/201/344/274/230/345/214/226/346/226/271/346/241/210.md +0 -359
  81. package/eslint.config.js +0 -92
  82. package/index.html +0 -13
  83. package/package.json.demo-backup +0 -109
  84. package/postcss.config.cjs +0 -19
  85. package/public/icons/answerAwartar.png +0 -0
  86. package/public/icons/docx-file.png +0 -0
  87. package/public/icons/folder.png +0 -0
  88. package/public/icons/html.png +0 -0
  89. package/public/icons/image.png +0 -0
  90. package/public/icons/jpg-file.png +0 -0
  91. package/public/icons/json.png +0 -0
  92. package/public/icons/md.png +0 -0
  93. package/public/icons/pdf.png +0 -0
  94. package/public/icons/pptx.png +0 -0
  95. package/public/icons/questionAwartar.png +0 -0
  96. package/public/icons/sheets.png +0 -0
  97. package/public/icons/txt.png +0 -0
  98. package/public/icons/xlsx.png +0 -0
  99. package/public/vite.svg +0 -1
  100. package/rag/assets/index.Bd0tNzw0.js +0 -2797
  101. package/rag/assets/index.D6t67hlu.css +0 -1
  102. package/rag/assets/left.KBHV5h7q.jpg +0 -0
  103. package/rag/assets/worker-BbpylX7l.DptbXke_.js +0 -13
  104. package/release-it.json +0 -21
  105. package/scripts/README.md +0 -133
  106. package/scripts/build-demo.js +0 -88
  107. package/scripts/check-changelog.cjs +0 -124
  108. package/scripts/check-version.cjs +0 -49
  109. package/scripts/decrypt-api-key.js +0 -95
  110. package/scripts/demo-selector.js +0 -216
  111. package/scripts/dev-demo.js +0 -85
  112. package/scripts/open-file.cjs +0 -61
  113. package/scripts/preview-demo.js +0 -130
  114. package/scripts/run-demo.bat +0 -34
  115. package/src/assets/img/close.png +0 -0
  116. package/src/assets/img/database.png +0 -0
  117. package/src/assets/img/downArrow.png +0 -0
  118. package/src/assets/img/downLoad.png +0 -0
  119. package/src/assets/img/excel.png +0 -0
  120. package/src/assets/img/graphIcon.png +0 -0
  121. package/src/assets/img/img.png +0 -0
  122. package/src/assets/img/pdf.png +0 -0
  123. package/src/assets/img/ppt.png +0 -0
  124. package/src/assets/img/search.svg +0 -3
  125. package/src/assets/img/selected.svg +0 -4
  126. package/src/assets/img/singleQa.png +0 -0
  127. package/src/assets/img/txt.png +0 -0
  128. package/src/assets/img/webSearch.png +0 -0
  129. package/src/assets/img/word.png +0 -0
  130. package/src/assets/login/homeBg.png +0 -0
  131. package/src/assets/login/left.jpg +0 -0
  132. package/src/assets/login/logoImg.png +0 -0
  133. package/src/examples/ConversationAssistantPage/index.tsx +0 -42
  134. package/src/examples/LoginPage/index.tsx +0 -20
  135. package/src/examples/chat/components/DrawerGraphPreview.tsx +0 -78
  136. package/src/examples/chat/index.tsx +0 -171
  137. package/src/examples/chat/logo03.png +0 -0
  138. package/src/examples/chatCompare/icons/rag_think.svg +0 -8
  139. package/src/examples/chatCompare/icons/wenda_lianwangsousuo.svg +0 -9
  140. package/src/examples/chatCompare/index.tsx +0 -154
  141. package/src/examples/gientechStreamFilesReader/index.tsx +0 -979
  142. package/src/examples/headlessChat/assets/mind.svg +0 -6
  143. package/src/examples/headlessChat/assets/net.svg +0 -7
  144. package/src/examples/headlessChat/index.tsx +0 -298
  145. package/src/examples/knowledgebaseDetails/index.tsx +0 -119
  146. package/src/examples/ragDatabaseDataPage/index.tsx +0 -40
  147. package/src/examples/ragDatabaseIdPage/index.tsx +0 -126
  148. package/src/examples/ragDatabasePage/index.tsx +0 -36
  149. package/src/examples/ragModelManagePage/index.tsx +0 -107
  150. package/src/examples/ragModelManagePage/style.css +0 -7
  151. package/src/examples/ragSearchPage/index.tsx +0 -0
  152. package/src/examples/ragSensitiveWordsPage/index.tsx +0 -117
  153. package/src/examples/ragSensitiveWordsPage/style.css +0 -16
  154. package/src/examples/sensitiveId/index.tsx +0 -41
  155. package/src/examples/streamFiles/index.tsx +0 -417
  156. package/src/examples/utils/demo_setting_pannel.ts +0 -0
  157. package/src/lib_enter.ts +0 -44
  158. package/src/main.tsx +0 -5
  159. package/src/main.tsx.backup +0 -5
  160. package/src/modules/CHAT_UNIFICATION_PLAN.md +0 -324
  161. package/src/modules/assistantConfig/assets/databse.svg +0 -6
  162. package/src/modules/assistantConfig/assets/empty.png +0 -0
  163. package/src/modules/assistantConfig/assets/graph.svg +0 -4
  164. package/src/modules/assistantConfig/assets/sensitive.svg +0 -5
  165. package/src/modules/assistantConfig/components/Database.tsx +0 -171
  166. package/src/modules/assistantConfig/components/Graph.tsx +0 -177
  167. package/src/modules/assistantConfig/components/Knowledge.tsx +0 -276
  168. package/src/modules/assistantConfig/components/NotFoundContent.tsx +0 -21
  169. package/src/modules/assistantConfig/components/Paragraph.tsx +0 -51
  170. package/src/modules/assistantConfig/components/ParamsItem.tsx +0 -40
  171. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +0 -133
  172. package/src/modules/assistantConfig/components/SearchableSelector.tsx +0 -500
  173. package/src/modules/assistantConfig/components/Sensitive.tsx +0 -221
  174. package/src/modules/assistantConfig/components/SliderInput.tsx +0 -66
  175. package/src/modules/assistantConfig/constants.tsx +0 -75
  176. package/src/modules/assistantConfig/index.tsx +0 -785
  177. package/src/modules/assistantConfig/server.ts +0 -262
  178. package/src/modules/chat/AllFiles.tsx +0 -158
  179. package/src/modules/chat/Conversations/Item.tsx +0 -169
  180. package/src/modules/chat/Conversations/List.tsx +0 -210
  181. package/src/modules/chat/Conversations/groupByTime.ts +0 -39
  182. package/src/modules/chat/Conversations/index.tsx +0 -255
  183. package/src/modules/chat/ReferenceBar.tsx +0 -659
  184. package/src/modules/chat/constants.tsx +0 -66
  185. package/src/modules/chat/i18n.ts +0 -151
  186. package/src/modules/chat/i18n.tsx +0 -151
  187. package/src/modules/chat/icons/rag_think.svg +0 -8
  188. package/src/modules/chat/icons/wenda_lianwangsousuo.svg +0 -9
  189. package/src/modules/chat/index.tsx +0 -2400
  190. package/src/modules/chat/referenceCom/DeleteModal.tsx +0 -75
  191. package/src/modules/chat/referenceCom/DrawerContent.tsx +0 -136
  192. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +0 -102
  193. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +0 -86
  194. package/src/modules/chat/referenceCom/DrawerPreview.tsx +0 -73
  195. package/src/modules/chat/referenceCom/DrawerTitle.tsx +0 -26
  196. package/src/modules/chat/referenceCom/RenameModal.tsx +0 -86
  197. package/src/modules/chat/referenceCom/TagCom.tsx +0 -30
  198. package/src/modules/chat/style.css +0 -6
  199. package/src/modules/chat/style.less +0 -7
  200. package/src/modules/chat/types.ts +0 -17
  201. package/src/modules/chat/utils/index.ts +0 -348
  202. package/src/modules/chatCompare/UseChatCompareHooks.ts +0 -103
  203. package/src/modules/chatCompare/components/AichatCompareUseController.tsx +0 -754
  204. package/src/modules/chatCompare/components/AssistantSelector.tsx +0 -127
  205. package/src/modules/chatCompare/components/ChatInputer.tsx +0 -67
  206. package/src/modules/chatCompare/components/ChatInstance.tsx +0 -426
  207. package/src/modules/chatCompare/components/ChatItem.tsx +0 -556
  208. package/src/modules/chatCompare/components/Sender/FileCardCommon.tsx +0 -97
  209. package/src/modules/chatCompare/components/Sender/FileUpload.tsx +0 -89
  210. package/src/modules/chatCompare/components/Sender/FilesDisplay.tsx +0 -309
  211. package/src/modules/chatCompare/components/Sender/VoiceInput.tsx +0 -80
  212. package/src/modules/chatCompare/components/Sender/contexts/BadgeContext.tsx +0 -36
  213. package/src/modules/chatCompare/components/Sender/fileIcon.tsx +0 -100
  214. package/src/modules/chatCompare/components/Sender/index.tsx +0 -850
  215. package/src/modules/chatCompare/components/UseChatInstanceHooks.ts +0 -406
  216. package/src/modules/chatCompare/components/UseScrollHooks.ts +0 -36
  217. package/src/modules/chatCompare/components/components/AllFiles.tsx +0 -156
  218. package/src/modules/chatCompare/components/components/DeleteModal.tsx +0 -75
  219. package/src/modules/chatCompare/components/components/DrawerContent.tsx +0 -138
  220. package/src/modules/chatCompare/components/components/DrawerDatabase.tsx +0 -110
  221. package/src/modules/chatCompare/components/components/DrawerGraphPreview.tsx +0 -95
  222. package/src/modules/chatCompare/components/components/DrawerPreview.tsx +0 -75
  223. package/src/modules/chatCompare/components/components/DrawerTitle.tsx +0 -26
  224. package/src/modules/chatCompare/components/components/DrawerVideo.tsx +0 -85
  225. package/src/modules/chatCompare/components/components/ReferenceBar.tsx +0 -659
  226. package/src/modules/chatCompare/components/components/RenameModal.tsx +0 -86
  227. package/src/modules/chatCompare/components/components/TagCom.tsx +0 -30
  228. package/src/modules/chatCompare/components/defaultStyleSet.tsx +0 -148
  229. package/src/modules/chatCompare/components/server.ts +0 -208
  230. package/src/modules/chatCompare/components/serverFn.ts +0 -172
  231. package/src/modules/chatCompare/components/style.less +0 -97
  232. package/src/modules/chatCompare/components/useFileManager.ts +0 -173
  233. package/src/modules/chatCompare/components/utils.ts +0 -31
  234. package/src/modules/chatCompare/data.ts +0 -842
  235. package/src/modules/chatCompare/index.tsx +0 -537
  236. package/src/modules/chatCompare/utils/AiChat.types.tsx +0 -110
  237. package/src/modules/chatCompare/utils/constants.tsx +0 -70
  238. package/src/modules/chatCompare/utils/fileUploadValidator.ts +0 -183
  239. package/src/modules/chatCompare/utils/icons/rag_think.svg +0 -8
  240. package/src/modules/chatCompare/utils/icons/wenda_lianwangsousuo.svg +0 -9
  241. package/src/modules/chatCompare/utils/index.ts +0 -46
  242. package/src/modules/database/CreateModal.tsx +0 -402
  243. package/src/modules/database/assets/Doris.png +0 -0
  244. package/src/modules/database/assets/PostgreSQL.png +0 -0
  245. package/src/modules/database/assets/SQLServer.png +0 -0
  246. package/src/modules/database/assets/database_connect.svg +0 -66
  247. package/src/modules/database/assets/database_upload.svg +0 -29
  248. package/src/modules/database/assets/empty.png +0 -0
  249. package/src/modules/database/index.tsx +0 -477
  250. package/src/modules/database/server.ts +0 -196
  251. package/src/modules/databaseId/CustomCom.tsx +0 -156
  252. package/src/modules/databaseId/EditConfig.tsx +0 -280
  253. package/src/modules/databaseId/UploadDrawer.tsx +0 -535
  254. package/src/modules/databaseId/assets/aiOptimize.svg +0 -10
  255. package/src/modules/databaseId/assets/empty.png +0 -0
  256. package/src/modules/databaseId/assets/template.svg +0 -6
  257. package/src/modules/databaseId/assets/upload.svg +0 -9
  258. package/src/modules/databaseId/assets/useTemp.svg +0 -6
  259. package/src/modules/databaseId/i18n.ts +0 -360
  260. package/src/modules/databaseId/index.tsx +0 -855
  261. package/src/modules/databaseId/server.ts +0 -286
  262. package/src/modules/databaseId/style.css +0 -5
  263. package/src/modules/databaseTable/EditRowDrawer.tsx +0 -124
  264. package/src/modules/databaseTable/index.tsx +0 -359
  265. package/src/modules/databaseTable/server.ts +0 -180
  266. package/src/modules/headlessChat/ReferenceBar.tsx +0 -783
  267. package/src/modules/headlessChat/constants.tsx +0 -54
  268. package/src/modules/headlessChat/index.tsx +0 -1903
  269. package/src/modules/headlessChat/referenceCom/DeleteModal.tsx +0 -75
  270. package/src/modules/headlessChat/referenceCom/DrawerContent.tsx +0 -136
  271. package/src/modules/headlessChat/referenceCom/DrawerDatabase.tsx +0 -102
  272. package/src/modules/headlessChat/referenceCom/DrawerGraphPreview.tsx +0 -86
  273. package/src/modules/headlessChat/referenceCom/DrawerPreview.tsx +0 -73
  274. package/src/modules/headlessChat/referenceCom/DrawerTitle.tsx +0 -26
  275. package/src/modules/headlessChat/referenceCom/RenameModal.tsx +0 -86
  276. package/src/modules/headlessChat/referenceCom/TagCom.tsx +0 -30
  277. package/src/modules/headlessChat/style.less +0 -3
  278. package/src/modules/headlessChat/types.ts +0 -23
  279. package/src/modules/headlessChat/utils/index.ts +0 -348
  280. package/src/modules/knowledgeBase/index.tsx +0 -58
  281. package/src/modules/knowledgeBase/server.ts +0 -196
  282. package/src/modules/knowledgebaseDetails/KnowledgeBaseDetails.tsx +0 -169
  283. package/src/modules/knowledgebaseDetails/components/KnowledgeBaseSummaryCard.tsx +0 -193
  284. package/src/modules/knowledgebaseDetails/components/fileManagementParts.tsx +0 -534
  285. package/src/modules/knowledgebaseDetails/components/index.ts +0 -3
  286. package/src/modules/knowledgebaseDetails/index.ts +0 -3
  287. package/src/modules/knowledgebaseDetails/modules/ConfigModule.tsx +0 -49
  288. package/src/modules/knowledgebaseDetails/modules/FaqModule.tsx +0 -47
  289. package/src/modules/knowledgebaseDetails/modules/KnowledgeParseModule.tsx +0 -771
  290. package/src/modules/knowledgebaseDetails/modules/RetrievalTestModule.tsx +0 -49
  291. package/src/modules/knowledgebaseDetails/modules/UploadManagementModule.tsx +0 -49
  292. package/src/modules/knowledgebaseDetails/modules/types.ts +0 -44
  293. package/src/modules/knowledgebaseDetails/modules-shim.d.ts +0 -14
  294. package/src/modules/knowledgebaseDetails/servers/analysis.ts +0 -5
  295. package/src/modules/knowledgebaseDetails/servers/index.ts +0 -318
  296. package/src/modules/login/components/Login/LoginBox/index.tsx +0 -105
  297. package/src/modules/login/components/Login/RegisterBox/index.tsx +0 -181
  298. package/src/modules/login/components/Login/index.tsx +0 -100
  299. package/src/modules/login/i18n.ts +0 -217
  300. package/src/modules/login/index.tsx +0 -113
  301. package/src/modules/login/style.css +0 -3
  302. package/src/modules/login/useServices.ts +0 -53
  303. package/src/modules/login/utils.ts +0 -42
  304. package/src/modules/modelManage/ConfigDrawer.tsx +0 -267
  305. package/src/modules/modelManage/ReplaceModal.tsx +0 -113
  306. package/src/modules/modelManage/assets/empty.png +0 -0
  307. package/src/modules/modelManage/const.ts +0 -51
  308. package/src/modules/modelManage/i18n.ts +0 -407
  309. package/src/modules/modelManage/index.tsx +0 -668
  310. package/src/modules/modelManage/server.ts +0 -231
  311. package/src/modules/nodegraph/index.tsx +0 -1
  312. package/src/modules/search/assets/Icon-history.svg +0 -8
  313. package/src/modules/search/assets/answerAwartar.png +0 -0
  314. package/src/modules/search/assets/doc.png +0 -0
  315. package/src/modules/search/assets/genera.gif +0 -0
  316. package/src/modules/search/assets/icon-robot.svg +0 -9
  317. package/src/modules/search/assets/icon-search-bar.svg +0 -14
  318. package/src/modules/search/assets/icon-sub-title.svg +0 -3
  319. package/src/modules/search/assets/icon-title.svg +0 -9
  320. package/src/modules/search/assets/icon-zoomOut.svg +0 -9
  321. package/src/modules/search/assets/iconAi.svg +0 -9
  322. package/src/modules/search/assets/pdf.png +0 -0
  323. package/src/modules/search/assets/ppt.png +0 -0
  324. package/src/modules/search/assets/search.svg +0 -3
  325. package/src/modules/search/assets/selected.svg +0 -4
  326. package/src/modules/search/assets/txt.png +0 -0
  327. package/src/modules/search/assets/xls.png +0 -0
  328. package/src/modules/search/components/AssisSelect.tsx +0 -137
  329. package/src/modules/search/components/Editor/ChatViewEditor.tsx +0 -261
  330. package/src/modules/search/components/Editor/aichat.css +0 -1
  331. package/src/modules/search/components/Editor/constant.ts +0 -13
  332. package/src/modules/search/components/Editor/index.tsx +0 -113
  333. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +0 -332
  334. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +0 -20
  335. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +0 -38
  336. package/src/modules/search/components/Editor/plugins/displayer.ts +0 -298
  337. package/src/modules/search/components/Editor/plugins/imageClick.tsx +0 -32
  338. package/src/modules/search/components/Editor/plugins/myplugin.tsx +0 -98
  339. package/src/modules/search/components/Editor/ui/avatar.tsx +0 -19
  340. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +0 -21
  341. package/src/modules/search/components/Editor/ui/button.tsx +0 -58
  342. package/src/modules/search/components/Editor/ui/calendar.tsx +0 -68
  343. package/src/modules/search/components/Editor/ui/caption.tsx +0 -46
  344. package/src/modules/search/components/Editor/ui/checkbox.tsx +0 -27
  345. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +0 -188
  346. package/src/modules/search/components/Editor/ui/code-block-element.css +0 -434
  347. package/src/modules/search/components/Editor/ui/code-block-element.tsx +0 -39
  348. package/src/modules/search/components/Editor/ui/code-leaf.tsx +0 -24
  349. package/src/modules/search/components/Editor/ui/code-line-element.tsx +0 -10
  350. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +0 -21
  351. package/src/modules/search/components/Editor/ui/column-element.tsx +0 -30
  352. package/src/modules/search/components/Editor/ui/column-group-element.tsx +0 -94
  353. package/src/modules/search/components/Editor/ui/command.tsx +0 -75
  354. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +0 -22
  355. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +0 -37
  356. package/src/modules/search/components/Editor/ui/comment-item.tsx +0 -74
  357. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +0 -49
  358. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +0 -42
  359. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +0 -22
  360. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +0 -32
  361. package/src/modules/search/components/Editor/ui/comment-value.tsx +0 -34
  362. package/src/modules/search/components/Editor/ui/comments-popover.tsx +0 -63
  363. package/src/modules/search/components/Editor/ui/date-element.tsx +0 -83
  364. package/src/modules/search/components/Editor/ui/dialog.tsx +0 -63
  365. package/src/modules/search/components/Editor/ui/draggable.tsx +0 -177
  366. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +0 -180
  367. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +0 -85
  368. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +0 -28
  369. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +0 -76
  370. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +0 -8
  371. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +0 -51
  372. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +0 -77
  373. package/src/modules/search/components/Editor/ui/heading-element.tsx +0 -48
  374. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +0 -17
  375. package/src/modules/search/components/Editor/ui/hr-element.tsx +0 -30
  376. package/src/modules/search/components/Editor/ui/icons.tsx +0 -267
  377. package/src/modules/search/components/Editor/ui/image-element.tsx +0 -74
  378. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +0 -368
  379. package/src/modules/search/components/Editor/ui/input.tsx +0 -25
  380. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +0 -218
  381. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +0 -20
  382. package/src/modules/search/components/Editor/ui/link-element.tsx +0 -29
  383. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +0 -161
  384. package/src/modules/search/components/Editor/ui/list-element.tsx +0 -30
  385. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +0 -24
  386. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +0 -133
  387. package/src/modules/search/components/Editor/ui/media-popover.tsx +0 -97
  388. package/src/modules/search/components/Editor/ui/mention-element.tsx +0 -43
  389. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +0 -141
  390. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +0 -93
  391. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +0 -67
  392. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +0 -4
  393. package/src/modules/search/components/Editor/ui/placeholder.tsx +0 -52
  394. package/src/modules/search/components/Editor/ui/popover.tsx +0 -32
  395. package/src/modules/search/components/Editor/ui/resizable.tsx +0 -66
  396. package/src/modules/search/components/Editor/ui/separator.tsx +0 -25
  397. package/src/modules/search/components/Editor/ui/style.less +0 -12
  398. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +0 -143
  399. package/src/modules/search/components/Editor/ui/table-element.tsx +0 -243
  400. package/src/modules/search/components/Editor/ui/table-row-element.tsx +0 -22
  401. package/src/modules/search/components/Editor/ui/tableValue.tsx +0 -135
  402. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +0 -43
  403. package/src/modules/search/components/Editor/ui/toggle-element.tsx +0 -31
  404. package/src/modules/search/components/Editor/ui/toolbar.tsx +0 -157
  405. package/src/modules/search/components/Editor/ui/tooltip.tsx +0 -65
  406. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +0 -160
  407. package/src/modules/search/components/Editor/ui/with-draggables.tsx +0 -175
  408. package/src/modules/search/components/FileList.tsx +0 -287
  409. package/src/modules/search/components/ImageGroupView/index.tsx +0 -85
  410. package/src/modules/search/components/ResultContent.tsx +0 -232
  411. package/src/modules/search/components/SearchInput.tsx +0 -232
  412. package/src/modules/search/components/SearchLanding.tsx +0 -74
  413. package/src/modules/search/components/SearchView.tsx +0 -563
  414. package/src/modules/search/components/SimpleEditor.tsx +0 -158
  415. package/src/modules/search/components/SimpleFileList.tsx +0 -215
  416. package/src/modules/search/index.tsx +0 -10
  417. package/src/modules/search/reademe.md +0 -1
  418. package/src/modules/search/servers/apis.tsx +0 -19
  419. package/src/modules/search/servers/index.ts +0 -184
  420. package/src/modules/search/style.less +0 -503
  421. package/src/modules/search/type.ts +0 -22
  422. package/src/modules/search/utils.ts +0 -34
  423. package/src/modules/sensitive/i18n.ts +0 -391
  424. package/src/modules/sensitive/index.tsx +0 -604
  425. package/src/modules/sensitive/sensitiveEditor.tsx +0 -543
  426. package/src/modules/sensitive/server.ts +0 -197
  427. package/src/modules/sensitiveId/AutoTag.tsx +0 -311
  428. package/src/modules/sensitiveId/UploadModal.tsx +0 -181
  429. package/src/modules/sensitiveId/VirtualWrap.tsx +0 -125
  430. package/src/modules/sensitiveId/index.tsx +0 -253
  431. package/src/modules/sensitiveId/server.ts +0 -142
  432. package/src/modules/streamFilesReader/GientechStreamReader.tsx +0 -1658
  433. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  434. package/src/modules/streamFilesReader/components/Header/index.tsx +0 -297
  435. package/src/modules/streamFilesReader/index.tsx +0 -3
  436. package/src/style.css +0 -6
  437. package/src/type.d.ts +0 -0
  438. package/src/utils/commonFn.tsx +0 -153
  439. package/src/utils/decryptApiKey.ts +0 -40
  440. package/src/utils/gientechCommon/components/AppError.tsx +0 -32
  441. package/src/utils/gientechCommon/components/AppLoading.tsx +0 -75
  442. package/src/utils/gientechCommon/components/DeleteModal.tsx +0 -75
  443. package/src/utils/gientechCommon/components/DisplayError.tsx +0 -33
  444. package/src/utils/gientechCommon/components/DisplayLoading.tsx +0 -38
  445. package/src/utils/gientechCommon/components/FeedBackModal.tsx +0 -319
  446. package/src/utils/gientechCommon/components/FileCardCommon.tsx +0 -82
  447. package/src/utils/gientechCommon/components/FileManager/index.tsx +0 -418
  448. package/src/utils/gientechCommon/components/FileManager/style.css +0 -5
  449. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +0 -583
  450. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +0 -359
  451. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +0 -245
  452. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +0 -209
  453. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  454. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +0 -148
  455. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +0 -14
  456. package/src/utils/gientechCommon/components/RenameModal.tsx +0 -86
  457. package/src/utils/gientechCommon/components/style.less +0 -11
  458. package/src/utils/gientechCommon/configs/commonConfig.ts +0 -2
  459. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  460. package/src/utils/gientechCommon/configs/stylesConfig.ts +0 -142
  461. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +0 -761
  462. package/src/utils/gientechCommon/hooks/style.less +0 -8
  463. package/src/utils/gientechCommon/hooks/useFileDisplayTools.tsx +0 -352
  464. package/src/utils/gientechCommon/hooks/useFileManager.ts +0 -169
  465. package/src/utils/gientechCommon/slate/converters/deserializers.ts +0 -763
  466. package/src/utils/gientechCommon/slate/converters/mockData.ts +0 -232
  467. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +0 -258
  468. package/src/utils/gientechCommon/slate/richElements/index.tsx +0 -499
  469. package/src/utils/gientechCommon/utils/fileUtils.ts +0 -86
  470. package/src/utils/gientechCommon/utils/index.ts +0 -386
  471. package/src/utils/gientechCommon/utils/request.ts +0 -37
  472. package/src/utils/gientechCommon/utils/serverFn.ts +0 -172
  473. package/src/utils/index.tsx +0 -186
  474. package/src/utils/testconfigs/demologin/index.tsx +0 -32
  475. package/src/utils/testconfigs/index.ts +0 -66
  476. package/src/vite-env.d.ts +0 -49
  477. package/stats.html +0 -4949
  478. package/tailwind.config.js +0 -170
  479. package/tsconfig.app.json +0 -31
  480. package/tsconfig.app.tsbuildinfo +0 -11
  481. package/tsconfig.json +0 -17
  482. package/tsconfig.node.json +0 -23
  483. package/tsconfig.node.tsbuildinfo +0 -1
  484. package/vite.config.app.ts +0 -91
  485. package/vite.config.ts +0 -238
  486. /package/{dist/assets → assets}/Doris.png +0 -0
  487. /package/{dist/assets → assets}/PostgreSQL.png +0 -0
  488. /package/{dist/assets → assets}/SQLServer.png +0 -0
  489. /package/{dist/assets → assets}/empty.png +0 -0
  490. /package/{dist/assets → assets}/homeBg.png +0 -0
  491. /package/{dist/assets → assets}/index-CpW6Dhpp.js +0 -0
  492. /package/{dist/assets → assets}/left.jpg +0 -0
  493. /package/{dist/assets → assets}/logoImg.png +0 -0
  494. /package/{dist/assets → assets}/style.css +0 -0
  495. /package/{dist/assets → assets}/style3.css +0 -0
  496. /package/{dist/assets → assets}/style4.css +0 -0
  497. /package/{dist/assets → assets}/style5.css +0 -0
  498. /package/{dist/assets → assets}/worker-BbpylX7l.js +0 -0
  499. /package/{dist/assistantConfig.d.ts → assistantConfig.d.ts} +0 -0
  500. /package/{dist/chat.d.ts → chat.d.ts} +0 -0
  501. /package/{dist/chatCompare.d.ts → chatCompare.d.ts} +0 -0
  502. /package/{dist/database.d.ts → database.d.ts} +0 -0
  503. /package/{dist/databaseId.d.ts → databaseId.d.ts} +0 -0
  504. /package/{dist/databaseTable.d.ts → databaseTable.d.ts} +0 -0
  505. /package/{dist/icons → icons}/answerAwartar.png +0 -0
  506. /package/{dist/icons → icons}/docx-file.png +0 -0
  507. /package/{dist/icons → icons}/folder.png +0 -0
  508. /package/{dist/icons → icons}/html.png +0 -0
  509. /package/{dist/icons → icons}/image.png +0 -0
  510. /package/{dist/icons → icons}/jpg-file.png +0 -0
  511. /package/{dist/icons → icons}/json.png +0 -0
  512. /package/{dist/icons → icons}/md.png +0 -0
  513. /package/{dist/icons → icons}/pdf.png +0 -0
  514. /package/{dist/icons → icons}/pptx.png +0 -0
  515. /package/{dist/icons → icons}/questionAwartar.png +0 -0
  516. /package/{dist/icons → icons}/sheets.png +0 -0
  517. /package/{dist/icons → icons}/txt.png +0 -0
  518. /package/{dist/icons → icons}/xlsx.png +0 -0
  519. /package/{dist/index.d.ts → index.d.ts} +0 -0
  520. /package/{dist/modelManage.d.ts → modelManage.d.ts} +0 -0
  521. /package/{dist/sensitive.d.ts → sensitive.d.ts} +0 -0
  522. /package/{dist/streamFilesReader.d.ts → streamFilesReader.d.ts} +0 -0
  523. /package/{dist/vite.svg → vite.svg} +0 -0
@@ -1,583 +0,0 @@
1
- import { useEffect, useMemo, useState, useRef } from 'react';
2
- import { Popover, Input } from 'antd';
3
- import { Search, X, ChevronLeft, ChevronRight } from 'lucide-react';
4
- import { type Styles, defaultTheme } from '@mxmweb/zui';
5
- import { uid } from 'uid';
6
- import { useGientechChatI18n } from '../../../../modules/chat/i18n';
7
- import defaultWeLogo from './defaultWeLogo.svg';
8
- import defaultBot from './defaultBot.png';
9
-
10
- const createWelcomeStyles = (colors: any, classId: string) => {
11
- const c = { ...defaultTheme.colors, ...colors };
12
- return `
13
- .g-welcome-${classId} .g-welcome-title {
14
- background-image: linear-gradient(90deg, #3262FA 0%, #6C18FF 100%);
15
- -webkit-background-clip: text;
16
- background-clip: text;
17
- color: transparent;
18
- -webkit-text-fill-color: transparent;
19
- }
20
- .g-welcome-${classId} .g-welcome-subtitle {
21
- color: ${c.disabled};
22
- }
23
- .g-welcome-${classId} .g-welcome-btn {
24
- background-color: #ffffff;
25
- border-color: ${c.border};
26
- color: ${c.text};
27
- height: 36px;
28
- border-width: 1px;
29
- box-shadow: 0 1px 2px rgba(31,35,41,0.04);
30
- }
31
- .g-welcome-${classId} .g-welcome-btn:hover {
32
- border-color: ${c.primary};
33
- color: ${c.primary};
34
- background-color: #ffffff;
35
- box-shadow: 0 2px 6px rgba(31,35,41,0.08);
36
- }
37
- .g-welcome-${classId} .g-welcome-btn.active {
38
- background-image: linear-gradient(90deg, #F1F8FF 0%, #F9F4FF 100%);
39
- border-color: ${c.primary};
40
- box-shadow: 0 4px 10px rgba(24, 144, 255, 0.25);
41
- }
42
- .g-welcome-${classId} .g-welcome-btn .icon-badge {
43
- width: 24px;
44
- height: 24px;
45
- border-radius: 9999px;
46
- display: inline-flex;
47
- align-items: center;
48
- justify-content: center;
49
- background: radial-gradient(100% 100% at 50% 0%, #F2F3F5 0%, #FFFFFF 100%);
50
- box-shadow: inset 0 0 0 1px ${c.border};
51
- }
52
- .g-welcome-${classId} .g-welcome-pagination-btn {
53
- background: transparent;
54
- border: none;
55
- color: ${c.disabled};
56
- padding: 6px 10px;
57
- border-radius: 9999px;
58
- transition: all 0.2s;
59
- font-size: 14px;
60
- line-height: 1;
61
- min-width: 32px;
62
- height: 32px;
63
- display: inline-flex;
64
- align-items: center;
65
- justify-content: center;
66
- }
67
- .g-welcome-${classId} .g-welcome-pagination-btn:hover:not(:disabled) {
68
- color: ${c.text};
69
- background-color: ${c.border}33;
70
- }
71
- .g-welcome-${classId} .g-welcome-pagination-btn.active {
72
- color: ${c.primary};
73
- background: radial-gradient(100% 100% at 50% 50%, ${c.primary}10 0%, ${c.primary}08 100%);
74
- box-shadow: 0 2px 10px ${c.primary}12, inset 0 0 0 1px ${c.primary}1A;
75
- }
76
- .g-welcome-${classId} .g-welcome-pagination-btn:disabled {
77
- color: ${c.disabled};
78
- cursor: not-allowed;
79
- background: transparent;
80
- }
81
- .g-welcome-${classId} .g-welcome-pagination-text {
82
- color: ${c.disabled};
83
- font-size: 14px;
84
- padding: 0 8px;
85
- }
86
- .g-welcome-${classId} .g-welcome-pagination-dot {
87
- width: 6px;
88
- height: 6px;
89
- border-radius: 50%;
90
- background-color: ${c.border};
91
- transition: all 0.2s;
92
- }
93
- .g-welcome-${classId} .g-welcome-pagination-dot.active {
94
- background-color: ${c.primary};
95
- width: 20px;
96
- border-radius: 3px;
97
- }
98
- .g-welcome-${classId} .g-welcome-search-btn {
99
- background-color: #ffffff;
100
- border: 1px solid ${c.border};
101
- color: ${c.text};
102
- padding: 8px 8px;
103
- border-radius: 100%;
104
- cursor: pointer;
105
- transition: all 0.2s;
106
- display: flex;
107
- align-items: center;
108
- gap: 6px;
109
- font-size: 14px;
110
- box-shadow: 0 1px 2px rgba(31,35,41,0.04);
111
- }
112
- .g-welcome-${classId} .g-welcome-search-btn:hover {
113
- border-color: ${c.primary};
114
- color: ${c.primary};
115
- box-shadow: 0 2px 6px rgba(31,35,41,0.08);
116
- }
117
- .g-welcome-${classId} .g-welcome-search-input {
118
- border: 1px solid ${c.border};
119
- border-radius: 9999px;
120
- transition: all 0.2s;
121
- height: 40px;
122
- padding: 0 14px;
123
- }
124
- .g-welcome-${classId} .g-welcome-search-input:focus,
125
- .g-welcome-${classId} .g-welcome-search-input:hover {
126
- border-color: ${c.primary};
127
- box-shadow: 0 0 0 2px ${c.primary}1A;
128
- }
129
- `;
130
- }
131
-
132
- function AssistantConfigCard({ config, styles }: { config: any, styles?: Styles }) {
133
- if (!config) return null;
134
- const parseConfig = JSON.parse(config.configJson);
135
- //console.log('parseConfig',parseConfig);
136
-
137
- const colors = useMemo(() => ({
138
- ...defaultTheme.colors,
139
- ...styles?.theme?.colors
140
- }), [styles]);
141
-
142
- return (
143
- <div className="w-[340px] rounded-xl p-4 animate-fade-in bg-white">
144
- {/* 标题区 */}
145
- <div className="flex items-center mb-2">
146
- <span className="text-md font-bold truncate mr-2" style={{ color: colors.primary }}>{parseConfig.config_name || '助手配置'}</span>
147
- <span
148
- className="text-xs truncate rounded px-2 py-0.5"
149
- style={{
150
- backgroundColor: `${colors.primary}1A`,
151
- color: colors.disabled
152
- }}
153
- >{parseConfig.model_name}</span>
154
- </div>
155
- {/* 默认回复 */}
156
- {/* <div className="text-xs text-gray-500 mb-2 break-all whitespace-pre-line">{parseConfig.defaultAnswer}</div> */}
157
- <div className="border-b my-2" style={{ borderColor: colors.border }} />
158
- {/* 基础参数 */}
159
- <div className="flex flex-wrap gap-x-4 gap-y-1 text-xs text-gray-700 mb-2" style={{ color: colors.text }}>
160
- <div>上下文最大轮数:<span className="font-semibold">{parseConfig.max_round}</span></div>
161
- <div>最大令牌数:<span className="font-semibold">{parseConfig.max_tokens}</span></div>
162
- <div>温度:<span className="font-semibold">{parseConfig.temperature}</span></div>
163
- <div>召回数:<span className="font-semibold">{parseConfig.top_k}</span></div>
164
- <div>多样性:<span className="font-semibold">{parseConfig.top_p}</span></div>
165
- <div>相似度阈值:<span className="font-semibold">{parseConfig.score_threshold}</span></div>
166
- </div>
167
- {/* 知识库 */}
168
- <div className="mb-2">
169
- <div className="text-xs text-gray-400 mb-1" style={{ color: colors.disabled }}>关联知识库:</div>
170
- <div className="flex flex-wrap gap-1">
171
- {parseConfig.knowledge_base_name ? parseConfig.knowledge_base_name.split(';').map((kb: any,index:number) => (
172
- <span
173
- key={index}
174
- className="px-2 py-0.5 rounded-full text-xs"
175
- style={{
176
- backgroundColor: `${colors.primary}1A`,
177
- color: colors.primary
178
- }}
179
- >{kb}</span>
180
- )) : <span className="text-gray-300" style={{ color: colors.disabled }}>无</span>}
181
- </div>
182
- </div>
183
- {/* 其他开关 */}
184
- <div className='mb-2'>
185
- <div className="text-xs text-gray-400 mb-1" style={{ color: colors.disabled }}>开启功能:</div>
186
- <div className="flex flex-wrap gap-2 text-xs mt-2">
187
- {!!parseConfig.enabled_faq && <span className="px-2 py-0.5 rounded" style={{ backgroundColor: `${colors.success}1A`, color: colors.success }}>FAQ</span>}
188
- {!!parseConfig.enabled_graph && <span className="px-2 py-0.5 rounded" style={{ backgroundColor: `${colors.success}1A`, color: colors.success }}>图谱</span>}
189
- {!!parseConfig.dependOnKb && <span className="px-2 py-0.5 rounded" style={{ backgroundColor: `${colors.success}1A`, color: colors.success }}>强知识依赖</span>}
190
- {!!parseConfig.enabled_table_select && <span className="px-2 py-0.5 rounded" style={{ backgroundColor: `${colors.success}1A`, color: colors.success }}>表格筛选</span>}
191
- {!!parseConfig.enabled_rerank && <span className="px-2 py-0.5 rounded" style={{ backgroundColor: `${colors.success}1A`, color: colors.success }}>精排模式</span>}
192
- {!!parseConfig.need_trace_source && <span className="px-2 py-0.5 rounded" style={{ backgroundColor: `${colors.success}1A`, color: colors.success }}>溯源</span>}
193
- {!!parseConfig.is_download && <span className="px-2 py-0.5 rounded" style={{ backgroundColor: `${colors.success}1A`, color: colors.success }}>下载溯源</span>}
194
- </div>
195
- </div>
196
- </div>
197
- );
198
- }
199
-
200
- function useTypewriter(text: string, deps: any[] = [], speed = 60) {
201
- const [displayed, setDisplayed] = useState('');
202
- useEffect(() => {
203
- setDisplayed('');
204
- if (!text) return;
205
- let i = 0;
206
- const timer = setInterval(() => {
207
- setDisplayed(prev => {
208
- if (i >= text.length) {
209
- clearInterval(timer);
210
- return prev;
211
- }
212
- i++;
213
- return text.slice(0, i);
214
- });
215
- }, speed);
216
- return () => clearInterval(timer);
217
- }, [text, ...deps]);
218
- return displayed;
219
- }
220
-
221
- // 添加类型定义,支持 selectedId 和 onSelectAssistant
222
- interface GientechNewChatWelcomeProps {
223
- assistantList: any[];
224
- eventsEmit?: (type: string, data?: any) => void;
225
- styles?: Styles;
226
- selectedId?: string;
227
- onSelectAssistant?: (id: string) => void;
228
- productLogo?: string; // 外部传入的产品logo
229
- }
230
-
231
- function GientechNewChatWelcome(props: GientechNewChatWelcomeProps) {
232
- const { assistantList, eventsEmit, styles, selectedId, onSelectAssistant, productLogo } = props;
233
- const { messages } = useGientechChatI18n();
234
- const [currentPage, setCurrentPage] = useState(1);
235
- const [searchVisible, setSearchVisible] = useState(false);
236
- const [searchKeyword, setSearchKeyword] = useState('');
237
- // 搜索框打开时每页显示6个,否则显示12个
238
- const pageSize = (searchVisible || searchKeyword.trim()) ? 6 : 12;
239
-
240
- // 只在 selectedId 变化时触发事件,且去重
241
- const prevSelectedId = useRef<string | undefined>();
242
- // 标记是否是选择助手导致的搜索关键词清空
243
- const isClearingSearchForSelection = useRef(false);
244
- // 记录选择助手时的目标页面,用于防止被重置
245
- const targetPageForSelection = useRef<number | null>(null);
246
- // 记录是否已经为当前 selectedId 设置了目标页面,避免重复设置
247
- const hasSetPageForSelectedId = useRef<string | null>(null);
248
- // 记录上一次的搜索关键词,用于判断是否真正变化
249
- const prevSearchKeyword = useRef<string>('');
250
-
251
- useEffect(() => {
252
- if (selectedId && prevSelectedId.current !== selectedId) {
253
- eventsEmit?.('conversation:new_assistant_change', { assistantId: selectedId });
254
- prevSelectedId.current = selectedId;
255
- }
256
- }, [selectedId, eventsEmit]);
257
-
258
- const classId = useMemo(() => uid(), []);
259
-
260
- useEffect(() => {
261
- if (styles?.theme?.colors) {
262
- const styleTag = document.createElement('style');
263
- styleTag.innerHTML = createWelcomeStyles(styles.theme.colors, classId);
264
- styleTag.id = `g-welcome-styles-${classId}`;
265
- document.head.appendChild(styleTag);
266
-
267
- return () => {
268
- const el = document.getElementById(styleTag.id);
269
- if (el) {
270
- el.remove();
271
- }
272
- };
273
- }
274
- }, [styles, classId]);
275
-
276
- const selectAssistant = useMemo(() => {
277
- return assistantList.find(assistant => assistant.id === selectedId);
278
- }, [assistantList, selectedId]);
279
-
280
- const selectAssistantConfig = useMemo(() => {
281
- return JSON.parse(selectAssistant?.configJson || '{}');
282
- }, [selectAssistant]);
283
-
284
- // 搜索过滤逻辑
285
- const filteredAssistants = useMemo(() => {
286
- if (!searchKeyword.trim()) {
287
- return assistantList || [];
288
- }
289
- const keyword = searchKeyword.toLowerCase().trim();
290
- return (assistantList || []).filter(assistant => {
291
- const name = assistant.name?.toLowerCase() || '';
292
- // 也可以搜索配置中的信息
293
- try {
294
- const cfg = JSON.parse(assistant.configJson || '{}');
295
- const configName = cfg.config_name?.toLowerCase() || '';
296
- return name.includes(keyword) || configName.includes(keyword);
297
- } catch {
298
- return name.includes(keyword);
299
- }
300
- });
301
- }, [assistantList, searchKeyword]);
302
-
303
- // 分页逻辑
304
- const totalPages = Math.ceil((filteredAssistants?.length || 0) / pageSize);
305
- const currentAssistants = filteredAssistants?.slice((currentPage - 1) * pageSize, currentPage * pageSize) || [];
306
-
307
- // 当选中助手时,自动跳转到对应页面(只在 selectedId 变化时执行)
308
- useEffect(() => {
309
- if (selectedId && selectedId !== hasSetPageForSelectedId.current) {
310
- // 如果正在清空搜索(选择助手导致的),已经有目标页面了,不重复计算
311
- if (isClearingSearchForSelection.current && targetPageForSelection.current !== null) {
312
- hasSetPageForSelectedId.current = selectedId;
313
- return;
314
- }
315
- // 如果有搜索关键词,基于过滤后的列表跳转;否则基于完整列表跳转
316
- const targetList = searchKeyword.trim() ? filteredAssistants : assistantList;
317
- if (targetList && targetList.length > 0) {
318
- const selectedIndex = targetList.findIndex(a => a.id === selectedId);
319
- if (selectedIndex !== -1) {
320
- const targetPage = Math.floor(selectedIndex / pageSize) + 1;
321
- setCurrentPage(targetPage);
322
- hasSetPageForSelectedId.current = selectedId;
323
- }
324
- }
325
- }
326
- }, [selectedId, assistantList, filteredAssistants, pageSize, searchKeyword]);
327
-
328
- // 当搜索关键词变化时,重置到第一页(但选择助手导致的清空除外)
329
- useEffect(() => {
330
- // 如果搜索关键词没有真正变化,不执行任何操作
331
- if (searchKeyword === prevSearchKeyword.current) {
332
- return;
333
- }
334
-
335
- // 如果是选择助手导致的搜索关键词清空,跳转到目标页面并清除标记
336
- if (isClearingSearchForSelection.current && targetPageForSelection.current !== null) {
337
- setCurrentPage(targetPageForSelection.current);
338
- isClearingSearchForSelection.current = false;
339
- targetPageForSelection.current = null;
340
- prevSearchKeyword.current = searchKeyword;
341
- return;
342
- }
343
-
344
- // 如果已经为 selectedId 设置了页面(说明是选择助手导致的),不重置页面
345
- if (hasSetPageForSelectedId.current === selectedId) {
346
- prevSearchKeyword.current = searchKeyword;
347
- return;
348
- }
349
-
350
- // 用户主动输入搜索关键词时,重置到第一页,并清除已设置的页面标记
351
- if (!isClearingSearchForSelection.current) {
352
- // 如果用户主动输入搜索关键词,清除已设置的页面标记,允许重新计算
353
- if (searchKeyword.trim()) {
354
- hasSetPageForSelectedId.current = null;
355
- }
356
- setCurrentPage(1);
357
- }
358
-
359
- prevSearchKeyword.current = searchKeyword;
360
- }, [searchKeyword, selectedId]);
361
-
362
- // 当过滤结果变化时,如果当前页超出总页数,自动调整到最后一页
363
- useEffect(() => {
364
- if (totalPages > 0 && currentPage > totalPages) {
365
- setCurrentPage(totalPages);
366
- }
367
- }, [totalPages, currentPage]);
368
-
369
- const prologue = selectAssistantConfig.prologue || messages.welcome.defaultPrologue;
370
- const prologueTypewriter = useTypewriter(prologue, [selectedId], 30);
371
-
372
- return (
373
- <div className={`flex flex-col relative items-center justify-center h-full w-full g-welcome-${classId}`}>
374
- {/* 产品Logo */}
375
- <img
376
- src={productLogo || (defaultWeLogo as unknown as string)}
377
- alt="logo"
378
- className="mb-4"
379
- style={{ width: 68, height: 68 }}
380
- />
381
- <div className="text-3xl font-bold mb-2 g-welcome-title">{prologueTypewriter}</div>
382
- {!selectedId && <div className="flex mb-2 g-welcome-subtitle">{messages.welcome.selectAssistant}</div>}
383
-
384
- <div
385
- style={{
386
- maxWidth: '1200px',
387
- }}
388
- className="flex mt-8 flex-wrap gap-3
389
- max-w-[1200px] px-8 w-full mx-auto justify-center mb-4">
390
- {/* 搜索按钮/输入框 - 永远渲染为第一个元素 */}
391
- {!searchVisible ? (
392
- <button type="button" className="g-welcome-search-btn" onClick={() => setSearchVisible(true)}>
393
- <Search size={16} />
394
- </button>
395
- ) : (
396
- <div className="flex items-center gap-2 px-5 w-full" style={{ flexBasis: '100%' }}>
397
- <Input
398
- className="g-welcome-search-input w-full"
399
- placeholder={messages.welcome.searchAssistant}
400
- prefix={<Search size={16} />}
401
- suffix={
402
- <button
403
- type="button"
404
- onClick={() => {
405
- setSearchVisible(false);
406
- setSearchKeyword('');
407
- }}
408
- style={{ background: 'transparent', border: 'none', cursor: 'pointer' }}
409
- >
410
- <X size={14} />
411
- </button>
412
- }
413
- value={searchKeyword}
414
- onChange={(e) => setSearchKeyword(e.target.value)}
415
- autoFocus
416
- />
417
- </div>
418
- )}
419
-
420
- {/* 助手列表或空状态 */}
421
- {currentAssistants && currentAssistants.length > 0 ? (
422
- <>
423
- {currentAssistants.map(assistant => {
424
- const isActive = selectedId === assistant.id;
425
- // 图标解析:优先 assistant.icon,其次配置中的 icon/avatar/logo,最后使用默认
426
- let iconSrc: string | undefined = assistant.icon;
427
- try {
428
- const cfg = JSON.parse(assistant.configJson || '{}');
429
- iconSrc = iconSrc || cfg.icon || cfg.avatar || cfg.logo;
430
- } catch (e) {
431
- // ignore json parse error
432
- }
433
- iconSrc = iconSrc || (defaultBot as unknown as string);
434
- return (
435
- <Popover
436
- key={assistant.id}
437
- content={() => <AssistantConfigCard config={assistantList.find(item => item.id === assistant.id)} styles={styles} />}
438
- trigger="hover"
439
- placement="bottom"
440
- >
441
- <button
442
- type="button"
443
- className={`g-welcome-btn px-3 cursor-pointer rounded-full border font-medium min-w-[160px] text-sm transition-all flex items-center gap-2 ${isActive ? 'active' : ''}`}
444
- onClick={() => {
445
- onSelectAssistant?.(assistant.id);
446
-
447
- // 计算目标页面:如果在搜索中,基于完整列表(因为搜索会被清空);否则基于当前列表
448
- const isInSearch = searchVisible || searchKeyword.trim();
449
- const targetList = isInSearch ? assistantList : (searchKeyword.trim() ? filteredAssistants : assistantList);
450
- const selectedIndex = targetList.findIndex(a => a.id === assistant.id);
451
-
452
- if (selectedIndex !== -1) {
453
- // 如果在搜索中,清空后 pageSize 会变成 12;否则使用当前的 pageSize
454
- const targetPageSize = isInSearch ? 12 : pageSize;
455
- const targetPage = Math.floor(selectedIndex / targetPageSize) + 1;
456
-
457
- // 立即跳转到目标页面
458
- setCurrentPage(targetPage);
459
- // 标记已经为当前 selectedId 设置了页面
460
- hasSetPageForSelectedId.current = assistant.id;
461
-
462
- // 若在搜索视图中选择了助手,需要清空搜索
463
- if (isInSearch) {
464
- // 保存目标页面,用于在搜索关键词清空时跳转
465
- targetPageForSelection.current = targetPage;
466
- // 设置标记,表示这是选择助手导致的清空
467
- isClearingSearchForSelection.current = true;
468
- // 延迟清空搜索,确保跳转逻辑先执行
469
- setTimeout(() => {
470
- setSearchKeyword('');
471
- setSearchVisible(false);
472
- }, 100);
473
- }
474
- }
475
- }}
476
- title={assistant.name}
477
- >
478
- <span className="icon-badge">
479
- <img src={iconSrc} alt="icon" style={{ width: 16, height: 16, borderRadius: 4 }} />
480
- </span>
481
- <span className="truncate max-w-[180px]">{assistant.name}</span>
482
- </button>
483
- </Popover>
484
- );
485
- })}
486
- </>
487
- ) : (
488
- <div className="g-welcome-subtitle">暂无可用助手</div>
489
- )}
490
- </div>
491
- {/* 分页控制 */}
492
- {totalPages > 1 && (
493
- <div className="flex items-center gap-2">
494
- <button
495
- type="button"
496
- className="g-welcome-pagination-btn"
497
- onClick={() => setCurrentPage(p => Math.max(1, p - 1))}
498
- disabled={currentPage === 1}
499
- >
500
- <ChevronLeft size={16} />
501
- </button>
502
-
503
- {/* 页码显示 */}
504
- <div className="flex items-center gap-1">
505
- {(() => {
506
- const pages: (number | string)[] = [];
507
- const maxVisible = 7; // 最多显示7个页码
508
-
509
- if (totalPages <= maxVisible) {
510
- // 如果总页数少于等于7,显示所有页码
511
- for (let i = 1; i <= totalPages; i++) {
512
- pages.push(i);
513
- }
514
- } else {
515
- // 总是显示第一页
516
- pages.push(1);
517
-
518
- if (currentPage <= 4) {
519
- // 当前页在前4页,显示 1 2 3 4 5 ... totalPages
520
- for (let i = 2; i <= 5; i++) {
521
- pages.push(i);
522
- }
523
- pages.push('...');
524
- pages.push(totalPages);
525
- } else if (currentPage >= totalPages - 3) {
526
- // 当前页在后4页,显示 1 ... totalPages-4 totalPages-3 totalPages-2 totalPages-1 totalPages
527
- pages.push('...');
528
- for (let i = totalPages - 4; i <= totalPages; i++) {
529
- pages.push(i);
530
- }
531
- } else {
532
- // 当前页在中间,显示 1 ... currentPage-1 currentPage currentPage+1 ... totalPages
533
- pages.push('...');
534
- for (let i = currentPage - 1; i <= currentPage + 1; i++) {
535
- pages.push(i);
536
- }
537
- pages.push('...');
538
- pages.push(totalPages);
539
- }
540
- }
541
-
542
- return pages.map((page, index) => {
543
- if (page === '...') {
544
- return (
545
- <span key={`ellipsis-${index}`} className="g-welcome-pagination-text px-1">
546
- ...
547
- </span>
548
- );
549
- }
550
-
551
- const pageNum = page as number;
552
- const isActive = currentPage === pageNum;
553
-
554
- return (
555
- <button
556
- type="button"
557
- key={pageNum}
558
- className={`g-welcome-pagination-btn ${isActive ? 'active' : ''}`}
559
- onClick={() => setCurrentPage(pageNum)}
560
- >
561
- {pageNum}
562
- </button>
563
- );
564
- });
565
- })()}
566
- </div>
567
-
568
- <button
569
- type="button"
570
- className="g-welcome-pagination-btn"
571
- onClick={() => setCurrentPage(p => Math.min(totalPages, p + 1))}
572
- disabled={currentPage === totalPages}
573
- >
574
- <ChevronRight size={16} />
575
- </button>
576
- </div>
577
- )}
578
- </div>
579
- );
580
- }
581
-
582
- // 只在assistantList、defaultSelect、styles变化时才重渲染
583
- export default GientechNewChatWelcome;