@gientech/modual 2.0.4 → 2.0.5

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 (419) hide show
  1. package/.editorconfig +38 -0
  2. package/.prettierignore +16 -0
  3. package/.prettierrc +17 -0
  4. package/README.md +643 -643
  5. package/USAGE.md +247 -0
  6. package/bash.exe.stackdump +40 -0
  7. package/components.json +21 -0
  8. package/dist/README.md +643 -0
  9. package/{assets/GientechStreamReader-CzB5AuYo.js → dist/assets/GientechStreamReader-DUCq-O5X.js} +1 -1
  10. package/{assets → dist/assets}/database.svg +11 -11
  11. package/{assets → dist/assets}/database_add.svg +53 -53
  12. package/{assets → dist/assets}/database_connect.svg +66 -66
  13. package/{assets → dist/assets}/database_upload.svg +29 -29
  14. package/{assets → dist/assets}/databse.svg +6 -6
  15. package/{assets → dist/assets}/defaultWeLogo.svg +14 -14
  16. package/{assets → dist/assets}/graph.svg +4 -4
  17. package/{assets/index-CN2AYX8Q.js → dist/assets/index-B2yNvzjy.js} +1 -1
  18. package/{assets/index-D9lYd8TZ.js → dist/assets/index-BKe5FgcC.js} +1 -1
  19. package/{assets/index-CBTA5S-5.js → dist/assets/index-D72cKELw.js} +1 -1
  20. package/{assets/index-s0cmC4Ks.js → dist/assets/index-DdVFXD_y.js} +1 -1
  21. package/{assets/index-B1ZDDbC1.js → dist/assets/index-DrkSoKz6.js} +1 -1
  22. package/{assets/index-B2rFliXg.js → dist/assets/index-KCfkkJKb.js} +1 -1
  23. package/{assets/index-DnBY0UXI.js → dist/assets/index-QI9biQrR.js} +2 -2
  24. package/{assets/index-DYhXjvk4.js → dist/assets/index-ZopkeZtI.js} +1 -1
  25. package/{assets/index-LDFwTu47.js → dist/assets/index-g-SUxfJH.js} +1 -1
  26. package/{assets/index-NFQIKNFn.js → dist/assets/index-j0kQJd0a.js} +1 -1
  27. package/{assets → dist/assets}/knowledge.svg +4 -4
  28. package/{assets/MySQL.svg → dist/assets/mysql.svg} +14 -14
  29. package/{assets/plus-G7zGXf6S.js → dist/assets/plus-V9zUoSq6.js} +1 -1
  30. package/{assets → dist/assets}/sensitive.svg +5 -5
  31. package/{assets/style-Bn7b5XHU.js → dist/assets/style-CGmZ5osp.js} +2 -2
  32. package/{assets/x-vfKYzKkK.js → dist/assets/x-CnaaLGJF.js} +1 -1
  33. package/dist/assistantConfig.js +1 -0
  34. package/dist/chat.js +824 -0
  35. package/dist/database.js +20 -0
  36. package/dist/databaseId.js +1 -0
  37. package/{databaseTable.js → dist/databaseTable.js} +1 -1
  38. package/dist/index.js +1 -0
  39. package/{modelManage.js → dist/modelManage.js} +1 -1
  40. package/dist/package.json +68 -0
  41. package/{sensitive.js → dist/sensitive.js} +1 -1
  42. package/dist/streamFilesReader.js +1 -0
  43. package/{worker → dist/worker}/pdf.worker.min.js +21 -21
  44. package/doc_assets/2.png +0 -0
  45. package/doc_assets/demo.md +27 -0
  46. package/doc_assets/demos/dist-app/assets/index.Dh-ZAS9Z.css +2 -0
  47. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js +23699 -0
  48. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js.map +1 -0
  49. package/doc_assets/demos/dist-app/index.html +14 -0
  50. package/doc_assets/demos/dist-app/vite.svg +1 -0
  51. package/doc_assets/images/1.png +0 -0
  52. package/doc_assets/images/3.png +0 -0
  53. package/doc_assets/images/component-screenshot.png +1 -0
  54. package/doc_assets/install.md +5 -0
  55. 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 +504 -0
  56. package/eslint.config.js +92 -0
  57. package/index.html +13 -0
  58. package/package.json +106 -44
  59. package/package.json.demo-backup +109 -0
  60. package/postcss.config.cjs +19 -0
  61. package/public/icons/answerAwartar.png +0 -0
  62. package/public/icons/docx-file.png +0 -0
  63. package/public/icons/folder.png +0 -0
  64. package/public/icons/html.png +0 -0
  65. package/public/icons/image.png +0 -0
  66. package/public/icons/jpg-file.png +0 -0
  67. package/public/icons/json.png +0 -0
  68. package/public/icons/md.png +0 -0
  69. package/public/icons/pdf.png +0 -0
  70. package/public/icons/pptx.png +0 -0
  71. package/public/icons/questionAwartar.png +0 -0
  72. package/public/icons/sheets.png +0 -0
  73. package/public/icons/txt.png +0 -0
  74. package/public/icons/xlsx.png +0 -0
  75. package/public/vite.svg +1 -0
  76. package/public/worker/pdf.worker.min.js +22 -0
  77. package/scripts/README.md +133 -0
  78. package/scripts/build-demo.js +88 -0
  79. package/scripts/decrypt-api-key.js +95 -0
  80. package/scripts/demo-selector.js +216 -0
  81. package/scripts/dev-demo.js +76 -0
  82. package/scripts/preview-demo.js +130 -0
  83. package/scripts/run-demo.bat +34 -0
  84. package/src/assets/img/close.png +0 -0
  85. package/src/assets/img/database.png +0 -0
  86. package/src/assets/img/downArrow.png +0 -0
  87. package/src/assets/img/downLoad.png +0 -0
  88. package/src/assets/img/excel.png +0 -0
  89. package/src/assets/img/graphIcon.png +0 -0
  90. package/src/assets/img/img.png +0 -0
  91. package/src/assets/img/pdf.png +0 -0
  92. package/src/assets/img/ppt.png +0 -0
  93. package/src/assets/img/singleQa.png +0 -0
  94. package/src/assets/img/txt.png +0 -0
  95. package/src/assets/img/webSearch.png +0 -0
  96. package/src/assets/img/word.png +0 -0
  97. package/src/assets/login/homeBg.png +0 -0
  98. package/src/assets/login/left.jpg +0 -0
  99. package/src/assets/login/logoImg.png +0 -0
  100. package/src/examples/ConversationAssistantPage/index.tsx +41 -0
  101. package/src/examples/Demo/index.tsx +12 -0
  102. package/src/examples/LoginPage/index.tsx +18 -0
  103. package/src/examples/chat/components/DrawerGraphPreview.tsx +78 -0
  104. package/src/examples/chat/index.tsx +154 -0
  105. package/src/examples/chat/logo03.png +0 -0
  106. package/src/examples/gientechStreamFilesReader/index.tsx +951 -0
  107. package/src/examples/headlessChat/index.tsx +234 -0
  108. package/src/examples/ragDatabaseDataPage/index.tsx +40 -0
  109. package/src/examples/ragDatabaseIdPage/index.tsx +47 -0
  110. package/src/examples/ragDatabasePage/index.tsx +36 -0
  111. package/src/examples/ragModelManagePage/index.tsx +38 -0
  112. package/src/examples/ragSearchPage/index.tsx +0 -0
  113. package/src/examples/ragSensitiveWordsPage/index.tsx +32 -0
  114. package/src/examples/streamFiles/index.tsx +417 -0
  115. package/src/lib_enter.ts +43 -0
  116. package/src/main.tsx +5 -0
  117. package/src/main.tsx.backup +5 -0
  118. package/src/modules/CHAT_UNIFICATION_PLAN.md +324 -0
  119. package/src/modules/assistantConfig/assets/databse.svg +6 -0
  120. package/src/modules/assistantConfig/assets/empty.png +0 -0
  121. package/src/modules/assistantConfig/assets/graph.svg +4 -0
  122. package/src/modules/assistantConfig/assets/knowledge.svg +4 -0
  123. package/src/modules/assistantConfig/assets/sensitive.svg +5 -0
  124. package/src/modules/assistantConfig/components/Database.tsx +171 -0
  125. package/src/modules/assistantConfig/components/Graph.tsx +177 -0
  126. package/src/modules/assistantConfig/components/Knowledge.tsx +276 -0
  127. package/src/modules/assistantConfig/components/NotFoundContent.tsx +21 -0
  128. package/src/modules/assistantConfig/components/Paragraph.tsx +51 -0
  129. package/src/modules/assistantConfig/components/ParamsItem.tsx +39 -0
  130. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +133 -0
  131. package/src/modules/assistantConfig/components/SearchableSelector.tsx +500 -0
  132. package/src/modules/assistantConfig/components/Sensitive.tsx +221 -0
  133. package/src/modules/assistantConfig/components/SliderInput.tsx +65 -0
  134. package/src/modules/assistantConfig/constants.tsx +75 -0
  135. package/src/modules/assistantConfig/index.tsx +710 -0
  136. package/src/modules/assistantConfig/server.ts +262 -0
  137. package/src/modules/chat/Conversations/Item.tsx +167 -0
  138. package/src/modules/chat/Conversations/List.tsx +210 -0
  139. package/src/modules/chat/Conversations/groupByTime.ts +39 -0
  140. package/src/modules/chat/Conversations/index.tsx +252 -0
  141. package/src/modules/chat/ReferenceBar.tsx +622 -0
  142. package/src/modules/chat/constants.tsx +52 -0
  143. package/src/modules/chat/data.txt +82 -0
  144. package/src/modules/chat/index.tsx +2054 -0
  145. package/src/modules/chat/referenceCom/DeleteModal.tsx +75 -0
  146. package/src/modules/chat/referenceCom/DrawerContent.tsx +136 -0
  147. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +102 -0
  148. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +86 -0
  149. package/src/modules/chat/referenceCom/DrawerPreview.tsx +73 -0
  150. package/src/modules/chat/referenceCom/DrawerTitle.tsx +26 -0
  151. package/src/modules/chat/referenceCom/RenameModal.tsx +86 -0
  152. package/src/modules/chat/referenceCom/TagCom.tsx +30 -0
  153. package/src/modules/chat/style.less +3 -0
  154. package/src/modules/chat/types.ts +17 -0
  155. package/src/modules/chat/utils/index.ts +348 -0
  156. package/src/modules/database/CreateModal.tsx +403 -0
  157. package/src/modules/database/assets/Doris.png +0 -0
  158. package/src/modules/database/assets/PostgreSQL.png +0 -0
  159. package/src/modules/database/assets/SQLServer.png +0 -0
  160. package/src/modules/database/assets/database.svg +11 -0
  161. package/src/modules/database/assets/database_add.svg +53 -0
  162. package/src/modules/database/assets/database_connect.svg +66 -0
  163. package/src/modules/database/assets/database_upload.svg +29 -0
  164. package/src/modules/database/assets/empty.png +0 -0
  165. package/src/modules/database/assets/mysql.svg +14 -0
  166. package/src/modules/database/index.tsx +477 -0
  167. package/src/modules/database/server.ts +196 -0
  168. package/src/modules/databaseId/CustomCom.tsx +156 -0
  169. package/src/modules/databaseId/EditConfig.tsx +280 -0
  170. package/src/modules/databaseId/UploadDrawer.tsx +535 -0
  171. package/src/modules/databaseId/assets/aiOptimize.svg +10 -0
  172. package/src/modules/databaseId/assets/empty.png +0 -0
  173. package/src/modules/databaseId/assets/template.svg +6 -0
  174. package/src/modules/databaseId/assets/upload.svg +9 -0
  175. package/src/modules/databaseId/assets/useTemp.svg +6 -0
  176. package/src/modules/databaseId/index.tsx +769 -0
  177. package/src/modules/databaseId/server.ts +286 -0
  178. package/src/modules/databaseId/style.css +5 -0
  179. package/src/modules/databaseTable/EditRowDrawer.tsx +124 -0
  180. package/src/modules/databaseTable/index.tsx +359 -0
  181. package/src/modules/databaseTable/server.ts +180 -0
  182. package/src/modules/headlessChat/ReferenceBar.tsx +783 -0
  183. package/src/modules/headlessChat/constants.tsx +54 -0
  184. package/src/modules/headlessChat/index.tsx +1706 -0
  185. package/src/modules/headlessChat/referenceCom/DeleteModal.tsx +75 -0
  186. package/src/modules/headlessChat/referenceCom/DrawerContent.tsx +136 -0
  187. package/src/modules/headlessChat/referenceCom/DrawerDatabase.tsx +102 -0
  188. package/src/modules/headlessChat/referenceCom/DrawerGraphPreview.tsx +86 -0
  189. package/src/modules/headlessChat/referenceCom/DrawerPreview.tsx +73 -0
  190. package/src/modules/headlessChat/referenceCom/DrawerTitle.tsx +26 -0
  191. package/src/modules/headlessChat/referenceCom/RenameModal.tsx +86 -0
  192. package/src/modules/headlessChat/referenceCom/TagCom.tsx +30 -0
  193. package/src/modules/headlessChat/style.less +3 -0
  194. package/src/modules/headlessChat/types.ts +23 -0
  195. package/src/modules/headlessChat/utils/index.ts +348 -0
  196. package/src/modules/login/components/Login/LoginBox/index.tsx +102 -0
  197. package/src/modules/login/components/Login/RegisterBox/index.tsx +180 -0
  198. package/src/modules/login/components/Login/index.tsx +100 -0
  199. package/src/modules/login/index.tsx +106 -0
  200. package/src/modules/login/style.css +3 -0
  201. package/src/modules/login/useServices.ts +53 -0
  202. package/src/modules/login/utils.ts +42 -0
  203. package/src/modules/modelManage/ConfigDrawer.tsx +249 -0
  204. package/src/modules/modelManage/ReplaceModal.tsx +124 -0
  205. package/src/modules/modelManage/assets/empty.png +0 -0
  206. package/src/modules/modelManage/const.ts +51 -0
  207. package/src/modules/modelManage/index.tsx +606 -0
  208. package/src/modules/modelManage/server.ts +223 -0
  209. package/src/modules/nodegraph/index.tsx +1 -0
  210. package/src/modules/search/assets/Icon-history.svg +8 -0
  211. package/src/modules/search/assets/answerAwartar.png +0 -0
  212. package/src/modules/search/assets/doc.png +0 -0
  213. package/src/modules/search/assets/genera.gif +0 -0
  214. package/src/modules/search/assets/icon-robot.svg +9 -0
  215. package/src/modules/search/assets/icon-search-bar.svg +14 -0
  216. package/src/modules/search/assets/icon-sub-title.svg +3 -0
  217. package/src/modules/search/assets/icon-title.svg +9 -0
  218. package/src/modules/search/assets/icon-zoomOut.svg +9 -0
  219. package/src/modules/search/assets/iconAi.svg +9 -0
  220. package/src/modules/search/assets/pdf.png +0 -0
  221. package/src/modules/search/assets/ppt.png +0 -0
  222. package/src/modules/search/assets/search.svg +3 -0
  223. package/src/modules/search/assets/selected.svg +4 -0
  224. package/src/modules/search/assets/txt.png +0 -0
  225. package/src/modules/search/assets/xls.png +0 -0
  226. package/src/modules/search/components/AssisSelect.tsx +137 -0
  227. package/src/modules/search/components/Editor/ChatViewEditor.tsx +261 -0
  228. package/src/modules/search/components/Editor/aichat.css +1 -0
  229. package/src/modules/search/components/Editor/constant.ts +13 -0
  230. package/src/modules/search/components/Editor/index.tsx +113 -0
  231. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +332 -0
  232. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +20 -0
  233. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +38 -0
  234. package/src/modules/search/components/Editor/plugins/displayer.ts +298 -0
  235. package/src/modules/search/components/Editor/plugins/imageClick.tsx +32 -0
  236. package/src/modules/search/components/Editor/plugins/myplugin.tsx +98 -0
  237. package/src/modules/search/components/Editor/ui/avatar.tsx +19 -0
  238. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +21 -0
  239. package/src/modules/search/components/Editor/ui/button.tsx +58 -0
  240. package/src/modules/search/components/Editor/ui/calendar.tsx +68 -0
  241. package/src/modules/search/components/Editor/ui/caption.tsx +46 -0
  242. package/src/modules/search/components/Editor/ui/checkbox.tsx +27 -0
  243. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +188 -0
  244. package/src/modules/search/components/Editor/ui/code-block-element.css +434 -0
  245. package/src/modules/search/components/Editor/ui/code-block-element.tsx +39 -0
  246. package/src/modules/search/components/Editor/ui/code-leaf.tsx +24 -0
  247. package/src/modules/search/components/Editor/ui/code-line-element.tsx +10 -0
  248. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +21 -0
  249. package/src/modules/search/components/Editor/ui/column-element.tsx +30 -0
  250. package/src/modules/search/components/Editor/ui/column-group-element.tsx +94 -0
  251. package/src/modules/search/components/Editor/ui/command.tsx +75 -0
  252. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +22 -0
  253. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +37 -0
  254. package/src/modules/search/components/Editor/ui/comment-item.tsx +74 -0
  255. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +49 -0
  256. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +42 -0
  257. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +22 -0
  258. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +32 -0
  259. package/src/modules/search/components/Editor/ui/comment-value.tsx +34 -0
  260. package/src/modules/search/components/Editor/ui/comments-popover.tsx +63 -0
  261. package/src/modules/search/components/Editor/ui/date-element.tsx +83 -0
  262. package/src/modules/search/components/Editor/ui/dialog.tsx +63 -0
  263. package/src/modules/search/components/Editor/ui/draggable.tsx +177 -0
  264. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +180 -0
  265. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +85 -0
  266. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +28 -0
  267. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +76 -0
  268. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +8 -0
  269. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +51 -0
  270. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +77 -0
  271. package/src/modules/search/components/Editor/ui/heading-element.tsx +48 -0
  272. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +17 -0
  273. package/src/modules/search/components/Editor/ui/hr-element.tsx +30 -0
  274. package/src/modules/search/components/Editor/ui/icons.tsx +267 -0
  275. package/src/modules/search/components/Editor/ui/image-element.tsx +74 -0
  276. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +368 -0
  277. package/src/modules/search/components/Editor/ui/input.tsx +25 -0
  278. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +218 -0
  279. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +20 -0
  280. package/src/modules/search/components/Editor/ui/link-element.tsx +29 -0
  281. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +161 -0
  282. package/src/modules/search/components/Editor/ui/list-element.tsx +30 -0
  283. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +24 -0
  284. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +133 -0
  285. package/src/modules/search/components/Editor/ui/media-popover.tsx +97 -0
  286. package/src/modules/search/components/Editor/ui/mention-element.tsx +43 -0
  287. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +141 -0
  288. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +93 -0
  289. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +67 -0
  290. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +4 -0
  291. package/src/modules/search/components/Editor/ui/placeholder.tsx +52 -0
  292. package/src/modules/search/components/Editor/ui/popover.tsx +32 -0
  293. package/src/modules/search/components/Editor/ui/resizable.tsx +66 -0
  294. package/src/modules/search/components/Editor/ui/separator.tsx +25 -0
  295. package/src/modules/search/components/Editor/ui/style.less +12 -0
  296. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +143 -0
  297. package/src/modules/search/components/Editor/ui/table-element.tsx +243 -0
  298. package/src/modules/search/components/Editor/ui/table-row-element.tsx +22 -0
  299. package/src/modules/search/components/Editor/ui/tableValue.tsx +135 -0
  300. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +43 -0
  301. package/src/modules/search/components/Editor/ui/toggle-element.tsx +31 -0
  302. package/src/modules/search/components/Editor/ui/toolbar.tsx +157 -0
  303. package/src/modules/search/components/Editor/ui/tooltip.tsx +65 -0
  304. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +160 -0
  305. package/src/modules/search/components/Editor/ui/with-draggables.tsx +175 -0
  306. package/src/modules/search/components/FileList.tsx +287 -0
  307. package/src/modules/search/components/ImageGroupView/index.tsx +85 -0
  308. package/src/modules/search/components/ResultContent.tsx +232 -0
  309. package/src/modules/search/components/SearchInput.tsx +232 -0
  310. package/src/modules/search/components/SearchLanding.tsx +74 -0
  311. package/src/modules/search/components/SearchView.tsx +563 -0
  312. package/src/modules/search/components/SimpleEditor.tsx +158 -0
  313. package/src/modules/search/components/SimpleFileList.tsx +215 -0
  314. package/src/modules/search/index.tsx +10 -0
  315. package/src/modules/search/reademe.md +1 -0
  316. package/src/modules/search/servers/apis.tsx +19 -0
  317. package/src/modules/search/servers/index.ts +184 -0
  318. package/src/modules/search/style.less +503 -0
  319. package/src/modules/search/type.ts +22 -0
  320. package/src/modules/search/utils.ts +34 -0
  321. package/src/modules/sensitive/index.tsx +313 -0
  322. package/src/modules/sensitive/server.ts +122 -0
  323. package/src/modules/streamFilesReader/GientechStreamReader.tsx +1625 -0
  324. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  325. package/src/modules/streamFilesReader/components/Header/index.tsx +297 -0
  326. package/src/modules/streamFilesReader/index.tsx +3 -0
  327. package/src/style.css +6 -0
  328. package/src/type.d.ts +0 -0
  329. package/src/utils/commonFn.tsx +111 -0
  330. package/src/utils/decryptApiKey.ts +40 -0
  331. package/src/utils/gientechCommon/components/AppError.tsx +32 -0
  332. package/src/utils/gientechCommon/components/AppLoading.tsx +75 -0
  333. package/src/utils/gientechCommon/components/DeleteModal.tsx +75 -0
  334. package/src/utils/gientechCommon/components/DisplayError.tsx +33 -0
  335. package/src/utils/gientechCommon/components/DisplayLoading.tsx +38 -0
  336. package/src/utils/gientechCommon/components/FeedBackModal.tsx +319 -0
  337. package/src/utils/gientechCommon/components/FileCardCommon.tsx +82 -0
  338. package/src/utils/gientechCommon/components/FileManager/index.tsx +400 -0
  339. package/src/utils/gientechCommon/components/FileManager/style.css +5 -0
  340. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +581 -0
  341. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +359 -0
  342. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +245 -0
  343. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +209 -0
  344. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  345. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +148 -0
  346. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +14 -0
  347. package/src/utils/gientechCommon/components/RenameModal.tsx +86 -0
  348. package/src/utils/gientechCommon/components/style.less +11 -0
  349. package/src/utils/gientechCommon/configs/commonConfig.ts +2 -0
  350. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  351. package/src/utils/gientechCommon/configs/stylesConfig.ts +142 -0
  352. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +417 -0
  353. package/src/utils/gientechCommon/hooks/useFileDisplayTools.tsx +204 -0
  354. package/src/utils/gientechCommon/hooks/useFileManager.ts +193 -0
  355. package/src/utils/gientechCommon/slate/converters/deserializers.ts +763 -0
  356. package/src/utils/gientechCommon/slate/converters/mockData.ts +232 -0
  357. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +258 -0
  358. package/src/utils/gientechCommon/slate/richElements/index.tsx +499 -0
  359. package/src/utils/gientechCommon/utils/fileUtils.ts +86 -0
  360. package/src/utils/gientechCommon/utils/request.ts +37 -0
  361. package/src/utils/gientechCommon/utils/serverFn.ts +172 -0
  362. package/src/utils/index.tsx +142 -0
  363. package/src/utils/testconfigs/demologin/index.tsx +32 -0
  364. package/src/utils/testconfigs/index.ts +59 -0
  365. package/src/vite-env.d.ts +42 -0
  366. package/stats.html +4949 -0
  367. package/tailwind.config.js +170 -0
  368. package/tsconfig.app.json +30 -0
  369. package/tsconfig.app.tsbuildinfo +11 -0
  370. package/tsconfig.json +13 -0
  371. package/tsconfig.node.json +22 -0
  372. package/tsconfig.node.tsbuildinfo +1 -0
  373. package/vite.config.app.ts +93 -0
  374. package/vite.config.ts +232 -0
  375. package/workflows/release.yml +60 -0
  376. package//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 +359 -0
  377. package/assistantConfig.js +0 -1
  378. package/chat.js +0 -786
  379. package/database.js +0 -20
  380. package/databaseId.js +0 -1
  381. package/index.js +0 -1
  382. package/streamFilesReader.js +0 -1
  383. /package/{assets → dist/assets}/Doris.png +0 -0
  384. /package/{assets → dist/assets}/PostgreSQL.png +0 -0
  385. /package/{assets → dist/assets}/SQLServer.png +0 -0
  386. /package/{assets → dist/assets}/empty.png +0 -0
  387. /package/{assets → dist/assets}/homeBg.png +0 -0
  388. /package/{assets → dist/assets}/index-CpW6Dhpp.js +0 -0
  389. /package/{assets → dist/assets}/left.jpg +0 -0
  390. /package/{assets → dist/assets}/logoImg.png +0 -0
  391. /package/{assets → dist/assets}/style.css +0 -0
  392. /package/{assets → dist/assets}/style2.css +0 -0
  393. /package/{assets → dist/assets}/style3.css +0 -0
  394. /package/{assets → dist/assets}/style4.css +0 -0
  395. /package/{assets → dist/assets}/worker-BbpylX7l.js +0 -0
  396. /package/{assistantConfig.d.ts → dist/assistantConfig.d.ts} +0 -0
  397. /package/{chat.d.ts → dist/chat.d.ts} +0 -0
  398. /package/{database.d.ts → dist/database.d.ts} +0 -0
  399. /package/{databaseId.d.ts → dist/databaseId.d.ts} +0 -0
  400. /package/{databaseTable.d.ts → dist/databaseTable.d.ts} +0 -0
  401. /package/{icons → dist/icons}/answerAwartar.png +0 -0
  402. /package/{icons → dist/icons}/docx-file.png +0 -0
  403. /package/{icons → dist/icons}/folder.png +0 -0
  404. /package/{icons → dist/icons}/html.png +0 -0
  405. /package/{icons → dist/icons}/image.png +0 -0
  406. /package/{icons → dist/icons}/jpg-file.png +0 -0
  407. /package/{icons → dist/icons}/json.png +0 -0
  408. /package/{icons → dist/icons}/md.png +0 -0
  409. /package/{icons → dist/icons}/pdf.png +0 -0
  410. /package/{icons → dist/icons}/pptx.png +0 -0
  411. /package/{icons → dist/icons}/questionAwartar.png +0 -0
  412. /package/{icons → dist/icons}/sheets.png +0 -0
  413. /package/{icons → dist/icons}/txt.png +0 -0
  414. /package/{icons → dist/icons}/xlsx.png +0 -0
  415. /package/{index.d.ts → dist/index.d.ts} +0 -0
  416. /package/{modelManage.d.ts → dist/modelManage.d.ts} +0 -0
  417. /package/{sensitive.d.ts → dist/sensitive.d.ts} +0 -0
  418. /package/{streamFilesReader.d.ts → dist/streamFilesReader.d.ts} +0 -0
  419. /package/{vite.svg → dist/vite.svg} +0 -0
