@yoka-ui/ui 1.0.10-test

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 (484) hide show
  1. package/@Docs-yoka/exports.generated.md +92 -0
  2. package/@Docs-yoka/llms.txt +23 -0
  3. package/README.md +291 -0
  4. package/dist/es/Themes/InputTheme/index.d.ts +6 -0
  5. package/dist/es/Themes/InputTheme/index.js +22 -0
  6. package/dist/es/Themes/InputTheme/index.js.map +7 -0
  7. package/dist/es/Themes/TableTheme/index.d.ts +7 -0
  8. package/dist/es/Themes/TableTheme/index.js +31 -0
  9. package/dist/es/Themes/TableTheme/index.js.map +7 -0
  10. package/dist/es/Themes/TableTheme/index.less +46 -0
  11. package/dist/es/assets/image/YKUI-logo.png +0 -0
  12. package/dist/es/assets/less/ant-reset.less +402 -0
  13. package/dist/es/assets/less/index.less +1 -0
  14. package/dist/es/assets/less/variables.less +16 -0
  15. package/dist/es/business/AiChat/MarkdownRender.d.ts +9 -0
  16. package/dist/es/business/AiChat/MarkdownRender.js +72 -0
  17. package/dist/es/business/AiChat/MarkdownRender.js.map +7 -0
  18. package/dist/es/business/AiChat/index.d.ts +16 -0
  19. package/dist/es/business/AiChat/index.js +521 -0
  20. package/dist/es/business/AiChat/index.js.map +7 -0
  21. package/dist/es/business/AiChat/intentRecognizer.d.ts +33 -0
  22. package/dist/es/business/AiChat/intentRecognizer.js +166 -0
  23. package/dist/es/business/AiChat/intentRecognizer.js.map +7 -0
  24. package/dist/es/business/AiChat/navigationManager.d.ts +94 -0
  25. package/dist/es/business/AiChat/navigationManager.js +208 -0
  26. package/dist/es/business/AiChat/navigationManager.js.map +7 -0
  27. package/dist/es/business/AiChat/sse.d.ts +1 -0
  28. package/dist/es/business/AiChat/sse.js +60 -0
  29. package/dist/es/business/AiChat/sse.js.map +7 -0
  30. package/dist/es/business/AiChat/type.d.ts +157 -0
  31. package/dist/es/business/AiChat/type.js +1 -0
  32. package/dist/es/business/AiChat/type.js.map +7 -0
  33. package/dist/es/business/AiChat/useAiChat.d.ts +2 -0
  34. package/dist/es/business/AiChat/useAiChat.js +238 -0
  35. package/dist/es/business/AiChat/useAiChat.js.map +7 -0
  36. package/dist/es/business/AiChat/useTaskWorkflow.d.ts +26 -0
  37. package/dist/es/business/AiChat/useTaskWorkflow.js +230 -0
  38. package/dist/es/business/AiChat/useTaskWorkflow.js.map +7 -0
  39. package/dist/es/business/DrawerPageInfo/index.d.ts +35 -0
  40. package/dist/es/business/DrawerPageInfo/index.js +133 -0
  41. package/dist/es/business/DrawerPageInfo/index.js.map +7 -0
  42. package/dist/es/business/DrawerPageInfo/index.module.less +87 -0
  43. package/dist/es/business/DrawerPageInfo/test.png +0 -0
  44. package/dist/es/business/Editor/index.d.ts +11 -0
  45. package/dist/es/business/Editor/index.js +86 -0
  46. package/dist/es/business/Editor/index.js.map +7 -0
  47. package/dist/es/business/Editor/index.less +31 -0
  48. package/dist/es/business/Empty/empty.png +0 -0
  49. package/dist/es/business/Empty/index.d.ts +19 -0
  50. package/dist/es/business/Empty/index.js +51 -0
  51. package/dist/es/business/Empty/index.js.map +7 -0
  52. package/dist/es/business/ModCommonFilter/assets/images/empty.png +0 -0
  53. package/dist/es/business/ModCommonFilter/components/FilterButton/IconClose.d.ts +13 -0
  54. package/dist/es/business/ModCommonFilter/components/FilterButton/IconClose.js +51 -0
  55. package/dist/es/business/ModCommonFilter/components/FilterButton/IconClose.js.map +7 -0
  56. package/dist/es/business/ModCommonFilter/components/FilterButton/IconXiala.d.ts +13 -0
  57. package/dist/es/business/ModCommonFilter/components/FilterButton/IconXiala.js +51 -0
  58. package/dist/es/business/ModCommonFilter/components/FilterButton/IconXiala.js.map +7 -0
  59. package/dist/es/business/ModCommonFilter/components/FilterButton/index.d.ts +25 -0
  60. package/dist/es/business/ModCommonFilter/components/FilterButton/index.js +30 -0
  61. package/dist/es/business/ModCommonFilter/components/FilterButton/index.js.map +7 -0
  62. package/dist/es/business/ModCommonFilter/components/FilterButton/index.module.less +97 -0
  63. package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.d.ts +18 -0
  64. package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js +74 -0
  65. package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js.map +7 -0
  66. package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.d.ts +37 -0
  67. package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js +216 -0
  68. package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js.map +7 -0
  69. package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.d.ts +26 -0
  70. package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js +102 -0
  71. package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js.map +7 -0
  72. package/dist/es/business/ModCommonFilter/components/PopoverContent/index.d.ts +51 -0
  73. package/dist/es/business/ModCommonFilter/components/PopoverContent/index.js +71 -0
  74. package/dist/es/business/ModCommonFilter/components/PopoverContent/index.js.map +7 -0
  75. package/dist/es/business/ModCommonFilter/components/PopoverContent/index.module.less +260 -0
  76. package/dist/es/business/ModCommonFilter/index.d.ts +53 -0
  77. package/dist/es/business/ModCommonFilter/index.js +129 -0
  78. package/dist/es/business/ModCommonFilter/index.js.map +7 -0
  79. package/dist/es/business/ModCommonFilter/index.module.less +7 -0
  80. package/dist/es/business/ModCommonFilter/typing.d.ts +20 -0
  81. package/dist/es/business/ModCommonFilter/typing.js +1 -0
  82. package/dist/es/business/ModCommonFilter/typing.js.map +7 -0
  83. package/dist/es/business/YkPorjectSelect/icon-product.png +0 -0
  84. package/dist/es/business/YkPorjectSelect/index.d.ts +51 -0
  85. package/dist/es/business/YkPorjectSelect/index.js +260 -0
  86. package/dist/es/business/YkPorjectSelect/index.js.map +7 -0
  87. package/dist/es/business/YkPorjectSelect/index.module.less +334 -0
  88. package/dist/es/business/YkPorjectSelect/product-close.png +0 -0
  89. package/dist/es/components/Clock/index.d.ts +19 -0
  90. package/dist/es/components/Clock/index.js +55 -0
  91. package/dist/es/components/Clock/index.js.map +7 -0
  92. package/dist/es/components/DebounceInput/index.d.ts +16 -0
  93. package/dist/es/components/DebounceInput/index.js +77 -0
  94. package/dist/es/components/DebounceInput/index.js.map +7 -0
  95. package/dist/es/components/DebounceInput/index.module.less +23 -0
  96. package/dist/es/components/MultipleSelect/index.d.ts +23 -0
  97. package/dist/es/components/MultipleSelect/index.js +249 -0
  98. package/dist/es/components/MultipleSelect/index.js.map +7 -0
  99. package/dist/es/components/MultipleSelect/index.module.less +174 -0
  100. package/dist/es/components/NumericInput/index.d.ts +19 -0
  101. package/dist/es/components/NumericInput/index.js +56 -0
  102. package/dist/es/components/NumericInput/index.js.map +7 -0
  103. package/dist/es/components/RefreshButton/index.d.ts +8 -0
  104. package/dist/es/components/RefreshButton/index.js +21 -0
  105. package/dist/es/components/RefreshButton/index.js.map +7 -0
  106. package/dist/es/components/SearchWithHistory/index.d.ts +21 -0
  107. package/dist/es/components/SearchWithHistory/index.js +115 -0
  108. package/dist/es/components/SearchWithHistory/index.js.map +7 -0
  109. package/dist/es/components/SearchWithHistory/index.module.less +64 -0
  110. package/dist/es/components/TextWithInput/index.d.ts +15 -0
  111. package/dist/es/components/TextWithInput/index.js +35 -0
  112. package/dist/es/components/TextWithInput/index.js.map +7 -0
  113. package/dist/es/components/TextWithToolTip/index.d.ts +17 -0
  114. package/dist/es/components/TextWithToolTip/index.js +118 -0
  115. package/dist/es/components/TextWithToolTip/index.js.map +7 -0
  116. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +28 -0
  117. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js +161 -0
  118. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js.map +7 -0
  119. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.less +151 -0
  120. package/dist/es/components/TreeTransfer/index.d.ts +28 -0
  121. package/dist/es/components/TreeTransfer/index.js +210 -0
  122. package/dist/es/components/TreeTransfer/index.js.map +7 -0
  123. package/dist/es/components/TreeTransfer/index.less +69 -0
  124. package/dist/es/components/TreeTransfer/types.d.ts +122 -0
  125. package/dist/es/components/TreeTransfer/types.js +6 -0
  126. package/dist/es/components/TreeTransfer/types.js.map +7 -0
  127. package/dist/es/components/TreeTransfer/utils/index.d.ts +120 -0
  128. package/dist/es/components/TreeTransfer/utils/index.js +195 -0
  129. package/dist/es/components/TreeTransfer/utils/index.js.map +7 -0
  130. package/dist/es/components/YkDateRangePicker/index.d.ts +57 -0
  131. package/dist/es/components/YkDateRangePicker/index.js +261 -0
  132. package/dist/es/components/YkDateRangePicker/index.js.map +7 -0
  133. package/dist/es/components/YkDateRangePicker/index.module.less +281 -0
  134. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
  135. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +193 -0
  136. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
  137. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
  138. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +556 -0
  139. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
  140. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
  141. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +55 -0
  142. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
  143. package/dist/es/components/YkRangeDateWithVS/index.d.ts +62 -0
  144. package/dist/es/components/YkRangeDateWithVS/index.js +130 -0
  145. package/dist/es/components/YkRangeDateWithVS/index.js.map +7 -0
  146. package/dist/es/components/YkRangeDateWithVS/index.module.less +548 -0
  147. package/dist/es/components/YkRangeDateWithVS/styles.d.ts +2 -0
  148. package/dist/es/components/YkRangeDateWithVS/styles.js +18 -0
  149. package/dist/es/components/YkRangeDateWithVS/styles.js.map +7 -0
  150. package/dist/es/components/YkRangeDateWithVS/typing.d.ts +15 -0
  151. package/dist/es/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
  152. package/dist/es/components/YkRangeTimeWithRecent/constants.js +288 -0
  153. package/dist/es/components/YkRangeTimeWithRecent/constants.js.map +7 -0
  154. package/dist/es/components/YkRangeTimeWithRecent/index.d.ts +26 -0
  155. package/dist/es/components/YkRangeTimeWithRecent/index.js +647 -0
  156. package/dist/es/components/YkRangeTimeWithRecent/index.js.map +7 -0
  157. package/dist/es/components/YkRangeTimeWithRecent/index.module.less +263 -0
  158. package/dist/es/creative/ButtonRadioWithInfo/index.d.ts +17 -0
  159. package/dist/es/creative/ButtonRadioWithInfo/index.js +103 -0
  160. package/dist/es/creative/ButtonRadioWithInfo/index.js.map +7 -0
  161. package/dist/es/creative/ButtonRadioWithInfo/index.less +106 -0
  162. package/dist/es/creative/ButtonWithProgress/index.d.ts +11 -0
  163. package/dist/es/creative/ButtonWithProgress/index.js +79 -0
  164. package/dist/es/creative/ButtonWithProgress/index.js.map +7 -0
  165. package/dist/es/creative/ButtonWithProgress/index.less +66 -0
  166. package/dist/es/global.less +12 -0
  167. package/dist/es/index.d.ts +41 -0
  168. package/dist/es/index.js +85 -0
  169. package/dist/es/index.js.map +7 -0
  170. package/dist/es/layout/FlexGrid/index.d.ts +25 -0
  171. package/dist/es/layout/FlexGrid/index.js +63 -0
  172. package/dist/es/layout/FlexGrid/index.js.map +7 -0
  173. package/dist/es/layout/YkContainer/index.d.ts +27 -0
  174. package/dist/es/layout/YkContainer/index.js +79 -0
  175. package/dist/es/layout/YkContainer/index.js.map +7 -0
  176. package/dist/es/layout/YkDrawer/index.d.ts +22 -0
  177. package/dist/es/layout/YkDrawer/index.js +160 -0
  178. package/dist/es/layout/YkDrawer/index.js.map +7 -0
  179. package/dist/es/layout/YkDrawer/index.module.less +45 -0
  180. package/dist/es/ui/LabelSelect/demo.d.ts +3 -0
  181. package/dist/es/ui/LabelSelect/demo.js +83 -0
  182. package/dist/es/ui/LabelSelect/demo.js.map +7 -0
  183. package/dist/es/ui/LabelSelect/index.d.ts +41 -0
  184. package/dist/es/ui/LabelSelect/index.js +136 -0
  185. package/dist/es/ui/LabelSelect/index.js.map +7 -0
  186. package/dist/es/ui/LogicOperator/index.d.ts +10 -0
  187. package/dist/es/ui/LogicOperator/index.js +12 -0
  188. package/dist/es/ui/LogicOperator/index.js.map +7 -0
  189. package/dist/es/ui/LogicOperator/index.module.less +97 -0
  190. package/dist/es/ui/YkButton/index.d.ts +9 -0
  191. package/dist/es/ui/YkButton/index.js +59 -0
  192. package/dist/es/ui/YkButton/index.js.map +7 -0
  193. package/dist/es/ui/YkCard/index.d.ts +4 -0
  194. package/dist/es/ui/YkCard/index.js +79 -0
  195. package/dist/es/ui/YkCard/index.js.map +7 -0
  196. package/dist/es/ui/YkCard/index.module.less +30 -0
  197. package/dist/es/ui/YkCheckbox/index.d.ts +4 -0
  198. package/dist/es/ui/YkCheckbox/index.js +45 -0
  199. package/dist/es/ui/YkCheckbox/index.js.map +7 -0
  200. package/dist/es/ui/YkCheckbox/index.module.less +22 -0
  201. package/dist/es/ui/YkDescriptions/index.d.ts +4 -0
  202. package/dist/es/ui/YkDescriptions/index.js +41 -0
  203. package/dist/es/ui/YkDescriptions/index.js.map +7 -0
  204. package/dist/es/ui/YkPagination/index.d.ts +4 -0
  205. package/dist/es/ui/YkPagination/index.js +63 -0
  206. package/dist/es/ui/YkPagination/index.js.map +7 -0
  207. package/dist/es/ui/YkPagination/index.module.less +22 -0
  208. package/dist/es/ui/YkRadio/index.d.ts +4 -0
  209. package/dist/es/ui/YkRadio/index.js +51 -0
  210. package/dist/es/ui/YkRadio/index.js.map +7 -0
  211. package/dist/es/ui/YkRadio/index.module.less +22 -0
  212. package/dist/es/ui/YkRadioBtnSpecial/index.d.ts +15 -0
  213. package/dist/es/ui/YkRadioBtnSpecial/index.js +23 -0
  214. package/dist/es/ui/YkRadioBtnSpecial/index.js.map +7 -0
  215. package/dist/es/ui/YkRadioBtnSpecial/index.module.less +112 -0
  216. package/dist/es/ui/YkSegmented/index.d.ts +4 -0
  217. package/dist/es/ui/YkSegmented/index.js +41 -0
  218. package/dist/es/ui/YkSegmented/index.js.map +7 -0
  219. package/dist/es/ui/YkSelect/index.d.ts +7 -0
  220. package/dist/es/ui/YkSelect/index.js +54 -0
  221. package/dist/es/ui/YkSelect/index.js.map +7 -0
  222. package/dist/es/ui/YkSpin/index.d.ts +4 -0
  223. package/dist/es/ui/YkSpin/index.js +41 -0
  224. package/dist/es/ui/YkSpin/index.js.map +7 -0
  225. package/dist/es/ui/YkStatistic/index.d.ts +4 -0
  226. package/dist/es/ui/YkStatistic/index.js +41 -0
  227. package/dist/es/ui/YkStatistic/index.js.map +7 -0
  228. package/dist/es/ui/YkSwitch/index.d.ts +4 -0
  229. package/dist/es/ui/YkSwitch/index.js +51 -0
  230. package/dist/es/ui/YkSwitch/index.js.map +7 -0
  231. package/dist/es/ui/YkTabs/index.d.ts +12 -0
  232. package/dist/es/ui/YkTabs/index.js +75 -0
  233. package/dist/es/ui/YkTabs/index.js.map +7 -0
  234. package/dist/es/ui/YkTabs/index.module.less +11 -0
  235. package/dist/es/ui/YkTooltip/index.d.ts +4 -0
  236. package/dist/es/ui/YkTooltip/index.js +50 -0
  237. package/dist/es/ui/YkTooltip/index.js.map +7 -0
  238. package/dist/es/utils/styleUtils.d.ts +18 -0
  239. package/dist/es/utils/styleUtils.js +57 -0
  240. package/dist/es/utils/styleUtils.js.map +7 -0
  241. package/dist/es/utils/ykStorybookDoc.d.ts +17 -0
  242. package/dist/es/utils/ykStorybookDoc.js +18 -0
  243. package/dist/es/utils/ykStorybookDoc.js.map +7 -0
  244. package/dist/lib/Themes/InputTheme/index.d.ts +6 -0
  245. package/dist/lib/Themes/InputTheme/index.js +52 -0
  246. package/dist/lib/Themes/InputTheme/index.js.map +7 -0
  247. package/dist/lib/Themes/TableTheme/index.d.ts +7 -0
  248. package/dist/lib/Themes/TableTheme/index.js +61 -0
  249. package/dist/lib/Themes/TableTheme/index.js.map +7 -0
  250. package/dist/lib/Themes/TableTheme/index.less +46 -0
  251. package/dist/lib/assets/image/YKUI-logo.png +0 -0
  252. package/dist/lib/assets/less/ant-reset.less +402 -0
  253. package/dist/lib/assets/less/index.less +1 -0
  254. package/dist/lib/assets/less/variables.less +16 -0
  255. package/dist/lib/business/AiChat/MarkdownRender.d.ts +9 -0
  256. package/dist/lib/business/AiChat/MarkdownRender.js +102 -0
  257. package/dist/lib/business/AiChat/MarkdownRender.js.map +7 -0
  258. package/dist/lib/business/AiChat/index.d.ts +16 -0
  259. package/dist/lib/business/AiChat/index.js +514 -0
  260. package/dist/lib/business/AiChat/index.js.map +7 -0
  261. package/dist/lib/business/AiChat/intentRecognizer.d.ts +33 -0
  262. package/dist/lib/business/AiChat/intentRecognizer.js +193 -0
  263. package/dist/lib/business/AiChat/intentRecognizer.js.map +7 -0
  264. package/dist/lib/business/AiChat/navigationManager.d.ts +94 -0
  265. package/dist/lib/business/AiChat/navigationManager.js +214 -0
  266. package/dist/lib/business/AiChat/navigationManager.js.map +7 -0
  267. package/dist/lib/business/AiChat/sse.d.ts +1 -0
  268. package/dist/lib/business/AiChat/sse.js +61 -0
  269. package/dist/lib/business/AiChat/sse.js.map +7 -0
  270. package/dist/lib/business/AiChat/type.d.ts +157 -0
  271. package/dist/lib/business/AiChat/type.js +18 -0
  272. package/dist/lib/business/AiChat/type.js.map +7 -0
  273. package/dist/lib/business/AiChat/useAiChat.d.ts +2 -0
  274. package/dist/lib/business/AiChat/useAiChat.js +222 -0
  275. package/dist/lib/business/AiChat/useAiChat.js.map +7 -0
  276. package/dist/lib/business/AiChat/useTaskWorkflow.d.ts +26 -0
  277. package/dist/lib/business/AiChat/useTaskWorkflow.js +216 -0
  278. package/dist/lib/business/AiChat/useTaskWorkflow.js.map +7 -0
  279. package/dist/lib/business/DrawerPageInfo/index.d.ts +35 -0
  280. package/dist/lib/business/DrawerPageInfo/index.js +163 -0
  281. package/dist/lib/business/DrawerPageInfo/index.js.map +7 -0
  282. package/dist/lib/business/DrawerPageInfo/index.module.less +87 -0
  283. package/dist/lib/business/DrawerPageInfo/test.png +0 -0
  284. package/dist/lib/business/Editor/index.d.ts +11 -0
  285. package/dist/lib/business/Editor/index.js +99 -0
  286. package/dist/lib/business/Editor/index.js.map +7 -0
  287. package/dist/lib/business/Editor/index.less +31 -0
  288. package/dist/lib/business/Empty/empty.png +0 -0
  289. package/dist/lib/business/Empty/index.d.ts +19 -0
  290. package/dist/lib/business/Empty/index.js +65 -0
  291. package/dist/lib/business/Empty/index.js.map +7 -0
  292. package/dist/lib/business/ModCommonFilter/assets/images/empty.png +0 -0
  293. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.d.ts +13 -0
  294. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js +50 -0
  295. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js.map +7 -0
  296. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.d.ts +13 -0
  297. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js +50 -0
  298. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js.map +7 -0
  299. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.d.ts +25 -0
  300. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js +60 -0
  301. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js.map +7 -0
  302. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.module.less +97 -0
  303. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.d.ts +18 -0
  304. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js +69 -0
  305. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js.map +7 -0
  306. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.d.ts +37 -0
  307. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js +211 -0
  308. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js.map +7 -0
  309. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.d.ts +26 -0
  310. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js +97 -0
  311. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js.map +7 -0
  312. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.d.ts +51 -0
  313. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js +101 -0
  314. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js.map +7 -0
  315. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.module.less +260 -0
  316. package/dist/lib/business/ModCommonFilter/index.d.ts +53 -0
  317. package/dist/lib/business/ModCommonFilter/index.js +143 -0
  318. package/dist/lib/business/ModCommonFilter/index.js.map +7 -0
  319. package/dist/lib/business/ModCommonFilter/index.module.less +7 -0
  320. package/dist/lib/business/ModCommonFilter/typing.d.ts +20 -0
  321. package/dist/lib/business/ModCommonFilter/typing.js +18 -0
  322. package/dist/lib/business/ModCommonFilter/typing.js.map +7 -0
  323. package/dist/lib/business/YkPorjectSelect/icon-product.png +0 -0
  324. package/dist/lib/business/YkPorjectSelect/index.d.ts +51 -0
  325. package/dist/lib/business/YkPorjectSelect/index.js +235 -0
  326. package/dist/lib/business/YkPorjectSelect/index.js.map +7 -0
  327. package/dist/lib/business/YkPorjectSelect/index.module.less +334 -0
  328. package/dist/lib/business/YkPorjectSelect/product-close.png +0 -0
  329. package/dist/lib/components/Clock/index.d.ts +19 -0
  330. package/dist/lib/components/Clock/index.js +85 -0
  331. package/dist/lib/components/Clock/index.js.map +7 -0
  332. package/dist/lib/components/DebounceInput/index.d.ts +16 -0
  333. package/dist/lib/components/DebounceInput/index.js +107 -0
  334. package/dist/lib/components/DebounceInput/index.js.map +7 -0
  335. package/dist/lib/components/DebounceInput/index.module.less +23 -0
  336. package/dist/lib/components/MultipleSelect/index.d.ts +23 -0
  337. package/dist/lib/components/MultipleSelect/index.js +279 -0
  338. package/dist/lib/components/MultipleSelect/index.js.map +7 -0
  339. package/dist/lib/components/MultipleSelect/index.module.less +174 -0
  340. package/dist/lib/components/NumericInput/index.d.ts +19 -0
  341. package/dist/lib/components/NumericInput/index.js +67 -0
  342. package/dist/lib/components/NumericInput/index.js.map +7 -0
  343. package/dist/lib/components/RefreshButton/index.d.ts +8 -0
  344. package/dist/lib/components/RefreshButton/index.js +51 -0
  345. package/dist/lib/components/RefreshButton/index.js.map +7 -0
  346. package/dist/lib/components/SearchWithHistory/index.d.ts +21 -0
  347. package/dist/lib/components/SearchWithHistory/index.js +145 -0
  348. package/dist/lib/components/SearchWithHistory/index.js.map +7 -0
  349. package/dist/lib/components/SearchWithHistory/index.module.less +64 -0
  350. package/dist/lib/components/TextWithInput/index.d.ts +15 -0
  351. package/dist/lib/components/TextWithInput/index.js +65 -0
  352. package/dist/lib/components/TextWithInput/index.js.map +7 -0
  353. package/dist/lib/components/TextWithToolTip/index.d.ts +17 -0
  354. package/dist/lib/components/TextWithToolTip/index.js +134 -0
  355. package/dist/lib/components/TextWithToolTip/index.js.map +7 -0
  356. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +28 -0
  357. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js +191 -0
  358. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js.map +7 -0
  359. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.less +151 -0
  360. package/dist/lib/components/TreeTransfer/index.d.ts +28 -0
  361. package/dist/lib/components/TreeTransfer/index.js +214 -0
  362. package/dist/lib/components/TreeTransfer/index.js.map +7 -0
  363. package/dist/lib/components/TreeTransfer/index.less +69 -0
  364. package/dist/lib/components/TreeTransfer/types.d.ts +122 -0
  365. package/dist/lib/components/TreeTransfer/types.js +30 -0
  366. package/dist/lib/components/TreeTransfer/types.js.map +7 -0
  367. package/dist/lib/components/TreeTransfer/utils/index.d.ts +120 -0
  368. package/dist/lib/components/TreeTransfer/utils/index.js +208 -0
  369. package/dist/lib/components/TreeTransfer/utils/index.js.map +7 -0
  370. package/dist/lib/components/YkDateRangePicker/index.d.ts +57 -0
  371. package/dist/lib/components/YkDateRangePicker/index.js +282 -0
  372. package/dist/lib/components/YkDateRangePicker/index.js.map +7 -0
  373. package/dist/lib/components/YkDateRangePicker/index.module.less +281 -0
  374. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
  375. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +223 -0
  376. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
  377. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
  378. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +567 -0
  379. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
  380. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
  381. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +85 -0
  382. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
  383. package/dist/lib/components/YkRangeDateWithVS/index.d.ts +62 -0
  384. package/dist/lib/components/YkRangeDateWithVS/index.js +140 -0
  385. package/dist/lib/components/YkRangeDateWithVS/index.js.map +7 -0
  386. package/dist/lib/components/YkRangeDateWithVS/index.module.less +548 -0
  387. package/dist/lib/components/YkRangeDateWithVS/styles.d.ts +2 -0
  388. package/dist/lib/components/YkRangeDateWithVS/styles.js +48 -0
  389. package/dist/lib/components/YkRangeDateWithVS/styles.js.map +7 -0
  390. package/dist/lib/components/YkRangeDateWithVS/typing.d.ts +15 -0
  391. package/dist/lib/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
  392. package/dist/lib/components/YkRangeTimeWithRecent/constants.js +333 -0
  393. package/dist/lib/components/YkRangeTimeWithRecent/constants.js.map +7 -0
  394. package/dist/lib/components/YkRangeTimeWithRecent/index.d.ts +26 -0
  395. package/dist/lib/components/YkRangeTimeWithRecent/index.js +647 -0
  396. package/dist/lib/components/YkRangeTimeWithRecent/index.js.map +7 -0
  397. package/dist/lib/components/YkRangeTimeWithRecent/index.module.less +263 -0
  398. package/dist/lib/creative/ButtonRadioWithInfo/index.d.ts +17 -0
  399. package/dist/lib/creative/ButtonRadioWithInfo/index.js +102 -0
  400. package/dist/lib/creative/ButtonRadioWithInfo/index.js.map +7 -0
  401. package/dist/lib/creative/ButtonRadioWithInfo/index.less +106 -0
  402. package/dist/lib/creative/ButtonWithProgress/index.d.ts +11 -0
  403. package/dist/lib/creative/ButtonWithProgress/index.js +70 -0
  404. package/dist/lib/creative/ButtonWithProgress/index.js.map +7 -0
  405. package/dist/lib/creative/ButtonWithProgress/index.less +66 -0
  406. package/dist/lib/global.less +12 -0
  407. package/dist/lib/index.d.ts +41 -0
  408. package/dist/lib/index.js +158 -0
  409. package/dist/lib/index.js.map +7 -0
  410. package/dist/lib/layout/FlexGrid/index.d.ts +25 -0
  411. package/dist/lib/layout/FlexGrid/index.js +77 -0
  412. package/dist/lib/layout/FlexGrid/index.js.map +7 -0
  413. package/dist/lib/layout/YkContainer/index.d.ts +27 -0
  414. package/dist/lib/layout/YkContainer/index.js +79 -0
  415. package/dist/lib/layout/YkContainer/index.js.map +7 -0
  416. package/dist/lib/layout/YkDrawer/index.d.ts +22 -0
  417. package/dist/lib/layout/YkDrawer/index.js +152 -0
  418. package/dist/lib/layout/YkDrawer/index.js.map +7 -0
  419. package/dist/lib/layout/YkDrawer/index.module.less +45 -0
  420. package/dist/lib/ui/LabelSelect/demo.d.ts +3 -0
  421. package/dist/lib/ui/LabelSelect/demo.js +113 -0
  422. package/dist/lib/ui/LabelSelect/demo.js.map +7 -0
  423. package/dist/lib/ui/LabelSelect/index.d.ts +41 -0
  424. package/dist/lib/ui/LabelSelect/index.js +124 -0
  425. package/dist/lib/ui/LabelSelect/index.js.map +7 -0
  426. package/dist/lib/ui/LogicOperator/index.d.ts +10 -0
  427. package/dist/lib/ui/LogicOperator/index.js +42 -0
  428. package/dist/lib/ui/LogicOperator/index.js.map +7 -0
  429. package/dist/lib/ui/LogicOperator/index.module.less +97 -0
  430. package/dist/lib/ui/YkButton/index.d.ts +9 -0
  431. package/dist/lib/ui/YkButton/index.js +55 -0
  432. package/dist/lib/ui/YkButton/index.js.map +7 -0
  433. package/dist/lib/ui/YkCard/index.d.ts +4 -0
  434. package/dist/lib/ui/YkCard/index.js +76 -0
  435. package/dist/lib/ui/YkCard/index.js.map +7 -0
  436. package/dist/lib/ui/YkCard/index.module.less +30 -0
  437. package/dist/lib/ui/YkCheckbox/index.d.ts +4 -0
  438. package/dist/lib/ui/YkCheckbox/index.js +42 -0
  439. package/dist/lib/ui/YkCheckbox/index.js.map +7 -0
  440. package/dist/lib/ui/YkCheckbox/index.module.less +22 -0
  441. package/dist/lib/ui/YkDescriptions/index.d.ts +4 -0
  442. package/dist/lib/ui/YkDescriptions/index.js +41 -0
  443. package/dist/lib/ui/YkDescriptions/index.js.map +7 -0
  444. package/dist/lib/ui/YkPagination/index.d.ts +4 -0
  445. package/dist/lib/ui/YkPagination/index.js +60 -0
  446. package/dist/lib/ui/YkPagination/index.js.map +7 -0
  447. package/dist/lib/ui/YkPagination/index.module.less +22 -0
  448. package/dist/lib/ui/YkRadio/index.d.ts +4 -0
  449. package/dist/lib/ui/YkRadio/index.js +51 -0
  450. package/dist/lib/ui/YkRadio/index.js.map +7 -0
  451. package/dist/lib/ui/YkRadio/index.module.less +22 -0
  452. package/dist/lib/ui/YkRadioBtnSpecial/index.d.ts +15 -0
  453. package/dist/lib/ui/YkRadioBtnSpecial/index.js +53 -0
  454. package/dist/lib/ui/YkRadioBtnSpecial/index.js.map +7 -0
  455. package/dist/lib/ui/YkRadioBtnSpecial/index.module.less +112 -0
  456. package/dist/lib/ui/YkSegmented/index.d.ts +4 -0
  457. package/dist/lib/ui/YkSegmented/index.js +41 -0
  458. package/dist/lib/ui/YkSegmented/index.js.map +7 -0
  459. package/dist/lib/ui/YkSelect/index.d.ts +7 -0
  460. package/dist/lib/ui/YkSelect/index.js +54 -0
  461. package/dist/lib/ui/YkSelect/index.js.map +7 -0
  462. package/dist/lib/ui/YkSpin/index.d.ts +4 -0
  463. package/dist/lib/ui/YkSpin/index.js +41 -0
  464. package/dist/lib/ui/YkSpin/index.js.map +7 -0
  465. package/dist/lib/ui/YkStatistic/index.d.ts +4 -0
  466. package/dist/lib/ui/YkStatistic/index.js +41 -0
  467. package/dist/lib/ui/YkStatistic/index.js.map +7 -0
  468. package/dist/lib/ui/YkSwitch/index.d.ts +4 -0
  469. package/dist/lib/ui/YkSwitch/index.js +51 -0
  470. package/dist/lib/ui/YkSwitch/index.js.map +7 -0
  471. package/dist/lib/ui/YkTabs/index.d.ts +12 -0
  472. package/dist/lib/ui/YkTabs/index.js +70 -0
  473. package/dist/lib/ui/YkTabs/index.js.map +7 -0
  474. package/dist/lib/ui/YkTabs/index.module.less +11 -0
  475. package/dist/lib/ui/YkTooltip/index.d.ts +4 -0
  476. package/dist/lib/ui/YkTooltip/index.js +45 -0
  477. package/dist/lib/ui/YkTooltip/index.js.map +7 -0
  478. package/dist/lib/utils/styleUtils.d.ts +18 -0
  479. package/dist/lib/utils/styleUtils.js +84 -0
  480. package/dist/lib/utils/styleUtils.js.map +7 -0
  481. package/dist/lib/utils/ykStorybookDoc.d.ts +17 -0
  482. package/dist/lib/utils/ykStorybookDoc.js +41 -0
  483. package/dist/lib/utils/ykStorybookDoc.js.map +7 -0
  484. package/package.json +147 -0
