@ai-group/chat-sdk 3.7.0 → 3.7.1-alpha10
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 +31 -0
- package/dist/cjs/components/XAdkSender/InlineTagInput.js +759 -0
- package/dist/cjs/components/XAdkSender/InlineTagInput.js.map +7 -0
- package/dist/cjs/components/XAdkSender/InputTags.d.ts +8 -0
- package/dist/cjs/components/XAdkSender/InputTags.js +51 -0
- package/dist/cjs/components/XAdkSender/InputTags.js.map +7 -0
- package/dist/cjs/components/XAdkSender/QuickList.d.ts +16 -0
- package/dist/cjs/components/XAdkSender/QuickList.js +105 -0
- package/dist/cjs/components/XAdkSender/QuickList.js.map +7 -0
- package/dist/cjs/components/XAdkSender/index.d.ts +1 -6
- package/dist/cjs/components/XAdkSender/index.js +422 -150
- package/dist/cjs/components/XAdkSender/index.js.map +3 -3
- package/dist/cjs/components/XAdkSender/styles.d.ts +19 -0
- package/dist/cjs/components/XAdkSender/styles.js +225 -5
- package/dist/cjs/components/XAdkSender/styles.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 -3
- package/dist/cjs/index.js +44 -10
- 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 +154 -8
- 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 +31 -0
- package/dist/esm/components/XAdkSender/InlineTagInput.js +734 -0
- package/dist/esm/components/XAdkSender/InlineTagInput.js.map +1 -0
- package/dist/esm/components/XAdkSender/InputTags.d.ts +8 -0
- package/dist/esm/components/XAdkSender/InputTags.js +37 -0
- package/dist/esm/components/XAdkSender/InputTags.js.map +1 -0
- package/dist/esm/components/XAdkSender/QuickList.d.ts +16 -0
- package/dist/esm/components/XAdkSender/QuickList.js +96 -0
- package/dist/esm/components/XAdkSender/QuickList.js.map +1 -0
- package/dist/esm/components/XAdkSender/index.d.ts +1 -6
- package/dist/esm/components/XAdkSender/index.js +476 -143
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/styles.d.ts +19 -0
- package/dist/esm/components/XAdkSender/styles.js +34 -12
- package/dist/esm/components/XAdkSender/styles.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 -3
- package/dist/esm/index.js +7 -4
- 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 +154 -8
- 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
- package/dist/cjs/components/XAdkSender/Switch.d.ts +0 -16
- package/dist/cjs/components/XAdkSender/Switch.js +0 -95
- package/dist/cjs/components/XAdkSender/Switch.js.map +0 -7
- package/dist/esm/components/XAdkSender/Switch.d.ts +0 -16
- package/dist/esm/components/XAdkSender/Switch.js +0 -53
- package/dist/esm/components/XAdkSender/Switch.js.map +0 -1
|
@@ -1,22 +1,27 @@
|
|
|
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
|
-
import React, { useState, useRef, useCallback, forwardRef, useImperativeHandle } from "react";
|
|
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
|
+
import QuickList from "./QuickList";
|
|
13
|
+
import InputTags from "./InputTags";
|
|
14
|
+
import InlineTagInput from "./InlineTagInput";
|
|
12
15
|
import { getExt } from "../../utils/file";
|
|
16
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
18
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
19
|
var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
14
20
|
var _ref$clearBtnShow = _ref.clearBtnShow,
|
|
15
21
|
clearBtnShow = _ref$clearBtnShow === void 0 ? true : _ref$clearBtnShow,
|
|
16
|
-
_ref$allowUpload = _ref.allowUpload,
|
|
17
|
-
allowUpload = _ref$allowUpload === void 0 ? false : _ref$allowUpload,
|
|
18
22
|
_ref$draggable = _ref.draggable,
|
|
19
|
-
draggable = _ref$draggable === void 0 ?
|
|
23
|
+
draggable = _ref$draggable === void 0 ? false : _ref$draggable,
|
|
24
|
+
onFileSelect = _ref.onFileSelect,
|
|
20
25
|
_ref$loading = _ref.loading,
|
|
21
26
|
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
22
27
|
_ref$disabled = _ref.disabled,
|
|
@@ -35,6 +40,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
35
40
|
onUploadError = _ref.onUploadError,
|
|
36
41
|
_ref$maxFileSize = _ref.maxFileSize,
|
|
37
42
|
maxFileSize = _ref$maxFileSize === void 0 ? 10 : _ref$maxFileSize,
|
|
43
|
+
_ref$placeholder = _ref.placeholder,
|
|
44
|
+
placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
|
|
38
45
|
_ref$validators = _ref.validators,
|
|
39
46
|
customValidators = _ref$validators === void 0 ? [] : _ref$validators,
|
|
40
47
|
_ref$allowedFileTypes = _ref.allowedFileTypes,
|
|
@@ -45,7 +52,28 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
45
52
|
suffix = _ref.suffix,
|
|
46
53
|
header = _ref.header,
|
|
47
54
|
prefix = _ref.prefix,
|
|
48
|
-
footer = _ref.footer
|
|
55
|
+
footer = _ref.footer,
|
|
56
|
+
footerLeft = _ref.footerLeft,
|
|
57
|
+
_ref$quickKeys = _ref.quickKeys,
|
|
58
|
+
quickKeys = _ref$quickKeys === void 0 ? [] : _ref$quickKeys,
|
|
59
|
+
_ref$inlineTags = _ref.inlineTags,
|
|
60
|
+
inlineTags = _ref$inlineTags === void 0 ? false : _ref$inlineTags,
|
|
61
|
+
renderMention = _ref.renderMention,
|
|
62
|
+
renderTag = _ref.renderTag,
|
|
63
|
+
controlledMentions = _ref.mentions,
|
|
64
|
+
controlledTags = _ref.tags,
|
|
65
|
+
defaultMentions = _ref.defaultMentions,
|
|
66
|
+
_ref$defaultTags = _ref.defaultTags,
|
|
67
|
+
defaultTags = _ref$defaultTags === void 0 ? [] : _ref$defaultTags,
|
|
68
|
+
defaultInputParts = _ref.defaultInputParts,
|
|
69
|
+
onMentionsChange = _ref.onMentionsChange,
|
|
70
|
+
onTagsChange = _ref.onTagsChange,
|
|
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;
|
|
49
77
|
var styles = useStyles();
|
|
50
78
|
var isControlled = controlledValue !== undefined;
|
|
51
79
|
var _useState = useState(defaultValue),
|
|
@@ -59,16 +87,53 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
59
87
|
}
|
|
60
88
|
onChange === null || onChange === void 0 || onChange(newValue);
|
|
61
89
|
};
|
|
62
|
-
|
|
90
|
+
|
|
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),
|
|
63
96
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
var
|
|
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);
|
|
103
|
+
}
|
|
104
|
+
onMentionsChange === null || onMentionsChange === void 0 || onMentionsChange(newMentions);
|
|
105
|
+
onTagsChange === null || onTagsChange === void 0 || onTagsChange(newMentions);
|
|
106
|
+
};
|
|
107
|
+
var _useState5 = useState([]),
|
|
67
108
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
68
|
-
|
|
69
|
-
|
|
109
|
+
files = _useState6[0],
|
|
110
|
+
setFiles = _useState6[1];
|
|
111
|
+
var _useState7 = useState(false),
|
|
112
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
113
|
+
isDragOver = _useState8[0],
|
|
114
|
+
setIsDragOver = _useState8[1];
|
|
70
115
|
var containerRef = useRef(null);
|
|
71
|
-
var
|
|
116
|
+
var textareaRef = useRef(null);
|
|
117
|
+
var inlineInputRef = useRef(null);
|
|
118
|
+
|
|
119
|
+
// 快捷键弹层状态:记录触发字符、关键词,以及触发字符在纯文本中的位置。
|
|
120
|
+
// SDK 不内置搜索框;业务方可在 onQuickKeyTrigger 中根据 keyword 自行更新 quickKeys.options。
|
|
121
|
+
var _useState9 = useState(null),
|
|
122
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
123
|
+
activeQuickKey = _useState10[0],
|
|
124
|
+
setActiveQuickKey = _useState10[1];
|
|
125
|
+
var _useState11 = useState(""),
|
|
126
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
127
|
+
quickKeyKeyword = _useState12[0],
|
|
128
|
+
setQuickKeyKeyword = _useState12[1];
|
|
129
|
+
var _useState13 = useState(-1),
|
|
130
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
131
|
+
quickKeyTriggerIdx = _useState14[0],
|
|
132
|
+
setQuickKeyTriggerIdx = _useState14[1];
|
|
133
|
+
var _useState15 = useState(0),
|
|
134
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
135
|
+
quickKeyActiveIndex = _useState16[0],
|
|
136
|
+
setQuickKeyActiveIndex = _useState16[1];
|
|
72
137
|
|
|
73
138
|
// 生成唯一ID
|
|
74
139
|
var generateId = function generateId() {
|
|
@@ -79,13 +144,93 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
79
144
|
var data = (_response$data = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data !== void 0 ? _response$data : response;
|
|
80
145
|
return (_ref2 = Array.isArray(data) ? data[0] : data) !== null && _ref2 !== void 0 ? _ref2 : {};
|
|
81
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
|
+
};
|
|
82
228
|
|
|
83
229
|
// 检查文件类型
|
|
84
230
|
var checkFileType = function checkFileType(file) {
|
|
85
231
|
if ((allowedFileTypes === null || allowedFileTypes === void 0 ? void 0 : allowedFileTypes.length) > 0) {
|
|
86
232
|
var ext = getExt(file);
|
|
87
233
|
return allowedFileTypes.some(function (type) {
|
|
88
|
-
// 1️⃣ MIME 校验
|
|
89
234
|
if (type.includes("/")) {
|
|
90
235
|
if (type.endsWith("/*")) {
|
|
91
236
|
return file.type.startsWith(type.split("/")[0]);
|
|
@@ -101,12 +246,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
101
246
|
return true;
|
|
102
247
|
};
|
|
103
248
|
|
|
104
|
-
// 检查文件大小
|
|
105
|
-
var checkFileSize = function checkFileSize(file) {
|
|
106
|
-
var maxSize = maxFileSize * 1024 * 1024;
|
|
107
|
-
return file.size <= maxSize;
|
|
108
|
-
};
|
|
109
|
-
|
|
110
249
|
// 重复文件检测
|
|
111
250
|
var isDuplicateFile = function isDuplicateFile(file, files) {
|
|
112
251
|
return files.some(function (f) {
|
|
@@ -115,33 +254,25 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
115
254
|
};
|
|
116
255
|
|
|
117
256
|
// 内置校验器集合
|
|
118
|
-
var builtInValidators = [
|
|
119
|
-
|
|
120
|
-
function (_file, _ref3) {
|
|
121
|
-
var files = _ref3.files;
|
|
257
|
+
var builtInValidators = [function (_file, _ref11) {
|
|
258
|
+
var files = _ref11.files;
|
|
122
259
|
if (files.length >= maxFiles) {
|
|
123
260
|
return "\u6700\u591A\u53EA\u80FD\u4E0A\u4F20 ".concat(maxFiles, " \u4E2A\u6587\u4EF6");
|
|
124
261
|
}
|
|
125
262
|
return null;
|
|
126
|
-
},
|
|
127
|
-
// 大小校验
|
|
128
|
-
function (file) {
|
|
263
|
+
}, function (file) {
|
|
129
264
|
var maxSize = maxFileSize * 1024 * 1024;
|
|
130
265
|
if (file.size > maxSize) {
|
|
131
266
|
return "\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 ".concat(maxFileSize, "MB");
|
|
132
267
|
}
|
|
133
268
|
return null;
|
|
134
|
-
},
|
|
135
|
-
// 类型校验
|
|
136
|
-
function (file) {
|
|
269
|
+
}, function (file) {
|
|
137
270
|
if (!checkFileType(file)) {
|
|
138
271
|
return "不支持的文件类型";
|
|
139
272
|
}
|
|
140
273
|
return null;
|
|
141
|
-
},
|
|
142
|
-
|
|
143
|
-
function (file, _ref4) {
|
|
144
|
-
var files = _ref4.files;
|
|
274
|
+
}, function (file, _ref12) {
|
|
275
|
+
var files = _ref12.files;
|
|
145
276
|
if (isDuplicateFile(file, files)) {
|
|
146
277
|
return "文件已存在";
|
|
147
278
|
}
|
|
@@ -212,18 +343,38 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
212
343
|
}
|
|
213
344
|
}, [files, maxFiles, maxFileSize, allowedFileTypes]);
|
|
214
345
|
|
|
215
|
-
//
|
|
346
|
+
// 暴露给业务工具栏调用的命令式能力;外部 Popover 选择标签时可插入到当前光标位置。
|
|
216
347
|
useImperativeHandle(ref, function () {
|
|
217
348
|
return {
|
|
218
349
|
addFiles: function addFiles(rawFiles) {
|
|
219
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();
|
|
220
371
|
}
|
|
221
372
|
};
|
|
222
|
-
}, [handleFileSelect]);
|
|
373
|
+
}, [handleFileSelect, inlineTags, setMentions, mentions]);
|
|
223
374
|
|
|
224
375
|
// 上传文件
|
|
225
376
|
var uploadFiles = /*#__PURE__*/function () {
|
|
226
|
-
var
|
|
377
|
+
var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fileList) {
|
|
227
378
|
var _iterator2, _step2, _loop;
|
|
228
379
|
return _regeneratorRuntime().wrap(function _callee$(_context2) {
|
|
229
380
|
while (1) switch (_context2.prev = _context2.next) {
|
|
@@ -236,7 +387,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
236
387
|
while (1) switch (_context.prev = _context.next) {
|
|
237
388
|
case 0:
|
|
238
389
|
localFile = _step2.value;
|
|
239
|
-
// 开始上传
|
|
240
390
|
setFiles(function (prev) {
|
|
241
391
|
return prev.map(function (f) {
|
|
242
392
|
return f.id === localFile.id ? _objectSpread(_objectSpread({}, f), {}, {
|
|
@@ -339,7 +489,7 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
339
489
|
}, _callee, null, [[1, 10, 13, 16]]);
|
|
340
490
|
}));
|
|
341
491
|
return function uploadFiles(_x) {
|
|
342
|
-
return
|
|
492
|
+
return _ref13.apply(this, arguments);
|
|
343
493
|
};
|
|
344
494
|
}();
|
|
345
495
|
|
|
@@ -354,40 +504,201 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
354
504
|
});
|
|
355
505
|
};
|
|
356
506
|
|
|
357
|
-
// 触发文件选择
|
|
358
|
-
var triggerFileSelect = function triggerFileSelect() {
|
|
359
|
-
if (fileInputRef.current) {
|
|
360
|
-
fileInputRef.current.click();
|
|
361
|
-
}
|
|
362
|
-
};
|
|
363
|
-
|
|
364
507
|
// 处理拖拽事件
|
|
365
508
|
var handleDragOver = useCallback(function (e) {
|
|
366
509
|
e.preventDefault();
|
|
367
510
|
e.stopPropagation();
|
|
368
|
-
if (
|
|
511
|
+
if (draggable) {
|
|
369
512
|
setIsDragOver(true);
|
|
370
513
|
}
|
|
371
|
-
}, [
|
|
514
|
+
}, [draggable]);
|
|
372
515
|
var handleDragLeave = useCallback(function (e) {
|
|
373
516
|
e.preventDefault();
|
|
374
517
|
e.stopPropagation();
|
|
375
|
-
if (
|
|
518
|
+
if (draggable) {
|
|
376
519
|
setIsDragOver(false);
|
|
377
520
|
}
|
|
378
|
-
}, [
|
|
521
|
+
}, [draggable]);
|
|
379
522
|
var handleDrop = useCallback(function (e) {
|
|
380
523
|
e.preventDefault();
|
|
381
524
|
e.stopPropagation();
|
|
382
525
|
setIsDragOver(false);
|
|
383
|
-
if (
|
|
384
|
-
|
|
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));
|
|
529
|
+
}
|
|
530
|
+
}, [draggable, onFileSelect]);
|
|
531
|
+
|
|
532
|
+
// 删除标签
|
|
533
|
+
var handleRemoveMention = useCallback(function (id) {
|
|
534
|
+
setMentions(mentions.filter(function (item) {
|
|
535
|
+
return item.id !== id;
|
|
536
|
+
}));
|
|
537
|
+
}, [mentions, setMentions]);
|
|
538
|
+
|
|
539
|
+
// 查找当前活跃的快捷键配置
|
|
540
|
+
var activeQuickKeyConfig = useMemo(function () {
|
|
541
|
+
if (!activeQuickKey) return null;
|
|
542
|
+
return quickKeys.find(function (qk) {
|
|
543
|
+
return qk.key === activeQuickKey;
|
|
544
|
+
}) || null;
|
|
545
|
+
}, [activeQuickKey, quickKeys]);
|
|
546
|
+
var activeQuickKeyOptionsLength = (activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 ? void 0 : activeQuickKeyConfig.options.length) || 0;
|
|
547
|
+
useEffect(function () {
|
|
548
|
+
setQuickKeyActiveIndex(0);
|
|
549
|
+
}, [activeQuickKey]);
|
|
550
|
+
useEffect(function () {
|
|
551
|
+
if (activeQuickKeyOptionsLength <= 0) {
|
|
552
|
+
setQuickKeyActiveIndex(0);
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
// 业务方可能在 onQuickKeyTrigger 中动态更新 options;
|
|
557
|
+
// 这里只做越界归一化,不重置有效索引,避免键盘高亮移动后又跳回第一项。
|
|
558
|
+
setQuickKeyActiveIndex(function (prev) {
|
|
559
|
+
return (prev % activeQuickKeyOptionsLength + activeQuickKeyOptionsLength) % activeQuickKeyOptionsLength;
|
|
560
|
+
});
|
|
561
|
+
}, [activeQuickKeyOptionsLength]);
|
|
562
|
+
var getNextQuickKeyIndex = useCallback(function (current, step) {
|
|
563
|
+
if (activeQuickKeyOptionsLength <= 0) return 0;
|
|
564
|
+
return (current + step + activeQuickKeyOptionsLength) % activeQuickKeyOptionsLength;
|
|
565
|
+
}, [activeQuickKeyOptionsLength]);
|
|
566
|
+
|
|
567
|
+
// 从当前光标前的连续文本片段中查找最近的快捷键,例如 abc@doc 会触发 @。
|
|
568
|
+
var detectQuickKey = useCallback(function (text, cursorPos) {
|
|
569
|
+
var quickKeyChars = quickKeys.map(function (qk) {
|
|
570
|
+
return qk.key;
|
|
571
|
+
});
|
|
572
|
+
if (quickKeyChars.length === 0) return;
|
|
573
|
+
var textBeforeCursor = text.slice(0, cursorPos);
|
|
574
|
+
var found = false;
|
|
575
|
+
for (var i = textBeforeCursor.length - 1; i >= 0; i--) {
|
|
576
|
+
var char = textBeforeCursor[i];
|
|
577
|
+
if (/\s/.test(char)) break;
|
|
578
|
+
if (quickKeyChars.includes(char)) {
|
|
579
|
+
var keyword = textBeforeCursor.slice(i + 1);
|
|
580
|
+
setActiveQuickKey(char);
|
|
581
|
+
setQuickKeyKeyword(keyword);
|
|
582
|
+
setQuickKeyTriggerIdx(i);
|
|
583
|
+
setQuickKeyActiveIndex(0);
|
|
584
|
+
onQuickKeyTrigger === null || onQuickKeyTrigger === void 0 || onQuickKeyTrigger(char, keyword);
|
|
585
|
+
found = true;
|
|
586
|
+
break;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
if (!found && activeQuickKey) {
|
|
590
|
+
var triggerChar = text[quickKeyTriggerIdx];
|
|
591
|
+
var _keyword = text.slice(quickKeyTriggerIdx + 1, cursorPos);
|
|
592
|
+
if (quickKeyTriggerIdx < 0 || !triggerChar || !quickKeyChars.includes(triggerChar) || /\s/.test(_keyword)) {
|
|
593
|
+
setActiveQuickKey(null);
|
|
594
|
+
setQuickKeyKeyword("");
|
|
595
|
+
setQuickKeyTriggerIdx(-1);
|
|
596
|
+
setQuickKeyActiveIndex(0);
|
|
597
|
+
} else {
|
|
598
|
+
setQuickKeyKeyword(_keyword);
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
}, [activeQuickKey, onQuickKeyTrigger, quickKeyTriggerIdx, quickKeys]);
|
|
602
|
+
|
|
603
|
+
// 选择快捷项后转成结构化 Mention;inline 模式会替换掉触发字符和关键词。
|
|
604
|
+
var handleQuickKeySelect = useCallback(function (option) {
|
|
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 = {
|
|
608
|
+
id: generateId(),
|
|
609
|
+
label: option.label,
|
|
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,
|
|
616
|
+
icon: option.icon,
|
|
617
|
+
data: option
|
|
618
|
+
};
|
|
619
|
+
activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 || (_activeQuickKeyConfig = activeQuickKeyConfig.onSelect) === null || _activeQuickKeyConfig === void 0 || _activeQuickKeyConfig.call(activeQuickKeyConfig, option);
|
|
620
|
+
if (inlineTags) {
|
|
621
|
+
var _inlineInputRef$curre5;
|
|
622
|
+
(_inlineInputRef$curre5 = inlineInputRef.current) === null || _inlineInputRef$curre5 === void 0 || _inlineInputRef$curre5.insertMention(newMention, {
|
|
623
|
+
start: quickKeyTriggerIdx,
|
|
624
|
+
end: quickKeyTriggerIdx + 1 + quickKeyKeyword.length
|
|
625
|
+
});
|
|
626
|
+
} else {
|
|
627
|
+
setMentions([].concat(_toConsumableArray(mentions), [newMention]));
|
|
628
|
+
|
|
629
|
+
// 从输入框中删除快捷键字符和关键词
|
|
630
|
+
if (quickKeyTriggerIdx >= 0) {
|
|
631
|
+
var newValue = value.slice(0, quickKeyTriggerIdx) + value.slice(quickKeyTriggerIdx + 1 + quickKeyKeyword.length);
|
|
632
|
+
setValue(newValue);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
setActiveQuickKey(null);
|
|
636
|
+
setQuickKeyKeyword("");
|
|
637
|
+
setQuickKeyTriggerIdx(-1);
|
|
638
|
+
setQuickKeyActiveIndex(0);
|
|
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]);
|
|
641
|
+
|
|
642
|
+
// 处理输入框变化(含快捷键检测)
|
|
643
|
+
var handleInputChange = function handleInputChange(e) {
|
|
644
|
+
var newValue = e.target.value;
|
|
645
|
+
setValue(newValue);
|
|
646
|
+
|
|
647
|
+
// 检测快捷键触发
|
|
648
|
+
detectQuickKey(newValue, e.target.selectionStart || 0);
|
|
649
|
+
};
|
|
650
|
+
var handleInlineInputChange = function handleInlineInputChange(newValue) {
|
|
651
|
+
var _inlineInputRef$curre7;
|
|
652
|
+
setValue(newValue);
|
|
653
|
+
// contenteditable 的 selection 不一定和 React state 同步,需实时读取内部光标 offset。
|
|
654
|
+
detectQuickKey(newValue, ((_inlineInputRef$curre7 = inlineInputRef.current) === null || _inlineInputRef$curre7 === void 0 ? void 0 : _inlineInputRef$curre7.getCursorOffset()) || newValue.length);
|
|
655
|
+
};
|
|
656
|
+
var handleQuickKeyByText = function handleQuickKeyByText(text, cursorPos) {
|
|
657
|
+
var quickKeyChars = quickKeys.map(function (qk) {
|
|
658
|
+
return qk.key;
|
|
659
|
+
});
|
|
660
|
+
if (quickKeyChars.length === 0) return;
|
|
661
|
+
var textBeforeCursor = text.slice(0, cursorPos);
|
|
662
|
+
|
|
663
|
+
// 检测刚输入的字符是否是快捷键
|
|
664
|
+
var lastChar = textBeforeCursor[cursorPos - 1];
|
|
665
|
+
if (lastChar && quickKeyChars.includes(lastChar)) {
|
|
666
|
+
// 上下键导航后会触发 keyup,此时光标前仍是同一个快捷键字符;
|
|
667
|
+
// 如果重复重置 activeIndex,视觉上会“移动一下又回到第一项”。
|
|
668
|
+
if (activeQuickKey === lastChar && quickKeyTriggerIdx === cursorPos - 1) {
|
|
669
|
+
return;
|
|
670
|
+
}
|
|
671
|
+
setActiveQuickKey(lastChar);
|
|
672
|
+
setQuickKeyKeyword("");
|
|
673
|
+
setQuickKeyTriggerIdx(cursorPos - 1);
|
|
674
|
+
setQuickKeyActiveIndex(0);
|
|
675
|
+
onQuickKeyTrigger === null || onQuickKeyTrigger === void 0 || onQuickKeyTrigger(lastChar, "");
|
|
385
676
|
}
|
|
386
|
-
}
|
|
677
|
+
};
|
|
678
|
+
|
|
679
|
+
// onChange 负责更新搜索词;onKeyUp 兜底捕获刚输入的快捷键字符。
|
|
680
|
+
var isQuickListControlKey = function isQuickListControlKey(key) {
|
|
681
|
+
return key === "ArrowDown" || key === "ArrowUp" || key === "Enter" || key === "Escape";
|
|
682
|
+
};
|
|
683
|
+
var handleKeyUp = function handleKeyUp(e) {
|
|
684
|
+
if (activeQuickKey && isQuickListControlKey(e.key)) return;
|
|
685
|
+
var target = e.target;
|
|
686
|
+
handleQuickKeyByText(target.value || "", target.selectionStart || 0);
|
|
687
|
+
};
|
|
688
|
+
var handleInlineKeyUp = function handleInlineKeyUp(e) {
|
|
689
|
+
var _inlineInputRef$curre8, _inlineInputRef$curre9;
|
|
690
|
+
if (activeQuickKey && isQuickListControlKey(e.key)) return;
|
|
691
|
+
// inline 输入区不是 textarea,不能读 event.target.value,只能从 ref 取纯文本。
|
|
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;
|
|
694
|
+
handleQuickKeyByText(text, cursorPos);
|
|
695
|
+
};
|
|
387
696
|
|
|
388
697
|
// 处理提交
|
|
389
698
|
var handleSubmit = function handleSubmit() {
|
|
390
|
-
|
|
699
|
+
// 生成期间允许继续编辑下一条消息,但停止按钮仍代表当前唯一可执行动作。
|
|
700
|
+
if (loading) return;
|
|
701
|
+
if (!value.trim() && files.length === 0 && mentions.length === 0) {
|
|
391
702
|
message.warning("请输入消息或选择文件");
|
|
392
703
|
return;
|
|
393
704
|
}
|
|
@@ -406,12 +717,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
406
717
|
onOk: function onOk() {
|
|
407
718
|
var formattedFiles = formatFilesForServer(successFiles);
|
|
408
719
|
if (onSubmit) {
|
|
409
|
-
onSubmit(
|
|
410
|
-
text: value,
|
|
411
|
-
files: formattedFiles
|
|
412
|
-
});
|
|
720
|
+
onSubmit(createSubmitData(formattedFiles));
|
|
413
721
|
}
|
|
414
722
|
setValue("");
|
|
723
|
+
setMentions([]);
|
|
415
724
|
setFiles(function (prev) {
|
|
416
725
|
return prev.filter(function (f) {
|
|
417
726
|
return f.status !== "success";
|
|
@@ -425,12 +734,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
425
734
|
} else {
|
|
426
735
|
var formattedFiles = formatFilesForServer(successFiles);
|
|
427
736
|
if (onSubmit) {
|
|
428
|
-
onSubmit(
|
|
429
|
-
text: value,
|
|
430
|
-
files: formattedFiles
|
|
431
|
-
});
|
|
737
|
+
onSubmit(createSubmitData(formattedFiles));
|
|
432
738
|
}
|
|
433
739
|
setValue("");
|
|
740
|
+
setMentions([]);
|
|
434
741
|
setFiles(function (prev) {
|
|
435
742
|
return prev.filter(function (f) {
|
|
436
743
|
return f.status !== "success";
|
|
@@ -457,34 +764,53 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
457
764
|
});
|
|
458
765
|
};
|
|
459
766
|
|
|
460
|
-
// 处理输入框变化
|
|
461
|
-
var handleInputChange = function handleInputChange(e) {
|
|
462
|
-
var newValue = e.target.value;
|
|
463
|
-
setValue(newValue);
|
|
464
|
-
};
|
|
465
|
-
|
|
466
767
|
// 处理回车键
|
|
467
768
|
var handleKeyDown = function handleKeyDown(e) {
|
|
468
|
-
|
|
769
|
+
var quickKeyOptions = (activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 ? void 0 : activeQuickKeyConfig.options) || [];
|
|
770
|
+
if (activeQuickKey && quickKeyOptions.length > 0) {
|
|
771
|
+
if (e.key === "ArrowDown") {
|
|
772
|
+
e.preventDefault();
|
|
773
|
+
setQuickKeyActiveIndex(function (prev) {
|
|
774
|
+
return getNextQuickKeyIndex(prev, 1);
|
|
775
|
+
});
|
|
776
|
+
return;
|
|
777
|
+
}
|
|
778
|
+
if (e.key === "ArrowUp") {
|
|
779
|
+
e.preventDefault();
|
|
780
|
+
setQuickKeyActiveIndex(function (prev) {
|
|
781
|
+
return getNextQuickKeyIndex(prev, -1);
|
|
782
|
+
});
|
|
783
|
+
return;
|
|
784
|
+
}
|
|
785
|
+
if (e.key === "Enter") {
|
|
786
|
+
e.preventDefault();
|
|
787
|
+
handleQuickKeySelect(quickKeyOptions[Math.min(quickKeyActiveIndex, quickKeyOptions.length - 1)]);
|
|
788
|
+
return;
|
|
789
|
+
}
|
|
790
|
+
if (e.key === "Escape") {
|
|
791
|
+
e.preventDefault();
|
|
792
|
+
setActiveQuickKey(null);
|
|
793
|
+
setQuickKeyKeyword("");
|
|
794
|
+
setQuickKeyTriggerIdx(-1);
|
|
795
|
+
setQuickKeyActiveIndex(0);
|
|
796
|
+
return;
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
if (e.key === "Enter" && !e.shiftKey && !activeQuickKey) {
|
|
469
800
|
e.preventDefault();
|
|
470
801
|
handleSubmit();
|
|
471
802
|
}
|
|
472
803
|
};
|
|
473
804
|
|
|
474
|
-
// 渲染文件列表
|
|
805
|
+
// 渲染文件列表
|
|
475
806
|
var renderFileList = function renderFileList() {
|
|
476
807
|
if (files.length === 0) return null;
|
|
477
808
|
return /*#__PURE__*/_jsx("div", {
|
|
478
|
-
|
|
479
|
-
display: "flex",
|
|
480
|
-
flexWrap: "wrap",
|
|
481
|
-
gap: "8px",
|
|
482
|
-
padding: "12px 0"
|
|
483
|
-
},
|
|
809
|
+
className: styles.contextFiles,
|
|
484
810
|
children: files.map(function (file) {
|
|
485
811
|
return /*#__PURE__*/_jsx(FileGallery, {
|
|
486
812
|
file: file,
|
|
487
|
-
|
|
813
|
+
size: "small",
|
|
488
814
|
removable: true,
|
|
489
815
|
onRemove: handleRemoveFile
|
|
490
816
|
}, file.id);
|
|
@@ -495,15 +821,16 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
495
821
|
var uploading = files.some(function (f) {
|
|
496
822
|
return f.status === "uploading";
|
|
497
823
|
});
|
|
498
|
-
var
|
|
824
|
+
var controlsDisabled = disabled || uploading || loading;
|
|
825
|
+
var inputDisabled = disabled || uploading;
|
|
499
826
|
var hasContent = value.trim().length > 0;
|
|
500
827
|
var hasFiles = files.some(function (f) {
|
|
501
828
|
return f.status === "success";
|
|
502
829
|
});
|
|
503
|
-
var
|
|
830
|
+
var hasMentions = mentions.length > 0;
|
|
831
|
+
var canSend = hasContent || hasFiles || hasMentions;
|
|
504
832
|
|
|
505
|
-
//
|
|
506
|
-
// 注意:sendButtonRender 的结果直接内联到 defaultSuffix 中,避免组件引用变化导致闪烁
|
|
833
|
+
// 定义按钮组件
|
|
507
834
|
var SendButton = function SendButton(props) {
|
|
508
835
|
if (sendButtonRender) {
|
|
509
836
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
@@ -530,19 +857,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
530
857
|
}))
|
|
531
858
|
});
|
|
532
859
|
};
|
|
533
|
-
var UploadButton = function UploadButton(props) {
|
|
534
|
-
return /*#__PURE__*/_jsx(Tooltip, {
|
|
535
|
-
title: "\u4E0A\u4F20\u6587\u4EF6",
|
|
536
|
-
children: /*#__PURE__*/_jsx("button", _objectSpread(_objectSpread({
|
|
537
|
-
className: "".concat(styles.iconButton, " ").concat(styles.uploadButton),
|
|
538
|
-
onClick: triggerFileSelect,
|
|
539
|
-
disabled: isDisabled,
|
|
540
|
-
"aria-label": "\u4E0A\u4F20\u6587\u4EF6"
|
|
541
|
-
}, props), {}, {
|
|
542
|
-
children: /*#__PURE__*/_jsx(PaperClipOutlined, {})
|
|
543
|
-
}))
|
|
544
|
-
});
|
|
545
|
-
};
|
|
546
860
|
var ClearButton = function ClearButton(props) {
|
|
547
861
|
return /*#__PURE__*/_jsx(Popconfirm, {
|
|
548
862
|
title: "\u786E\u5B9A\u8981\u6E05\u7A7A\u804A\u5929\u8BB0\u5F55\u5417?",
|
|
@@ -550,10 +864,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
550
864
|
placement: "top",
|
|
551
865
|
okText: "\u786E\u5B9A",
|
|
552
866
|
cancelText: "\u53D6\u6D88",
|
|
553
|
-
disabled:
|
|
867
|
+
disabled: controlsDisabled,
|
|
554
868
|
children: /*#__PURE__*/_jsx("button", _objectSpread(_objectSpread({
|
|
555
869
|
className: "".concat(styles.iconButton, " ").concat(styles.clearButton),
|
|
556
|
-
disabled:
|
|
870
|
+
disabled: controlsDisabled,
|
|
557
871
|
"aria-label": "\u6E05\u7A7A\u804A\u5929\u8BB0\u5F55"
|
|
558
872
|
}, props), {}, {
|
|
559
873
|
children: /*#__PURE__*/_jsx(ClearOutlined, {})
|
|
@@ -562,7 +876,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
562
876
|
};
|
|
563
877
|
var actionsComponents = {
|
|
564
878
|
SendButton: SendButton,
|
|
565
|
-
UploadButton: UploadButton,
|
|
566
879
|
ClearButton: ClearButton
|
|
567
880
|
};
|
|
568
881
|
|
|
@@ -578,20 +891,13 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
578
891
|
}
|
|
579
892
|
return slot;
|
|
580
893
|
};
|
|
894
|
+
var headerNode = renderSlot(header, false);
|
|
895
|
+
var fileListNode = files.length > 0 ? renderFileList() : null;
|
|
581
896
|
|
|
582
|
-
//
|
|
583
|
-
var defaultSuffix = /*#__PURE__*/
|
|
897
|
+
// 默认后缀仅保留发送/停止按钮;上传与清空统一放到底部 actionBar,方便业务扩展左侧按钮组。
|
|
898
|
+
var defaultSuffix = /*#__PURE__*/_jsx("div", {
|
|
584
899
|
className: styles.buttonGroup,
|
|
585
|
-
children:
|
|
586
|
-
title: "\u4E0A\u4F20\u6587\u4EF6",
|
|
587
|
-
children: /*#__PURE__*/_jsx("button", {
|
|
588
|
-
className: "".concat(styles.iconButton, " ").concat(styles.uploadButton),
|
|
589
|
-
onClick: triggerFileSelect,
|
|
590
|
-
disabled: isDisabled,
|
|
591
|
-
"aria-label": "\u4E0A\u4F20\u6587\u4EF6",
|
|
592
|
-
children: /*#__PURE__*/_jsx(PaperClipOutlined, {})
|
|
593
|
-
})
|
|
594
|
-
}), sendButtonRender ? sendButtonRender({
|
|
900
|
+
children: sendButtonRender ? sendButtonRender({
|
|
595
901
|
loading: loading,
|
|
596
902
|
disabled: uploading || disabled,
|
|
597
903
|
canSend: canSend,
|
|
@@ -608,42 +914,61 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
608
914
|
spin: true
|
|
609
915
|
}) : /*#__PURE__*/_jsx(ArrowUpOutlined, {})
|
|
610
916
|
})
|
|
917
|
+
})
|
|
918
|
+
});
|
|
919
|
+
var defaultActionBar = /*#__PURE__*/_jsxs("div", {
|
|
920
|
+
className: styles.actionBar,
|
|
921
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
922
|
+
className: styles.actionBarLeft,
|
|
923
|
+
children: renderSlot(footerLeft, false)
|
|
924
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
925
|
+
className: styles.actionBarRight,
|
|
926
|
+
children: [clearBtnShow && /*#__PURE__*/_jsx(ClearButton, {}), renderSlot(suffix, defaultSuffix)]
|
|
611
927
|
})]
|
|
612
928
|
});
|
|
613
929
|
return /*#__PURE__*/_jsxs("div", {
|
|
614
930
|
ref: containerRef,
|
|
615
931
|
className: containerClass,
|
|
616
|
-
onDragOver:
|
|
617
|
-
onDragLeave:
|
|
618
|
-
onDrop:
|
|
619
|
-
children: [
|
|
620
|
-
ref: fileInputRef,
|
|
621
|
-
type: "file",
|
|
622
|
-
multiple: true,
|
|
623
|
-
accept: allowedFileTypes.join(","),
|
|
624
|
-
style: {
|
|
625
|
-
display: "none"
|
|
626
|
-
},
|
|
627
|
-
onChange: function onChange(e) {
|
|
628
|
-
if (e.target.files) {
|
|
629
|
-
handleFileSelect(Array.from(e.target.files));
|
|
630
|
-
e.target.value = "";
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
932
|
+
onDragOver: draggable ? handleDragOver : undefined,
|
|
933
|
+
onDragLeave: draggable ? handleDragLeave : undefined,
|
|
934
|
+
onDrop: draggable ? handleDrop : undefined,
|
|
935
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
634
936
|
className: styles.mainArea,
|
|
635
937
|
children: /*#__PURE__*/_jsxs("div", {
|
|
636
938
|
className: styles.senderWrap,
|
|
637
|
-
children: [/*#__PURE__*/_jsxs("div", {
|
|
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
|
|
948
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
638
949
|
className: styles.inputAndButtons,
|
|
639
|
-
children: [
|
|
950
|
+
children: [renderSlot(prefix, false), inlineTags ? /*#__PURE__*/_jsx(InlineTagInput, {
|
|
951
|
+
ref: inlineInputRef,
|
|
952
|
+
value: value,
|
|
953
|
+
mentions: mentions,
|
|
954
|
+
defaultInputParts: defaultInputParts,
|
|
955
|
+
placeholder: placeholder,
|
|
956
|
+
disabled: inputDisabled,
|
|
957
|
+
onChange: handleInlineInputChange,
|
|
958
|
+
onMentionsChange: setMentions,
|
|
959
|
+
onKeyDown: handleKeyDown,
|
|
960
|
+
onKeyUp: handleInlineKeyUp,
|
|
961
|
+
renderMention: renderMention !== null && renderMention !== void 0 ? renderMention : renderTag
|
|
962
|
+
}) : /*#__PURE__*/_jsx("div", {
|
|
640
963
|
className: styles.textAreaWrapper,
|
|
641
964
|
children: /*#__PURE__*/_jsx(Input.TextArea, {
|
|
965
|
+
ref: textareaRef,
|
|
642
966
|
className: styles.textArea,
|
|
643
967
|
value: value,
|
|
644
968
|
onChange: handleInputChange,
|
|
645
969
|
onKeyDown: handleKeyDown,
|
|
646
|
-
|
|
970
|
+
onKeyUp: handleKeyUp,
|
|
971
|
+
placeholder: placeholder,
|
|
647
972
|
autoSize: {
|
|
648
973
|
minRows: 1,
|
|
649
974
|
maxRows: 4
|
|
@@ -655,21 +980,29 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
655
980
|
padding: 0
|
|
656
981
|
}
|
|
657
982
|
})
|
|
658
|
-
})
|
|
659
|
-
}),
|
|
660
|
-
className: styles.
|
|
661
|
-
children:
|
|
662
|
-
|
|
983
|
+
})]
|
|
984
|
+
}), activeQuickKey && activeQuickKeyConfig && /*#__PURE__*/_jsx("div", {
|
|
985
|
+
className: styles.quickListWrapper,
|
|
986
|
+
children: /*#__PURE__*/_jsx(QuickList, {
|
|
987
|
+
config: activeQuickKeyConfig,
|
|
988
|
+
activeIndex: quickKeyActiveIndex,
|
|
989
|
+
onSelect: handleQuickKeySelect,
|
|
990
|
+
onClose: function onClose() {
|
|
991
|
+
setActiveQuickKey(null);
|
|
992
|
+
setQuickKeyKeyword("");
|
|
993
|
+
setQuickKeyTriggerIdx(-1);
|
|
994
|
+
setQuickKeyActiveIndex(0);
|
|
995
|
+
},
|
|
996
|
+
visible: true
|
|
997
|
+
})
|
|
998
|
+
}), footer === false ? defaultActionBar : renderSlot(footer, defaultActionBar)]
|
|
663
999
|
})
|
|
1000
|
+
}), !footer && /*#__PURE__*/_jsx("div", {
|
|
1001
|
+
className: styles.tip,
|
|
1002
|
+
children: "\u5185\u5BB9\u7531AI\u751F\u6210,\u65E0\u6CD5\u786E\u4FDD\u771F\u5B9E\u51C6\u786E,\u4EC5\u4F9B\u53C2\u8003"
|
|
664
1003
|
})]
|
|
665
1004
|
});
|
|
666
1005
|
});
|
|
667
1006
|
XAdkSender.displayName = "XAdkSender";
|
|
668
|
-
|
|
669
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
670
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
671
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
672
|
-
var CompoundSender = XAdkSender;
|
|
673
|
-
CompoundSender.Switch = XAdkSenderSwitch;
|
|
674
|
-
export default CompoundSender;
|
|
1007
|
+
export default XAdkSender;
|
|
675
1008
|
//# sourceMappingURL=index.js.map
|