@yoka-ui/ui 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/@Docs-yoka/exports.generated.md +93 -0
  2. package/@Docs-yoka/llms.txt +23 -0
  3. package/README.md +113 -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 +733 -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 +16 -0
  28. package/dist/es/business/AiChat/sse.js +171 -0
  29. package/dist/es/business/AiChat/sse.js.map +7 -0
  30. package/dist/es/business/AiChat/type.d.ts +156 -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 +268 -0
  35. package/dist/es/business/AiChat/useAiChat.js.map +7 -0
  36. package/dist/es/business/AiChat/useTaskWorkflow.d.ts +25 -0
  37. package/dist/es/business/AiChat/useTaskWorkflow.js +196 -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/YkDateRangePicker.mdx +180 -0
  131. package/dist/es/components/YkDateRangePicker/index.d.ts +61 -0
  132. package/dist/es/components/YkDateRangePicker/index.js +317 -0
  133. package/dist/es/components/YkDateRangePicker/index.js.map +7 -0
  134. package/dist/es/components/YkDateRangePicker/index.module.less +304 -0
  135. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
  136. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +193 -0
  137. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
  138. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
  139. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +576 -0
  140. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
  141. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
  142. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +55 -0
  143. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
  144. package/dist/es/components/YkRangeDateWithVS/index.d.ts +62 -0
  145. package/dist/es/components/YkRangeDateWithVS/index.js +130 -0
  146. package/dist/es/components/YkRangeDateWithVS/index.js.map +7 -0
  147. package/dist/es/components/YkRangeDateWithVS/index.module.less +566 -0
  148. package/dist/es/components/YkRangeDateWithVS/styles.d.ts +2 -0
  149. package/dist/es/components/YkRangeDateWithVS/styles.js +18 -0
  150. package/dist/es/components/YkRangeDateWithVS/styles.js.map +7 -0
  151. package/dist/es/components/YkRangeDateWithVS/typing.d.ts +15 -0
  152. package/dist/es/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
  153. package/dist/es/components/YkRangeTimeWithRecent/constants.js +288 -0
  154. package/dist/es/components/YkRangeTimeWithRecent/constants.js.map +7 -0
  155. package/dist/es/components/YkRangeTimeWithRecent/index.d.ts +26 -0
  156. package/dist/es/components/YkRangeTimeWithRecent/index.js +647 -0
  157. package/dist/es/components/YkRangeTimeWithRecent/index.js.map +7 -0
  158. package/dist/es/components/YkRangeTimeWithRecent/index.module.less +263 -0
  159. package/dist/es/creative/ButtonRadioWithInfo/index.d.ts +17 -0
  160. package/dist/es/creative/ButtonRadioWithInfo/index.js +103 -0
  161. package/dist/es/creative/ButtonRadioWithInfo/index.js.map +7 -0
  162. package/dist/es/creative/ButtonRadioWithInfo/index.less +106 -0
  163. package/dist/es/creative/ButtonWithProgress/index.d.ts +11 -0
  164. package/dist/es/creative/ButtonWithProgress/index.js +79 -0
  165. package/dist/es/creative/ButtonWithProgress/index.js.map +7 -0
  166. package/dist/es/creative/ButtonWithProgress/index.less +66 -0
  167. package/dist/es/global.less +12 -0
  168. package/dist/es/index.d.ts +43 -0
  169. package/dist/es/index.js +87 -0
  170. package/dist/es/index.js.map +7 -0
  171. package/dist/es/index.less +35 -0
  172. package/dist/es/layout/FlexGrid/index.d.ts +25 -0
  173. package/dist/es/layout/FlexGrid/index.js +63 -0
  174. package/dist/es/layout/FlexGrid/index.js.map +7 -0
  175. package/dist/es/layout/YkContainer/index.d.ts +27 -0
  176. package/dist/es/layout/YkContainer/index.js +79 -0
  177. package/dist/es/layout/YkContainer/index.js.map +7 -0
  178. package/dist/es/layout/YkDrawer/index.d.ts +22 -0
  179. package/dist/es/layout/YkDrawer/index.js +160 -0
  180. package/dist/es/layout/YkDrawer/index.js.map +7 -0
  181. package/dist/es/layout/YkDrawer/index.module.less +45 -0
  182. package/dist/es/ui/LabelSelect/demo.d.ts +3 -0
  183. package/dist/es/ui/LabelSelect/demo.js +83 -0
  184. package/dist/es/ui/LabelSelect/demo.js.map +7 -0
  185. package/dist/es/ui/LabelSelect/index.d.ts +41 -0
  186. package/dist/es/ui/LabelSelect/index.js +136 -0
  187. package/dist/es/ui/LabelSelect/index.js.map +7 -0
  188. package/dist/es/ui/LogicOperator/index.d.ts +10 -0
  189. package/dist/es/ui/LogicOperator/index.js +12 -0
  190. package/dist/es/ui/LogicOperator/index.js.map +7 -0
  191. package/dist/es/ui/LogicOperator/index.module.less +97 -0
  192. package/dist/es/ui/YkButton/index.d.ts +9 -0
  193. package/dist/es/ui/YkButton/index.js +59 -0
  194. package/dist/es/ui/YkButton/index.js.map +7 -0
  195. package/dist/es/ui/YkCard/index.d.ts +4 -0
  196. package/dist/es/ui/YkCard/index.js +79 -0
  197. package/dist/es/ui/YkCard/index.js.map +7 -0
  198. package/dist/es/ui/YkCard/index.module.less +30 -0
  199. package/dist/es/ui/YkCheckbox/index.d.ts +4 -0
  200. package/dist/es/ui/YkCheckbox/index.js +45 -0
  201. package/dist/es/ui/YkCheckbox/index.js.map +7 -0
  202. package/dist/es/ui/YkCheckbox/index.module.less +22 -0
  203. package/dist/es/ui/YkDescriptions/index.d.ts +4 -0
  204. package/dist/es/ui/YkDescriptions/index.js +41 -0
  205. package/dist/es/ui/YkDescriptions/index.js.map +7 -0
  206. package/dist/es/ui/YkPagination/index.d.ts +4 -0
  207. package/dist/es/ui/YkPagination/index.js +63 -0
  208. package/dist/es/ui/YkPagination/index.js.map +7 -0
  209. package/dist/es/ui/YkPagination/index.module.less +22 -0
  210. package/dist/es/ui/YkRadio/index.d.ts +4 -0
  211. package/dist/es/ui/YkRadio/index.js +51 -0
  212. package/dist/es/ui/YkRadio/index.js.map +7 -0
  213. package/dist/es/ui/YkRadio/index.module.less +22 -0
  214. package/dist/es/ui/YkRadioBtnSpecial/index.d.ts +15 -0
  215. package/dist/es/ui/YkRadioBtnSpecial/index.js +23 -0
  216. package/dist/es/ui/YkRadioBtnSpecial/index.js.map +7 -0
  217. package/dist/es/ui/YkRadioBtnSpecial/index.module.less +112 -0
  218. package/dist/es/ui/YkSegmented/index.d.ts +4 -0
  219. package/dist/es/ui/YkSegmented/index.js +41 -0
  220. package/dist/es/ui/YkSegmented/index.js.map +7 -0
  221. package/dist/es/ui/YkSelect/index.d.ts +7 -0
  222. package/dist/es/ui/YkSelect/index.js +54 -0
  223. package/dist/es/ui/YkSelect/index.js.map +7 -0
  224. package/dist/es/ui/YkSpin/index.d.ts +4 -0
  225. package/dist/es/ui/YkSpin/index.js +41 -0
  226. package/dist/es/ui/YkSpin/index.js.map +7 -0
  227. package/dist/es/ui/YkStatistic/index.d.ts +4 -0
  228. package/dist/es/ui/YkStatistic/index.js +41 -0
  229. package/dist/es/ui/YkStatistic/index.js.map +7 -0
  230. package/dist/es/ui/YkSwitch/index.d.ts +4 -0
  231. package/dist/es/ui/YkSwitch/index.js +51 -0
  232. package/dist/es/ui/YkSwitch/index.js.map +7 -0
  233. package/dist/es/ui/YkTabs/index.d.ts +12 -0
  234. package/dist/es/ui/YkTabs/index.js +75 -0
  235. package/dist/es/ui/YkTabs/index.js.map +7 -0
  236. package/dist/es/ui/YkTabs/index.module.less +11 -0
  237. package/dist/es/ui/YkTooltip/index.d.ts +4 -0
  238. package/dist/es/ui/YkTooltip/index.js +50 -0
  239. package/dist/es/ui/YkTooltip/index.js.map +7 -0
  240. package/dist/es/utils/styleUtils.d.ts +18 -0
  241. package/dist/es/utils/styleUtils.js +57 -0
  242. package/dist/es/utils/styleUtils.js.map +7 -0
  243. package/dist/es/utils/ykStorybookDoc.d.ts +17 -0
  244. package/dist/es/utils/ykStorybookDoc.js +18 -0
  245. package/dist/es/utils/ykStorybookDoc.js.map +7 -0
  246. package/dist/lib/Themes/InputTheme/index.d.ts +6 -0
  247. package/dist/lib/Themes/InputTheme/index.js +52 -0
  248. package/dist/lib/Themes/InputTheme/index.js.map +7 -0
  249. package/dist/lib/Themes/TableTheme/index.d.ts +7 -0
  250. package/dist/lib/Themes/TableTheme/index.js +61 -0
  251. package/dist/lib/Themes/TableTheme/index.js.map +7 -0
  252. package/dist/lib/Themes/TableTheme/index.less +46 -0
  253. package/dist/lib/assets/image/YKUI-logo.png +0 -0
  254. package/dist/lib/assets/less/ant-reset.less +402 -0
  255. package/dist/lib/assets/less/index.less +1 -0
  256. package/dist/lib/assets/less/variables.less +16 -0
  257. package/dist/lib/business/AiChat/MarkdownRender.d.ts +9 -0
  258. package/dist/lib/business/AiChat/MarkdownRender.js +102 -0
  259. package/dist/lib/business/AiChat/MarkdownRender.js.map +7 -0
  260. package/dist/lib/business/AiChat/index.d.ts +16 -0
  261. package/dist/lib/business/AiChat/index.js +723 -0
  262. package/dist/lib/business/AiChat/index.js.map +7 -0
  263. package/dist/lib/business/AiChat/intentRecognizer.d.ts +33 -0
  264. package/dist/lib/business/AiChat/intentRecognizer.js +193 -0
  265. package/dist/lib/business/AiChat/intentRecognizer.js.map +7 -0
  266. package/dist/lib/business/AiChat/navigationManager.d.ts +94 -0
  267. package/dist/lib/business/AiChat/navigationManager.js +214 -0
  268. package/dist/lib/business/AiChat/navigationManager.js.map +7 -0
  269. package/dist/lib/business/AiChat/sse.d.ts +16 -0
  270. package/dist/lib/business/AiChat/sse.js +171 -0
  271. package/dist/lib/business/AiChat/sse.js.map +7 -0
  272. package/dist/lib/business/AiChat/type.d.ts +156 -0
  273. package/dist/lib/business/AiChat/type.js +18 -0
  274. package/dist/lib/business/AiChat/type.js.map +7 -0
  275. package/dist/lib/business/AiChat/useAiChat.d.ts +2 -0
  276. package/dist/lib/business/AiChat/useAiChat.js +252 -0
  277. package/dist/lib/business/AiChat/useAiChat.js.map +7 -0
  278. package/dist/lib/business/AiChat/useTaskWorkflow.d.ts +25 -0
  279. package/dist/lib/business/AiChat/useTaskWorkflow.js +182 -0
  280. package/dist/lib/business/AiChat/useTaskWorkflow.js.map +7 -0
  281. package/dist/lib/business/DrawerPageInfo/index.d.ts +35 -0
  282. package/dist/lib/business/DrawerPageInfo/index.js +163 -0
  283. package/dist/lib/business/DrawerPageInfo/index.js.map +7 -0
  284. package/dist/lib/business/DrawerPageInfo/index.module.less +87 -0
  285. package/dist/lib/business/DrawerPageInfo/test.png +0 -0
  286. package/dist/lib/business/Editor/index.d.ts +11 -0
  287. package/dist/lib/business/Editor/index.js +99 -0
  288. package/dist/lib/business/Editor/index.js.map +7 -0
  289. package/dist/lib/business/Editor/index.less +31 -0
  290. package/dist/lib/business/Empty/empty.png +0 -0
  291. package/dist/lib/business/Empty/index.d.ts +19 -0
  292. package/dist/lib/business/Empty/index.js +65 -0
  293. package/dist/lib/business/Empty/index.js.map +7 -0
  294. package/dist/lib/business/ModCommonFilter/assets/images/empty.png +0 -0
  295. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.d.ts +13 -0
  296. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js +50 -0
  297. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js.map +7 -0
  298. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.d.ts +13 -0
  299. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js +50 -0
  300. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js.map +7 -0
  301. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.d.ts +25 -0
  302. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js +60 -0
  303. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js.map +7 -0
  304. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.module.less +97 -0
  305. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.d.ts +18 -0
  306. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js +69 -0
  307. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js.map +7 -0
  308. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.d.ts +37 -0
  309. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js +211 -0
  310. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js.map +7 -0
  311. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.d.ts +26 -0
  312. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js +97 -0
  313. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js.map +7 -0
  314. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.d.ts +51 -0
  315. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js +101 -0
  316. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js.map +7 -0
  317. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.module.less +260 -0
  318. package/dist/lib/business/ModCommonFilter/index.d.ts +53 -0
  319. package/dist/lib/business/ModCommonFilter/index.js +143 -0
  320. package/dist/lib/business/ModCommonFilter/index.js.map +7 -0
  321. package/dist/lib/business/ModCommonFilter/index.module.less +7 -0
  322. package/dist/lib/business/ModCommonFilter/typing.d.ts +20 -0
  323. package/dist/lib/business/ModCommonFilter/typing.js +18 -0
  324. package/dist/lib/business/ModCommonFilter/typing.js.map +7 -0
  325. package/dist/lib/business/YkPorjectSelect/icon-product.png +0 -0
  326. package/dist/lib/business/YkPorjectSelect/index.d.ts +51 -0
  327. package/dist/lib/business/YkPorjectSelect/index.js +235 -0
  328. package/dist/lib/business/YkPorjectSelect/index.js.map +7 -0
  329. package/dist/lib/business/YkPorjectSelect/index.module.less +334 -0
  330. package/dist/lib/business/YkPorjectSelect/product-close.png +0 -0
  331. package/dist/lib/components/Clock/index.d.ts +19 -0
  332. package/dist/lib/components/Clock/index.js +85 -0
  333. package/dist/lib/components/Clock/index.js.map +7 -0
  334. package/dist/lib/components/DebounceInput/index.d.ts +16 -0
  335. package/dist/lib/components/DebounceInput/index.js +107 -0
  336. package/dist/lib/components/DebounceInput/index.js.map +7 -0
  337. package/dist/lib/components/DebounceInput/index.module.less +23 -0
  338. package/dist/lib/components/MultipleSelect/index.d.ts +23 -0
  339. package/dist/lib/components/MultipleSelect/index.js +279 -0
  340. package/dist/lib/components/MultipleSelect/index.js.map +7 -0
  341. package/dist/lib/components/MultipleSelect/index.module.less +174 -0
  342. package/dist/lib/components/NumericInput/index.d.ts +19 -0
  343. package/dist/lib/components/NumericInput/index.js +67 -0
  344. package/dist/lib/components/NumericInput/index.js.map +7 -0
  345. package/dist/lib/components/RefreshButton/index.d.ts +8 -0
  346. package/dist/lib/components/RefreshButton/index.js +51 -0
  347. package/dist/lib/components/RefreshButton/index.js.map +7 -0
  348. package/dist/lib/components/SearchWithHistory/index.d.ts +21 -0
  349. package/dist/lib/components/SearchWithHistory/index.js +145 -0
  350. package/dist/lib/components/SearchWithHistory/index.js.map +7 -0
  351. package/dist/lib/components/SearchWithHistory/index.module.less +64 -0
  352. package/dist/lib/components/TextWithInput/index.d.ts +15 -0
  353. package/dist/lib/components/TextWithInput/index.js +65 -0
  354. package/dist/lib/components/TextWithInput/index.js.map +7 -0
  355. package/dist/lib/components/TextWithToolTip/index.d.ts +17 -0
  356. package/dist/lib/components/TextWithToolTip/index.js +134 -0
  357. package/dist/lib/components/TextWithToolTip/index.js.map +7 -0
  358. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +28 -0
  359. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js +191 -0
  360. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js.map +7 -0
  361. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.less +151 -0
  362. package/dist/lib/components/TreeTransfer/index.d.ts +28 -0
  363. package/dist/lib/components/TreeTransfer/index.js +214 -0
  364. package/dist/lib/components/TreeTransfer/index.js.map +7 -0
  365. package/dist/lib/components/TreeTransfer/index.less +69 -0
  366. package/dist/lib/components/TreeTransfer/types.d.ts +122 -0
  367. package/dist/lib/components/TreeTransfer/types.js +30 -0
  368. package/dist/lib/components/TreeTransfer/types.js.map +7 -0
  369. package/dist/lib/components/TreeTransfer/utils/index.d.ts +120 -0
  370. package/dist/lib/components/TreeTransfer/utils/index.js +208 -0
  371. package/dist/lib/components/TreeTransfer/utils/index.js.map +7 -0
  372. package/dist/lib/components/YkDateRangePicker/YkDateRangePicker.mdx +180 -0
  373. package/dist/lib/components/YkDateRangePicker/index.d.ts +61 -0
  374. package/dist/lib/components/YkDateRangePicker/index.js +338 -0
  375. package/dist/lib/components/YkDateRangePicker/index.js.map +7 -0
  376. package/dist/lib/components/YkDateRangePicker/index.module.less +304 -0
  377. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
  378. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +223 -0
  379. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
  380. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
  381. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +587 -0
  382. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
  383. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
  384. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +85 -0
  385. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
  386. package/dist/lib/components/YkRangeDateWithVS/index.d.ts +62 -0
  387. package/dist/lib/components/YkRangeDateWithVS/index.js +140 -0
  388. package/dist/lib/components/YkRangeDateWithVS/index.js.map +7 -0
  389. package/dist/lib/components/YkRangeDateWithVS/index.module.less +566 -0
  390. package/dist/lib/components/YkRangeDateWithVS/styles.d.ts +2 -0
  391. package/dist/lib/components/YkRangeDateWithVS/styles.js +48 -0
  392. package/dist/lib/components/YkRangeDateWithVS/styles.js.map +7 -0
  393. package/dist/lib/components/YkRangeDateWithVS/typing.d.ts +15 -0
  394. package/dist/lib/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
  395. package/dist/lib/components/YkRangeTimeWithRecent/constants.js +333 -0
  396. package/dist/lib/components/YkRangeTimeWithRecent/constants.js.map +7 -0
  397. package/dist/lib/components/YkRangeTimeWithRecent/index.d.ts +26 -0
  398. package/dist/lib/components/YkRangeTimeWithRecent/index.js +647 -0
  399. package/dist/lib/components/YkRangeTimeWithRecent/index.js.map +7 -0
  400. package/dist/lib/components/YkRangeTimeWithRecent/index.module.less +263 -0
  401. package/dist/lib/creative/ButtonRadioWithInfo/index.d.ts +17 -0
  402. package/dist/lib/creative/ButtonRadioWithInfo/index.js +102 -0
  403. package/dist/lib/creative/ButtonRadioWithInfo/index.js.map +7 -0
  404. package/dist/lib/creative/ButtonRadioWithInfo/index.less +106 -0
  405. package/dist/lib/creative/ButtonWithProgress/index.d.ts +11 -0
  406. package/dist/lib/creative/ButtonWithProgress/index.js +70 -0
  407. package/dist/lib/creative/ButtonWithProgress/index.js.map +7 -0
  408. package/dist/lib/creative/ButtonWithProgress/index.less +66 -0
  409. package/dist/lib/global.less +12 -0
  410. package/dist/lib/index.d.ts +43 -0
  411. package/dist/lib/index.js +161 -0
  412. package/dist/lib/index.js.map +7 -0
  413. package/dist/lib/index.less +35 -0
  414. package/dist/lib/layout/FlexGrid/index.d.ts +25 -0
  415. package/dist/lib/layout/FlexGrid/index.js +77 -0
  416. package/dist/lib/layout/FlexGrid/index.js.map +7 -0
  417. package/dist/lib/layout/YkContainer/index.d.ts +27 -0
  418. package/dist/lib/layout/YkContainer/index.js +79 -0
  419. package/dist/lib/layout/YkContainer/index.js.map +7 -0
  420. package/dist/lib/layout/YkDrawer/index.d.ts +22 -0
  421. package/dist/lib/layout/YkDrawer/index.js +152 -0
  422. package/dist/lib/layout/YkDrawer/index.js.map +7 -0
  423. package/dist/lib/layout/YkDrawer/index.module.less +45 -0
  424. package/dist/lib/ui/LabelSelect/demo.d.ts +3 -0
  425. package/dist/lib/ui/LabelSelect/demo.js +113 -0
  426. package/dist/lib/ui/LabelSelect/demo.js.map +7 -0
  427. package/dist/lib/ui/LabelSelect/index.d.ts +41 -0
  428. package/dist/lib/ui/LabelSelect/index.js +124 -0
  429. package/dist/lib/ui/LabelSelect/index.js.map +7 -0
  430. package/dist/lib/ui/LogicOperator/index.d.ts +10 -0
  431. package/dist/lib/ui/LogicOperator/index.js +42 -0
  432. package/dist/lib/ui/LogicOperator/index.js.map +7 -0
  433. package/dist/lib/ui/LogicOperator/index.module.less +97 -0
  434. package/dist/lib/ui/YkButton/index.d.ts +9 -0
  435. package/dist/lib/ui/YkButton/index.js +55 -0
  436. package/dist/lib/ui/YkButton/index.js.map +7 -0
  437. package/dist/lib/ui/YkCard/index.d.ts +4 -0
  438. package/dist/lib/ui/YkCard/index.js +76 -0
  439. package/dist/lib/ui/YkCard/index.js.map +7 -0
  440. package/dist/lib/ui/YkCard/index.module.less +30 -0
  441. package/dist/lib/ui/YkCheckbox/index.d.ts +4 -0
  442. package/dist/lib/ui/YkCheckbox/index.js +42 -0
  443. package/dist/lib/ui/YkCheckbox/index.js.map +7 -0
  444. package/dist/lib/ui/YkCheckbox/index.module.less +22 -0
  445. package/dist/lib/ui/YkDescriptions/index.d.ts +4 -0
  446. package/dist/lib/ui/YkDescriptions/index.js +41 -0
  447. package/dist/lib/ui/YkDescriptions/index.js.map +7 -0
  448. package/dist/lib/ui/YkPagination/index.d.ts +4 -0
  449. package/dist/lib/ui/YkPagination/index.js +60 -0
  450. package/dist/lib/ui/YkPagination/index.js.map +7 -0
  451. package/dist/lib/ui/YkPagination/index.module.less +22 -0
  452. package/dist/lib/ui/YkRadio/index.d.ts +4 -0
  453. package/dist/lib/ui/YkRadio/index.js +51 -0
  454. package/dist/lib/ui/YkRadio/index.js.map +7 -0
  455. package/dist/lib/ui/YkRadio/index.module.less +22 -0
  456. package/dist/lib/ui/YkRadioBtnSpecial/index.d.ts +15 -0
  457. package/dist/lib/ui/YkRadioBtnSpecial/index.js +53 -0
  458. package/dist/lib/ui/YkRadioBtnSpecial/index.js.map +7 -0
  459. package/dist/lib/ui/YkRadioBtnSpecial/index.module.less +112 -0
  460. package/dist/lib/ui/YkSegmented/index.d.ts +4 -0
  461. package/dist/lib/ui/YkSegmented/index.js +41 -0
  462. package/dist/lib/ui/YkSegmented/index.js.map +7 -0
  463. package/dist/lib/ui/YkSelect/index.d.ts +7 -0
  464. package/dist/lib/ui/YkSelect/index.js +54 -0
  465. package/dist/lib/ui/YkSelect/index.js.map +7 -0
  466. package/dist/lib/ui/YkSpin/index.d.ts +4 -0
  467. package/dist/lib/ui/YkSpin/index.js +41 -0
  468. package/dist/lib/ui/YkSpin/index.js.map +7 -0
  469. package/dist/lib/ui/YkStatistic/index.d.ts +4 -0
  470. package/dist/lib/ui/YkStatistic/index.js +41 -0
  471. package/dist/lib/ui/YkStatistic/index.js.map +7 -0
  472. package/dist/lib/ui/YkSwitch/index.d.ts +4 -0
  473. package/dist/lib/ui/YkSwitch/index.js +51 -0
  474. package/dist/lib/ui/YkSwitch/index.js.map +7 -0
  475. package/dist/lib/ui/YkTabs/index.d.ts +12 -0
  476. package/dist/lib/ui/YkTabs/index.js +70 -0
  477. package/dist/lib/ui/YkTabs/index.js.map +7 -0
  478. package/dist/lib/ui/YkTabs/index.module.less +11 -0
  479. package/dist/lib/ui/YkTooltip/index.d.ts +4 -0
  480. package/dist/lib/ui/YkTooltip/index.js +45 -0
  481. package/dist/lib/ui/YkTooltip/index.js.map +7 -0
  482. package/dist/lib/utils/styleUtils.d.ts +18 -0
  483. package/dist/lib/utils/styleUtils.js +84 -0
  484. package/dist/lib/utils/styleUtils.js.map +7 -0
  485. package/dist/lib/utils/ykStorybookDoc.d.ts +17 -0
  486. package/dist/lib/utils/ykStorybookDoc.js +41 -0
  487. package/dist/lib/utils/ykStorybookDoc.js.map +7 -0
  488. package/package.json +148 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * SSE 流式响应处理