@@ -0,0 +1,14 @@
1
+ <svg width="34" height="35" viewBox="0 0 34 35" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <path d="M3.91821 21.5208C3.91821 23.8541 9.77303 25.6877 17.0022 25.6877C24.2313 25.6877 30.0849 23.8537 30.1057 21.6663V26.4377C30.1052 28.7709 24.231 30.6037 17.0022 30.6038C9.77334 30.6038 3.91871 28.6876 3.91821 26.4377V21.5208ZM30.0852 19.0627C30.0847 21.3959 24.2309 23.2287 17.0022 23.2288V23.2913C9.7525 23.2913 3.8982 21.396 3.89771 19.1252V14.2288C3.89771 16.5829 9.77303 18.3958 17.0022 18.3958C24.2312 18.3957 30.0852 16.4996 30.0852 14.2288V19.0627ZM17.0022 4.33325C24.2312 4.33331 30.0852 6.25028 30.0852 8.50024V11.7083C30.0852 14.0415 24.2312 15.8752 17.0022 15.8752C9.7522 15.8752 3.89771 14.0208 3.89771 11.7708V8.50024C3.89771 6.16691 9.77303 4.33325 17.0022 4.33325Z" fill="url(#paint0_linear_4121_3589)"/>
3
+ <rect x="2.71423" y="2.85718" width="28.5714" height="28.0952" fill="url(#pattern0_4121_3589)"/>
4
+ <defs>
5
+ <pattern id="pattern0_4121_3589" patternContentUnits="objectBoundingBox" width="1" height="1">
6
+ <use xlink:href="#image0_4121_3589" transform="scale(0.00333333 0.00338983)"/>
7
+ </pattern>
8
+ <linearGradient id="paint0_linear_4121_3589" x1="33.3818" y1="32.5741" x2="9.56095" y2="18.2013" gradientUnits="userSpaceOnUse">
9
+ <stop stop-color="#7FC0FB"/>
10
+ <stop offset="1" stop-color="#4088F4"/>
11
+ </linearGradient>
12
+ <image id="image0_4121_3589" width="300" height="295" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
13
+ </defs>
14
+ </svg>
@@ -0,0 +1,477 @@
1
+ import React, { useMemo, useState, useEffect, useRef } from 'react';
2
+ import { DashboardContainer, Styles, defaultTheme } from '@mxmweb/zui';
3
+ import styled from 'styled-components';
4
+ import { Xviwer, CustomComponents } from '@mxmweb/xviewer';
5
+ import { message, Modal } from 'antd';
6
+ import AxiosInstance from './server';
7
+ import { DropDownButton } from '@mxmweb/zui';
8
+ import databaseUpload from './assets/database_upload.svg';
9
+ import databseConnect from './assets/database_connect.svg';
10
+ import CreateModal from './CreateModal';
11
+ import EmptyImg from './assets/empty.png';
12
+ import '@mxmweb/rtext/style.css';
13
+ import '@mxmweb/zui/style.css';
14
+ // views 只做 UI 结构描述 - 将在组件内部动态生成
15
+ const { confirm } = Modal;
16
+
17
+ enum OPT_BTN {
18
+ DATE = 0,
19
+ VIEW,
20
+ ERROR,
21
+ AUTHORIZE,
22
+ DELETE,
23
+ ANALYSIS_OR_EXTRACT,
24
+ DOWNLOAD,
25
+ EDIT,
26
+ ADD,
27
+ ANALYSIS_CONFIG,
28
+ AUTHORIZE_CONFIG,
29
+ }
30
+ interface DatabaseViewAdopterProps {
31
+ url?: string;
32
+ token?: string;
33
+ role?: string;
34
+ styles?: Styles;
35
+ CustomComponents?: CustomComponents;
36
+ eventsEmit?: (name: string, data: any) => void;
37
+ getBtnDisabled?: (type: OPT_BTN, permission: number) => void;
38
+ }
39
+
40
+ const DatabaseTypeOpt = styled.div`
41
+ width: 282px;
42
+ height: 81px;
43
+ display: flex;
44
+ flex-direction: row;
45
+ justify-space:between;
46
+ align-items: center;
47
+ border-radius: 4px;
48
+ padding:12px;
49
+
50
+ flexD
51
+ color: #2a2a2a;
52
+ background-color: #ffffff;
53
+ &:hover {
54
+ color: #055aff;
55
+ border: 1px solid #2b69ff;
56
+ background-color: #F1F5FF;
57
+ };
58
+ border: 1px solid #EBEBEB
59
+ `;
60
+
61
+ const DatabaseType = [
62
+ {
63
+ key: 'add_file_db',
64
+ label: '上传数据库',
65
+ dsc: '通过上传Excel、csv等格式数据表创建数据库。',
66
+ icon: databaseUpload,
67
+ },
68
+ {
69
+ key: 'add_direct_db',
70
+ label: '直连数据库',
71
+ dsc: '通过与已有业务建立连接创建数据库。',
72
+ icon: databseConnect,
73
+ },
74
+ ];
75
+ const DatabaseViewAdopter: React.FC<DatabaseViewAdopterProps> = props => {
76
+ const { url, token, role, CustomComponents, getBtnDisabled } = props;
77
+ const [activeId, setActiveId] = useState('my-db');
78
+
79
+ const [status, setStatus] = useState<any>({
80
+ app: 'ready',
81
+ container: 'ready',
82
+ content: 'ready',
83
+ });
84
+ // 测试空数据状态
85
+ const [showEmptyData, setShowEmptyData] = useState(false);
86
+
87
+ const [data, setData] = useState<
88
+ {
89
+ id: string;
90
+ data: any[];
91
+ }[]
92
+ >([
93
+ {
94
+ id: 'my-db',
95
+ data: [],
96
+ },
97
+ {
98
+ id: 'shared-db',
99
+ data: [],
100
+ },
101
+ ]);
102
+
103
+ // 创建ref来访问核心组件实例
104
+ const coreRef = useRef<any>(null);
105
+
106
+ // 抽屉状态管理
107
+ const [drawerVisible, setDrawerVisible] = useState(false);
108
+ const [drawerTitle, setDrawerTitle] = useState('');
109
+ const [databaseType, setDatabaseType] = useState<'DataTable' | 'DirectDB'>('DataTable');
110
+ const [editDBInfo, setEditDBInfo] = useState<any>();
111
+ // 表单操作引用 - 改为两个独立的状态
112
+ const [isConnectSuccess, setIsConnectSuccess] = useState(false);
113
+
114
+ //获取接口
115
+ const {
116
+ getDatabaseList,
117
+ delDatabaseById,
118
+ saveDatabase,
119
+ testConnection,
120
+ getShareDatabaseList,
121
+ syncSchema,
122
+ } = AxiosInstance({
123
+ url,
124
+ token,
125
+ role,
126
+ eventsEmit: props.eventsEmit,
127
+ });
128
+
129
+ // 动态生成views配置 - 参考ExampleTable实现
130
+ const views = useMemo(() => {
131
+ return [
132
+ {
133
+ label: '我的数据库',
134
+ id: 'my-db',
135
+ type: 'card' as const,
136
+ cardType: 'database',
137
+ rowHeight: 220,
138
+ viewPageSize: 12,
139
+ viewBehavior: 'pagination' as const, //or pagination
140
+ actions: [
141
+ { label: '编辑', key: 'edit' },
142
+ { label: '删除', key: 'delete' },
143
+ ],
144
+ toolbar: [
145
+ {
146
+ type: 'customized' as const,
147
+ key: 'add',
148
+ render: () => {
149
+ return (
150
+ <DropDownButton
151
+ mode="primary"
152
+ label="创建数据库"
153
+ actions={DatabaseType.map((s: any) => {
154
+ return {
155
+ key: s.key,
156
+ component: (
157
+ <DatabaseTypeOpt key={s.key}>
158
+ <div className="flex flex-grow">
159
+ <div className="mr-[6px]">
160
+ <img src={s.icon} />
161
+ </div>
162
+ <div>
163
+ <div className="text-base font-bold mb-1 text-[14px]">{s.label}</div>
164
+ <div className="text-[#888] text-[10px]">{s.dsc}</div>
165
+ </div>
166
+ </div>
167
+ </DatabaseTypeOpt>
168
+ ),
169
+ };
170
+ })}
171
+ eventEmit={mergedEventsEmit}
172
+ />
173
+ );
174
+ },
175
+ },
176
+ {
177
+ type: 'fuzzy_search' as const,
178
+ key: 'search',
179
+ label: '输入名称搜索',
180
+ searchKeys: ['name', 'description'],
181
+ position: 'right',
182
+ },
183
+ ],
184
+ },
185
+ {
186
+ label: '共享数据库',
187
+ id: 'shared-db',
188
+ type: 'card' as const,
189
+ cardType: 'database',
190
+ rowHeight: 240,
191
+ toolbar: [
192
+ { type: 'fuzzy_search' as const, key: 'search', label: '搜索', position: 'right' },
193
+ ],
194
+ actions: [
195
+ { label: '编辑', key: 'edit' },
196
+ { label: '删除', key: 'delete' },
197
+ ],
198
+ },
199
+ ];
200
+ }, [data]);
201
+
202
+ // 模拟应用初始化过程
203
+ useEffect(() => {
204
+ // 模拟应用初始化
205
+ setStatus((prev: any) => ({ ...prev, content: 'loading' }));
206
+ handleFetchList();
207
+ }, []);
208
+
209
+ // 获取数据库列表
210
+ const handleFetchList = async () => {
211
+ try {
212
+ const [res, shareRes] = await Promise.allSettled([
213
+ getDatabaseList({
214
+ pageNo: 1,
215
+ pageSize: 999,
216
+ }),
217
+ getShareDatabaseList({
218
+ pageNo: 1,
219
+ pageSize: 999,
220
+ }),
221
+ ]);
222
+
223
+ let dataRender = [];
224
+ if (res.status === 'fulfilled' && res.value) {
225
+ if (res.value?.records) {
226
+ const _data = handleTableData(res.value?.records);
227
+ dataRender.push({
228
+ id: 'my-db',
229
+ data: _data || [],
230
+ });
231
+ }
232
+ }
233
+
234
+ if (shareRes.status === 'fulfilled' && shareRes.value) {
235
+ if (shareRes.value?.records) {
236
+ const _data = handleTableData(shareRes.value?.records);
237
+ dataRender.push({
238
+ id: 'shared-db',
239
+ data: _data || [],
240
+ });
241
+ }
242
+ }
243
+
244
+ setData(dataRender);
245
+ setStatus((prev: any) => ({ ...prev, content: 'ready' }));
246
+ } catch (e) {
247
+ console.log('[DatabaseApiError] getDatabaseList:', e);
248
+ }
249
+ };
250
+
251
+ const handleTableData = (data: any) => {
252
+ return (data || []).map((item: any) => {
253
+ const actions = getActionsForView('shared-db').map((a: any, index: number) => {
254
+ return {
255
+ ...a,
256
+ key: a.type === 'divider' ? `${a.key}_${item.id}` : a.key, // 为divider添加唯一key
257
+ disabled:
258
+ getBtnDisabled &&
259
+ getBtnDisabled(a.key == 'edit' ? OPT_BTN.EDIT : OPT_BTN.DELETE, item.permission),
260
+ };
261
+ });
262
+
263
+ if (item.datasourceType == 'DirectDB') {
264
+ actions.push({
265
+ label: '同步表结构',
266
+ key: 'sync_schema',
267
+ disabled: getBtnDisabled && getBtnDisabled(OPT_BTN.EDIT, item.permission),
268
+ });
269
+ }
270
+ console.log('[DatabaseViewAdopter] actions:', actions);
271
+ return {
272
+ ...item,
273
+ actions: actions || [],
274
+ };
275
+ });
276
+ };
277
+
278
+ const currentUser = 'admin'; // 假设当前账号
279
+ // 自定义空数据组件
280
+ const EmptyData: React.FC = () => (
281
+ <div className="flex flex-col items-center justify-center h-full">
282
+ <div className="text-xl font-semibold mb-3" style={{ color: '#374151' }}>
283
+ <img src={EmptyImg} width={120} />
284
+ </div>
285
+ <div className="text-base mb-6" style={{ color: '#6b7280' }}>
286
+ 暂无数据,请先添加数据库
287
+ </div>
288
+ </div>
289
+ );
290
+
291
+ // 从views配置中获取actions
292
+ const getActionsForView = (viewId: string) => {
293
+ const view = views.find(v => v.id === viewId);
294
+ const actions = view?.actions || [];
295
+ //console.log('[DatabaseViewAdopter] getActionsForView:', viewId, 'actions:', actions);
296
+ return actions;
297
+ };
298
+
299
+ // 根据当前激活id获取对应数据
300
+ const currentData = useMemo(() => {
301
+ const foundData = data?.find(item => item.id === activeId)?.data || [];
302
+ // 测试空数据状态
303
+ return showEmptyData ? [] : foundData;
304
+ }, [activeId, data, showEmptyData]);
305
+
306
+ // 抽屉相关处理函数
307
+ const handleDrawerClose = () => {
308
+ setDrawerVisible(false);
309
+ setIsConnectSuccess(false);
310
+ setEditDBInfo(undefined);
311
+ };
312
+
313
+ const handleConnectionTest = async (data: any) => {
314
+ console.log('[DatabaseViewAdopter] 测试连接:', data);
315
+ const res = await testConnection(data);
316
+ if (res) {
317
+ setIsConnectSuccess(true);
318
+ message.success('连接测试成功!');
319
+ }
320
+ return res;
321
+ };
322
+
323
+ // 事件合并函数,支持多层事件劫持 - 参考ExampleTable实现
324
+ async function mergedEventsEmit(name: string, data: any, appFn: any) {
325
+ console.log('[DatabaseViewAdopter] mergedEventsEmit', name, data);
326
+ switch (name) {
327
+ case 'card_delete':
328
+ confirm({
329
+ title: '确认删除数据库?',
330
+ content: '删除后,该数据库将无法恢复',
331
+ okText: '删除',
332
+ cancelText: '取消',
333
+ async onOk() {
334
+ const res = await delDatabaseById(data.id, data.datasourceType);
335
+ if (res && coreRef?.current) {
336
+ coreRef?.current.appFn.removeItem(data.id);
337
+ }
338
+ },
339
+ onCancel() {
340
+ console.log('Cancel');
341
+ },
342
+ });
343
+
344
+ break;
345
+ case 'card_edit':
346
+ setDrawerTitle('编辑数据库');
347
+ setDrawerVisible(true);
348
+ setDatabaseType(data.datasourceType);
349
+ delete data.render;
350
+ setEditDBInfo(data);
351
+ break;
352
+ case 'select':
353
+ setActiveId(data.id);
354
+ break;
355
+ case 'filesDir_clicked':
356
+ setActiveId(data.id);
357
+ break;
358
+ case 'dropdown_action':
359
+ setDrawerTitle('创建数据库');
360
+ setDrawerVisible(true);
361
+ if (data.key == 'add_file_db') {
362
+ setDatabaseType('DataTable');
363
+ } else {
364
+ setDatabaseType('DirectDB');
365
+ }
366
+ break;
367
+ case 'form_submitted':
368
+ try {
369
+ const formData = data.fields.reduce((acc: any, item: any) => {
370
+ acc[item.name] = item.value;
371
+ return acc;
372
+ }, {});
373
+ const _data = editDBInfo
374
+ ? {
375
+ id: editDBInfo?.id,
376
+ ...formData,
377
+ }
378
+ : formData;
379
+ const res = await saveDatabase(_data, databaseType);
380
+ if (res) {
381
+ if (editDBInfo) {
382
+ const patch = {
383
+ ...editDBInfo,
384
+ ...formData,
385
+ datasourceType: databaseType,
386
+ actions: getActionsForView('my-db').map((a: any, index: number) => ({
387
+ ...a,
388
+ key: a.type === 'divider' ? `${a.key}_${res}` : a.key,
389
+ allow: true,
390
+ })),
391
+ };
392
+ coreRef?.current?.appFn?.updateItem(patch, editDBInfo?.id);
393
+ message.success('数据库编辑成功!');
394
+ } else {
395
+ const newDb: any = {
396
+ ...formData,
397
+ ...res,
398
+ createBy: currentUser,
399
+ datasourceType: databaseType,
400
+ actions: getActionsForView('my-db').map((a: any, index: number) => ({
401
+ ...a,
402
+ key: a.type === 'divider' ? `${a.key}_${res}` : a.key,
403
+ allow: true,
404
+ })),
405
+ };
406
+ coreRef?.current?.appFn?.addItem(newDb, { animate: true, position: 'start' });
407
+ message.success('数据库创建成功!');
408
+ }
409
+ return res;
410
+ }
411
+ } catch (e) {
412
+ console.error('保存失败!', e);
413
+ } finally {
414
+ handleDrawerClose();
415
+ }
416
+ break;
417
+ case 'form:connect_test':
418
+ return await handleConnectionTest(data);
419
+ case 'toolbar_test_empty':
420
+ // 测试空数据状态切换
421
+ console.log('[DatabaseViewAdopter] toolbar_test_empty 事件触发');
422
+ setShowEmptyData(!showEmptyData);
423
+ break;
424
+ case 'card_sync_schema':
425
+ const res = await syncSchema(data.id);
426
+ if (res) {
427
+ setIsConnectSuccess(true);
428
+ message.success('同步表结构成功!');
429
+ }
430
+ break;
431
+ default:
432
+ props.eventsEmit?.(name, data);
433
+ break;
434
+ }
435
+ }
436
+
437
+ return (
438
+ <DashboardContainer title="数据库管理">
439
+ <Xviwer
440
+ ref={coreRef}
441
+ label=""
442
+ key="db"
443
+ model={'tabs'}
444
+ defaultActiveId={activeId}
445
+ views={views}
446
+ dataSource={currentData}
447
+ eventsEmit={mergedEventsEmit}
448
+ status={status}
449
+ CustomComponents={{
450
+ EmptyData,
451
+ ...CustomComponents,
452
+ }}
453
+ styles={{
454
+ theme: {
455
+ ...defaultTheme,
456
+ colors: {
457
+ ...defaultTheme.colors,
458
+ listBackground: '#ffffff',
459
+ },
460
+ },
461
+ mode: 'light',
462
+ }}
463
+ />
464
+ <CreateModal
465
+ drawerTitle={drawerTitle}
466
+ drawerVisible={drawerVisible}
467
+ isConnectSuccess={isConnectSuccess}
468
+ dbType={databaseType}
469
+ dbInfo={editDBInfo}
470
+ handleDrawerClose={handleDrawerClose}
471
+ eventsEmit={mergedEventsEmit}
472
+ />
473
+ </DashboardContainer>
474
+ );
475
+ };
476
+
477
+ export default DatabaseViewAdopter;