sg-paisou 0.0.0 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.npm.md +322 -0
- package/dist/ai-chat-sdk.es.js +22610 -0
- package/dist/ai-chat-sdk.es.js.map +1 -0
- package/dist/ai-chat-sdk.umd.js +300 -0
- package/dist/ai-chat-sdk.umd.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/types/index.d.ts +48 -0
- package/package.json +58 -11
- package/.idea/GitCommitMessageStorage.xml +0 -8
- package/.idea/modules.xml +0 -8
- package/.idea/sg-paisou-web.iml +0 -12
- package/.idea/vcs.xml +0 -6
- package/.vscode/settings.json +0 -2
- package/auto-imports.d.ts +0 -10
- package/components.d.ts +0 -18
- package/index.html +0 -21
- package/src/App.vue +0 -38
- package/src/assets/images/Camera-icon.png +0 -0
- package/src/assets/images/anger.png +0 -0
- package/src/assets/images/answer-icon.png +0 -0
- package/src/assets/images/back.png +0 -0
- package/src/assets/images/bg-img.png +0 -0
- package/src/assets/images/collect.png +0 -0
- package/src/assets/images/collected.png +0 -0
- package/src/assets/images/empty-bookmark.png +0 -0
- package/src/assets/images/empty-history.png +0 -0
- package/src/assets/images/feedback-thinkie-img.png +0 -0
- package/src/assets/images/history.png +0 -0
- package/src/assets/images/image 5.png +0 -0
- package/src/assets/images/insolubility.png +0 -0
- package/src/assets/images/key-points.png +0 -0
- package/src/assets/images/photograph-icon.png +0 -0
- package/src/assets/images/praise-icon.png +0 -0
- package/src/assets/images/praiseing-icon.png +0 -0
- package/src/assets/images/question.png +0 -0
- package/src/assets/images/smiling.png +0 -0
- package/src/assets/images/solution-icon.png +0 -0
- package/src/assets/images/star-icon.png +0 -0
- package/src/assets/images/trample-icon.png +0 -0
- package/src/assets/images/trampleing-icon.png +0 -0
- package/src/assets/images/volume-icon.png +0 -0
- package/src/assets/images/volumeing-icon.png +0 -0
- package/src/components/AIChatSDK/AIChatComponent.vue +0 -963
- package/src/components/AIChatSDK/component/Dialogs.vue +0 -340
- package/src/components/AIChatSDK/component/SpecialQuestions.vue +0 -208
- package/src/components/AIChatSDK/index.ts +0 -146
- package/src/components/AIChatSDK/style.scss +0 -432
- package/src/components/AIChatSDK/utils/imageUtils.ts +0 -61
- package/src/components/AIChatSDK/utils/latex.ts +0 -34
- package/src/components/AIChatSDK/utils/mergeConfig.ts +0 -125
- package/src/components/ImagePreview.vue +0 -62
- package/src/components/PageHeader/index.vue +0 -121
- package/src/config.ts +0 -11
- package/src/env.d.ts +0 -11
- package/src/main.ts +0 -12
- package/src/router.ts +0 -20
- package/src/style.css +0 -33
- package/src/type.ts +0 -106
- package/src/utils/TTS_README.md +0 -232
- package/src/utils/bridge.ts +0 -42
- package/src/utils/index.ts +0 -8
- package/src/utils/listenOsEvent.ts +0 -3
- package/src/utils/messageToast.ts +0 -43
- package/src/utils/render.ts +0 -81
- package/src/utils/request.ts +0 -87
- package/src/utils/tts.ts +0 -319
- package/src/utils/typewriter.ts +0 -61
- package/src/utils/useSSE.ts +0 -113
- package/src/views/History/index.vue +0 -419
- package/src/views/QuestionChatPage/index.vue +0 -480
- package/src/vite-env.d.ts +0 -1
- package/tsconfig.app.json +0 -24
- package/tsconfig.json +0 -7
- package/tsconfig.node.json +0 -22
- package/vite.config.ts +0 -41
- /package/{public → dist}/mathjax/all-packages.js +0 -0
- /package/{public → dist}/mathjax/talEditorConfig.js +0 -0
- /package/{public → dist}/mathjax/tex-svg.js +0 -0
- /package/{src/components/AIChatSDK/types.ts → dist/types/types.d.ts} +0 -0
|
@@ -1,432 +0,0 @@
|
|
|
1
|
-
.ai-chat-container {
|
|
2
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
3
|
-
|
|
4
|
-
.ai-avatar {
|
|
5
|
-
flex-shrink: 0;
|
|
6
|
-
|
|
7
|
-
img {
|
|
8
|
-
object-fit: cover;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.ai-info {
|
|
13
|
-
flex: 1;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.chat-content {
|
|
17
|
-
background: white;
|
|
18
|
-
|
|
19
|
-
.chat-messages {
|
|
20
|
-
flex: 1;
|
|
21
|
-
overflow-y: auto;
|
|
22
|
-
padding: 20px;
|
|
23
|
-
display: flex;
|
|
24
|
-
flex-direction: column;
|
|
25
|
-
|
|
26
|
-
.message {
|
|
27
|
-
display: flex;
|
|
28
|
-
flex-direction: column;
|
|
29
|
-
width: 100%;
|
|
30
|
-
|
|
31
|
-
.message-wrapper {
|
|
32
|
-
display: flex;
|
|
33
|
-
align-items: flex-start;
|
|
34
|
-
gap: 12px;
|
|
35
|
-
width: 80%;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.user-message-wrapper {
|
|
39
|
-
align-self: flex-end;
|
|
40
|
-
margin-left: auto;
|
|
41
|
-
justify-content: flex-end;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.message-avatar {
|
|
45
|
-
flex-shrink: 0;
|
|
46
|
-
|
|
47
|
-
img {
|
|
48
|
-
object-fit: cover;
|
|
49
|
-
display: block;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.message-content {
|
|
54
|
-
font-size: 16px;
|
|
55
|
-
line-height: 24px;
|
|
56
|
-
max-width: calc(100% - 60px);
|
|
57
|
-
|
|
58
|
-
/* 文字和呼吸灯的包裹容器 */
|
|
59
|
-
.message-text-wrapper {
|
|
60
|
-
display: inline;
|
|
61
|
-
|
|
62
|
-
/* 呼吸灯样式 - 紧跟在文字后面 */
|
|
63
|
-
.typing-indicator {
|
|
64
|
-
display: inline-block;
|
|
65
|
-
width: 8px;
|
|
66
|
-
height: 8px;
|
|
67
|
-
margin-left: 4px;
|
|
68
|
-
background-color: #FF9D00;
|
|
69
|
-
border-radius: 50%;
|
|
70
|
-
animation: breathing 1.5s ease-in-out infinite;
|
|
71
|
-
vertical-align: middle;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/* 消息图片样式 */
|
|
76
|
-
.message-image {
|
|
77
|
-
margin-bottom: 8px;
|
|
78
|
-
border-radius: 12px;
|
|
79
|
-
overflow: hidden;
|
|
80
|
-
max-width: 100%;
|
|
81
|
-
|
|
82
|
-
img {
|
|
83
|
-
width: 100%;
|
|
84
|
-
height: auto;
|
|
85
|
-
display: block;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/* 消息按钮样式 */
|
|
90
|
-
.message-buttons {
|
|
91
|
-
display: flex;
|
|
92
|
-
gap: 20px;
|
|
93
|
-
margin-top: 16px;
|
|
94
|
-
justify-content: flex-end;
|
|
95
|
-
|
|
96
|
-
button {
|
|
97
|
-
padding: 8px 16px;
|
|
98
|
-
border: none;
|
|
99
|
-
border-radius: 70px;
|
|
100
|
-
font-weight: 500;
|
|
101
|
-
line-height: 24px;
|
|
102
|
-
font-size: 16px;
|
|
103
|
-
background: transparent;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.btn-primary {
|
|
107
|
-
background: linear-gradient(91.95deg, #FFCB00 0%, #FFAB03 100%);
|
|
108
|
-
color: #FFFFFF;
|
|
109
|
-
|
|
110
|
-
&:hover {
|
|
111
|
-
transform: translateY(-1px);
|
|
112
|
-
box-shadow: 0 4px 12px rgba(255, 171, 3, 0.3);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
&:active {
|
|
116
|
-
transform: translateY(0);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.btn-secondary {
|
|
121
|
-
color: #999999;
|
|
122
|
-
|
|
123
|
-
&:hover {
|
|
124
|
-
color: #666666;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/* 只显示反馈按钮(追问后的回复) */
|
|
130
|
-
.feedback-actions-only {
|
|
131
|
-
display: flex;
|
|
132
|
-
gap: 20px;
|
|
133
|
-
margin-top: 16px;
|
|
134
|
-
|
|
135
|
-
img {
|
|
136
|
-
width: 20px;
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/* 反馈按钮和 Continue 按钮容器 */
|
|
142
|
-
.feedback-and-continue {
|
|
143
|
-
display: flex;
|
|
144
|
-
align-items: center;
|
|
145
|
-
justify-content: space-between;
|
|
146
|
-
margin-top: 16px;
|
|
147
|
-
gap: 16px;
|
|
148
|
-
|
|
149
|
-
.feedback-actions {
|
|
150
|
-
display: flex;
|
|
151
|
-
gap: 16px;
|
|
152
|
-
|
|
153
|
-
img {
|
|
154
|
-
width: 20px;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.btn-continue {
|
|
159
|
-
padding: 8px 16px;
|
|
160
|
-
border: none;
|
|
161
|
-
border-radius: 70px;
|
|
162
|
-
font-weight: 500;
|
|
163
|
-
line-height: 24px;
|
|
164
|
-
font-size: 16px;
|
|
165
|
-
background: #FF9D001A;
|
|
166
|
-
color: #FF9D00;
|
|
167
|
-
white-space: nowrap;
|
|
168
|
-
letter-spacing: 1px;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/* 呼吸灯动画 */
|
|
173
|
-
@keyframes breathing {
|
|
174
|
-
0%, 100% {
|
|
175
|
-
opacity: 1;
|
|
176
|
-
transform: scale(1);
|
|
177
|
-
}
|
|
178
|
-
50% {
|
|
179
|
-
opacity: 0.3;
|
|
180
|
-
transform: scale(0.8);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/* 流式数据接收时的呼吸灯(更快的闪烁) */
|
|
185
|
-
@keyframes blinking {
|
|
186
|
-
0%, 100% {
|
|
187
|
-
opacity: 1;
|
|
188
|
-
}
|
|
189
|
-
50% {
|
|
190
|
-
opacity: 0.2;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/* 讲题完成区域样式 */
|
|
196
|
-
.completion-section {
|
|
197
|
-
margin-top: 12px;
|
|
198
|
-
width: 100%;
|
|
199
|
-
|
|
200
|
-
.helpful-section {
|
|
201
|
-
display: flex;
|
|
202
|
-
align-items: center;
|
|
203
|
-
justify-content: center;
|
|
204
|
-
gap: 12px;
|
|
205
|
-
padding-bottom: 12px;
|
|
206
|
-
|
|
207
|
-
.helpful-text {
|
|
208
|
-
color: #666666;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
img {
|
|
212
|
-
width: 24px;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
.follow-up-questions {
|
|
217
|
-
display: flex;
|
|
218
|
-
flex-direction: column;
|
|
219
|
-
gap: 12px;
|
|
220
|
-
|
|
221
|
-
.follow-up-item {
|
|
222
|
-
width: max-content;
|
|
223
|
-
display: flex;
|
|
224
|
-
align-items: flex-start;
|
|
225
|
-
gap: 8px;
|
|
226
|
-
padding: 7px 12px;
|
|
227
|
-
background: #FFFFFF;
|
|
228
|
-
border-radius: 70px;
|
|
229
|
-
border: 1px solid #EEEEEE;
|
|
230
|
-
|
|
231
|
-
img {
|
|
232
|
-
width: 20px;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
.question-text {
|
|
236
|
-
color: #222222;
|
|
237
|
-
line-height: 24px;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
.btn-snap-another {
|
|
244
|
-
width: max-content;
|
|
245
|
-
margin-top: 12px;
|
|
246
|
-
padding: 8px 16px;
|
|
247
|
-
border: none;
|
|
248
|
-
border-radius: 70px;
|
|
249
|
-
font-weight: 500;
|
|
250
|
-
line-height: 24px;
|
|
251
|
-
font-size: 16px;
|
|
252
|
-
background: #FF9D001A;
|
|
253
|
-
color: #FF9D00;
|
|
254
|
-
display: flex;
|
|
255
|
-
align-items: center;
|
|
256
|
-
justify-content: center;
|
|
257
|
-
gap: 8px;
|
|
258
|
-
|
|
259
|
-
img {
|
|
260
|
-
width: 20px;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
.message:last-child {
|
|
267
|
-
margin-bottom: 0 !important;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
.feedback-buttons {
|
|
273
|
-
display: flex;
|
|
274
|
-
gap: 12px;
|
|
275
|
-
|
|
276
|
-
.feedback-btn {
|
|
277
|
-
padding: 6px 12px 6px 8px;
|
|
278
|
-
border: none;
|
|
279
|
-
background: #00000008;
|
|
280
|
-
border-radius: 38px;
|
|
281
|
-
font-size: 14px;
|
|
282
|
-
color: #222222;
|
|
283
|
-
display: flex;
|
|
284
|
-
align-items: center;
|
|
285
|
-
transition: all 0.2s;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
.input-wrapper {
|
|
290
|
-
background: white;
|
|
291
|
-
|
|
292
|
-
.chat-input::placeholder {
|
|
293
|
-
color: #adb5bd;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
.send-button.disabled {
|
|
297
|
-
opacity: 0.5;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
.ai-message {
|
|
303
|
-
align-items: flex-start;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
.user-message {
|
|
307
|
-
align-items: flex-end;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
.options {
|
|
311
|
-
margin-top: 8px;
|
|
312
|
-
display: flex;
|
|
313
|
-
flex-wrap: wrap;
|
|
314
|
-
gap: 8px;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
.options span {
|
|
318
|
-
padding: 4px 8px;
|
|
319
|
-
background: rgba(255, 255, 255, 0.2);
|
|
320
|
-
border-radius: 6px;
|
|
321
|
-
font-size: 12px;
|
|
322
|
-
display: flex;
|
|
323
|
-
align-items: center;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
/* LaTeX样式 */
|
|
329
|
-
:deep(.katex) {
|
|
330
|
-
font-size: 1em;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
:deep(.katex-display) {
|
|
334
|
-
margin: 0.5em 0;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
.background-transparent {
|
|
338
|
-
background: transparent !important;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
/* 禁用状态样式 */
|
|
342
|
-
.chat-input:disabled {
|
|
343
|
-
background-color: #F5F5F5;
|
|
344
|
-
cursor: not-allowed;
|
|
345
|
-
opacity: 0.6;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
.feedback-buttons.disabled {
|
|
349
|
-
opacity: 0.5;
|
|
350
|
-
pointer-events: none;
|
|
351
|
-
|
|
352
|
-
button {
|
|
353
|
-
cursor: not-allowed;
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
/* 长按反馈弹窗遮罩 */
|
|
358
|
-
.feedback-overlay {
|
|
359
|
-
position: fixed;
|
|
360
|
-
top: 0;
|
|
361
|
-
left: 0;
|
|
362
|
-
right: 0;
|
|
363
|
-
bottom: 0;
|
|
364
|
-
background: transparent;
|
|
365
|
-
z-index: 999;
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
/* 长按反馈弹窗 */
|
|
369
|
-
.message-feedback-popup {
|
|
370
|
-
position: fixed;
|
|
371
|
-
z-index: 1000;
|
|
372
|
-
|
|
373
|
-
.popup-arrow {
|
|
374
|
-
position: absolute;
|
|
375
|
-
left: 50%;
|
|
376
|
-
transform: translateX(-50%);
|
|
377
|
-
width: 0;
|
|
378
|
-
height: 0;
|
|
379
|
-
border-left: 8px solid transparent;
|
|
380
|
-
border-right: 8px solid transparent;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
.popup-buttons {
|
|
384
|
-
display: flex;
|
|
385
|
-
gap: 20px;
|
|
386
|
-
padding: 8px;
|
|
387
|
-
background: #FFFFFF;
|
|
388
|
-
border-radius: 12px;
|
|
389
|
-
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
|
390
|
-
padding: 12px;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
/* 显示在下方时,三角在上方 */
|
|
394
|
-
&:not(.show-above) {
|
|
395
|
-
.popup-arrow {
|
|
396
|
-
top: 0;
|
|
397
|
-
border-bottom: 8px solid #FFFFFF;
|
|
398
|
-
filter: drop-shadow(0 -2px 2px rgba(0, 0, 0, 0.05));
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
.popup-buttons {
|
|
402
|
-
margin-top: 8px;
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
/* 显示在上方时,三角在下方 */
|
|
407
|
-
&.show-above {
|
|
408
|
-
.popup-arrow {
|
|
409
|
-
bottom: 0;
|
|
410
|
-
border-top: 8px solid #FFFFFF;
|
|
411
|
-
filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.05));
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
.popup-buttons {
|
|
415
|
-
margin-bottom: 8px;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
.helpful-section img,
|
|
420
|
-
.feedback-actions img,
|
|
421
|
-
.feedback-actions-only img,
|
|
422
|
-
.popup-buttons img {
|
|
423
|
-
transition: transform 0.1s ease;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
.helpful-section img:active,
|
|
427
|
-
.feedback-actions img:active,
|
|
428
|
-
.feedback-actions-only img:active,
|
|
429
|
-
.popup-buttons img:active {
|
|
430
|
-
transform: scale(1.2);
|
|
431
|
-
}
|
|
432
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
// 图片工具函数 - 适用于 npm 包发布
|
|
2
|
-
// 使用内嵌的 Base64 和 SVG,避免外部图片依赖
|
|
3
|
-
|
|
4
|
-
// 默认头像 SVG
|
|
5
|
-
const DEFAULT_AVATAR_SVG = 'data:image/png;base64,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'
|
|
6
|
-
|
|
7
|
-
// 声音图标 SVG
|
|
8
|
-
const SOUND_ON_SVG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAASRSURBVHgB7VrdVdswFP7khOemE9SdoHSCmgkKExD++hqYgDBB6WspBCagTECYgDJB3Q3y3sbqleJAbV3bCpbtY+rvHB8nsmT7fr66uj8COnTo0KFDh/8WAg1CTuDTaRsR1ulNBpAI4eFK7GCKmtAYAST8iAQf088Bc/mSiDgiImaoGB4aAAl/TMKfghdeYUjacIsaUDsBsfDj4o5Yl+cW/UqiVgKshV9C4AMqRm0EFAi/Q2/yls7JOU9agNWe4dMxWGVMLQQUCS/2cEkGL6Qv/iN1zUoYLfg5ftIz1HEvv2ETlqicABvhURYRPQN6SYU+C1zbklApATnCK1V3I/wCpqYITGI/IxeVEZAr/BwbDoVXGnDHtCrHalIwshoCCoX/ZMz1UhAH5FNEODEuSARkG4Z5Y50TULfwSxAJYxL4C3PpOG9cHwUggQISKIAd3lDfIdNeqfCP6BEJEcUWSZvgyzMERNCUG5JJQCz4hA4f5VCP8AQVO5DKKy1IfvWe/j/lxrBTIBZe+eI+ysGp8Gp6yQvckpCTTIfH0zFG2qEKsvrzNiAqtp4WcCv8GQ61bZF6Oqpg6ZrrpyNIgSvjQsT7BQYBsQPhoxzcq30PHxP/FxZ+zPad4zvTysYVpg0QjP+trKtkbwqm7wxrCGmddx3LP9ARpNpGpNqnRt6gT8RHxvgADDgCfBIiiZ5+SIgmIbT6Ky3w/2kdkKCHdB4nuipjeEEkJIMpHSilyWokIfIc6BePKGo0McoY8sC0+emG1hCgoNdyYSxnA7XOG50lY38ic3q3igANiRujzWPzBpwNGphD24Y569C8M1o81ma9AALWGMEkXsMG4gUQwKbKPbxiuoZGizT7tU8DbPHbLp3WOgKsk55rbL9f6YY2agDnqYZ4JtpHQMQueabTM2c1wLAf7SNA6IRHEhHj9AgmoGOWxlYRQPN/kymWhGy2hyPgT4s1QBu/CJ+ZS9OMIaZz1Dc1hUuJcS6kCjtvYIlK6vsL4X2j3TOzwTFZQaKRqk6cD9FnHqQCjlGqTYWch7AEJSpCMkJbThMiXJhOqXDKO4RMb9NQRuYSqGBOgZ7+eiHKwaf73MqvqxU3cyFTxQ/1RQ8yMkIRYygFn9AxCMiJu1fFwCUJ9KVVyvtIh8OCMlQCG1y/2FEy838ePy0zt8joGNvTyVEf5WCdH1QZ3zjp+fSCe6tt44krQcmkLpEmdnnCMusC8dLyVidJheVXlLoym1a/pSZUXhvQxdCIqQRJJksco7AyJPb13LFLiEJrjtrplX6JekhIlsmXCPMKsc79AG2YuEKlY5uQhq5Jgi3LneSNq8QRqpsEPe+5gqxaKQrK8JV5ggUk3JPB24YrCPZeqkK0VTCyWlc4hwRlmC6dkSAZ71Vix6aWUXksUAsJHvkHT87bYvvNvp3hrm2rLK0OY2Z1WL7FkI47piI9ozlsl/DE497j2SpbbGvdK5xLAoccB8YVag2Hc6cDhxwHxhUa2S1upQlqCdvFe1SMRhIihZqwCHgqVf2nRzUIbbSkzjMsszcPanND1oamDh06dOjQoYNT/AWGJKfR1I2NtwAAAABJRU5ErkJggg=='
|
|
9
|
-
const SOUND_OFF_SVG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAO4SURBVHgB7ZtLctpAEIYbiL2GXXZR/FjHPkHwMjv7BCbLrOycwOQGzgmCT5D4BOYGITuqeJRugJYUFJC/sZQSYjQzGI00E+uropBHD/T/mhl1d42JSkpKSkpKXi0VKhAPVKvV60qlcoY/6/j42H4YDoddyonCDDg6OrrBV5uehW8AEzqLxeKr7/sBGaZKBQDxd/i6J4F4ZrVatdAznigHapQzofi2xqFvG41GZTKZdMkgufaAHcSvwVD4SIbJzQCZeAj9vFwu32NzY8xjKJyRYXIxQCV+NBp1MOHxG6CX2F0nwxg3QEc8FYhRA2wXz7whQ0jEB3jFXeUZ7MgwYoBMfK1WuxgMBj2yhMyHgEviGWUPODk5aeIV1SQ93uHTErRbKZ5JNSAU/gMfj/bDWvGM0IBQfBaxuNXiGaEB/ORpfzIXj+y5jmte8rXxCv31kvMODg56/X7fj/ZtGXB8fHyJENSj/TAhnmsHT9G9YbLt4UFdqFJmFh+etw6rZ7OZj7bz6LwtA1Li7++4iJbjCHCC+Xzuj8fjTHN5GNpMPJgzFgYxqSZE4vnYeDPaWvScjgsN8CBio+3w8PA+3m0sItWEFPFr+CFF24UURF4CKkTcA33BrsiEf4mTTDxfIx6CO2MAP2Ee86QwQSUevfki3uCMAQynzCoTVOKTQ9kpAxiVCbSDeMY5AxiFCVuHp4lnnDSA0TRBKp5x1oCQgBJ1xOT+6XQqjUecNUAx20dsvSKTOGmApvgIqQnOGaB6z5NmsBThlAE6QY5OsBRvdMoAnSBHJ1iKm+CMAZymk2aQozIhrA2s2coG45lSBHLoG1SJHkkTEyXvlBpF6nueTeAsMew1Xtp1RQZ08WM3ieZbOHpLmqBY4cPlqywLIvj9DsTwfXlhkzLISTHBR1WoGx2ztUAinGh+k8Q1TXauCqGbc+WmGW9DYaUSuzePCyO8zenxLgsocO0Wrl1nI+PnCVeIFFUUVRlgAuEkyGMYN35OesmGjDqe1NPp6alOwFIISnfDIqmWgLCcdi3YpdUTiugBmV8cE2AbX3eCXUoTrBkC+4AbbuPrm2CXlcPBSCCkMiEMaqzAWCQoMwHd/CdMuCYLMBoKS0zgCbNjgwnGcwHbTchtqazk7cDhdwtzw6MgAg1gYIMMkls2qOoJED+hRPgtWDaXObmmwzITUnggw+S+VpjX/vIaYGw2FYf2YNgXMkzuBjAqEzglRzL2KQiCKRnGhn+YuIXgD/w35oI/vA7BljWEJSUlJSUl/zl/Ac0sKaP4BPLNAAAAAElFTkSuQmCC'
|
|
10
|
-
|
|
11
|
-
// 反馈图标 SVG
|
|
12
|
-
const SMILE_SVG = 'data:image/png;base64,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'
|
|
13
|
-
const CONFUSED_SVG = 'data:image/png;base64,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'
|
|
14
|
-
const LIGHTBULB_SVG = 'data:image/png;base64,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'
|
|
15
|
-
|
|
16
|
-
// 发送图标 SVG
|
|
17
|
-
const SEND_SVG = 'data:image/png;base64,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'
|
|
18
|
-
|
|
19
|
-
const USER_AVATAR_SVG = 'data:image/png;base64,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'
|
|
20
|
-
/**
|
|
21
|
-
* 内置图片资源 - 使用 SVG/Base64 编码,适用于 npm 包
|
|
22
|
-
* 这些图片会被打包到代码中,不依赖外部文件
|
|
23
|
-
*/
|
|
24
|
-
export const IMAGE_ASSETS = {
|
|
25
|
-
maskGroup: DEFAULT_AVATAR_SVG,
|
|
26
|
-
soundOn: SOUND_ON_SVG,
|
|
27
|
-
soundOff: SOUND_OFF_SVG,
|
|
28
|
-
smile: SMILE_SVG,
|
|
29
|
-
confused: CONFUSED_SVG,
|
|
30
|
-
lightbulb: LIGHTBULB_SVG,
|
|
31
|
-
voiceTube: SEND_SVG,
|
|
32
|
-
userAvatar: USER_AVATAR_SVG
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* 获取图片URL的工具函数
|
|
37
|
-
* @param imageName 图片名称
|
|
38
|
-
* @returns 图片的 data URL
|
|
39
|
-
*/
|
|
40
|
-
export function getImageUrl(imageName: keyof typeof IMAGE_ASSETS): string {
|
|
41
|
-
return IMAGE_ASSETS[imageName]
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* 检查图片是否存在的工具函数
|
|
46
|
-
* @param imageName 图片名称
|
|
47
|
-
* @returns 是否存在该图片
|
|
48
|
-
*/
|
|
49
|
-
export function hasImage(imageName: string): imageName is keyof typeof IMAGE_ASSETS {
|
|
50
|
-
return imageName in IMAGE_ASSETS
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* 创建自定义图片配置的工具函数
|
|
55
|
-
* 允许用户覆盖默认图片
|
|
56
|
-
* @param customImages 自定义图片映射
|
|
57
|
-
* @returns 合并后的图片配置
|
|
58
|
-
*/
|
|
59
|
-
export function createImageConfig(customImages: Partial<typeof IMAGE_ASSETS> = {}) {
|
|
60
|
-
return { ...IMAGE_ASSETS, ...customImages }
|
|
61
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import katex from 'katex'
|
|
2
|
-
|
|
3
|
-
// LaTeX渲染函数
|
|
4
|
-
export const renderLatex = (text: string): string => {
|
|
5
|
-
try {
|
|
6
|
-
// 渲染行内公式 $...$
|
|
7
|
-
let rendered = text.replace(/\$([^$]+)\$/g, (match, formula) => {
|
|
8
|
-
try {
|
|
9
|
-
return katex.renderToString(formula, {
|
|
10
|
-
throwOnError: false,
|
|
11
|
-
displayMode: false
|
|
12
|
-
})
|
|
13
|
-
} catch (e) {
|
|
14
|
-
return match // 如果渲染失败,返回原文
|
|
15
|
-
}
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
// 渲染块级公式 $$...$$
|
|
19
|
-
rendered = rendered.replace(/\$\$([^$]+)\$\$/g, (match, formula) => {
|
|
20
|
-
try {
|
|
21
|
-
return katex.renderToString(formula, {
|
|
22
|
-
throwOnError: false,
|
|
23
|
-
displayMode: true
|
|
24
|
-
})
|
|
25
|
-
} catch (e) {
|
|
26
|
-
return match // 如果渲染失败,返回原文
|
|
27
|
-
}
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
return rendered
|
|
31
|
-
} catch (e) {
|
|
32
|
-
return text // 如果整体渲染失败,返回原文
|
|
33
|
-
}
|
|
34
|
-
}
|