3
+ * 支持大文件传输和流式数据处理
4
+ */
5
+ export interface SSEOptions {
6
+ onMessage: (data: string) => void;
7
+ onEnd?: () => void;
8
+ onError?: (err: Error) => void;
9
+ onProgress?: (loaded: number, total?: number) => void;
10
+ }
11
+ export declare function createSSE(url: string, body: any, onMessage: (data: string) => void, onEnd?: () => void, onError?: (err: any) => void): Promise<() => void>;
12
+ /**
13
+ * 创建增强型SSE连接
14
+ * 支持进度追踪、断点续传等高级功能
15
+ */
16
+ export declare function createEnhancedSSE(url: string, body: any, options: SSEOptions): Promise<() => void>;
@@ -0,0 +1,171 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+
22
+ // src/business/AiChat/sse.ts
23
+ function createSSE(url, body, onMessage, onEnd, onError) {
24
+ return __async(this, null, function* () {
25
+ const controller = new AbortController();
26
+ const signal = controller.signal;
27
+ try {
28
+ const res = yield fetch(url, {
29
+ method: "POST",
30
+ headers: { "Content-Type": "application/json" },
31
+ body: JSON.stringify(body),
32
+ signal
33
+ });
34
+ if (!res.ok) {
35
+ const errorText = yield res.text().catch(() => "");
36
+ throw new Error(`HTTP ${res.status}: ${errorText || res.statusText}`);
37
+ }
38
+ if (!res.body)
39
+ throw new Error("Response body is null, streaming not supported");
40
+ const reader = res.body.getReader();
41
+ const decoder = new TextDecoder("utf-8");
42
+ let buffer = "";
43
+ const contentLength = res.headers.get("Content-Length");
44
+ const total = contentLength ? parseInt(contentLength, 10) : void 0;
45
+ let loaded = 0;
46
+ while (true) {
47
+ const { done, value } = yield reader.read();
48
+ if (done) {
49
+ if (buffer.trim()) {
50
+ onMessage(buffer);
51
+ }
52
+ onEnd == null ? void 0 : onEnd();
53
+ break;
54
+ }
55
+ loaded += value.byteLength;
56
+ const chunk = decoder.decode(value, { stream: true });
57
+ buffer += chunk;
58
+ const lines = buffer.split("\n");
59
+ buffer = lines.pop() || "";
60
+ for (const line of lines) {
61
+ const trimmed = line.trim();
62
+ if (!trimmed)
63
+ continue;
64
+ if (trimmed.startsWith("data:")) {
65
+ const data = trimmed.slice(5).trim();
66
+ if (data === "[DONE]") {
67
+ onEnd == null ? void 0 : onEnd();
68
+ return () => controller.abort();
69
+ }
70
+ try {
71
+ const parsed = JSON.parse(data);
72
+ if (parsed.content) {
73
+ onMessage(parsed.content);
74
+ } else {
75
+ onMessage(data);
76
+ }
77
+ } catch (e) {
78
+ onMessage(data);
79
+ }
80
+ } else {
81
+ onMessage(trimmed);
82
+ }
83
+ }
84
+ }
85
+ return () => controller.abort();
86
+ } catch (err) {
87
+ if (err.name !== "AbortError") {
88
+ const error = err instanceof Error ? err : new Error(String(err));
89
+ onError == null ? void 0 : onError(error);
90
+ }
91
+ return () => controller.abort();
92
+ }
93
+ });
94
+ }
95
+ function createEnhancedSSE(url, body, options) {
96
+ return __async(this, null, function* () {
97
+ var _a, _b, _c, _d;
98
+ const controller = new AbortController();
99
+ const signal = controller.signal;
100
+ try {
101
+ const res = yield fetch(url, {
102
+ method: "POST",
103
+ headers: {
104
+ "Content-Type": "application/json",
105
+ Accept: "text/event-stream"
106
+ },
107
+ body: JSON.stringify(body),
108
+ signal
109
+ });
110
+ if (!res.ok) {
111
+ const errorText = yield res.text().catch(() => "");
112
+ throw new Error(`HTTP ${res.status}: ${errorText || res.statusText}`);
113
+ }
114
+ if (!res.body) {
115
+ throw new Error("Response body is null");
116
+ }
117
+ const reader = res.body.getReader();
118
+ const decoder = new TextDecoder("utf-8");
119
+ const contentLength = res.headers.get("Content-Length");
120
+ const total = contentLength ? parseInt(contentLength, 10) : void 0;
121
+ let loaded = 0;
122
+ let buffer = "";
123
+ while (true) {
124
+ const { done, value } = yield reader.read();
125
+ if (done) {
126
+ if (buffer.trim()) {
127
+ options.onMessage(buffer);
128
+ }
129
+ (_a = options.onEnd) == null ? void 0 : _a.call(options);
130
+ break;
131
+ }
132
+ loaded += value.byteLength;
133
+ (_b = options.onProgress) == null ? void 0 : _b.call(options, loaded, total);
134
+ const chunk = decoder.decode(value, { stream: true });
135
+ buffer += chunk;
136
+ const lines = buffer.split("\n");
137
+ buffer = lines.pop() || "";
138
+ for (const line of lines) {
139
+ const trimmed = line.trim();
140
+ if (!trimmed || trimmed.startsWith(":"))
141
+ continue;
142
+ if (trimmed.startsWith("data:")) {
143
+ const data = trimmed.slice(5).trim();
144
+ if (data === "[DONE]") {
145
+ (_c = options.onEnd) == null ? void 0 : _c.call(options);
146
+ return () => controller.abort();
147
+ }
148
+ try {
149
+ const parsed = JSON.parse(data);
150
+ options.onMessage(parsed.content || data);
151
+ } catch (e) {
152
+ options.onMessage(data);
153
+ }
154
+ }
155
+ }
156
+ }
157
+ return () => controller.abort();
158
+ } catch (err) {
159
+ if (err.name !== "AbortError") {
160
+ const error = err instanceof Error ? err : new Error(String(err));
161
+ (_d = options.onError) == null ? void 0 : _d.call(options, error);
162
+ }
163
+ return () => controller.abort();
164
+ }
165
+ });
166
+ }
167
+ export {
168
+ createEnhancedSSE,
169
+ createSSE
170
+ };
171
+ //# sourceMappingURL=sse.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/business/AiChat/sse.ts"],
4
+ "sourcesContent": ["/**\n * SSE 流式响应处理\n * 支持大文件传输和流式数据处理\n */\n\nexport interface SSEOptions {\n onMessage: (data: string) => void;\n onEnd?: () => void;\n onError?: (err: Error) => void;\n onProgress?: (loaded: number, total?: number) => void;\n}\n\nexport async function createSSE(\n url: string,\n body: any,\n onMessage: (data: string) => void,\n onEnd?: () => void,\n onError?: (err: any) => void,\n) {\n const controller = new AbortController();\n const signal = controller.signal;\n\n try {\n const res = await fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body),\n signal,\n });\n\n if (!res.ok) {\n const errorText = await res.text().catch(() => '');\n throw new Error(`HTTP ${res.status}: ${errorText || res.statusText}`);\n }\n\n if (!res.body) throw new Error('Response body is null, streaming not supported');\n\n const reader = res.body.getReader();\n const decoder = new TextDecoder('utf-8');\n let buffer = '';\n\n // 获取内容长度(如果可用)\n const contentLength = res.headers.get('Content-Length');\n const total = contentLength ? parseInt(contentLength, 10) : undefined;\n let loaded = 0;\n\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n // 处理剩余缓冲区数据\n if (buffer.trim()) {\n onMessage(buffer);\n }\n onEnd?.();\n break;\n }\n\n loaded += value.byteLength;\n\n // 解码数据块\n const chunk = decoder.decode(value, { stream: true });\n buffer += chunk;\n\n // 按行处理数据(SSE协议)\n const lines = buffer.split('\\n');\n buffer = lines.pop() || ''; // 保留最后不完整的行\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed) continue;\n\n // 处理SSE格式: data: {...}\n if (trimmed.startsWith('data:')) {\n const data = trimmed.slice(5).trim();\n if (data === '[DONE]') {\n onEnd?.();\n return () => controller.abort();\n }\n try {\n // 尝试解析JSON\n const parsed = JSON.parse(data);\n if (parsed.content) {\n onMessage(parsed.content);\n } else {\n onMessage(data);\n }\n } catch {\n // 非JSON数据,直接传递\n onMessage(data);\n }\n } else {\n // 非SSE格式,直接传递\n onMessage(trimmed);\n }\n }\n }\n\n return () => controller.abort();\n } catch (err: any) {\n if (err.name !== 'AbortError') {\n const error = err instanceof Error ? err : new Error(String(err));\n onError?.(error);\n }\n return () => controller.abort();\n }\n}\n\n/**\n * 创建增强型SSE连接\n * 支持进度追踪、断点续传等高级功能\n */\nexport async function createEnhancedSSE(url: string, body: any, options: SSEOptions): Promise<() => void> {\n const controller = new AbortController();\n const signal = controller.signal;\n\n try {\n const res = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'text/event-stream',\n },\n body: JSON.stringify(body),\n signal,\n });\n\n if (!res.ok) {\n const errorText = await res.text().catch(() => '');\n throw new Error(`HTTP ${res.status}: ${errorText || res.statusText}`);\n }\n\n if (!res.body) {\n throw new Error('Response body is null');\n }\n\n const reader = res.body.getReader();\n const decoder = new TextDecoder('utf-8');\n const contentLength = res.headers.get('Content-Length');\n const total = contentLength ? parseInt(contentLength, 10) : undefined;\n\n let loaded = 0;\n let buffer = '';\n\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n if (buffer.trim()) {\n options.onMessage(buffer);\n }\n options.onEnd?.();\n break;\n }\n\n loaded += value.byteLength;\n options.onProgress?.(loaded, total);\n\n const chunk = decoder.decode(value, { stream: true });\n buffer += chunk;\n\n // SSE 协议处理\n const lines = buffer.split('\\n');\n buffer = lines.pop() || '';\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith(':')) continue;\n\n if (trimmed.startsWith('data:')) {\n const data = trimmed.slice(5).trim();\n if (data === '[DONE]') {\n options.onEnd?.();\n return () => controller.abort();\n }\n\n try {\n const parsed = JSON.parse(data);\n options.onMessage(parsed.content || data);\n } catch {\n options.onMessage(data);\n }\n }\n }\n }\n\n return () => controller.abort();\n } catch (err: any) {\n if (err.name !== 'AbortError') {\n const error = err instanceof Error ? err : new Error(String(err));\n options.onError?.(error);\n }\n return () => controller.abort();\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,156 @@
1
+ /// <reference types="react" />
2
+ export interface Message {
3
+ id: string;
4
+ role: 'user' | 'ai' | 'system';
5
+ content: string;
6
+ loading?: boolean;
7
+ category?: MessageCategory;
8
+ tags?: string[];
9
+ taskId?: string;
10
+ }
11
+ export type MessageCategory = 'technical' | 'business' | 'general' | 'task_creation' | 'task_query' | 'api_call';
12
+ export interface ChatSession {
13
+ id: string;
14
+ title: string;
15
+ createTime: number;
16
+ messages: Message[];
17
+ }
18
+ export interface AiChatApiCallbacks {
19
+ onFetchSessions?: () => Promise<ChatSession[]>;
20
+ onFetchSessionDetail?: (sessionId: string) => Promise<ChatSession>;
21
+ onCreateSession?: () => Promise<{
22
+ sessionId: string;
23
+ }>;
24
+ onSendMessage?: (params: {
25
+ sessionId: string;
26
+ prompt: string;
27
+ history: Message[];
28
+ }) => Promise<void>;
29
+ onUploadFile?: (params: {
30
+ sessionId: string;
31
+ file: File;
32
+ type: 'image' | 'document';
33
+ }) => Promise<{
34
+ url: string;
35
+ name: string;
36
+ }>;
37
+ }
38
+ export interface AiChatConfig extends AiChatApiCallbacks {
39
+ apiPath?: string;
40
+ storageKey?: string;
41
+ position?: {
42
+ bottom?: number;
43
+ right?: number;
44
+ };
45
+ buttonSize?: number;
46
+ drawerWidth?: number;
47
+ zIndex?: number;
48
+ showSessionPanel?: boolean;
49
+ onBeforeSend?: (content: string) => boolean | Promise<boolean>;
50
+ onError?: (error: Error) => void;
51
+ onSuccess?: () => void;
52
+ }
53
+ export interface UseAiChatOptions extends AiChatApiCallbacks {
54
+ apiPath?: string;
55
+ storageKey?: string;
56
+ onBeforeSend?: (content: string) => boolean | Promise<boolean>;
57
+ onError?: (error: Error) => void;
58
+ onSuccess?: () => void;
59
+ }
60
+ export interface UseAiChatReturn {
61
+ sessions: ChatSession[];
62
+ activeSession: ChatSession | null;
63
+ loading: boolean;
64
+ visible: boolean;
65
+ createNewSession: () => void;
66
+ switchSession: (id: string) => void;
67
+ deleteSession: (id: string, e: React.MouseEvent) => void;
68
+ sendQuestion: (content: string, regenId?: string) => Promise<void>;
69
+ regenerateAnswer: (msg: Message) => void;
70
+ deleteSingleMsg: (id: string, e: React.MouseEvent) => void;
71
+ cancelRequest: () => void;
72
+ toggleVisible: (v?: boolean) => void;
73
+ }
74
+ export interface Intent {
75
+ type: IntentType;
76
+ confidence: number;
77
+ parameters: Record<string, any>;
78
+ rawText: string;
79
+ matchedPattern?: string;
80
+ }
81
+ export type IntentType = 'create_task' | 'query_task' | 'update_task' | 'delete_task' | 'call_api' | 'general_question';
82
+ export interface IntentPattern {
83
+ type: IntentType;
84
+ patterns: RegExp[];
85
+ taskType?: TaskCategory;
86
+ }
87
+ export interface Task {
88
+ id: string;
89
+ title: string;
90
+ description: string;
91
+ category: TaskCategory;
92
+ priority: TaskPriority;
93
+ status: TaskStatus;
94
+ dueDate?: number;
95
+ assignee?: string;
96
+ sourceMessageId?: string;
97
+ createTime: number;
98
+ apiResponse?: Record<string, any>;
99
+ }
100
+ export type TaskCategory = 'paimon' | 'data_sync' | 'report' | 'etl' | 'bug' | 'feature' | 'analysis' | 'other';
101
+ export type TaskPriority = 'high' | 'medium' | 'low';
102
+ export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'cancelled' | 'failed';
103
+ export interface TaskTypeConfig {
104
+ type: string;
105
+ name: string;
106
+ description?: string;
107
+ apiEndpoint?: string;
108
+ defaultParams?: Record<string, any>;
109
+ urlPattern?: string;
110
+ keywords?: string[];
111
+ }
112
+ export interface TaskCreationResult {
113
+ success: boolean;
114
+ taskId?: string;
115
+ taskData?: any;
116
+ error?: string;
117
+ redirectUrl?: string;
118
+ }
119
+ export interface NavigationOptions {
120
+ replace?: boolean;
121
+ merge?: boolean;
122
+ queryParams?: Record<string, string>;
123
+ fragment?: string;
124
+ }
125
+ export interface EnhancedAiChatConfig extends AiChatConfig {
126
+ taskWorkflow?: {
127
+ enabled?: boolean;
128
+ createTaskApi?: string;
129
+ supportedTaskTypes?: TaskTypeConfig[];
130
+ autoNavigate?: boolean;
131
+ taskIdParamName?: string;
132
+ taskTypeParamName?: string;
133
+ };
134
+ intentRecognition?: {
135
+ enabled?: boolean;
136
+ customPatterns?: IntentPattern[];
137
+ confidenceThreshold?: number;
138
+ };
139
+ navigation?: {
140
+ refreshStrategy?: 'immediate' | 'delayed' | 'manual';
141
+ refreshDelay?: number;
142
+ preserveQueryParams?: boolean;
143
+ urlBuilder?: (taskId: string, taskType: string) => string;
144
+ };
145
+ }
146
+ export interface EnhancedUseAiChatReturn extends UseAiChatReturn {
147
+ tasks: Task[];
148
+ createTask: (task: Omit<Task, 'id' | 'createTime'>) => void;
149
+ updateTaskStatus: (taskId: string, status: TaskStatus) => void;
150
+ deleteTask: (taskId: string) => void;
151
+ recognizeIntent: (text: string) => Intent;
152
+ createTaskFromNaturalLanguage: (description: string) => Promise<TaskCreationResult>;
153
+ updateUrlWithTaskId: (taskId: string, options?: NavigationOptions) => void;
154
+ refreshCurrentPage: (taskId?: string) => void;
155
+ executeTaskCreationWorkflow: (description: string) => Promise<void>;
156
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import type { UseAiChatOptions, UseAiChatReturn } from './type';
2
+ export declare function useAiChat(options?: UseAiChatOptions): UseAiChatReturn;
@@ -0,0 +1,268 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+
41
+ // src/business/AiChat/useAiChat.ts
42
+ import { message } from "antd";
43
+ import { useCallback, useEffect, useState } from "react";
44
+ import { createSSE } from "./sse";
45
+ function useAiChat(options) {
46
+ const apiPath = (options == null ? void 0 : options.apiPath) || "/api/ai/chat-stream";
47
+ const storageKey = (options == null ? void 0 : options.storageKey) || "ai_chat_sessions";
48
+ const [sessions, setSessions] = useState([]);
49
+ const [activeSession, setActiveSession] = useState(null);
50
+ const [loading, setLoading] = useState(false);
51
+ const [cancelFn, setCancelFn] = useState(null);
52
+ const [visible, setVisible] = useState(false);
53
+ useEffect(() => {
54
+ const loadSessions = () => __async(this, null, function* () {
55
+ if (options == null ? void 0 : options.onFetchSessions) {
56
+ try {
57
+ const list = yield options.onFetchSessions();
58
+ setSessions(list);
59
+ if (list.length > 0)
60
+ setActiveSession(list[list.length - 1]);
61
+ } catch (err) {
62
+ console.error("加载会话失败:", err);
63
+ }
64
+ } else {
65
+ const saved = localStorage.getItem(storageKey);
66
+ if (saved) {
67
+ const list = JSON.parse(saved);
68
+ setSessions(list);
69
+ if (list.length > 0)
70
+ setActiveSession(list[list.length - 1]);
71
+ }
72
+ }
73
+ });
74
+ loadSessions();
75
+ }, [storageKey, options == null ? void 0 : options.onFetchSessions]);
76
+ useEffect(() => {
77
+ if (!(options == null ? void 0 : options.onFetchSessions) && sessions.length) {
78
+ localStorage.setItem(storageKey, JSON.stringify(sessions));
79
+ }
80
+ }, [sessions, storageKey, options == null ? void 0 : options.onFetchSessions]);
81
+ const createNewSession = useCallback(() => __async(this, null, function* () {
82
+ let newSessionId;
83
+ if (options == null ? void 0 : options.onCreateSession) {
84
+ try {
85
+ const result = yield options.onCreateSession();
86
+ newSessionId = result.sessionId;
87
+ } catch (err) {
88
+ console.error("创建会话失败:", err);
89
+ message.error("创建会话失败");
90
+ return;
91
+ }
92
+ } else {
93
+ newSessionId = Date.now().toString();
94
+ }
95
+ const s = {
96
+ id: newSessionId,
97
+ title: "新会话",
98
+ createTime: Date.now(),
99
+ messages: []
100
+ };
101
+ setSessions((prev) => [...prev, s]);
102
+ setActiveSession(s);
103
+ setVisible(true);
104
+ }), [options == null ? void 0 : options.onCreateSession]);
105
+ const switchSession = useCallback(
106
+ (id) => __async(this, null, function* () {
107
+ if (options == null ? void 0 : options.onFetchSessionDetail) {
108
+ try {
109
+ const detail = yield options.onFetchSessionDetail(id);
110
+ setActiveSession(detail);
111
+ } catch (err) {
112
+ console.error("获取会话详情失败:", err);
113
+ message.error("获取会话详情失败");
114
+ }
115
+ } else {
116
+ const s = sessions.find((x) => x.id === id);
117
+ if (s)
118
+ setActiveSession(s);
119
+ }
120
+ }),
121
+ [sessions, options == null ? void 0 : options.onFetchSessionDetail]
122
+ );
123
+ const deleteSession = useCallback(
124
+ (id, e) => {
125
+ var _a;
126
+ e.stopPropagation();
127
+ const ns = sessions.filter((x) => x.id !== id);
128
+ setSessions(ns);
129
+ if ((activeSession == null ? void 0 : activeSession.id) === id)
130
+ setActiveSession((_a = ns.at(-1)) != null ? _a : null);
131
+ },
132
+ [sessions, activeSession]
133
+ );
134
+ const sendQuestion = useCallback(
135
+ (content, regenId) => __async(this, null, function* () {
136
+ var _a, _b;
137
+ if (!content.trim() || !activeSession)
138
+ return;
139
+ if (options == null ? void 0 : options.onBeforeSend) {
140
+ const canSend = yield options.onBeforeSend(content);
141
+ if (!canSend)
142
+ return;
143
+ }
144
+ const user = { id: `${Date.now()}_u`, role: "user", content };
145
+ const ai = {
146
+ id: `${Date.now()}_ai`,
147
+ role: "ai",
148
+ content: "",
149
+ loading: true
150
+ };
151
+ let newMsgs = [];
152
+ if (regenId) {
153
+ newMsgs = activeSession.messages.map((m) => m.id === regenId ? ai : m);
154
+ } else {
155
+ newMsgs = [...activeSession.messages, user, ai];
156
+ }
157
+ const updated = __spreadProps(__spreadValues({}, activeSession), {
158
+ title: activeSession.messages.length === 0 ? content.slice(0, 20) : activeSession.title,
159
+ messages: newMsgs
160
+ });
161
+ setActiveSession(updated);
162
+ setSessions((prev) => prev.map((x) => x.id === updated.id ? updated : x));
163
+ setLoading(true);
164
+ if (options == null ? void 0 : options.onSendMessage) {
165
+ try {
166
+ yield options.onSendMessage({
167
+ sessionId: activeSession.id,
168
+ prompt: content,
169
+ history: updated.messages.filter((m) => !m.loading)
170
+ });
171
+ setLoading(false);
172
+ const ms = updated.messages.map((m) => m.loading ? __spreadProps(__spreadValues({}, m), { loading: false }) : m);
173
+ const su = __spreadProps(__spreadValues({}, updated), { messages: ms });
174
+ setActiveSession(su);
175
+ setSessions((prev) => prev.map((x) => x.id === su.id ? su : x));
176
+ (_a = options == null ? void 0 : options.onSuccess) == null ? void 0 : _a.call(options);
177
+ } catch (err) {
178
+ setLoading(false);
179
+ const error = err;
180
+ message.error(`请求异常:${error.message}`);
181
+ (_b = options == null ? void 0 : options.onError) == null ? void 0 : _b.call(options, error);
182
+ }
183
+ } else {
184
+ const cancel = yield createSSE(
185
+ apiPath,
186
+ {
187
+ prompt: content,
188
+ history: updated.messages.filter((m) => !m.loading),
189
+ useMcp: true,
190
+ sessionId: activeSession.id
191
+ },
192
+ (text) => {
193
+ if (!activeSession)
194
+ return;
195
+ const ms = updated.messages.map((m) => m.loading ? __spreadProps(__spreadValues({}, m), { content: m.content + text }) : m);
196
+ const su = __spreadProps(__spreadValues({}, updated), { messages: ms });
197
+ setActiveSession(su);
198
+ setSessions((prev) => prev.map((x) => x.id === su.id ? su : x));
199
+ },
200
+ () => {
201
+ var _a2;
202
+ setLoading(false);
203
+ const ms = updated.messages.map((m) => m.loading ? __spreadProps(__spreadValues({}, m), { loading: false }) : m);
204
+ const su = __spreadProps(__spreadValues({}, updated), { messages: ms });
205
+ setActiveSession(su);
206
+ setSessions((prev) => prev.map((x) => x.id === su.id ? su : x));
207
+ (_a2 = options == null ? void 0 : options.onSuccess) == null ? void 0 : _a2.call(options);
208
+ },
209
+ (err) => {
210
+ var _a2;
211
+ setLoading(false);
212
+ const errorMsg = err.message;
213
+ message.error(`请求异常:${errorMsg}`);
214
+ (_a2 = options == null ? void 0 : options.onError) == null ? void 0 : _a2.call(options, err);
215
+ }
216
+ );
217
+ setCancelFn(() => cancel);
218
+ }
219
+ }),
220
+ [activeSession, apiPath, options]
221
+ );
222
+ const regenerateAnswer = useCallback(
223
+ (msg) => {
224
+ if (!activeSession)
225
+ return;
226
+ const idx = activeSession.messages.findIndex((x) => x.id === msg.id);
227
+ const userMsg = activeSession.messages[idx - 1];
228
+ if ((userMsg == null ? void 0 : userMsg.role) === "user")
229
+ sendQuestion(userMsg.content, msg.id);
230
+ },
231
+ [activeSession, sendQuestion]
232
+ );
233
+ const deleteSingleMsg = useCallback(
234
+ (id, e) => {
235
+ e.stopPropagation();
236
+ if (!activeSession)
237
+ return;
238
+ const ms = activeSession.messages.filter((x) => x.id !== id);
239
+ const up = __spreadProps(__spreadValues({}, activeSession), { messages: ms });
240
+ setActiveSession(up);
241
+ setSessions((prev) => prev.map((x) => x.id === up.id ? up : x));
242
+ },
243
+ [activeSession]
244
+ );
245
+ const cancelRequest = useCallback(() => {
246
+ cancelFn == null ? void 0 : cancelFn();
247
+ setLoading(false);
248
+ }, [cancelFn]);
249
+ const toggleVisible = useCallback((v) => setVisible(v != null ? v : !visible), [visible]);
250
+ return {
251
+ sessions,
252
+ activeSession,
253
+ loading,
254
+ visible,
255
+ createNewSession,
256
+ switchSession,
257
+ deleteSession,
258
+ sendQuestion,
259
+ regenerateAnswer,
260
+ deleteSingleMsg,
261
+ cancelRequest,
262
+ toggleVisible
263
+ };
264
+ }
265
+ export {
266
+ useAiChat
267
+ };
268
+ //# sourceMappingURL=useAiChat.js.map