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