@ai-group/chat-sdk 3.7.1-alpha1 → 3.7.1-alpha11
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/README.md +22 -0
- package/dist/cjs/components/FileGallery/index.js +59 -40
- package/dist/cjs/components/FileGallery/index.js.map +2 -2
- package/dist/cjs/components/FileGallery/styles.d.ts +7 -0
- package/dist/cjs/components/FileGallery/styles.js +78 -0
- package/dist/cjs/components/FileGallery/styles.js.map +2 -2
- package/dist/cjs/components/Sources/components/CarouselCard.d.ts +12 -0
- package/dist/cjs/components/Sources/components/CarouselCard.js +130 -0
- package/dist/cjs/components/Sources/components/CarouselCard.js.map +7 -0
- package/dist/cjs/components/Sources/index.d.ts +5 -0
- package/dist/cjs/components/Sources/index.js +162 -0
- package/dist/cjs/components/Sources/index.js.map +7 -0
- package/dist/cjs/components/Sources/styles.d.ts +59 -0
- package/dist/cjs/components/Sources/styles.js +179 -0
- package/dist/cjs/components/Sources/styles.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +19 -1
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +232 -22
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +3 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js +83 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/index.d.ts +2 -2
- package/dist/cjs/components/XAdkChatbot/index.js +75 -8
- package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/styles.js +1 -1
- package/dist/cjs/components/XAdkChatbot/styles.js.map +1 -1
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +7 -2
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +30 -12
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +3 -1
- package/dist/cjs/components/XAdkProvider/compound/Sender.js +81 -4
- package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +3 -3
- package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +1 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js +16 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.d.ts +4 -0
- package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.d.ts +9 -0
- package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.js +34 -0
- package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/index.d.ts +5 -4
- package/dist/cjs/components/XAdkProvider/context/index.js +3 -1
- package/dist/cjs/components/XAdkProvider/context/index.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/index.js +11 -10
- package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
- package/dist/cjs/components/XAdkSender/InlineTagInput.d.ts +12 -5
- package/dist/cjs/components/XAdkSender/InlineTagInput.js +419 -121
- package/dist/cjs/components/XAdkSender/InlineTagInput.js.map +2 -2
- package/dist/cjs/components/XAdkSender/InputTags.d.ts +2 -2
- package/dist/cjs/components/XAdkSender/InputTags.js +8 -8
- package/dist/cjs/components/XAdkSender/InputTags.js.map +2 -2
- package/dist/cjs/components/XAdkSender/index.js +173 -112
- package/dist/cjs/components/XAdkSender/index.js.map +3 -3
- package/dist/cjs/components/XAdkSender/styles.d.ts +4 -0
- package/dist/cjs/components/XAdkSender/styles.js +47 -6
- package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +1 -1
- package/dist/cjs/components/XAiConversations/index.js.map +2 -2
- package/dist/cjs/components/XAiConversations/styles.js +11 -1
- package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.js +5 -1
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/index.d.ts +8 -2
- package/dist/cjs/index.js +44 -7
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/presets/base.d.ts +6 -0
- package/dist/cjs/presets/base.js +50 -0
- package/dist/cjs/presets/base.js.map +7 -0
- package/dist/cjs/presets/define.d.ts +11 -0
- package/dist/cjs/presets/define.js +58 -0
- package/dist/cjs/presets/define.js.map +7 -0
- package/dist/cjs/presets/index.d.ts +3 -0
- package/dist/cjs/presets/index.js +28 -0
- package/dist/cjs/presets/index.js.map +7 -0
- package/dist/cjs/presets/runtime.d.ts +22 -0
- package/dist/cjs/presets/runtime.js +75 -0
- package/dist/cjs/presets/runtime.js.map +7 -0
- package/dist/cjs/presets/xgroup/index.d.ts +5 -0
- package/dist/cjs/presets/xgroup/index.js +10 -0
- package/dist/cjs/presets/xgroup/index.js.map +2 -2
- package/dist/cjs/presets/xgroup/knowledgeReference.d.ts +17 -0
- package/dist/cjs/presets/xgroup/knowledgeReference.js +162 -0
- package/dist/cjs/presets/xgroup/knowledgeReference.js.map +7 -0
- package/dist/cjs/presets/xgroup/preset.d.ts +1 -13
- package/dist/cjs/presets/xgroup/preset.js +16 -37
- package/dist/cjs/presets/xgroup/preset.js.map +2 -2
- package/dist/cjs/presets/xgroup/strategies.d.ts +5 -4
- package/dist/cjs/presets/xgroup/strategies.js +11 -15
- package/dist/cjs/presets/xgroup/strategies.js.map +3 -3
- package/dist/cjs/presets/xgroup/webReference.d.ts +10 -0
- package/dist/cjs/presets/xgroup/webReference.js +85 -0
- package/dist/cjs/presets/xgroup/webReference.js.map +7 -0
- package/dist/cjs/types/ChatStrategies.d.ts +11 -2
- package/dist/cjs/types/ChatStrategies.js.map +1 -1
- package/dist/cjs/types/FileGallery.d.ts +3 -0
- package/dist/cjs/types/FileGallery.js.map +1 -1
- package/dist/cjs/types/Sources.d.ts +30 -0
- package/dist/cjs/types/Sources.js +18 -0
- package/dist/cjs/types/Sources.js.map +7 -0
- package/dist/cjs/types/XAdkChatbot.d.ts +33 -0
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/cjs/types/XAdkSender.d.ts +112 -21
- package/dist/cjs/types/XAdkSender.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +3 -1
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.js +3 -1
- package/dist/cjs/utils/index.js.map +2 -2
- package/dist/cjs/utils/markdownResource.d.ts +14 -0
- package/dist/cjs/utils/markdownResource.js +131 -0
- package/dist/cjs/utils/markdownResource.js.map +7 -0
- package/dist/esm/components/FileGallery/index.js +22 -16
- package/dist/esm/components/FileGallery/index.js.map +1 -1
- package/dist/esm/components/FileGallery/styles.d.ts +7 -0
- package/dist/esm/components/FileGallery/styles.js +24 -17
- package/dist/esm/components/FileGallery/styles.js.map +1 -1
- package/dist/esm/components/Sources/components/CarouselCard.d.ts +12 -0
- package/dist/esm/components/Sources/components/CarouselCard.js +107 -0
- package/dist/esm/components/Sources/components/CarouselCard.js.map +1 -0
- package/dist/esm/components/Sources/index.d.ts +5 -0
- package/dist/esm/components/Sources/index.js +127 -0
- package/dist/esm/components/Sources/index.js.map +1 -0
- package/dist/esm/components/Sources/styles.d.ts +59 -0
- package/dist/esm/components/Sources/styles.js +34 -0
- package/dist/esm/components/Sources/styles.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +19 -1
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +190 -11
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +3 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js +5 -2
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.d.ts +2 -2
- package/dist/esm/components/XAdkChatbot/index.js +55 -10
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/styles.js +1 -1
- package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +7 -2
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +40 -17
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +3 -1
- package/dist/esm/components/XAdkProvider/compound/Sender.js +70 -6
- package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/styles.d.ts +1 -0
- package/dist/esm/components/XAdkProvider/compound/styles.js +3 -2
- package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.d.ts +4 -0
- package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.d.ts +9 -0
- package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.js +9 -0
- package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/index.d.ts +5 -4
- package/dist/esm/components/XAdkProvider/context/index.js +1 -0
- package/dist/esm/components/XAdkProvider/context/index.js.map +1 -1
- package/dist/esm/components/XAdkProvider/index.js +7 -3
- package/dist/esm/components/XAdkProvider/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/InlineTagInput.d.ts +12 -5
- package/dist/esm/components/XAdkSender/InlineTagInput.js +408 -111
- package/dist/esm/components/XAdkSender/InlineTagInput.js.map +1 -1
- package/dist/esm/components/XAdkSender/InputTags.d.ts +2 -2
- package/dist/esm/components/XAdkSender/InputTags.js +10 -9
- package/dist/esm/components/XAdkSender/InputTags.js.map +1 -1
- package/dist/esm/components/XAdkSender/index.js +206 -122
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/styles.d.ts +4 -0
- package/dist/esm/components/XAdkSender/styles.js +29 -25
- package/dist/esm/components/XAdkSender/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +2 -1
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.js +3 -3
- package/dist/esm/components/XAiConversations/styles.js.map +1 -1
- package/dist/esm/hooks/useADKChat.js +8 -2
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/index.d.ts +8 -2
- package/dist/esm/index.js +7 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/presets/base.d.ts +6 -0
- package/dist/esm/presets/base.js +28 -0
- package/dist/esm/presets/base.js.map +1 -0
- package/dist/esm/presets/define.d.ts +11 -0
- package/dist/esm/presets/define.js +33 -0
- package/dist/esm/presets/define.js.map +1 -0
- package/dist/esm/presets/index.d.ts +3 -0
- package/dist/esm/presets/index.js +4 -0
- package/dist/esm/presets/index.js.map +1 -0
- package/dist/esm/presets/runtime.d.ts +22 -0
- package/dist/esm/presets/runtime.js +45 -0
- package/dist/esm/presets/runtime.js.map +1 -0
- package/dist/esm/presets/xgroup/index.d.ts +5 -0
- package/dist/esm/presets/xgroup/index.js +6 -0
- package/dist/esm/presets/xgroup/index.js.map +1 -1
- package/dist/esm/presets/xgroup/knowledgeReference.d.ts +17 -0
- package/dist/esm/presets/xgroup/knowledgeReference.js +95 -0
- package/dist/esm/presets/xgroup/knowledgeReference.js.map +1 -0
- package/dist/esm/presets/xgroup/preset.d.ts +1 -13
- package/dist/esm/presets/xgroup/preset.js +9 -29
- package/dist/esm/presets/xgroup/preset.js.map +1 -1
- package/dist/esm/presets/xgroup/strategies.d.ts +5 -4
- package/dist/esm/presets/xgroup/strategies.js +8 -20
- package/dist/esm/presets/xgroup/strategies.js.map +1 -1
- package/dist/esm/presets/xgroup/webReference.d.ts +10 -0
- package/dist/esm/presets/xgroup/webReference.js +46 -0
- package/dist/esm/presets/xgroup/webReference.js.map +1 -0
- package/dist/esm/types/ChatStrategies.d.ts +11 -2
- package/dist/esm/types/ChatStrategies.js.map +1 -1
- package/dist/esm/types/FileGallery.d.ts +3 -0
- package/dist/esm/types/FileGallery.js.map +1 -1
- package/dist/esm/types/Sources.d.ts +30 -0
- package/dist/esm/types/Sources.js +2 -0
- package/dist/esm/types/Sources.js.map +1 -0
- package/dist/esm/types/XAdkChatbot.d.ts +33 -0
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/types/XAdkSender.d.ts +112 -21
- package/dist/esm/types/XAdkSender.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/markdownResource.d.ts +14 -0
- package/dist/esm/utils/markdownResource.js +101 -0
- package/dist/esm/utils/markdownResource.js.map +1 -0
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +6 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
2
|
-
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
2
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
4
3
|
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
4
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
5
5
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
6
6
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
7
7
|
import React, { useState, useRef, useCallback, forwardRef, useImperativeHandle, useMemo, useEffect } from "react";
|
|
8
8
|
import { Popconfirm, message, Tooltip, Input, Modal } from "antd";
|
|
9
|
-
import { ClearOutlined, LoadingOutlined, ArrowUpOutlined
|
|
9
|
+
import { ClearOutlined, LoadingOutlined, ArrowUpOutlined } from "@ant-design/icons";
|
|
10
10
|
import { useStyles } from "./styles";
|
|
11
11
|
import FileGallery from "../FileGallery";
|
|
12
12
|
import QuickList from "./QuickList";
|
|
@@ -19,10 +19,9 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
19
19
|
var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
20
20
|
var _ref$clearBtnShow = _ref.clearBtnShow,
|
|
21
21
|
clearBtnShow = _ref$clearBtnShow === void 0 ? true : _ref$clearBtnShow,
|
|
22
|
-
_ref$allowUpload = _ref.allowUpload,
|
|
23
|
-
allowUpload = _ref$allowUpload === void 0 ? false : _ref$allowUpload,
|
|
24
22
|
_ref$draggable = _ref.draggable,
|
|
25
|
-
draggable = _ref$draggable === void 0 ?
|
|
23
|
+
draggable = _ref$draggable === void 0 ? false : _ref$draggable,
|
|
24
|
+
onFileSelect = _ref.onFileSelect,
|
|
26
25
|
_ref$loading = _ref.loading,
|
|
27
26
|
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
28
27
|
_ref$disabled = _ref.disabled,
|
|
@@ -59,12 +58,22 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
59
58
|
quickKeys = _ref$quickKeys === void 0 ? [] : _ref$quickKeys,
|
|
60
59
|
_ref$inlineTags = _ref.inlineTags,
|
|
61
60
|
inlineTags = _ref$inlineTags === void 0 ? false : _ref$inlineTags,
|
|
61
|
+
renderMention = _ref.renderMention,
|
|
62
62
|
renderTag = _ref.renderTag,
|
|
63
|
+
controlledMentions = _ref.mentions,
|
|
63
64
|
controlledTags = _ref.tags,
|
|
65
|
+
defaultMentions = _ref.defaultMentions,
|
|
64
66
|
_ref$defaultTags = _ref.defaultTags,
|
|
65
67
|
defaultTags = _ref$defaultTags === void 0 ? [] : _ref$defaultTags,
|
|
68
|
+
defaultInputParts = _ref.defaultInputParts,
|
|
69
|
+
onMentionsChange = _ref.onMentionsChange,
|
|
66
70
|
onTagsChange = _ref.onTagsChange,
|
|
67
|
-
onQuickKeyTrigger = _ref.onQuickKeyTrigger
|
|
71
|
+
onQuickKeyTrigger = _ref.onQuickKeyTrigger,
|
|
72
|
+
_ref$submitFormat = _ref.submitFormat,
|
|
73
|
+
submitFormat = _ref$submitFormat === void 0 ? "text" : _ref$submitFormat,
|
|
74
|
+
formatMention = _ref.formatMention,
|
|
75
|
+
formatTag = _ref.formatTag,
|
|
76
|
+
transformSubmitData = _ref.transformSubmitData;
|
|
68
77
|
var styles = useStyles();
|
|
69
78
|
var isControlled = controlledValue !== undefined;
|
|
70
79
|
var _useState = useState(defaultValue),
|
|
@@ -79,18 +88,21 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
79
88
|
onChange === null || onChange === void 0 || onChange(newValue);
|
|
80
89
|
};
|
|
81
90
|
|
|
82
|
-
//
|
|
83
|
-
var
|
|
84
|
-
var
|
|
91
|
+
// mentions 支持受控/非受控两种模式;inlineTags 打开时会和输入内容混排。
|
|
92
|
+
var resolvedControlledMentions = controlledMentions !== null && controlledMentions !== void 0 ? controlledMentions : controlledTags;
|
|
93
|
+
var initialMentions = defaultMentions !== null && defaultMentions !== void 0 ? defaultMentions : defaultTags;
|
|
94
|
+
var isMentionsControlled = resolvedControlledMentions !== undefined;
|
|
95
|
+
var _useState3 = useState(initialMentions),
|
|
85
96
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var
|
|
89
|
-
var
|
|
90
|
-
if (!
|
|
91
|
-
|
|
97
|
+
internalMentions = _useState4[0],
|
|
98
|
+
setInternalMentions = _useState4[1];
|
|
99
|
+
var mentions = isMentionsControlled ? resolvedControlledMentions : internalMentions;
|
|
100
|
+
var setMentions = function setMentions(newMentions) {
|
|
101
|
+
if (!isMentionsControlled) {
|
|
102
|
+
setInternalMentions(newMentions);
|
|
92
103
|
}
|
|
93
|
-
|
|
104
|
+
onMentionsChange === null || onMentionsChange === void 0 || onMentionsChange(newMentions);
|
|
105
|
+
onTagsChange === null || onTagsChange === void 0 || onTagsChange(newMentions);
|
|
94
106
|
};
|
|
95
107
|
var _useState5 = useState([]),
|
|
96
108
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
@@ -101,7 +113,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
101
113
|
isDragOver = _useState8[0],
|
|
102
114
|
setIsDragOver = _useState8[1];
|
|
103
115
|
var containerRef = useRef(null);
|
|
104
|
-
var fileInputRef = useRef(null);
|
|
105
116
|
var textareaRef = useRef(null);
|
|
106
117
|
var inlineInputRef = useRef(null);
|
|
107
118
|
|
|
@@ -133,6 +144,87 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
133
144
|
var data = (_response$data = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data !== void 0 ? _response$data : response;
|
|
134
145
|
return (_ref2 = Array.isArray(data) ? data[0] : data) !== null && _ref2 !== void 0 ? _ref2 : {};
|
|
135
146
|
};
|
|
147
|
+
var escapeXml = function escapeXml(text) {
|
|
148
|
+
return text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
149
|
+
};
|
|
150
|
+
var escapeMarkdownLabel = function escapeMarkdownLabel(text) {
|
|
151
|
+
return text.replace(/\\/g, "\\\\").replace(/\]/g, "\\]");
|
|
152
|
+
};
|
|
153
|
+
var getMentionSubmitValue = function getMentionSubmitValue(mention) {
|
|
154
|
+
var _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _mention$value, _mention$data, _mention$data2, _mention$data3;
|
|
155
|
+
return String((_ref3 = (_ref4 = (_ref5 = (_ref6 = (_ref7 = (_ref8 = (_ref9 = (_mention$value = mention.value) !== null && _mention$value !== void 0 ? _mention$value : mention.uri) !== null && _ref9 !== void 0 ? _ref9 : (_mention$data = mention.data) === null || _mention$data === void 0 ? void 0 : _mention$data.uri) !== null && _ref8 !== void 0 ? _ref8 : (_mention$data2 = mention.data) === null || _mention$data2 === void 0 ? void 0 : _mention$data2.value) !== null && _ref7 !== void 0 ? _ref7 : (_mention$data3 = mention.data) === null || _mention$data3 === void 0 ? void 0 : _mention$data3.name) !== null && _ref6 !== void 0 ? _ref6 : mention.targetId) !== null && _ref5 !== void 0 ? _ref5 : mention.displayName) !== null && _ref4 !== void 0 ? _ref4 : mention.label) !== null && _ref3 !== void 0 ? _ref3 : "");
|
|
156
|
+
};
|
|
157
|
+
var defaultFormatMention = function defaultFormatMention(mention, format, index) {
|
|
158
|
+
var value = getMentionSubmitValue(mention);
|
|
159
|
+
if (format === "xml") {
|
|
160
|
+
return "<mention type=\"".concat(escapeXml(mention.type), "\" id=\"").concat(escapeXml(mention.id), "\" label=\"").concat(escapeXml(mention.label), "\" value=\"").concat(escapeXml(value), "\" />");
|
|
161
|
+
}
|
|
162
|
+
if (format === "markdown") {
|
|
163
|
+
var href = mention.uri || (value.includes("://") ? value : "xadk-mention://".concat(encodeURIComponent(mention.type), "/").concat(encodeURIComponent(mention.id)));
|
|
164
|
+
return "[@".concat(escapeMarkdownLabel(mention.displayName || mention.label), "](").concat(href, ")");
|
|
165
|
+
}
|
|
166
|
+
return "@".concat(mention.displayName || value || "mention-".concat(index + 1));
|
|
167
|
+
};
|
|
168
|
+
var serializeMention = function serializeMention(mention, format, index) {
|
|
169
|
+
var _ref10, _formatMention;
|
|
170
|
+
return (_ref10 = (_formatMention = formatMention === null || formatMention === void 0 ? void 0 : formatMention(mention, {
|
|
171
|
+
format: format,
|
|
172
|
+
index: index
|
|
173
|
+
})) !== null && _formatMention !== void 0 ? _formatMention : formatTag === null || formatTag === void 0 ? void 0 : formatTag(mention, {
|
|
174
|
+
format: format,
|
|
175
|
+
index: index
|
|
176
|
+
})) !== null && _ref10 !== void 0 ? _ref10 : defaultFormatMention(mention, format, index);
|
|
177
|
+
};
|
|
178
|
+
var getSubmitParts = useCallback(function () {
|
|
179
|
+
if (inlineTags) {
|
|
180
|
+
var _inlineInputRef$curre;
|
|
181
|
+
var parts = ((_inlineInputRef$curre = inlineInputRef.current) === null || _inlineInputRef$curre === void 0 ? void 0 : _inlineInputRef$curre.getParts()) || [];
|
|
182
|
+
if (parts.length > 0) return parts;
|
|
183
|
+
}
|
|
184
|
+
var textParts = value ? [{
|
|
185
|
+
type: "text",
|
|
186
|
+
text: value
|
|
187
|
+
}] : [];
|
|
188
|
+
var mentionParts = mentions.map(function (mention) {
|
|
189
|
+
return {
|
|
190
|
+
type: "mention",
|
|
191
|
+
mention: mention
|
|
192
|
+
};
|
|
193
|
+
});
|
|
194
|
+
return [].concat(_toConsumableArray(mentionParts), textParts);
|
|
195
|
+
}, [inlineTags, mentions, value]);
|
|
196
|
+
var serializeParts = function serializeParts(parts, format) {
|
|
197
|
+
if (format === "structured") {
|
|
198
|
+
return parts.reduce(function (content, part) {
|
|
199
|
+
return content + (part.type === "text" ? part.text : "");
|
|
200
|
+
}, "");
|
|
201
|
+
}
|
|
202
|
+
var tagIndex = 0;
|
|
203
|
+
return parts.map(function (part) {
|
|
204
|
+
if (part.type === "text") return part.text;
|
|
205
|
+
var result = serializeMention(part.mention, format, tagIndex);
|
|
206
|
+
tagIndex += 1;
|
|
207
|
+
return result;
|
|
208
|
+
}).join("");
|
|
209
|
+
};
|
|
210
|
+
var createSubmitData = function createSubmitData(formattedFiles) {
|
|
211
|
+
var parts = getSubmitParts();
|
|
212
|
+
var rawText = parts.reduce(function (content, part) {
|
|
213
|
+
return content + (part.type === "text" ? part.text : "");
|
|
214
|
+
}, "");
|
|
215
|
+
var standardData = {
|
|
216
|
+
text: serializeParts(parts, submitFormat),
|
|
217
|
+
rawText: rawText,
|
|
218
|
+
format: submitFormat,
|
|
219
|
+
parts: parts,
|
|
220
|
+
files: formattedFiles,
|
|
221
|
+
mentions: mentions,
|
|
222
|
+
tags: mentions
|
|
223
|
+
};
|
|
224
|
+
return _objectSpread(_objectSpread({}, standardData), {}, {
|
|
225
|
+
payload: transformSubmitData === null || transformSubmitData === void 0 ? void 0 : transformSubmitData(standardData)
|
|
226
|
+
});
|
|
227
|
+
};
|
|
136
228
|
|
|
137
229
|
// 检查文件类型
|
|
138
230
|
var checkFileType = function checkFileType(file) {
|
|
@@ -162,8 +254,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
162
254
|
};
|
|
163
255
|
|
|
164
256
|
// 内置校验器集合
|
|
165
|
-
var builtInValidators = [function (_file,
|
|
166
|
-
var files =
|
|
257
|
+
var builtInValidators = [function (_file, _ref11) {
|
|
258
|
+
var files = _ref11.files;
|
|
167
259
|
if (files.length >= maxFiles) {
|
|
168
260
|
return "\u6700\u591A\u53EA\u80FD\u4E0A\u4F20 ".concat(maxFiles, " \u4E2A\u6587\u4EF6");
|
|
169
261
|
}
|
|
@@ -179,8 +271,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
179
271
|
return "不支持的文件类型";
|
|
180
272
|
}
|
|
181
273
|
return null;
|
|
182
|
-
}, function (file,
|
|
183
|
-
var files =
|
|
274
|
+
}, function (file, _ref12) {
|
|
275
|
+
var files = _ref12.files;
|
|
184
276
|
if (isDuplicateFile(file, files)) {
|
|
185
277
|
return "文件已存在";
|
|
186
278
|
}
|
|
@@ -251,25 +343,38 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
251
343
|
}
|
|
252
344
|
}, [files, maxFiles, maxFileSize, allowedFileTypes]);
|
|
253
345
|
|
|
254
|
-
//
|
|
346
|
+
// 暴露给业务工具栏调用的命令式能力;外部 Popover 选择标签时可插入到当前光标位置。
|
|
255
347
|
useImperativeHandle(ref, function () {
|
|
256
348
|
return {
|
|
257
349
|
addFiles: function addFiles(rawFiles) {
|
|
258
350
|
handleFileSelect(rawFiles);
|
|
351
|
+
},
|
|
352
|
+
insertMention: function insertMention(mention) {
|
|
353
|
+
if (inlineTags) {
|
|
354
|
+
var _inlineInputRef$curre2;
|
|
355
|
+
(_inlineInputRef$curre2 = inlineInputRef.current) === null || _inlineInputRef$curre2 === void 0 || _inlineInputRef$curre2.insertMention(mention);
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
setMentions([].concat(_toConsumableArray(mentions), [mention]));
|
|
359
|
+
},
|
|
360
|
+
insertTag: function insertTag(mention) {
|
|
361
|
+
if (inlineTags) {
|
|
362
|
+
var _inlineInputRef$curre3;
|
|
363
|
+
(_inlineInputRef$curre3 = inlineInputRef.current) === null || _inlineInputRef$curre3 === void 0 || _inlineInputRef$curre3.insertMention(mention);
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
setMentions([].concat(_toConsumableArray(mentions), [mention]));
|
|
367
|
+
},
|
|
368
|
+
focus: function focus() {
|
|
369
|
+
var _inlineInputRef$curre4, _textareaRef$current;
|
|
370
|
+
inlineTags ? (_inlineInputRef$curre4 = inlineInputRef.current) === null || _inlineInputRef$curre4 === void 0 ? void 0 : _inlineInputRef$curre4.focus() : (_textareaRef$current = textareaRef.current) === null || _textareaRef$current === void 0 ? void 0 : _textareaRef$current.focus();
|
|
259
371
|
}
|
|
260
372
|
};
|
|
261
|
-
}, [handleFileSelect]);
|
|
262
|
-
|
|
263
|
-
// 触发文件选择
|
|
264
|
-
var triggerFileSelect = function triggerFileSelect() {
|
|
265
|
-
if (fileInputRef.current) {
|
|
266
|
-
fileInputRef.current.click();
|
|
267
|
-
}
|
|
268
|
-
};
|
|
373
|
+
}, [handleFileSelect, inlineTags, setMentions, mentions]);
|
|
269
374
|
|
|
270
375
|
// 上传文件
|
|
271
376
|
var uploadFiles = /*#__PURE__*/function () {
|
|
272
|
-
var
|
|
377
|
+
var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fileList) {
|
|
273
378
|
var _iterator2, _step2, _loop;
|
|
274
379
|
return _regeneratorRuntime().wrap(function _callee$(_context2) {
|
|
275
380
|
while (1) switch (_context2.prev = _context2.next) {
|
|
@@ -384,7 +489,7 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
384
489
|
}, _callee, null, [[1, 10, 13, 16]]);
|
|
385
490
|
}));
|
|
386
491
|
return function uploadFiles(_x) {
|
|
387
|
-
return
|
|
492
|
+
return _ref13.apply(this, arguments);
|
|
388
493
|
};
|
|
389
494
|
}();
|
|
390
495
|
|
|
@@ -403,32 +508,33 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
403
508
|
var handleDragOver = useCallback(function (e) {
|
|
404
509
|
e.preventDefault();
|
|
405
510
|
e.stopPropagation();
|
|
406
|
-
if (
|
|
511
|
+
if (draggable) {
|
|
407
512
|
setIsDragOver(true);
|
|
408
513
|
}
|
|
409
|
-
}, [
|
|
514
|
+
}, [draggable]);
|
|
410
515
|
var handleDragLeave = useCallback(function (e) {
|
|
411
516
|
e.preventDefault();
|
|
412
517
|
e.stopPropagation();
|
|
413
|
-
if (
|
|
518
|
+
if (draggable) {
|
|
414
519
|
setIsDragOver(false);
|
|
415
520
|
}
|
|
416
|
-
}, [
|
|
521
|
+
}, [draggable]);
|
|
417
522
|
var handleDrop = useCallback(function (e) {
|
|
418
523
|
e.preventDefault();
|
|
419
524
|
e.stopPropagation();
|
|
420
525
|
setIsDragOver(false);
|
|
421
|
-
if (
|
|
422
|
-
|
|
526
|
+
if (draggable && e.dataTransfer.files && e.dataTransfer.files.length > 0) {
|
|
527
|
+
// 内核不再自行处理文件,交给外层(DefaultLayout/业务)通过 onFileSelect 决定
|
|
528
|
+
onFileSelect === null || onFileSelect === void 0 || onFileSelect(Array.from(e.dataTransfer.files));
|
|
423
529
|
}
|
|
424
|
-
}, [
|
|
530
|
+
}, [draggable, onFileSelect]);
|
|
425
531
|
|
|
426
532
|
// 删除标签
|
|
427
|
-
var
|
|
428
|
-
|
|
429
|
-
return
|
|
533
|
+
var handleRemoveMention = useCallback(function (id) {
|
|
534
|
+
setMentions(mentions.filter(function (item) {
|
|
535
|
+
return item.id !== id;
|
|
430
536
|
}));
|
|
431
|
-
}, [
|
|
537
|
+
}, [mentions, setMentions]);
|
|
432
538
|
|
|
433
539
|
// 查找当前活跃的快捷键配置
|
|
434
540
|
var activeQuickKeyConfig = useMemo(function () {
|
|
@@ -494,25 +600,31 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
494
600
|
}
|
|
495
601
|
}, [activeQuickKey, onQuickKeyTrigger, quickKeyTriggerIdx, quickKeys]);
|
|
496
602
|
|
|
497
|
-
// 选择快捷项后转成结构化
|
|
603
|
+
// 选择快捷项后转成结构化 Mention;inline 模式会替换掉触发字符和关键词。
|
|
498
604
|
var handleQuickKeySelect = useCallback(function (option) {
|
|
499
|
-
var _activeQuickKeyConfig, _inlineInputRef$
|
|
500
|
-
var
|
|
605
|
+
var _ref14, _ref15, _option$value, _ref16, _option$targetId, _option$displayName, _activeQuickKeyConfig, _inlineInputRef$curre6, _textareaRef$current2;
|
|
606
|
+
var mentionType = (activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 ? void 0 : activeQuickKeyConfig.mentionType) || (activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 ? void 0 : activeQuickKeyConfig.tagType) || activeQuickKey || "unknown";
|
|
607
|
+
var newMention = {
|
|
501
608
|
id: generateId(),
|
|
502
609
|
label: option.label,
|
|
503
|
-
type:
|
|
610
|
+
type: mentionType,
|
|
611
|
+
value: (_ref14 = (_ref15 = (_option$value = option.value) !== null && _option$value !== void 0 ? _option$value : option.uri) !== null && _ref15 !== void 0 ? _ref15 : option.name) !== null && _ref14 !== void 0 ? _ref14 : option.label,
|
|
612
|
+
uri: option.uri,
|
|
613
|
+
targetId: (_ref16 = (_option$targetId = option.targetId) !== null && _option$targetId !== void 0 ? _option$targetId : option.skillNo) !== null && _ref16 !== void 0 ? _ref16 : option.pluginNo,
|
|
614
|
+
displayName: (_option$displayName = option.displayName) !== null && _option$displayName !== void 0 ? _option$displayName : option.label,
|
|
615
|
+
trigger: activeQuickKey || undefined,
|
|
504
616
|
icon: option.icon,
|
|
505
617
|
data: option
|
|
506
618
|
};
|
|
507
619
|
activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 || (_activeQuickKeyConfig = activeQuickKeyConfig.onSelect) === null || _activeQuickKeyConfig === void 0 || _activeQuickKeyConfig.call(activeQuickKeyConfig, option);
|
|
508
620
|
if (inlineTags) {
|
|
509
|
-
var _inlineInputRef$
|
|
510
|
-
(_inlineInputRef$
|
|
621
|
+
var _inlineInputRef$curre5;
|
|
622
|
+
(_inlineInputRef$curre5 = inlineInputRef.current) === null || _inlineInputRef$curre5 === void 0 || _inlineInputRef$curre5.insertMention(newMention, {
|
|
511
623
|
start: quickKeyTriggerIdx,
|
|
512
624
|
end: quickKeyTriggerIdx + 1 + quickKeyKeyword.length
|
|
513
625
|
});
|
|
514
626
|
} else {
|
|
515
|
-
|
|
627
|
+
setMentions([].concat(_toConsumableArray(mentions), [newMention]));
|
|
516
628
|
|
|
517
629
|
// 从输入框中删除快捷键字符和关键词
|
|
518
630
|
if (quickKeyTriggerIdx >= 0) {
|
|
@@ -524,8 +636,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
524
636
|
setQuickKeyKeyword("");
|
|
525
637
|
setQuickKeyTriggerIdx(-1);
|
|
526
638
|
setQuickKeyActiveIndex(0);
|
|
527
|
-
inlineTags ? (_inlineInputRef$
|
|
528
|
-
}, [activeQuickKey, activeQuickKeyConfig, inlineTags,
|
|
639
|
+
inlineTags ? (_inlineInputRef$curre6 = inlineInputRef.current) === null || _inlineInputRef$curre6 === void 0 ? void 0 : _inlineInputRef$curre6.focus() : (_textareaRef$current2 = textareaRef.current) === null || _textareaRef$current2 === void 0 ? void 0 : _textareaRef$current2.focus();
|
|
640
|
+
}, [activeQuickKey, activeQuickKeyConfig, inlineTags, mentions, setMentions, value, quickKeyTriggerIdx, quickKeyKeyword, setValue]);
|
|
529
641
|
|
|
530
642
|
// 处理输入框变化(含快捷键检测)
|
|
531
643
|
var handleInputChange = function handleInputChange(e) {
|
|
@@ -536,10 +648,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
536
648
|
detectQuickKey(newValue, e.target.selectionStart || 0);
|
|
537
649
|
};
|
|
538
650
|
var handleInlineInputChange = function handleInlineInputChange(newValue) {
|
|
539
|
-
var _inlineInputRef$
|
|
651
|
+
var _inlineInputRef$curre7;
|
|
540
652
|
setValue(newValue);
|
|
541
653
|
// contenteditable 的 selection 不一定和 React state 同步,需实时读取内部光标 offset。
|
|
542
|
-
detectQuickKey(newValue, ((_inlineInputRef$
|
|
654
|
+
detectQuickKey(newValue, ((_inlineInputRef$curre7 = inlineInputRef.current) === null || _inlineInputRef$curre7 === void 0 ? void 0 : _inlineInputRef$curre7.getCursorOffset()) || newValue.length);
|
|
543
655
|
};
|
|
544
656
|
var handleQuickKeyByText = function handleQuickKeyByText(text, cursorPos) {
|
|
545
657
|
var quickKeyChars = quickKeys.map(function (qk) {
|
|
@@ -574,17 +686,19 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
574
686
|
handleQuickKeyByText(target.value || "", target.selectionStart || 0);
|
|
575
687
|
};
|
|
576
688
|
var handleInlineKeyUp = function handleInlineKeyUp(e) {
|
|
577
|
-
var _inlineInputRef$
|
|
689
|
+
var _inlineInputRef$curre8, _inlineInputRef$curre9;
|
|
578
690
|
if (activeQuickKey && isQuickListControlKey(e.key)) return;
|
|
579
691
|
// inline 输入区不是 textarea,不能读 event.target.value,只能从 ref 取纯文本。
|
|
580
|
-
var text = ((_inlineInputRef$
|
|
581
|
-
var cursorPos = ((_inlineInputRef$
|
|
692
|
+
var text = ((_inlineInputRef$curre8 = inlineInputRef.current) === null || _inlineInputRef$curre8 === void 0 ? void 0 : _inlineInputRef$curre8.getText()) || "";
|
|
693
|
+
var cursorPos = ((_inlineInputRef$curre9 = inlineInputRef.current) === null || _inlineInputRef$curre9 === void 0 ? void 0 : _inlineInputRef$curre9.getCursorOffset()) || text.length;
|
|
582
694
|
handleQuickKeyByText(text, cursorPos);
|
|
583
695
|
};
|
|
584
696
|
|
|
585
697
|
// 处理提交
|
|
586
698
|
var handleSubmit = function handleSubmit() {
|
|
587
|
-
|
|
699
|
+
// 生成期间允许继续编辑下一条消息,但停止按钮仍代表当前唯一可执行动作。
|
|
700
|
+
if (loading) return;
|
|
701
|
+
if (!value.trim() && files.length === 0 && mentions.length === 0) {
|
|
588
702
|
message.warning("请输入消息或选择文件");
|
|
589
703
|
return;
|
|
590
704
|
}
|
|
@@ -603,14 +717,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
603
717
|
onOk: function onOk() {
|
|
604
718
|
var formattedFiles = formatFilesForServer(successFiles);
|
|
605
719
|
if (onSubmit) {
|
|
606
|
-
onSubmit(
|
|
607
|
-
text: value,
|
|
608
|
-
files: formattedFiles,
|
|
609
|
-
tags: tags
|
|
610
|
-
});
|
|
720
|
+
onSubmit(createSubmitData(formattedFiles));
|
|
611
721
|
}
|
|
612
722
|
setValue("");
|
|
613
|
-
|
|
723
|
+
setMentions([]);
|
|
614
724
|
setFiles(function (prev) {
|
|
615
725
|
return prev.filter(function (f) {
|
|
616
726
|
return f.status !== "success";
|
|
@@ -624,14 +734,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
624
734
|
} else {
|
|
625
735
|
var formattedFiles = formatFilesForServer(successFiles);
|
|
626
736
|
if (onSubmit) {
|
|
627
|
-
onSubmit(
|
|
628
|
-
text: value,
|
|
629
|
-
files: formattedFiles,
|
|
630
|
-
tags: tags
|
|
631
|
-
});
|
|
737
|
+
onSubmit(createSubmitData(formattedFiles));
|
|
632
738
|
}
|
|
633
739
|
setValue("");
|
|
634
|
-
|
|
740
|
+
setMentions([]);
|
|
635
741
|
setFiles(function (prev) {
|
|
636
742
|
return prev.filter(function (f) {
|
|
637
743
|
return f.status !== "success";
|
|
@@ -700,15 +806,11 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
700
806
|
var renderFileList = function renderFileList() {
|
|
701
807
|
if (files.length === 0) return null;
|
|
702
808
|
return /*#__PURE__*/_jsx("div", {
|
|
703
|
-
|
|
704
|
-
display: "flex",
|
|
705
|
-
flexWrap: "wrap",
|
|
706
|
-
gap: "8px",
|
|
707
|
-
padding: "12px 0"
|
|
708
|
-
},
|
|
809
|
+
className: styles.contextFiles,
|
|
709
810
|
children: files.map(function (file) {
|
|
710
811
|
return /*#__PURE__*/_jsx(FileGallery, {
|
|
711
812
|
file: file,
|
|
813
|
+
size: "small",
|
|
712
814
|
removable: true,
|
|
713
815
|
onRemove: handleRemoveFile
|
|
714
816
|
}, file.id);
|
|
@@ -719,13 +821,14 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
719
821
|
var uploading = files.some(function (f) {
|
|
720
822
|
return f.status === "uploading";
|
|
721
823
|
});
|
|
722
|
-
var
|
|
824
|
+
var controlsDisabled = disabled || uploading || loading;
|
|
825
|
+
var inputDisabled = disabled || uploading;
|
|
723
826
|
var hasContent = value.trim().length > 0;
|
|
724
827
|
var hasFiles = files.some(function (f) {
|
|
725
828
|
return f.status === "success";
|
|
726
829
|
});
|
|
727
|
-
var
|
|
728
|
-
var canSend = hasContent || hasFiles ||
|
|
830
|
+
var hasMentions = mentions.length > 0;
|
|
831
|
+
var canSend = hasContent || hasFiles || hasMentions;
|
|
729
832
|
|
|
730
833
|
// 定义按钮组件
|
|
731
834
|
var SendButton = function SendButton(props) {
|
|
@@ -754,19 +857,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
754
857
|
}))
|
|
755
858
|
});
|
|
756
859
|
};
|
|
757
|
-
var UploadButton = function UploadButton(props) {
|
|
758
|
-
return /*#__PURE__*/_jsx(Tooltip, {
|
|
759
|
-
title: "\u4E0A\u4F20\u6587\u4EF6",
|
|
760
|
-
children: /*#__PURE__*/_jsx("button", _objectSpread(_objectSpread({
|
|
761
|
-
className: "".concat(styles.iconButton, " ").concat(styles.uploadButton),
|
|
762
|
-
onClick: triggerFileSelect,
|
|
763
|
-
disabled: isDisabled,
|
|
764
|
-
"aria-label": "\u4E0A\u4F20\u6587\u4EF6"
|
|
765
|
-
}, props), {}, {
|
|
766
|
-
children: /*#__PURE__*/_jsx(PaperClipOutlined, {})
|
|
767
|
-
}))
|
|
768
|
-
});
|
|
769
|
-
};
|
|
770
860
|
var ClearButton = function ClearButton(props) {
|
|
771
861
|
return /*#__PURE__*/_jsx(Popconfirm, {
|
|
772
862
|
title: "\u786E\u5B9A\u8981\u6E05\u7A7A\u804A\u5929\u8BB0\u5F55\u5417?",
|
|
@@ -774,10 +864,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
774
864
|
placement: "top",
|
|
775
865
|
okText: "\u786E\u5B9A",
|
|
776
866
|
cancelText: "\u53D6\u6D88",
|
|
777
|
-
disabled:
|
|
867
|
+
disabled: controlsDisabled,
|
|
778
868
|
children: /*#__PURE__*/_jsx("button", _objectSpread(_objectSpread({
|
|
779
869
|
className: "".concat(styles.iconButton, " ").concat(styles.clearButton),
|
|
780
|
-
disabled:
|
|
870
|
+
disabled: controlsDisabled,
|
|
781
871
|
"aria-label": "\u6E05\u7A7A\u804A\u5929\u8BB0\u5F55"
|
|
782
872
|
}, props), {}, {
|
|
783
873
|
children: /*#__PURE__*/_jsx(ClearOutlined, {})
|
|
@@ -786,7 +876,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
786
876
|
};
|
|
787
877
|
var actionsComponents = {
|
|
788
878
|
SendButton: SendButton,
|
|
789
|
-
UploadButton: UploadButton,
|
|
790
879
|
ClearButton: ClearButton
|
|
791
880
|
};
|
|
792
881
|
|
|
@@ -802,6 +891,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
802
891
|
}
|
|
803
892
|
return slot;
|
|
804
893
|
};
|
|
894
|
+
var headerNode = renderSlot(header, false);
|
|
895
|
+
var fileListNode = files.length > 0 ? renderFileList() : null;
|
|
805
896
|
|
|
806
897
|
// 默认后缀仅保留发送/停止按钮;上传与清空统一放到底部 actionBar,方便业务扩展左侧按钮组。
|
|
807
898
|
var defaultSuffix = /*#__PURE__*/_jsx("div", {
|
|
@@ -827,9 +918,9 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
827
918
|
});
|
|
828
919
|
var defaultActionBar = /*#__PURE__*/_jsxs("div", {
|
|
829
920
|
className: styles.actionBar,
|
|
830
|
-
children: [/*#__PURE__*/
|
|
921
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
831
922
|
className: styles.actionBarLeft,
|
|
832
|
-
children:
|
|
923
|
+
children: renderSlot(footerLeft, false)
|
|
833
924
|
}), /*#__PURE__*/_jsxs("div", {
|
|
834
925
|
className: styles.actionBarRight,
|
|
835
926
|
children: [clearBtnShow && /*#__PURE__*/_jsx(ClearButton, {}), renderSlot(suffix, defaultSuffix)]
|
|
@@ -838,43 +929,36 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
838
929
|
return /*#__PURE__*/_jsxs("div", {
|
|
839
930
|
ref: containerRef,
|
|
840
931
|
className: containerClass,
|
|
841
|
-
onDragOver:
|
|
842
|
-
onDragLeave:
|
|
843
|
-
onDrop:
|
|
844
|
-
children: [
|
|
845
|
-
ref: fileInputRef,
|
|
846
|
-
type: "file",
|
|
847
|
-
multiple: true,
|
|
848
|
-
accept: allowedFileTypes.join(","),
|
|
849
|
-
style: {
|
|
850
|
-
display: "none"
|
|
851
|
-
},
|
|
852
|
-
onChange: function onChange(e) {
|
|
853
|
-
if (e.target.files) {
|
|
854
|
-
handleFileSelect(Array.from(e.target.files));
|
|
855
|
-
e.target.value = "";
|
|
856
|
-
}
|
|
857
|
-
}
|
|
858
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
932
|
+
onDragOver: draggable ? handleDragOver : undefined,
|
|
933
|
+
onDragLeave: draggable ? handleDragLeave : undefined,
|
|
934
|
+
onDrop: draggable ? handleDrop : undefined,
|
|
935
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
859
936
|
className: styles.mainArea,
|
|
860
937
|
children: /*#__PURE__*/_jsxs("div", {
|
|
861
938
|
className: styles.senderWrap,
|
|
862
|
-
children: [
|
|
863
|
-
|
|
864
|
-
|
|
939
|
+
children: [(headerNode || fileListNode) && /*#__PURE__*/_jsxs("div", {
|
|
940
|
+
className: styles.contextBar,
|
|
941
|
+
children: [headerNode && /*#__PURE__*/_jsx("div", {
|
|
942
|
+
className: styles.contextHeader,
|
|
943
|
+
children: headerNode
|
|
944
|
+
}), fileListNode]
|
|
945
|
+
}), !inlineTags && /*#__PURE__*/_jsx(InputTags, {
|
|
946
|
+
mentions: mentions,
|
|
947
|
+
onRemove: handleRemoveMention
|
|
865
948
|
}), /*#__PURE__*/_jsxs("div", {
|
|
866
949
|
className: styles.inputAndButtons,
|
|
867
950
|
children: [renderSlot(prefix, false), inlineTags ? /*#__PURE__*/_jsx(InlineTagInput, {
|
|
868
951
|
ref: inlineInputRef,
|
|
869
952
|
value: value,
|
|
870
|
-
|
|
953
|
+
mentions: mentions,
|
|
954
|
+
defaultInputParts: defaultInputParts,
|
|
871
955
|
placeholder: placeholder,
|
|
872
|
-
disabled:
|
|
956
|
+
disabled: inputDisabled,
|
|
873
957
|
onChange: handleInlineInputChange,
|
|
874
|
-
|
|
958
|
+
onMentionsChange: setMentions,
|
|
875
959
|
onKeyDown: handleKeyDown,
|
|
876
960
|
onKeyUp: handleInlineKeyUp,
|
|
877
|
-
|
|
961
|
+
renderMention: renderMention !== null && renderMention !== void 0 ? renderMention : renderTag
|
|
878
962
|
}) : /*#__PURE__*/_jsx("div", {
|
|
879
963
|
className: styles.textAreaWrapper,
|
|
880
964
|
children: /*#__PURE__*/_jsx(Input.TextArea, {
|