@@ -0,0 +1,514 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/business/AiChat/index.tsx
30
+ var AiChat_exports = {};
31
+ __export(AiChat_exports, {
32
+ NavigationManager: () => import_navigationManager.NavigationManager,
33
+ default: () => AiChat_default,
34
+ delay: () => import_navigationManager.delay,
35
+ generateSuggestions: () => import_intentRecognizer2.generateSuggestions,
36
+ isTaskCreationIntent: () => import_intentRecognizer2.isTaskCreationIntent,
37
+ parseTaskDescription: () => import_intentRecognizer2.parseTaskDescription,
38
+ recognizeIntent: () => import_intentRecognizer2.recognizeIntent,
39
+ useAiChat: () => import_useAiChat2.useAiChat,
40
+ useTaskWorkflow: () => import_useTaskWorkflow2.useTaskWorkflow
41
+ });
42
+ module.exports = __toCommonJS(AiChat_exports);
43
+ var import_icons = require("@ant-design/icons");
44
+ var import_antd = require("antd");
45
+ var import_react = __toESM(require("react"));
46
+ var import_MarkdownRender = __toESM(require("./MarkdownRender"));
47
+ var import_useAiChat = require("./useAiChat");
48
+ var import_useTaskWorkflow = require("./useTaskWorkflow");
49
+ var import_intentRecognizer = require("./intentRecognizer");
50
+ var import_useAiChat2 = require("./useAiChat");
51
+ var import_useTaskWorkflow2 = require("./useTaskWorkflow");
52
+ var import_intentRecognizer2 = require("./intentRecognizer");
53
+ var import_navigationManager = require("./navigationManager");
54
+ var { TextArea } = import_antd.Input;
55
+ var { Title } = import_antd.Typography;
56
+ var AiChat = ({
57
+ apiPath = "/api/ai/chat-stream",
58
+ storageKey = "ai_chat_sessions",
59
+ position = { bottom: 24, right: 24 },
60
+ buttonSize = 56,
61
+ zIndex = 1080,
62
+ showSessionPanel = true,
63
+ showExport = true,
64
+ onBeforeSend,
65
+ onError,
66
+ onSuccess,
67
+ className,
68
+ style,
69
+ renderTrigger,
70
+ renderHeader,
71
+ renderFooter,
72
+ // 增强配置
73
+ taskWorkflow,
74
+ intentRecognition: intentConfig,
75
+ navigation: navConfig
76
+ }) => {
77
+ const {
78
+ sessions,
79
+ activeSession,
80
+ loading,
81
+ visible,
82
+ createNewSession,
83
+ switchSession,
84
+ deleteSession,
85
+ sendQuestion,
86
+ regenerateAnswer,
87
+ deleteSingleMsg,
88
+ clearCurrentSession,
89
+ exportCurrentSession,
90
+ cancelRequest,
91
+ toggleVisible
92
+ } = (0, import_useAiChat.useAiChat)({ apiPath, storageKey, onBeforeSend, onError, onSuccess });
93
+ const {
94
+ tasks,
95
+ createTask,
96
+ updateTaskStatus,
97
+ deleteTask,
98
+ exportTasks,
99
+ createTaskFromNaturalLanguage,
100
+ updateUrlWithTaskId,
101
+ refreshCurrentPage,
102
+ executeTaskCreationWorkflow
103
+ } = (0, import_useTaskWorkflow.useTaskWorkflow)({
104
+ enabled: taskWorkflow == null ? void 0 : taskWorkflow.enabled,
105
+ createTaskApi: taskWorkflow == null ? void 0 : taskWorkflow.createTaskApi,
106
+ supportedTaskTypes: taskWorkflow == null ? void 0 : taskWorkflow.supportedTaskTypes,
107
+ autoNavigate: taskWorkflow == null ? void 0 : taskWorkflow.autoNavigate,
108
+ refreshDelay: navConfig == null ? void 0 : navConfig.refreshDelay,
109
+ taskIdParamName: taskWorkflow == null ? void 0 : taskWorkflow.taskIdParamName,
110
+ taskTypeParamName: taskWorkflow == null ? void 0 : taskWorkflow.taskTypeParamName,
111
+ onTaskCreated: (taskId, taskData) => {
112
+ if (activeSession) {
113
+ const systemMsg = {
114
+ id: `${Date.now()}_sys`,
115
+ role: "system",
116
+ content: `任务创建成功,ID: ${taskId}`,
117
+ taskId
118
+ };
119
+ }
120
+ },
121
+ onError
122
+ });
123
+ const [inputValue, setInputValue] = (0, import_react.useState)("");
124
+ const [showSessions, setShowSessions] = (0, import_react.useState)(false);
125
+ const [suggestions, setSuggestions] = (0, import_react.useState)([]);
126
+ const messagesEndRef = (0, import_react.useRef)(null);
127
+ (0, import_react.useEffect)(() => {
128
+ var _a;
129
+ (_a = messagesEndRef.current) == null ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
130
+ }, [activeSession == null ? void 0 : activeSession.messages]);
131
+ const handleInputChange = (0, import_react.useCallback)((e) => {
132
+ const value = e.target.value;
133
+ setInputValue(value);
134
+ if (value.length > 3) {
135
+ const intent = (0, import_intentRecognizer.recognizeIntent)(value);
136
+ const newSuggestions = (0, import_intentRecognizer.generateSuggestions)(value, intent);
137
+ setSuggestions(newSuggestions);
138
+ } else {
139
+ setSuggestions([]);
140
+ }
141
+ }, []);
142
+ const handleSend = (0, import_react.useCallback)(async () => {
143
+ if (!inputValue.trim()) {
144
+ import_antd.message.warning("请输入问题");
145
+ return;
146
+ }
147
+ const content = inputValue.trim();
148
+ setInputValue("");
149
+ setSuggestions([]);
150
+ const intentEnabled = (intentConfig == null ? void 0 : intentConfig.enabled) !== false;
151
+ if (intentEnabled && (0, import_intentRecognizer.isTaskCreationIntent)(content)) {
152
+ await executeTaskCreationWorkflow(content);
153
+ return;
154
+ }
155
+ sendQuestion(content);
156
+ }, [inputValue, intentConfig == null ? void 0 : intentConfig.enabled, executeTaskCreationWorkflow, sendQuestion]);
157
+ const copyMsg = (c) => {
158
+ navigator.clipboard.writeText(c);
159
+ import_antd.message.success("复制成功");
160
+ };
161
+ const renderMsg = (item) => /* @__PURE__ */ import_react.default.createElement(
162
+ import_antd.List.Item,
163
+ {
164
+ key: item.id,
165
+ style: {
166
+ justifyContent: item.role === "user" ? "flex-end" : "flex-start",
167
+ marginBottom: 12,
168
+ padding: "4px 0"
169
+ }
170
+ },
171
+ /* @__PURE__ */ import_react.default.createElement(
172
+ "div",
173
+ {
174
+ style: {
175
+ maxWidth: "85%",
176
+ padding: "10px 14px",
177
+ borderRadius: 12,
178
+ backgroundColor: item.role === "user" ? "#1677ff" : item.role === "system" ? "#f6ffed" : "#fafafa",
179
+ color: item.role === "user" ? "#fff" : "#333",
180
+ border: item.role === "ai" ? "1px solid #f0f0f0" : item.role === "system" ? "1px solid #b7eb8f" : "none",
181
+ boxShadow: item.role === "user" ? "0 2px 8px rgba(22, 119, 255, 0.3)" : item.role === "system" ? "0 1px 4px rgba(82, 196, 26, 0.1)" : "0 1px 4px rgba(0,0,0,0.05)"
182
+ }
183
+ },
184
+ item.role === "user" ? /* @__PURE__ */ import_react.default.createElement("div", { style: { display: "flex", alignItems: "flex-start", gap: 8 } }, /* @__PURE__ */ import_react.default.createElement("span", null, item.content), /* @__PURE__ */ import_react.default.createElement(
185
+ import_icons.CopyOutlined,
186
+ {
187
+ onClick: () => copyMsg(item.content),
188
+ style: {
189
+ fontSize: 12,
190
+ color: "rgba(255,255,255,0.7)",
191
+ cursor: "pointer",
192
+ flexShrink: 0
193
+ }
194
+ }
195
+ )) : item.role === "system" ? /* @__PURE__ */ import_react.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: 8, fontSize: 13 } }, /* @__PURE__ */ import_react.default.createElement("span", { style: { color: "#52c41a" } }, "✓"), /* @__PURE__ */ import_react.default.createElement("span", null, item.content), item.taskId && /* @__PURE__ */ import_react.default.createElement(
196
+ import_antd.Button,
197
+ {
198
+ type: "link",
199
+ size: "small",
200
+ style: { padding: 0, fontSize: 12 },
201
+ onClick: () => updateUrlWithTaskId(item.taskId)
202
+ },
203
+ "查看任务"
204
+ )) : /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { style: { minHeight: 20 } }, /* @__PURE__ */ import_react.default.createElement(import_MarkdownRender.default, { content: item.content, msgId: item.id, isAi: true, onDelete: deleteSingleMsg })), item.loading && /* @__PURE__ */ import_react.default.createElement("span", { style: { color: "#1677ff", fontSize: 12 } }, " 思考中..."), !item.loading && /* @__PURE__ */ import_react.default.createElement(import_antd.Space, { size: 8, style: { fontSize: 12, marginTop: 6, display: "flex" } }, /* @__PURE__ */ import_react.default.createElement(import_antd.Tooltip, { title: "复制" }, /* @__PURE__ */ import_react.default.createElement(import_icons.CopyOutlined, { onClick: () => copyMsg(item.content), style: { cursor: "pointer", color: "#999" } })), /* @__PURE__ */ import_react.default.createElement(import_antd.Tooltip, { title: "重新生成" }, /* @__PURE__ */ import_react.default.createElement(import_icons.ReloadOutlined, { onClick: () => regenerateAnswer(item), style: { cursor: "pointer", color: "#999" } }))))
205
+ )
206
+ );
207
+ const renderSession = (s) => /* @__PURE__ */ import_react.default.createElement(
208
+ import_antd.List.Item,
209
+ {
210
+ key: s.id,
211
+ onClick: (e) => {
212
+ if (e.target.closest(".ant-popover, .ant-popconfirm")) {
213
+ return;
214
+ }
215
+ switchSession(s.id);
216
+ setShowSessions(false);
217
+ },
218
+ style: {
219
+ padding: "10px 12px",
220
+ borderRadius: 8,
221
+ cursor: "pointer",
222
+ backgroundColor: (activeSession == null ? void 0 : activeSession.id) === s.id ? "#e6f7ff" : "#fff",
223
+ transition: "all 0.2s"
224
+ }
225
+ },
226
+ /* @__PURE__ */ import_react.default.createElement(
227
+ "div",
228
+ {
229
+ style: {
230
+ flex: 1,
231
+ overflow: "hidden",
232
+ display: "flex",
233
+ justifyContent: "space-between",
234
+ alignItems: "center"
235
+ }
236
+ },
237
+ /* @__PURE__ */ import_react.default.createElement("div", { style: { flex: 1, overflow: "hidden" } }, /* @__PURE__ */ import_react.default.createElement(
238
+ "div",
239
+ {
240
+ style: {
241
+ fontSize: 14,
242
+ fontWeight: 500,
243
+ overflow: "hidden",
244
+ textOverflow: "ellipsis",
245
+ whiteSpace: "nowrap"
246
+ }
247
+ },
248
+ s.title
249
+ ), /* @__PURE__ */ import_react.default.createElement("div", { style: { fontSize: 12, color: "#999", marginTop: 2 } }, new Date(s.createTime).toLocaleString().slice(0, 16))),
250
+ /* @__PURE__ */ import_react.default.createElement(
251
+ import_antd.Popconfirm,
252
+ {
253
+ title: "确定删除?",
254
+ onConfirm: (e) => {
255
+ deleteSession(s.id, e);
256
+ }
257
+ },
258
+ /* @__PURE__ */ import_react.default.createElement(
259
+ import_icons.DeleteOutlined,
260
+ {
261
+ style: { color: "#ff4d4f", cursor: "pointer", marginLeft: 8 },
262
+ onClick: (e) => e.stopPropagation()
263
+ }
264
+ )
265
+ )
266
+ )
267
+ );
268
+ return /* @__PURE__ */ import_react.default.createElement(
269
+ "div",
270
+ {
271
+ className,
272
+ style: {
273
+ position: "fixed",
274
+ bottom: position.bottom,
275
+ right: position.right,
276
+ zIndex,
277
+ display: "flex",
278
+ flexDirection: "column",
279
+ alignItems: "flex-end",
280
+ ...style
281
+ }
282
+ },
283
+ !visible ? renderTrigger ? /* @__PURE__ */ import_react.default.createElement("div", { onClick: () => toggleVisible(true), style: { cursor: "pointer" } }, renderTrigger) : /* @__PURE__ */ import_react.default.createElement(
284
+ import_antd.Button,
285
+ {
286
+ type: "primary",
287
+ shape: "circle",
288
+ size: "large",
289
+ icon: /* @__PURE__ */ import_react.default.createElement(import_icons.MessageOutlined, null),
290
+ onClick: () => toggleVisible(true),
291
+ style: {
292
+ width: buttonSize,
293
+ height: buttonSize,
294
+ boxShadow: "0 4px 16px rgba(22, 119, 255, 0.4)"
295
+ }
296
+ }
297
+ ) : /* @__PURE__ */ import_react.default.createElement(
298
+ "div",
299
+ {
300
+ style: {
301
+ width: showSessions ? 960 : 720,
302
+ height: 680,
303
+ background: "#fff",
304
+ borderRadius: 12,
305
+ boxShadow: "0 4px 20px rgba(0,0,0,0.15)",
306
+ overflow: "hidden",
307
+ display: "flex",
308
+ flexDirection: "row",
309
+ marginBottom: 12,
310
+ transition: "width 0.2s ease",
311
+ position: "relative"
312
+ }
313
+ },
314
+ /* @__PURE__ */ import_react.default.createElement(
315
+ import_antd.Button,
316
+ {
317
+ type: "text",
318
+ icon: /* @__PURE__ */ import_react.default.createElement(import_icons.SwitcherOutlined, null),
319
+ onClick: () => toggleVisible(false),
320
+ style: {
321
+ position: "absolute",
322
+ top: -5,
323
+ right: -5,
324
+ zIndex: zIndex + 1,
325
+ fontSize: 14,
326
+ color: "#999"
327
+ }
328
+ }
329
+ ),
330
+ /* @__PURE__ */ import_react.default.createElement(
331
+ "div",
332
+ {
333
+ style: {
334
+ flex: 1,
335
+ display: "flex",
336
+ flexDirection: "column",
337
+ minWidth: 0
338
+ }
339
+ },
340
+ renderHeader || /* @__PURE__ */ import_react.default.createElement(
341
+ "div",
342
+ {
343
+ style: {
344
+ padding: "12px 16px",
345
+ background: "#fafafa",
346
+ borderBottom: "1px solid #f0f0f0",
347
+ display: "flex",
348
+ justifyContent: "space-between",
349
+ alignItems: "center",
350
+ flexShrink: 0
351
+ }
352
+ },
353
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Space, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { type: "text", icon: /* @__PURE__ */ import_react.default.createElement(import_icons.PlusOutlined, null), onClick: createNewSession, style: { fontWeight: 500 } }, "新会话"), /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { type: "text", icon: /* @__PURE__ */ import_react.default.createElement(import_icons.ClearOutlined, null), onClick: clearCurrentSession }, "清空")),
354
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Space, null, showExport && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { type: "text", icon: /* @__PURE__ */ import_react.default.createElement(import_icons.ExportOutlined, null), onClick: exportCurrentSession }, "导出"), (taskWorkflow == null ? void 0 : taskWorkflow.enabled) && /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { type: "text", icon: /* @__PURE__ */ import_react.default.createElement(import_icons.ExportOutlined, null), onClick: () => exportTasks("json") }, "导出任务")), showSessionPanel && /* @__PURE__ */ import_react.default.createElement(
355
+ import_antd.Button,
356
+ {
357
+ type: showSessions ? "primary" : "text",
358
+ icon: /* @__PURE__ */ import_react.default.createElement(import_icons.MenuOutlined, null),
359
+ onClick: () => setShowSessions(!showSessions)
360
+ },
361
+ showSessions ? "收起会话" : "会话"
362
+ ))
363
+ ),
364
+ /* @__PURE__ */ import_react.default.createElement(
365
+ "div",
366
+ {
367
+ style: {
368
+ flex: 1,
369
+ padding: 16,
370
+ overflowY: "auto"
371
+ }
372
+ },
373
+ !activeSession || activeSession.messages.length === 0 ? /* @__PURE__ */ import_react.default.createElement(
374
+ "div",
375
+ {
376
+ style: {
377
+ textAlign: "center",
378
+ padding: "60px 0",
379
+ color: "#999"
380
+ }
381
+ },
382
+ /* @__PURE__ */ import_react.default.createElement(import_icons.MessageOutlined, { style: { fontSize: 48, color: "#d9d9d9" } }),
383
+ /* @__PURE__ */ import_react.default.createElement("div", { style: { marginTop: 16 } }, "开始你的 AI 对话"),
384
+ /* @__PURE__ */ import_react.default.createElement("div", { style: { marginTop: 8, fontSize: 13, color: "#bfbfbf" } }, "我可以帮你解答问题、创建任务"),
385
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { type: "primary", onClick: createNewSession, style: { marginTop: 20 } }, "新建会话")
386
+ ) : /* @__PURE__ */ import_react.default.createElement(import_antd.List, { dataSource: activeSession.messages, renderItem: renderMsg }),
387
+ /* @__PURE__ */ import_react.default.createElement("div", { ref: messagesEndRef })
388
+ ),
389
+ renderFooter || /* @__PURE__ */ import_react.default.createElement(
390
+ "div",
391
+ {
392
+ style: {
393
+ padding: 12,
394
+ borderTop: "1px solid #f0f0f0",
395
+ background: "#fafafa",
396
+ flexShrink: 0
397
+ }
398
+ },
399
+ suggestions.length > 0 && /* @__PURE__ */ import_react.default.createElement(
400
+ "div",
401
+ {
402
+ style: {
403
+ marginBottom: 8,
404
+ display: "flex",
405
+ flexWrap: "wrap",
406
+ gap: 4
407
+ }
408
+ },
409
+ suggestions.slice(0, 3).map((suggestion, index) => /* @__PURE__ */ import_react.default.createElement(
410
+ import_antd.Button,
411
+ {
412
+ key: index,
413
+ size: "small",
414
+ type: "dashed",
415
+ onClick: () => setInputValue(suggestion),
416
+ style: { fontSize: 12 }
417
+ },
418
+ suggestion
419
+ ))
420
+ ),
421
+ /* @__PURE__ */ import_react.default.createElement(
422
+ TextArea,
423
+ {
424
+ value: inputValue,
425
+ onChange: handleInputChange,
426
+ placeholder: "输入问题或任务描述,如:帮我创建一个paimon调用任务",
427
+ autoSize: { minRows: 2, maxRows: 4 },
428
+ onPressEnter: (e) => {
429
+ if (!e.shiftKey) {
430
+ e.preventDefault();
431
+ handleSend();
432
+ }
433
+ },
434
+ style: { marginBottom: 8, borderRadius: 8 },
435
+ disabled: loading
436
+ }
437
+ ),
438
+ /* @__PURE__ */ import_react.default.createElement("div", { style: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ import_react.default.createElement(import_antd.Space, null, loading && /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { danger: true, icon: /* @__PURE__ */ import_react.default.createElement(import_icons.StopOutlined, null), onClick: cancelRequest, size: "small" }, "取消"), /* @__PURE__ */ import_react.default.createElement(
439
+ import_antd.Button,
440
+ {
441
+ type: "primary",
442
+ icon: /* @__PURE__ */ import_react.default.createElement(import_icons.SendOutlined, null),
443
+ onClick: handleSend,
444
+ loading,
445
+ disabled: !inputValue.trim(),
446
+ size: "small"
447
+ },
448
+ "发送"
449
+ )))
450
+ ),
451
+ showSessionPanel && showSessions && /* @__PURE__ */ import_react.default.createElement(
452
+ "div",
453
+ {
454
+ style: {
455
+ width: 240,
456
+ borderLeft: "1px solid #f0f0f0",
457
+ padding: 16,
458
+ background: "#fafafa",
459
+ overflowY: "auto",
460
+ flexShrink: 0
461
+ }
462
+ },
463
+ /* @__PURE__ */ import_react.default.createElement(
464
+ "div",
465
+ {
466
+ style: {
467
+ display: "flex",
468
+ justifyContent: "space-between",
469
+ alignItems: "center",
470
+ marginBottom: 16
471
+ }
472
+ },
473
+ /* @__PURE__ */ import_react.default.createElement(Title, { level: 5, style: { margin: 0 } }, "我的会话"),
474
+ /* @__PURE__ */ import_react.default.createElement(
475
+ import_antd.Button,
476
+ {
477
+ type: "link",
478
+ size: "small",
479
+ onClick: () => {
480
+ setShowSessions(false);
481
+ },
482
+ style: { padding: 0 }
483
+ },
484
+ "收起"
485
+ )
486
+ ),
487
+ /* @__PURE__ */ import_react.default.createElement(
488
+ import_antd.List,
489
+ {
490
+ dataSource: sessions,
491
+ renderItem: renderSession,
492
+ locale: { emptyText: "暂无会话" },
493
+ style: { marginBottom: 16 }
494
+ }
495
+ ),
496
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { type: "primary", block: true, icon: /* @__PURE__ */ import_react.default.createElement(import_icons.PlusOutlined, null), onClick: createNewSession }, "新建会话")
497
+ )
498
+ )
499
+ )
500
+ );
501
+ };
502
+ var AiChat_default = AiChat;
503
+ // Annotate the CommonJS export names for ESM import in node:
504
+ 0 && (module.exports = {
505
+ NavigationManager,
506
+ delay,
507
+ generateSuggestions,
508
+ isTaskCreationIntent,
509
+ parseTaskDescription,
510
+ recognizeIntent,
511
+ useAiChat,
512
+ useTaskWorkflow
513
+ });
514
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/business/AiChat/index.tsx"],
4
+ "sourcesContent": ["import {\n ClearOutlined,\n CopyOutlined,\n DeleteOutlined,\n ExportOutlined,\n MenuOutlined,\n MessageOutlined,\n MinusSquareOutlined,\n PlusOutlined,\n ReloadOutlined,\n SendOutlined,\n StopOutlined,\n SwitcherOutlined,\n} from '@ant-design/icons';\nimport { Button, Input, List, message, Popconfirm, Space, Tooltip, Typography } from 'antd';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport type { CSSProperties, FC, ReactNode } from 'react';\nimport MarkdownRender from './MarkdownRender';\nimport type { AiChatConfig, ChatSession, EnhancedAiChatConfig, Message } from './type';\nimport { useAiChat } from './useAiChat';\nimport { useTaskWorkflow } from './useTaskWorkflow';\nimport { recognizeIntent, generateSuggestions, isTaskCreationIntent } from './intentRecognizer';\n\nconst { TextArea } = Input;\nconst { Title } = Typography;\n\n// 合并Props类型\nexport interface AiChatProps extends AiChatConfig, Partial<EnhancedAiChatConfig> {\n className?: string;\n style?: CSSProperties;\n renderTrigger?: ReactNode;\n renderHeader?: ReactNode;\n renderFooter?: ReactNode;\n}\n\nconst AiChat: FC<AiChatProps> = ({\n apiPath = '/api/ai/chat-stream',\n storageKey = 'ai_chat_sessions',\n position = { bottom: 24, right: 24 },\n buttonSize = 56,\n zIndex = 1080,\n showSessionPanel = true,\n showExport = true,\n onBeforeSend,\n onError,\n onSuccess,\n className,\n style,\n renderTrigger,\n renderHeader,\n renderFooter,\n // 增强配置\n taskWorkflow,\n intentRecognition: intentConfig,\n navigation: navConfig,\n}) => {\n const {\n sessions,\n activeSession,\n loading,\n visible,\n createNewSession,\n switchSession,\n deleteSession,\n sendQuestion,\n regenerateAnswer,\n deleteSingleMsg,\n clearCurrentSession,\n exportCurrentSession,\n cancelRequest,\n toggleVisible,\n } = useAiChat({ apiPath, storageKey, onBeforeSend, onError, onSuccess });\n\n // 任务工作流\n const {\n tasks,\n createTask,\n updateTaskStatus,\n deleteTask,\n exportTasks,\n createTaskFromNaturalLanguage,\n updateUrlWithTaskId,\n refreshCurrentPage,\n executeTaskCreationWorkflow,\n } = useTaskWorkflow({\n enabled: taskWorkflow?.enabled,\n createTaskApi: taskWorkflow?.createTaskApi,\n supportedTaskTypes: taskWorkflow?.supportedTaskTypes,\n autoNavigate: taskWorkflow?.autoNavigate,\n refreshDelay: navConfig?.refreshDelay,\n taskIdParamName: taskWorkflow?.taskIdParamName,\n taskTypeParamName: taskWorkflow?.taskTypeParamName,\n onTaskCreated: (taskId, taskData) => {\n // 添加系统消息到会话\n if (activeSession) {\n const systemMsg: Message = {\n id: `${Date.now()}_sys`,\n role: 'system',\n content: `任务创建成功,ID: ${taskId}`,\n taskId,\n };\n // 这里可以添加到消息列表的逻辑\n }\n },\n onError,\n });\n\n const [inputValue, setInputValue] = useState('');\n const [showSessions, setShowSessions] = useState(false);\n const [suggestions, setSuggestions] = useState<string[]>([]);\n const messagesEndRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' });\n }, [activeSession?.messages]);\n\n // 实时分析输入内容生成建议\n const handleInputChange = useCallback((e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const value = e.target.value;\n setInputValue(value);\n\n if (value.length > 3) {\n const intent = recognizeIntent(value);\n const newSuggestions = generateSuggestions(value, intent);\n setSuggestions(newSuggestions);\n } else {\n setSuggestions([]);\n }\n }, []);\n\n // 判断是否为任务创建意图并执行工作流\n const handleSend = useCallback(async () => {\n if (!inputValue.trim()) {\n message.warning('请输入问题');\n return;\n }\n\n const content = inputValue.trim();\n setInputValue('');\n setSuggestions([]);\n\n // 检查是否为任务创建意图\n const intentEnabled = intentConfig?.enabled !== false;\n if (intentEnabled && isTaskCreationIntent(content)) {\n // 执行任务创建工作流\n await executeTaskCreationWorkflow(content);\n return;\n }\n\n // 普通问答\n sendQuestion(content);\n }, [inputValue, intentConfig?.enabled, executeTaskCreationWorkflow, sendQuestion]);\n\n const copyMsg = (c: string) => {\n navigator.clipboard.writeText(c);\n message.success('复制成功');\n };\n\n const renderMsg = (item: Message) => (\n <List.Item\n key={item.id}\n style={{\n justifyContent: item.role === 'user' ? 'flex-end' : 'flex-start',\n marginBottom: 12,\n padding: '4px 0',\n }}\n >\n <div\n style={{\n maxWidth: '85%',\n padding: '10px 14px',\n borderRadius: 12,\n backgroundColor: item.role === 'user' ? '#1677ff' : item.role === 'system' ? '#f6ffed' : '#fafafa',\n color: item.role === 'user' ? '#fff' : '#333',\n border: item.role === 'ai' ? '1px solid #f0f0f0' : item.role === 'system' ? '1px solid #b7eb8f' : 'none',\n boxShadow:\n item.role === 'user'\n ? '0 2px 8px rgba(22, 119, 255, 0.3)'\n : item.role === 'system'\n ? '0 1px 4px rgba(82, 196, 26, 0.1)'\n : '0 1px 4px rgba(0,0,0,0.05)',\n }}\n >\n {item.role === 'user' ? (\n <div style={{ display: 'flex', alignItems: 'flex-start', gap: 8 }}>\n <span>{item.content}</span>\n <CopyOutlined\n onClick={() => copyMsg(item.content)}\n style={{\n fontSize: 12,\n color: 'rgba(255,255,255,0.7)',\n cursor: 'pointer',\n flexShrink: 0,\n }}\n />\n </div>\n ) : item.role === 'system' ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: 8, fontSize: 13 }}>\n <span style={{ color: '#52c41a' }}>✓</span>\n <span>{item.content}</span>\n {item.taskId && (\n <Button\n type='link'\n size='small'\n style={{ padding: 0, fontSize: 12 }}\n onClick={() => updateUrlWithTaskId(item.taskId!)}\n >\n 查看任务\n </Button>\n )}\n </div>\n ) : (\n <>\n <div style={{ minHeight: 20 }}>\n <MarkdownRender content={item.content} msgId={item.id} isAi={true} onDelete={deleteSingleMsg} />\n </div>\n {item.loading && <span style={{ color: '#1677ff', fontSize: 12 }}> 思考中...</span>}\n {!item.loading && (\n <Space size={8} style={{ fontSize: 12, marginTop: 6, display: 'flex' }}>\n <Tooltip title='复制'>\n <CopyOutlined onClick={() => copyMsg(item.content)} style={{ cursor: 'pointer', color: '#999' }} />\n </Tooltip>\n <Tooltip title='重新生成'>\n <ReloadOutlined onClick={() => regenerateAnswer(item)} style={{ cursor: 'pointer', color: '#999' }} />\n </Tooltip>\n </Space>\n )}\n </>\n )}\n </div>\n </List.Item>\n );\n\n const renderSession = (s: ChatSession) => (\n <List.Item\n key={s.id}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('.ant-popover, .ant-popconfirm')) {\n return;\n }\n switchSession(s.id);\n setShowSessions(false);\n }}\n style={{\n padding: '10px 12px',\n borderRadius: 8,\n cursor: 'pointer',\n backgroundColor: activeSession?.id === s.id ? '#e6f7ff' : '#fff',\n transition: 'all 0.2s',\n }}\n >\n <div\n style={{\n flex: 1,\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <div style={{ flex: 1, overflow: 'hidden' }}>\n <div\n style={{\n fontSize: 14,\n fontWeight: 500,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n >\n {s.title}\n </div>\n <div style={{ fontSize: 12, color: '#999', marginTop: 2 }}>\n {new Date(s.createTime).toLocaleString().slice(0, 16)}\n </div>\n </div>\n <Popconfirm\n title='确定删除?'\n onConfirm={(e: any) => {\n deleteSession(s.id, e as React.MouseEvent);\n }}\n >\n <DeleteOutlined\n style={{ color: '#ff4d4f', cursor: 'pointer', marginLeft: 8 }}\n onClick={(e) => e.stopPropagation()}\n />\n </Popconfirm>\n </div>\n </List.Item>\n );\n\n return (\n <div\n className={className}\n style={{\n position: 'fixed',\n bottom: position.bottom,\n right: position.right,\n zIndex,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n ...style,\n }}\n >\n {!visible ? (\n renderTrigger ? (\n <div onClick={() => toggleVisible(true)} style={{ cursor: 'pointer' }}>\n {renderTrigger}\n </div>\n ) : (\n <Button\n type='primary'\n shape='circle'\n size='large'\n icon={<MessageOutlined />}\n onClick={() => toggleVisible(true)}\n style={{\n width: buttonSize,\n height: buttonSize,\n boxShadow: '0 4px 16px rgba(22, 119, 255, 0.4)',\n }}\n />\n )\n ) : (\n <div\n style={{\n width: showSessions ? 960 : 720,\n height: 680,\n background: '#fff',\n borderRadius: 12,\n boxShadow: '0 4px 20px rgba(0,0,0,0.15)',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 12,\n transition: 'width 0.2s ease',\n position: 'relative',\n }}\n >\n {/* 关闭按钮 - 弹窗内部右上角 */}\n <Button\n type='text'\n icon={<SwitcherOutlined />}\n onClick={() => toggleVisible(false)}\n style={{\n position: 'absolute',\n top: -5,\n right: -5,\n zIndex: zIndex + 1,\n fontSize: 14,\n color: '#999',\n }}\n />\n\n <div\n style={{\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n minWidth: 0,\n }}\n >\n {renderHeader || (\n <div\n style={{\n padding: '12px 16px',\n background: '#fafafa',\n borderBottom: '1px solid #f0f0f0',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexShrink: 0,\n }}\n >\n <Space>\n <Button type='text' icon={<PlusOutlined />} onClick={createNewSession} style={{ fontWeight: 500 }}>\n 新会话\n </Button>\n <Button type='text' icon={<ClearOutlined />} onClick={clearCurrentSession}>\n 清空\n </Button>\n </Space>\n <Space>\n {showExport && (\n <>\n <Button type='text' icon={<ExportOutlined />} onClick={exportCurrentSession}>\n 导出\n </Button>\n {taskWorkflow?.enabled && (\n <Button type='text' icon={<ExportOutlined />} onClick={() => exportTasks('json')}>\n 导出任务\n </Button>\n )}\n </>\n )}\n {showSessionPanel && (\n <Button\n type={showSessions ? 'primary' : 'text'}\n icon={<MenuOutlined />}\n onClick={() => setShowSessions(!showSessions)}\n >\n {showSessions ? '收起会话' : '会话'}\n </Button>\n )}\n </Space>\n </div>\n )}\n\n <div\n style={{\n flex: 1,\n padding: 16,\n overflowY: 'auto',\n }}\n >\n {!activeSession || activeSession.messages.length === 0 ? (\n <div\n style={{\n textAlign: 'center',\n padding: '60px 0',\n color: '#999',\n }}\n >\n <MessageOutlined style={{ fontSize: 48, color: '#d9d9d9' }} />\n <div style={{ marginTop: 16 }}>开始你的 AI 对话</div>\n <div style={{ marginTop: 8, fontSize: 13, color: '#bfbfbf' }}>我可以帮你解答问题、创建任务</div>\n <Button type='primary' onClick={createNewSession} style={{ marginTop: 20 }}>\n 新建会话\n </Button>\n </div>\n ) : (\n <List dataSource={activeSession.messages} renderItem={renderMsg} />\n )}\n <div ref={messagesEndRef} />\n </div>\n\n {renderFooter || (\n <div\n style={{\n padding: 12,\n borderTop: '1px solid #f0f0f0',\n background: '#fafafa',\n flexShrink: 0,\n }}\n >\n {/* 智能建议 */}\n {suggestions.length > 0 && (\n <div\n style={{\n marginBottom: 8,\n display: 'flex',\n flexWrap: 'wrap',\n gap: 4,\n }}\n >\n {suggestions.slice(0, 3).map((suggestion, index) => (\n <Button\n key={index}\n size='small'\n type='dashed'\n onClick={() => setInputValue(suggestion)}\n style={{ fontSize: 12 }}\n >\n {suggestion}\n </Button>\n ))}\n </div>\n )}\n <TextArea\n value={inputValue}\n onChange={handleInputChange}\n placeholder='输入问题或任务描述,如:帮我创建一个paimon调用任务'\n autoSize={{ minRows: 2, maxRows: 4 }}\n onPressEnter={(e) => {\n if (!e.shiftKey) {\n e.preventDefault();\n handleSend();\n }\n }}\n style={{ marginBottom: 8, borderRadius: 8 }}\n disabled={loading}\n />\n <div style={{ display: 'flex', justifyContent: 'flex-end' }}>\n <Space>\n {loading && (\n <Button danger icon={<StopOutlined />} onClick={cancelRequest} size='small'>\n 取消\n </Button>\n )}\n <Button\n type='primary'\n icon={<SendOutlined />}\n onClick={handleSend}\n loading={loading}\n disabled={!inputValue.trim()}\n size='small'\n >\n 发送\n </Button>\n </Space>\n </div>\n </div>\n )}\n\n {showSessionPanel && showSessions && (\n <div\n style={{\n width: 240,\n borderLeft: '1px solid #f0f0f0',\n padding: 16,\n background: '#fafafa',\n overflowY: 'auto',\n flexShrink: 0,\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 16,\n }}\n >\n <Title level={5} style={{ margin: 0 }}>\n 我的会话\n </Title>\n <Button\n type='link'\n size='small'\n onClick={() => {\n setShowSessions(false);\n }}\n style={{ padding: 0 }}\n >\n 收起\n </Button>\n </div>\n <List\n dataSource={sessions}\n renderItem={renderSession}\n locale={{ emptyText: '暂无会话' }}\n style={{ marginBottom: 16 }}\n />\n <Button type='primary' block icon={<PlusOutlined />} onClick={createNewSession}>\n 新建会话\n </Button>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default AiChat;\nexport { useAiChat } from './useAiChat';\nexport { useTaskWorkflow } from './useTaskWorkflow';\nexport { recognizeIntent, generateSuggestions, isTaskCreationIntent, parseTaskDescription } from './intentRecognizer';\nexport { NavigationManager, delay } from './navigationManager';\nexport type {\n AiChatConfig,\n ChatSession,\n Message,\n UseAiChatOptions,\n UseAiChatReturn,\n Intent,\n IntentType,\n Task,\n TaskCategory,\n TaskPriority,\n TaskStatus,\n TaskCreationResult,\n NavigationOptions,\n EnhancedAiChatConfig,\n} from './type';\n"],
5
+ "mappings": "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",
6
+ "names": ["import_useAiChat", "import_useTaskWorkflow", "import_intentRecognizer", "React", "MarkdownRender"]
7
+ }
@@ -0,0 +1,33 @@
1
+ import type { Intent, IntentPattern, TaskCategory } from './type';
2
+ /**
3
+ * 识别用户意图
4
+ * @param text 用户输入文本
5
+ * @param customPatterns 自定义意图模式
6
+ * @returns 识别结果
7
+ */
8
+ export declare function recognizeIntent(text: string, customPatterns?: IntentPattern[]): Intent;
9
+ /**
10
+ * 生成建议问题
11
+ * @param text 用户输入文本
12
+ * @param intent 识别的意图
13
+ * @returns 建议问题列表
14
+ */
15
+ export declare function generateSuggestions(text: string, intent: Intent): string[];
16
+ /**
17
+ * 判断是否为任务创建意图
18
+ * @param text 用户输入文本
19
+ * @param threshold 置信度阈值
20
+ * @returns 是否为任务创建意图
21
+ */
22
+ export declare function isTaskCreationIntent(text: string, threshold?: number): boolean;
23
+ /**
24
+ * 创建任务描述(自然语言转结构化数据)
25
+ * @param text 用户输入文本
26
+ * @returns 结构化的任务描述
27
+ */
28
+ export declare function parseTaskDescription(text: string): {
29
+ taskType: TaskCategory;
30
+ taskName: string;
31
+ description: string;
32
+ priority: 'high' | 'medium' | 'low';
33
+ };