@ray-js/t-agent-ui-ray 0.2.0-beta-4 → 0.2.0-beta-6

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.
@@ -10,13 +10,13 @@ import cx from 'clsx';
10
10
  import { ChatAgentContext, MessageContext, RenderContext } from '../contexts';
11
11
  import { defaultRenderOptions } from '../renderOption';
12
12
  import logger from '../logger';
13
+ import { systemInfo } from '../utils';
13
14
  export default function ChatContainer(props) {
14
15
  const [keyboardHeight, setKeyboardHeight] = useState(0);
15
16
  const [windowSize, setWindowSize] = useState(() => {
16
- const info = ty.getSystemInfoSync();
17
17
  return {
18
- width: info.windowWidth,
19
- height: info.windowHeight
18
+ width: systemInfo.windowWidth,
19
+ height: systemInfo.windowHeight
20
20
  };
21
21
  });
22
22
  const {
@@ -92,7 +92,7 @@ export default function ChatContainer(props) {
92
92
  break;
93
93
  case 'update':
94
94
  setMessages(prev => {
95
- if (ty.getSystemInfoSync().platform === 'android') {
95
+ if (systemInfo.platform === 'android') {
96
96
  var _prev;
97
97
  // Android 上有兼容问题,需要手动滚动到底部
98
98
  if (((_prev = prev[prev.length - 1]) === null || _prev === void 0 ? void 0 : _prev.id) === message.id) {
@@ -1,5 +1,6 @@
1
1
  import Render from './index.rjs';
2
2
  import logger from '../logger';
3
+ import { systemInfo } from '../utils';
3
4
 
4
5
  // eslint-disable-next-line no-undef
5
6
  Component({
@@ -47,7 +48,7 @@ Component({
47
48
  const data = JSON.parse(content);
48
49
  if (data.option) {
49
50
  // eslint-disable-next-line no-undef
50
- const pixelRatio = ty.getSystemInfoSync().pixelRatio;
51
+ const pixelRatio = systemInfo.pixelRatio;
51
52
  this.rjs.update(this.data.canvasId, pixelRatio, data.option);
52
53
  this.setData({
53
54
  loading: false,
@@ -1,10 +1,17 @@
1
1
  import '../index.less';
2
2
  import React from 'react';
3
+ interface AttachmentOptions {
4
+ image?: boolean;
5
+ video?: boolean;
6
+ imageCount?: number;
7
+ videoCount?: number;
8
+ }
3
9
  interface Props {
4
10
  className?: string;
5
11
  renderTop?: React.ReactNode;
6
12
  placeholder?: string;
7
13
  style?: React.CSSProperties;
14
+ attachment?: boolean | AttachmentOptions;
8
15
  }
9
16
  export default function MessageInputAIStream(props: Props): React.JSX.Element;
10
17
  export {};
@@ -12,8 +12,6 @@ import { Emitter, EmitterEvent } from '@ray-js/t-agent';
12
12
  import cx from 'clsx';
13
13
  import imageSvg from '../icons/image.svg';
14
14
  import videoSvg from '../icons/video.svg';
15
- import loadingSvg from '../icons/loading.svg';
16
- import closeCircleSvg from '../icons/close-circle.svg';
17
15
  import { useAgentSessionValue, useAttachmentInput, useChatAgent, useEmitEvent, useIsUnmounted, useOnEvent, useTranslate } from '../../hooks';
18
16
  import AsrInput from './AsrInput';
19
17
  import { useSleep } from '../../hooks/useSleep';
@@ -28,6 +26,18 @@ export default function MessageInputAIStream(props) {
28
26
  confirm: null,
29
27
  cancel: null
30
28
  });
29
+ const attachmentOptions = {
30
+ image: true,
31
+ video: true,
32
+ imageCount: 1,
33
+ videoCount: 1
34
+ };
35
+ if (props.attachment === false) {
36
+ attachmentOptions.image = false;
37
+ attachmentOptions.video = false;
38
+ } else if (typeof props.attachment === 'object') {
39
+ Object.assign(attachmentOptions, props.attachment);
40
+ }
31
41
  const attachmentInput = useAttachmentInput({
32
42
  local: true
33
43
  });
@@ -179,6 +189,7 @@ export default function MessageInputAIStream(props) {
179
189
  }
180
190
  setText('');
181
191
  setMode('voice');
192
+ setMoreOpen(false);
182
193
  },
183
194
  className: "t-agent-message-input-button t-agent-message-input-button-voice"
184
195
  })), /*#__PURE__*/React.createElement(Button, {
@@ -270,7 +281,11 @@ export default function MessageInputAIStream(props) {
270
281
  var _record$cancel;
271
282
  (_record$cancel = record.cancel) === null || _record$cancel === void 0 || _record$cancel.call(record);
272
283
  },
273
- onBack: () => setMode('text'),
284
+ onBack: () => {
285
+ setText('');
286
+ setMode('text');
287
+ setMoreOpen(false);
288
+ },
274
289
  onAbort: () => {
275
290
  if (responding && acRef.current) {
276
291
  acRef.current.abort('User abort');
@@ -310,8 +325,7 @@ export default function MessageInputAIStream(props) {
310
325
  content = /*#__PURE__*/React.createElement(View, {
311
326
  className: "t-agent-message-input-uploaded-file-loading",
312
327
  key: file.id
313
- }, /*#__PURE__*/React.createElement(Image, {
314
- src: loadingSvg,
328
+ }, /*#__PURE__*/React.createElement(View, {
315
329
  className: "t-agent-message-input-uploaded-file-loading-icon"
316
330
  }));
317
331
  break;
@@ -321,21 +335,27 @@ export default function MessageInputAIStream(props) {
321
335
  return /*#__PURE__*/React.createElement(View, {
322
336
  key: file.id,
323
337
  className: "t-agent-message-input-uploaded-file"
324
- }, /*#__PURE__*/React.createElement(Image, {
338
+ }, /*#__PURE__*/React.createElement(View, {
325
339
  onClick: () => {
326
340
  setUploaded(prev => prev.filter(f => f.id !== file.id));
327
341
  },
328
- className: "t-agent-message-input-uploaded-file-delete",
329
- src: closeCircleSvg
342
+ className: "t-agent-message-input-uploaded-file-delete"
330
343
  }), content);
331
344
  })), container), /*#__PURE__*/React.createElement(View, {
332
345
  className: "t-agent-message-input-panel ".concat(moreOpen ? '' : 't-agent-message-input-panel-close')
333
346
  }, /*#__PURE__*/React.createElement(View, {
334
347
  className: "t-agent-message-input-panel-content"
335
- }, /*#__PURE__*/React.createElement(Button, {
348
+ }, attachmentOptions.image && /*#__PURE__*/React.createElement(Button, {
336
349
  className: "t-agent-message-input-panel-button",
337
350
  onClick: async () => {
338
351
  try {
352
+ if (uploaded.filter(f => f.type === 'image').length >= (attachmentOptions.imageCount || 1)) {
353
+ ty.showToast({
354
+ icon: 'none',
355
+ title: t('t-agent.input.upload.image.max-reached')
356
+ });
357
+ return;
358
+ }
339
359
  await upload('image', 1);
340
360
  } catch (e) {
341
361
  ty.showToast({
@@ -348,10 +368,17 @@ export default function MessageInputAIStream(props) {
348
368
  className: "t-agent-message-input-panel-button-icon"
349
369
  }, /*#__PURE__*/React.createElement(Image, {
350
370
  src: imageSvg
351
- }))), /*#__PURE__*/React.createElement(Button, {
371
+ }))), attachmentOptions.video && /*#__PURE__*/React.createElement(Button, {
352
372
  className: "t-agent-message-input-panel-button",
353
373
  onClick: async () => {
354
374
  try {
375
+ if (uploaded.filter(f => f.type === 'video').length >= (attachmentOptions.videoCount || 1)) {
376
+ ty.showToast({
377
+ icon: 'none',
378
+ title: t('t-agent.input.upload.image.max-reached')
379
+ });
380
+ return;
381
+ }
355
382
  await upload('video', 1);
356
383
  } catch (e) {
357
384
  ty.showToast({
@@ -53,6 +53,10 @@
53
53
  width: 64rpx;
54
54
  height: 64rpx;
55
55
  animation: t-agent-message-input-rotating 2s infinite;
56
+ background-repeat: no-repeat;
57
+ background-position: center;
58
+ background-image: url('icons/loading.svg');
59
+ background-size: cover;
56
60
  }
57
61
 
58
62
  .t-agent-message-input-uploaded-file-image {
@@ -67,6 +71,10 @@
67
71
  right: 10rpx;
68
72
  width: 32rpx;
69
73
  height: 32rpx;
74
+ background-repeat: no-repeat;
75
+ background-position: center;
76
+ background-size: cover;
77
+ background-image: url('icons/close-circle.svg');
70
78
  }
71
79
 
72
80
  .t-agent-message-input-text-bar {
@@ -5,6 +5,7 @@ interface Props {
5
5
  style?: React.CSSProperties;
6
6
  wrapperClassName?: string;
7
7
  wrapperStyle?: React.CSSProperties;
8
+ renderTop?: React.ReactNode;
8
9
  roleSide?: {
9
10
  user?: 'start' | 'end' | string;
10
11
  assistant?: 'start' | 'end' | string;
@@ -13,6 +13,7 @@ import MessageRender from '../MessageRender';
13
13
  import { useAgentMessage, useAgentSessionValue, useOnEvent } from '../hooks';
14
14
  import { useDebouncedFn } from '../hooks/useDebouncedFn';
15
15
  import { useSleep } from '../hooks/useSleep';
16
+ import { systemInfo } from '../utils';
16
17
  export default function MessageList(props) {
17
18
  const {
18
19
  className,
@@ -36,7 +37,7 @@ export default function MessageList(props) {
36
37
  // @ts-ignore
37
38
  const {
38
39
  containerVersion
39
- } = ty.getSystemInfoSync();
40
+ } = systemInfo;
40
41
  return {
41
42
  // 在 2.27.2 版本之前,pageScrollTo 在某些场景不生效
42
43
  scroll: containerVersion && isVersionMatch('>=2.27.2', containerVersion)
@@ -112,7 +113,7 @@ export default function MessageList(props) {
112
113
  });
113
114
  }), historyLimit && historyLimit.count < reversed.length && /*#__PURE__*/React.createElement(View, {
114
115
  className: "t-agent-message-list-history-tip"
115
- }, historyLimit.tipText), /*#__PURE__*/React.createElement(View, {
116
+ }, historyLimit.tipText), props.renderTop, /*#__PURE__*/React.createElement(View, {
116
117
  className: "t-agent-message-list-padding-start"
117
118
  })));
118
119
  }
@@ -3,4 +3,3 @@ export * from './useAttachmentInput';
3
3
  export * from './useIsUnmounted';
4
4
  export * from './useLongPress';
5
5
  export * from './useTranslate';
6
- export * from './useMultiSelect';
@@ -2,5 +2,4 @@ export * from './context';
2
2
  export * from './useAttachmentInput';
3
3
  export * from './useIsUnmounted';
4
4
  export * from './useLongPress';
5
- export * from './useTranslate';
6
- export * from './useMultiSelect';
5
+ export * from './useTranslate';
@@ -1,11 +1,15 @@
1
1
  /// <reference types="react" />
2
2
  import { InputBlock } from '@ray-js/t-agent';
3
- export interface UploadFile {
3
+ export type UploadFile = {
4
4
  id: string;
5
- type: 'image' | 'video' | 'loading';
5
+ type: 'image' | 'video';
6
6
  url?: string;
7
7
  thumbUrl?: string;
8
- }
8
+ size: number;
9
+ } | {
10
+ id: string;
11
+ type: 'loading';
12
+ };
9
13
  export declare function useAttachmentInput({ local }?: {
10
14
  local: boolean;
11
15
  }): {
@@ -7,6 +7,7 @@ import { useCallback, useMemo, useState } from 'react';
7
7
  import { chooseImage, chooseVideo, uploadImage, uploadVideo } from '../utils/file';
8
8
  import { generateId } from '@ray-js/t-agent';
9
9
  import { useRenderOptions } from './context';
10
+ import { useTranslate } from './useTranslate';
10
11
  export function useAttachmentInput() {
11
12
  let {
12
13
  local
@@ -15,6 +16,7 @@ export function useAttachmentInput() {
15
16
  };
16
17
  const [uploaded, setUploaded] = useState([]);
17
18
  const uploading = useMemo(() => uploaded.some(file => file.type === 'loading'), [uploaded]);
19
+ const t = useTranslate();
18
20
  const blocks = useMemo(() => {
19
21
  const b = [];
20
22
  if (uploaded.length) {
@@ -24,7 +26,8 @@ export function useAttachmentInput() {
24
26
  b.push({
25
27
  type: 'image_path',
26
28
  image_path: {
27
- path: uploadFile.url
29
+ path: uploadFile.url,
30
+ size: uploadFile.size
28
31
  }
29
32
  });
30
33
  } else {
@@ -42,7 +45,8 @@ export function useAttachmentInput() {
42
45
  type: 'video_path',
43
46
  video_path: {
44
47
  path: uploadFile.url,
45
- thumb_path: uploadFile.thumbUrl
48
+ thumb_path: uploadFile.thumbUrl,
49
+ size: uploadFile.size
46
50
  }
47
51
  });
48
52
  } else {
@@ -66,15 +70,31 @@ export function useAttachmentInput() {
66
70
  uploaded.push({
67
71
  id: generateId(),
68
72
  type: 'image',
69
- url: block.image_url.url
73
+ url: block.image_url.url,
74
+ size: 0
70
75
  });
71
- }
72
- if (block.type === 'video_url') {
76
+ } else if (block.type === 'video_url') {
73
77
  uploaded.push({
74
78
  id: generateId(),
75
79
  type: 'video',
76
80
  url: block.video_url.url,
77
- thumbUrl: block.video_url.thumb_url
81
+ thumbUrl: block.video_url.thumb_url,
82
+ size: 0
83
+ });
84
+ } else if (block.type === 'image_path') {
85
+ uploaded.push({
86
+ id: generateId(),
87
+ type: 'image',
88
+ url: block.image_path.path,
89
+ size: block.image_path.size || 0
90
+ });
91
+ } else if (block.type === 'video_path') {
92
+ uploaded.push({
93
+ id: generateId(),
94
+ type: 'video',
95
+ url: block.video_path.path,
96
+ thumbUrl: block.video_path.thumb_path,
97
+ size: block.video_path.size || 0
78
98
  });
79
99
  }
80
100
  }
@@ -90,20 +110,60 @@ export function useAttachmentInput() {
90
110
  const upload = useCallback(async function (type) {
91
111
  let count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
92
112
  if (type === 'image') {
93
- let paths = [];
113
+ let file = [];
94
114
  try {
95
- paths = await chooseImage(count);
115
+ const sourceType = await new Promise(resolve => {
116
+ ty.showActionSheet({
117
+ itemList: [t('t-agent.input.upload.source-type.camera'), t('t-agent.input.upload.source-type.album')],
118
+ success: _ref => {
119
+ let {
120
+ tapIndex
121
+ } = _ref;
122
+ if (tapIndex === 0) {
123
+ ty.authorize({
124
+ scope: 'scope.camera',
125
+ success() {
126
+ resolve('camera');
127
+ },
128
+ fail() {
129
+ ty.showToast({
130
+ title: t('t-agent.input.upload.source-type.camera.require-permission'),
131
+ icon: 'none'
132
+ });
133
+ resolve('');
134
+ }
135
+ });
136
+ } else if (tapIndex === 1) {
137
+ resolve('album');
138
+ } else {
139
+ resolve('');
140
+ }
141
+ },
142
+ fail() {
143
+ resolve('');
144
+ }
145
+ });
146
+ });
147
+ if (!sourceType) {
148
+ return;
149
+ }
150
+ file = await chooseImage(count, sourceType);
96
151
  } catch (err) {
97
152
  return;
98
153
  }
99
- await Promise.all(paths.map(async path => {
154
+ await Promise.all(file.map(async _ref2 => {
155
+ let {
156
+ path,
157
+ size
158
+ } = _ref2;
100
159
  const id = generateId();
101
160
  try {
102
161
  if (local) {
103
162
  setUploaded(prev => [...prev, {
104
163
  id,
105
164
  type: 'image',
106
- url: path
165
+ url: path,
166
+ size
107
167
  }]);
108
168
  } else {
109
169
  setUploaded(prev => [...prev, {
@@ -116,7 +176,8 @@ export function useAttachmentInput() {
116
176
  setUploaded(prev => prev.map(item => item.id === id ? {
117
177
  id,
118
178
  type: 'image',
119
- url: publicUrl
179
+ url: publicUrl,
180
+ size
120
181
  } : item));
121
182
  }
122
183
  } catch (error) {
@@ -145,7 +206,8 @@ export function useAttachmentInput() {
145
206
  id,
146
207
  type: 'video',
147
208
  url: file.tempFilePath,
148
- thumbUrl: file.thumbTempFilePath
209
+ thumbUrl: file.thumbTempFilePath,
210
+ size: file.size
149
211
  }]);
150
212
  } else {
151
213
  const [thumb, video] = await Promise.all([uploadImage(file.thumbTempFilePath, getStaticResourceBizType(file.thumbTempFilePath, 'videoThumb:upload')), uploadVideo(file.tempFilePath, getStaticResourceBizType(file.tempFilePath, 'video:upload'))]);
@@ -153,7 +215,8 @@ export function useAttachmentInput() {
153
215
  id,
154
216
  type: 'video',
155
217
  url: video.publicUrl,
156
- thumbUrl: thumb.publicUrl
218
+ thumbUrl: thumb.publicUrl,
219
+ size: 0
157
220
  } : item));
158
221
  }
159
222
  } catch (error) {
@@ -7,6 +7,7 @@ import { useState, useEffect, useCallback } from 'react';
7
7
  import logger from '../logger';
8
8
  import { useChatAgent, useEmitEvent } from './context';
9
9
  import { useTranslate } from './useTranslate';
10
+ import { systemInfo } from '../utils';
10
11
 
11
12
  /**
12
13
  * 预定义动作类型
@@ -42,7 +43,6 @@ export function useLongPress() {
42
43
  });
43
44
  useEffect(() => {
44
45
  try {
45
- const systemInfo = ty.getSystemInfoSync();
46
46
  setScreenSize({
47
47
  width: systemInfo.windowWidth,
48
48
  height: systemInfo.windowHeight
@@ -232,7 +232,7 @@ export function useLongPress() {
232
232
  isClosing: false,
233
233
  menuPosition: adjustedPosition
234
234
  });
235
- if (ty.getSystemInfoSync().brand !== 'devtools') {
235
+ if (systemInfo.brand !== 'devtools') {
236
236
  ty.vibrateShort({
237
237
  type: 'light'
238
238
  });
@@ -3,6 +3,7 @@ import "core-js/modules/web.dom-collections.iterator.js";
3
3
  import { useRenderOptions } from './context';
4
4
  import { useCallback } from 'react';
5
5
  import strings from '../i18n/strings';
6
+ import { systemInfo } from '../utils';
6
7
  const keyRE = /^t-agent\./;
7
8
  const langRE = {
8
9
  'zh-Hans': /^zh([-_](hans|cn|zh))/i,
@@ -44,7 +45,7 @@ export const translateWith = (key, i18nTranslate) => {
44
45
  var _strings$language;
45
46
  let {
46
47
  language
47
- } = ty.getSystemInfoSync();
48
+ } = systemInfo;
48
49
  language = normalizeLanguage(language);
49
50
  if ((_strings$language = strings[language]) !== null && _strings$language !== void 0 && _strings$language[key]) {
50
51
  translateCache.set(key, strings[language][key]);
@@ -67,6 +67,13 @@ declare const _default: {
67
67
  't-agent.expand.scene.auto': string;
68
68
  't-agent.expand.no.details': string;
69
69
  't-agent.unknown-error': string;
70
+ 't-agent.input.upload.source-type.camera': string;
71
+ 't-agent.input.upload.source-type.camera.require-permission': string;
72
+ 't-agent.input.upload.source-type.album': string;
73
+ 't-agent.input.upload.source-type.album.require-permission': string;
74
+ 't-agent.input.upload.image.max-reached': string;
75
+ 't-agent.input.upload.video.max-reached': string;
76
+ 't-agent.file-tile.unknown-filename': string;
70
77
  };
71
78
  'zh-Hant': {
72
79
  't-agent.build-in.button.create_scene_manually': string;
@@ -200,6 +207,13 @@ declare const _default: {
200
207
  't-agent.expand.scene.auto': string;
201
208
  't-agent.expand.no.details': string;
202
209
  't-agent.unknown-error': string;
210
+ 't-agent.input.upload.source-type.camera': string;
211
+ 't-agent.input.upload.source-type.camera.require-permission': string;
212
+ 't-agent.input.upload.source-type.album': string;
213
+ 't-agent.input.upload.source-type.album.require-permission': string;
214
+ 't-agent.input.upload.image.max-reached': string;
215
+ 't-agent.input.upload.video.max-reached': string;
216
+ 't-agent.file-tile.unknown-filename': string;
203
217
  };
204
218
  ja: {
205
219
  't-agent.build-in.button.create_scene_manually': string;
@@ -66,7 +66,14 @@ export default {
66
66
  't-agent.expand.scene.one-click': '一键执行',
67
67
  't-agent.expand.scene.auto': '自动执行',
68
68
  't-agent.expand.no.details': '没有可显示的详情内容',
69
- 't-agent.unknown-error': '未知错误'
69
+ 't-agent.unknown-error': '未知错误',
70
+ 't-agent.input.upload.source-type.camera': '拍照',
71
+ 't-agent.input.upload.source-type.camera.require-permission': '拍照需要摄像头权限,请在设置中开启',
72
+ 't-agent.input.upload.source-type.album': '从相册中选择',
73
+ 't-agent.input.upload.source-type.album.require-permission': '从相册中选择需要相册权限,请在设置中开启',
74
+ 't-agent.input.upload.image.max-reached': '已达到图片上传上限',
75
+ 't-agent.input.upload.video.max-reached': '已达到视频上传上限',
76
+ 't-agent.file-tile.unknown-filename': '文件'
70
77
  },
71
78
  'zh-Hant': {
72
79
  't-agent.build-in.button.create_scene_manually': '手動創建場景',
@@ -202,7 +209,14 @@ export default {
202
209
  't-agent.expand.scene.one-click': 'One-click Execution',
203
210
  't-agent.expand.scene.auto': 'Automatic Execution',
204
211
  't-agent.expand.no.details': 'No details available',
205
- 't-agent.unknown-error': 'Unknown Error'
212
+ 't-agent.unknown-error': 'Unknown Error',
213
+ 't-agent.input.upload.source-type.camera': 'Take a photo',
214
+ 't-agent.input.upload.source-type.camera.require-permission': 'Taking a photo requires camera permission, please enable it in settings',
215
+ 't-agent.input.upload.source-type.album': 'Pick from album',
216
+ 't-agent.input.upload.source-type.album.require-permission': 'Selecting from album requires album permission, please enable it in settings',
217
+ 't-agent.input.upload.image.max-reached': 'Image upload limit reached',
218
+ 't-agent.input.upload.video.max-reached': 'Video upload limit reached',
219
+ 't-agent.file-tile.unknown-filename': 'File'
206
220
  },
207
221
  ja: {
208
222
  't-agent.build-in.button.create_scene_manually': 'シーンを手動で作成',
@@ -3,19 +3,16 @@ import "core-js/modules/esnext.iterator.constructor.js";
3
3
  import "core-js/modules/esnext.iterator.find.js";
4
4
  import "core-js/modules/esnext.iterator.map.js";
5
5
  import "core-js/modules/esnext.iterator.some.js";
6
+ import "core-js/modules/web.dom-collections.iterator.js";
6
7
  import './index.less';
7
8
  import { View } from '@ray-js/components';
8
- import React, { useCallback, memo } from 'react';
9
- import { Image } from '@ray-js/ray';
9
+ import React, { memo, useCallback, useMemo } from 'react';
10
10
  import { BubbleTileStatus, ChatMessageStatus } from '@ray-js/t-agent';
11
11
  import TileRender from '../../TileRender';
12
- import noticeSvg from './notice.svg';
13
- import noticeWarnSvg from './notice-warn.svg';
14
- import { useChatAgent, useTranslate, useLongPress, useRenderOptions } from '../../hooks';
12
+ import { useLongPress, useRenderOptions, useTranslate } from '../../hooks';
15
13
  import RollBack from '../WorkflowTile/RollBack';
16
14
  const BubbleTile = props => {
17
15
  var _workflowTile$data;
18
- useChatAgent();
19
16
  const {
20
17
  renderLongPressAs
21
18
  } = useRenderOptions();
@@ -73,7 +70,35 @@ const BubbleTile = props => {
73
70
  const showRollBack = side === 'start' && children.some(child => child.type === 'workflow');
74
71
  const workflowTile = children.find(child => child.type === 'workflow');
75
72
  const workflowNode = workflowTile === null || workflowTile === void 0 || (_workflowTile$data = workflowTile.data) === null || _workflowTile$data === void 0 ? void 0 : _workflowTile$data.nodeId;
76
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, _extends({
73
+ const isErrorBubble = useMemo(() => {
74
+ let empty = true;
75
+ for (const child of children) {
76
+ // 如果子元素是文本类型,并且文本不为空,则不是空消息
77
+ if (child.type === 'text') {
78
+ if (child.data.text !== '') {
79
+ empty = false;
80
+ break;
81
+ }
82
+ } else {
83
+ // 如果子元素是其他类型,则不是空消息
84
+ empty = false;
85
+ break;
86
+ }
87
+ }
88
+ return empty && role === 'assistant' && bubbleStatus === BubbleTileStatus.ERROR && status === ChatMessageStatus.FINISH;
89
+ }, [status, role, bubbleStatus, children]);
90
+ if (isErrorBubble) {
91
+ return /*#__PURE__*/React.createElement(View, _extends({
92
+ className: "t-agent-bubble-tile t-agent-bubble-tile-error-alert",
93
+ "data-testid": "t-agent-bubble-tile"
94
+ }, longPressRes.longPressProps), /*#__PURE__*/React.createElement(View, {
95
+ className: "t-agent-bubble-tile-error",
96
+ "data-testid": "t-agent-bubble-tile-error"
97
+ }), /*#__PURE__*/React.createElement(View, {
98
+ className: "t-agent-bubble-tile-error-alert-text"
99
+ }, data.info || t('t-agent.unknown-error')), longPressBlock);
100
+ }
101
+ return /*#__PURE__*/React.createElement(View, _extends({
77
102
  className: "t-agent-bubble-tile t-agent-bubble-tile-".concat(side),
78
103
  "data-testid": "t-agent-bubble-tile"
79
104
  }, longPressRes.longPressProps), side === 'end' && /*#__PURE__*/React.createElement(ErrorNotice, {
@@ -96,7 +121,7 @@ const BubbleTile = props => {
96
121
  }, t('t-agent.message.bubble.aborted'))), side === 'start' && /*#__PURE__*/React.createElement(ErrorNotice, {
97
122
  bubbleStatus: bubbleStatus,
98
123
  showInfo: showInfo
99
- })), longPressBlock, showRollBack && !isLatestMessage && workflowNode && /*#__PURE__*/React.createElement(RollBack, {
124
+ }), longPressBlock, showRollBack && !isLatestMessage && workflowNode && /*#__PURE__*/React.createElement(RollBack, {
100
125
  nodeId: workflowNode
101
126
  }));
102
127
  };
@@ -107,18 +132,16 @@ const ErrorNotice = /*#__PURE__*/memo(_ref => {
107
132
  showInfo
108
133
  } = _ref;
109
134
  if (bubbleStatus === BubbleTileStatus.ERROR) {
110
- return /*#__PURE__*/React.createElement(Image, {
135
+ return /*#__PURE__*/React.createElement(View, {
111
136
  onClick: showInfo,
112
- src: noticeSvg,
113
137
  className: "t-agent-bubble-tile-error",
114
138
  "data-testid": "t-agent-bubble-tile-error"
115
139
  });
116
140
  }
117
141
  if (bubbleStatus === BubbleTileStatus.WARNING) {
118
- return /*#__PURE__*/React.createElement(Image, {
142
+ return /*#__PURE__*/React.createElement(View, {
119
143
  onClick: showInfo,
120
- src: noticeWarnSvg,
121
- className: "t-agent-bubble-tile-error",
144
+ className: "t-agent-bubble-tile-warning",
122
145
  "data-testid": "t-agent-bubble-tile-warning"
123
146
  });
124
147
  }
@@ -18,6 +18,22 @@
18
18
  position: relative;
19
19
  }
20
20
 
21
+ .t-agent-bubble-tile-error-alert {
22
+ background: var(--app-M2_1);
23
+ border-radius: 32rpx;
24
+ padding: 24rpx;
25
+ max-width: 686rpx;
26
+
27
+ .t-agent-bubble-tile-error {
28
+ margin: 0 12rpx 0 0;
29
+ }
30
+
31
+ .t-agent-bubble-tile-error-alert-text {
32
+ flex: 0 1 auto;
33
+ min-width: 0;
34
+ }
35
+ }
36
+
21
37
  .t-agent-bubble-tile-bubble-loader {
22
38
  display: inline-flex;
23
39
 
@@ -64,7 +80,7 @@
64
80
  display: flex;
65
81
  justify-content: center;
66
82
  align-items: center;
67
-
83
+
68
84
  .t-agent-bubble-tile-bubble-loader-ball {
69
85
  width: 6px;
70
86
  height: 6px;
@@ -97,10 +113,17 @@
97
113
  text-align: center;
98
114
  }
99
115
 
116
+ .t-agent-bubble-tile-warning,
100
117
  .t-agent-bubble-tile-error {
101
118
  width: 32rpx;
102
119
  height: 32rpx;
103
120
  margin: 0 18rpx;
121
+ flex: 1 0 auto;
122
+ background: url("./notice.svg") no-repeat center center;
123
+ }
124
+
125
+ .t-agent-bubble-tile-warning {
126
+ background: url("./notice-warn.svg") no-repeat center center;
104
127
  }
105
128
 
106
129
  @keyframes t-agent-bubble-tile-blink {
@@ -0,0 +1 @@
1
+ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1748237763652" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6368" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M637.194862 113.714901l0 189.396581 182.346001 0L649.150148 113.714901 637.194862 113.714901zM816.682769 896.959605c6.27696-6.275937 10.255575-14.8318 10.255575-24.52865L826.938344 355.018689l-195.461717 0 0 0c-12.534478 0-24.489764-5.13802-32.467459-13.693884l0 0c-8.555863-7.985882-13.674441-19.391652-13.674441-32.515554L585.334727 113.714901 229.169935 113.714901l0 0c-9.685593 0-18.232247 3.418866-24.498974 9.69685-6.26775 6.27696-9.69685 14.832823-9.69685 24.529673l0 0 0 724.489532 0 0c0 9.69685 3.429099 18.252713 9.69685 24.52865 6.26775 6.277984 14.813381 10.276041 24.498974 10.276041l0 0 563.02307 0 0 0C801.868365 907.235646 810.425252 903.236566 816.682769 896.959605L816.682769 896.959605zM229.169935 61.798485l442.211541 0 2.838651 0 1.719154 1.708921L876.518552 284.850583l1.720178 1.719154 0 2.278903 0 583.583338c0 23.968901-9.69685 45.639456-25.071002 61.051471l0 0c-15.392572 15.393595-37.044708 25.090445-60.974723 25.090445l0 0-563.02307 0 0 0c-23.360034 0-45.02138-9.69685-60.974723-25.090445-15.383362-15.413038-25.069979-37.08257-25.069979-61.051471L143.125233 147.941424c0-23.38971 9.686616-45.070498 25.069979-61.043285C184.148555 71.494311 205.809901 61.798485 229.169935 61.798485L229.169935 61.798485z" fill="#7b7c7e" p-id="6369"></path></svg>
@@ -1,7 +1,10 @@
1
+ import "core-js/modules/web.dom-collections.iterator.js";
1
2
  import './index.less';
2
3
  import { View } from '@ray-js/components';
3
4
  import React, { useMemo } from 'react';
4
- const baseImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAIHSURBVGiB7ZrbasJAEIa/HExEEFoQLJUKQguFXvf9H6CP0ItCX6B3vbA16cVkSUyN0d2JWUM+EAVz2D//zOwhG9DMBAiBHAiOHHdpciADfk89YQJMETG+EgIpELcdmABR583RI0bafJAEv11pIqQiyrgRI7G566NFjuTFdwxkxpGIM5LMQ3ZUUiXmOkOtTghMwuJH1nNjNMiAMMSvPsaVfAihViUYmqBBFIM9RkG+MzhBraPVBhbAiiMDQ0e+gY/i+yxsHVrTnRiAGfBkc6KtQ2bc9GZ5fhuvWD6wMYeOcIuEYoTE/5fitU9G06EN5Yx3rXjds9AUVJ0c9jaN1xT0iYjaIiHXC5o59EVPeVPlklUuBe66vommQ233eUaKxhwJyU7WMLpwaMN/Jx4pO8ob4AVxTB1tQRtknPdAWbrXiCtVEkTUQvn+qiFnxBiWSGfbNISJinNmSIVUQcuhFYef9injsSWSXyohqCFoBdw7XmOOiJq5NsZVkIYYQ4KIcirtroK0xBgipKBYM7jpwyioYKvaisNYvdqxFfSOxQLGGWxx6Js6GYL0RDrmkO+MgnxnkILy1qOuiMG9Y40ow+7andpLn2lfrVAkhXKFMyg+1+qS2dqzt99iEJuX6iRcbq1Og4iamPqi+o5izwxioa8haDYAAvxU/zhWss2mJp/KutkumlETYvgDMKQ0sd0CIwwAAAAASUVORK5CYII=';
5
+ import { Image } from '@ray-js/ray';
6
+ import cx from 'clsx';
7
+ import { useTranslate } from '../../hooks';
5
8
  export default function FileTile(props) {
6
9
  const {
7
10
  mimeType,
@@ -9,6 +12,7 @@ export default function FileTile(props) {
9
12
  path,
10
13
  src
11
14
  } = props.tile.data;
15
+ const t = useTranslate();
12
16
  const showName = useMemo(() => {
13
17
  if (name) {
14
18
  return name;
@@ -17,26 +21,50 @@ export default function FileTile(props) {
17
21
  const pathArr = path.split('/');
18
22
  return pathArr[pathArr.length - 1];
19
23
  }
20
- return 'unknow';
24
+ return t('t-agent.file-tile.unknown-filename');
21
25
  }, [name, path]);
22
- const showSrc = useMemo(() => src || path || baseImg, [src, path]);
23
- if (mimeType === 'image') {
24
- return /*#__PURE__*/React.createElement(View, {
25
- className: "t-agent-file-tile",
26
- onClick: async () => {
27
- props.emitTileEvent({
28
- type: '@buildIn/FileTileClick',
29
- data: props.tile.data
30
- });
26
+ let inner;
27
+ const size = useMemo(() => {
28
+ const s = props.tile.data.size;
29
+ if (!s) {
30
+ return '';
31
+ }
32
+ if (s < 1024) {
33
+ return "".concat(s, " B");
34
+ }
35
+ if (s < 1024 * 1024) {
36
+ return "".concat((s / 1024).toFixed(2), " KB");
37
+ }
38
+ return "".concat((s / (1024 * 1024)).toFixed(2), " MB");
39
+ }, [props.tile.data.size]);
40
+ const [hasError, setHasError] = React.useState(false);
41
+ if (mimeType.startsWith('image')) {
42
+ inner = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Image, {
43
+ mode: "aspectFit",
44
+ className: cx('t-agent-file-tile-file-icon', 't-agent-file-tile-image-preview', {
45
+ 't-agent-file-tile-image-error': hasError
46
+ }),
47
+ src: src || path,
48
+ onError: () => {
49
+ setHasError(true);
31
50
  }
51
+ }), /*#__PURE__*/React.createElement(View, {
52
+ className: "t-agent-file-tile-info"
32
53
  }, /*#__PURE__*/React.createElement(View, {
33
- className: "t-agent-file-tile-image-preview",
34
- style: {
35
- backgroundImage: "url(".concat(showSrc, ")")
36
- }
54
+ className: "t-agent-file-tile-filename"
55
+ }, showName), size && /*#__PURE__*/React.createElement(View, {
56
+ className: "t-agent-file-tile-filesize"
57
+ }, size)));
58
+ } else {
59
+ inner = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {
60
+ className: "t-agent-file-tile-file-icon"
37
61
  }), /*#__PURE__*/React.createElement(View, {
38
- className: "t-agent-file-tile-image-text"
39
- }, " ", showName));
62
+ className: "t-agent-file-tile-info"
63
+ }, /*#__PURE__*/React.createElement(View, {
64
+ className: "t-agent-file-tile-filename"
65
+ }, showName), size && /*#__PURE__*/React.createElement(View, {
66
+ className: "t-agent-file-tile-filesize"
67
+ }, size)));
40
68
  }
41
69
  return /*#__PURE__*/React.createElement(View, {
42
70
  className: "t-agent-file-tile",
@@ -46,12 +74,5 @@ export default function FileTile(props) {
46
74
  data: props.tile.data
47
75
  });
48
76
  }
49
- }, /*#__PURE__*/React.createElement(View, {
50
- className: "t-agent-file-tile-image-preview",
51
- style: {
52
- backgroundImage: "url(".concat(baseImg, ")")
53
- }
54
- }), /*#__PURE__*/React.createElement(View, {
55
- className: "t-agent-file-tile-image-text"
56
- }, " ", showName));
77
+ }, inner);
57
78
  }
@@ -17,28 +17,45 @@
17
17
  }
18
18
  }
19
19
 
20
- .t-agent-file-tile-image-preview {
20
+ .t-agent-file-tile-file-icon {
21
21
  width: 104rpx;
22
22
  height: 104rpx;
23
23
  background-repeat: no-repeat;
24
24
  background-position: center;
25
- background-size: cover;
25
+ background-size: 56rpx;
26
+ position: relative;
27
+ border-radius: 32rpx;
28
+ overflow: hidden;
29
+
30
+ background-image: url("./file.svg")
26
31
  }
27
32
 
28
- .t-agent-file-tile-image-text {
33
+ .t-agent-file-tile-info {
29
34
  margin-left: 16rpx;
30
35
  font-size: 12px;
31
36
  color: var(--app-B3-N1);
32
37
  width: 248rpx;
33
38
  height: 104rpx;
39
+ display: flex;
40
+ flex-direction: column;
41
+ justify-content: center;
42
+ }
43
+
44
+ .t-agent-file-tile-filename {
34
45
  word-break: break-all; /* 允许单词内断行 */
35
46
 
36
47
  /* 限制两行 */
37
48
  display: -webkit-box;
38
- -webkit-line-clamp: 3; /* 控制显示行数 */
49
+ -webkit-line-clamp: 2; /* 控制显示行数 */
39
50
  -webkit-box-orient: vertical;
51
+ height: 66rpx;
52
+
40
53
 
41
54
  /* 溢出省略号 */
42
55
  overflow: hidden;
43
56
  text-overflow: ellipsis;
44
57
  }
58
+
59
+ .t-agent-file-tile-filesize {
60
+ text-align: right;
61
+ }
@@ -1,8 +1,9 @@
1
- import React, { useMemo } from 'react';
1
+ import React from 'react';
2
2
  import { View } from '@ray-js/components';
3
3
  import './index.less';
4
4
  import MarkdownRender from '../../MarkdownRender';
5
5
  import { useRenderOptions } from '../../hooks';
6
+ import { systemInfo } from '../../utils';
6
7
  const TextTile = props => {
7
8
  const {
8
9
  text,
@@ -12,7 +13,7 @@ const TextTile = props => {
12
13
  renderCustomBlockAs,
13
14
  customBlockTypes
14
15
  } = useRenderOptions();
15
- const theme = useMemo(() => ty.getSystemInfoSync().theme, []);
16
+ const theme = systemInfo.theme;
16
17
  return markdown ? /*#__PURE__*/React.createElement(MarkdownRender, {
17
18
  theme: theme,
18
19
  text: text,
@@ -17,8 +17,12 @@ export declare function getUrlByCloudKey(key: string): string | undefined;
17
17
  export declare function setUrlByCloudKey(key: string, url: string): void;
18
18
  export declare function resetUrlByCloudKey(key: string): void;
19
19
  export declare const downloadSign: (cloudKey: string, bizType: string) => Promise<string> | undefined;
20
- export declare function chooseImage(count?: number): Promise<string[]>;
20
+ export declare function chooseImage(count?: number, sourceType?: 'camera' | 'album'): Promise<{
21
+ path: string;
22
+ size: number;
23
+ }[]>;
21
24
  export declare function chooseVideo(count?: number): Promise<{
22
25
  thumbTempFilePath: string;
23
26
  tempFilePath: string;
27
+ size: number;
24
28
  }[]>;
@@ -1,5 +1,7 @@
1
1
  import "core-js/modules/es.regexp.exec.js";
2
2
  import "core-js/modules/es.string.replace.js";
3
+ import "core-js/modules/esnext.iterator.constructor.js";
4
+ import "core-js/modules/esnext.iterator.map.js";
3
5
  import "core-js/modules/web.dom-collections.iterator.js";
4
6
  import { generateId } from '@ray-js/t-agent';
5
7
  import Url from 'url-parse';
@@ -158,12 +160,23 @@ export const downloadSign = cloudKey => {
158
160
  };
159
161
  export async function chooseImage() {
160
162
  let count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
163
+ let sourceType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'album';
161
164
  const paths = await new Promise((resolve, reject) => {
162
165
  ty.chooseImage({
163
166
  count,
164
167
  sizeType: ['compressed'],
168
+ sourceType: [sourceType],
165
169
  success(res) {
166
- resolve(res.tempFilePaths);
170
+ resolve(res.tempFiles.map(_ref => {
171
+ let {
172
+ path,
173
+ size
174
+ } = _ref;
175
+ return {
176
+ path,
177
+ size: size || 0
178
+ };
179
+ }));
167
180
  },
168
181
  fail(err) {
169
182
  reject(err);
@@ -1,2 +1,3 @@
1
1
  export declare function routeScene(sceneId: string): void;
2
+ export declare const systemInfo: any;
2
3
  export * from './formatMessage';
@@ -10,4 +10,5 @@ export function routeScene(sceneId) {
10
10
  }
11
11
  });
12
12
  }
13
+ export const systemInfo = ty.getSystemInfoSync();
13
14
  export * from './formatMessage';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/t-agent-ui-ray",
3
- "version": "0.2.0-beta-4",
3
+ "version": "0.2.0-beta-6",
4
4
  "author": "Tuya.inc",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -40,5 +40,5 @@
40
40
  "@types/echarts": "^4.9.22",
41
41
  "@types/markdown-it": "^14.1.1"
42
42
  },
43
- "gitHead": "1728f8a1cac6b2ca53e506e06171808fbf38efdc"
43
+ "gitHead": "a09b74682949c5860f34105b4a5f8f60fc34a582"
44
44
  }
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="32" height="32" viewBox="0 0 32 32"><defs><clipPath id="master_svg0_160_1801"><rect x="0" y="0" width="32" height="32" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_160_1801)"><g><rect x="5" y="5" width="22" height="22" rx="0" fill="#FFFFFF" fill-opacity="0.009999999776482582" style="mix-blend-mode:passthrough"/></g><g><rect x="5" y="5" width="22" height="22" rx="0" fill="#FFFFFF" fill-opacity="0.009999999776482582" style="mix-blend-mode:passthrough"/></g><g><path d="M26,16Q26,16.2455,25.988,16.4907Q25.9759,16.7359,25.9518,16.9802Q25.9278,17.2245,25.8918,17.4673Q25.8557,17.7101,25.8078,17.9509Q25.76,18.1917,25.7003,18.4298Q25.6407,18.6679,25.5694,18.9028Q25.4981,19.1378,25.4154,19.3689Q25.3327,19.6,25.2388,19.8268Q25.1448,20.0536,25.0399,20.2755Q24.9349,20.497500000000002,24.8192,20.714Q24.7035,20.930500000000002,24.5773,21.141Q24.4511,21.351599999999998,24.3147,21.5557Q24.1783,21.7598,24.0321,21.957Q23.8858,22.1542,23.7301,22.3439Q23.5744,22.5337,23.4095,22.7156Q23.2446,22.8975,23.0711,23.0711Q22.8975,23.2446,22.7156,23.4095Q22.5337,23.5744,22.3439,23.7301Q22.1542,23.8858,21.957,24.0321Q21.7598,24.1783,21.5557,24.3147Q21.351599999999998,24.4511,21.141,24.5773Q20.930500000000002,24.7035,20.714,24.8192Q20.497500000000002,24.9349,20.2755,25.0399Q20.0536,25.1448,19.8268,25.2388Q19.6,25.3327,19.3689,25.4154Q19.1378,25.4981,18.9028,25.5694Q18.6679,25.6407,18.4298,25.7003Q18.1917,25.76,17.9509,25.8078Q17.7101,25.8557,17.4673,25.8918Q17.2245,25.9278,16.9802,25.9518Q16.7359,25.9759,16.4907,25.988Q16.2455,26,16,26Q15.75451,26,15.50932,25.988Q15.26413,25.9759,15.01983,25.9518Q14.77552,25.9278,14.53269,25.8918Q14.28987,25.8557,14.0491,25.8078Q13.80833,25.76,13.5702,25.7003Q13.33207,25.6407,13.09715,25.5694Q12.86224,25.4981,12.6311,25.4154Q12.39996,25.3327,12.17316,25.2388Q11.94636,25.1448,11.724450000000001,25.0399Q11.50253,24.9349,11.28603,24.8192Q11.06953,24.7035,10.85897,24.5773Q10.64841,24.4511,10.4443,24.3147Q10.240179999999999,24.1783,10.043009999999999,24.0321Q9.84583,23.8858,9.65607,23.7301Q9.4663,23.5744,9.28441,23.4095Q9.10252,23.2446,8.92893,23.0711Q8.75535,22.8975,8.590489999999999,22.7156Q8.42563,22.5337,8.2699,22.3439Q8.11416,22.1542,7.9679199999999994,21.957Q7.82169,21.7598,7.6853,21.5557Q7.54892,21.351599999999998,7.42271,21.141Q7.29651,20.930500000000002,7.18079,20.714Q7.06507,20.497500000000002,6.960107,20.2755Q6.855148,20.0536,6.761205,19.8268Q6.667261,19.6,6.5845590000000005,19.3689Q6.501857,19.1378,6.430597,18.9028Q6.359336,18.6679,6.299687,18.4298Q6.240039,18.1917,6.192147,17.9509Q6.144255,17.7101,6.108235,17.4673Q6.0722146,17.2245,6.0481527,16.9802Q6.0240909,16.7359,6.0120454,16.4907Q6,16.2455,6,16Q6,15.75451,6.0120454,15.50932Q6.0240909,15.26413,6.0481527,15.01983Q6.0722146,14.77552,6.108235,14.53269Q6.144255,14.28987,6.192147,14.0491Q6.240039,13.80833,6.299687,13.5702Q6.359336,13.33207,6.430597,13.09715Q6.501857,12.86224,6.5845590000000005,12.6311Q6.667261,12.39996,6.761205,12.17316Q6.855148,11.94636,6.960107,11.724450000000001Q7.06507,11.50253,7.18079,11.28603Q7.29651,11.06953,7.42271,10.85897Q7.54892,10.64841,7.6853,10.4443Q7.82169,10.240179999999999,7.9679199999999994,10.043009999999999Q8.11416,9.84583,8.2699,9.65607Q8.42563,9.4663,8.590489999999999,9.28441Q8.75535,9.10252,8.92893,8.92893Q9.10252,8.75535,9.28441,8.590489999999999Q9.4663,8.42563,9.65607,8.2699Q9.84583,8.11416,10.043009999999999,7.9679199999999994Q10.240179999999999,7.82169,10.4443,7.6853Q10.64841,7.54892,10.85897,7.42271Q11.06953,7.29651,11.28603,7.18079Q11.50253,7.06507,11.724450000000001,6.960107Q11.94636,6.855148,12.17316,6.761205Q12.39996,6.667261,12.6311,6.5845590000000005Q12.86224,6.501857,13.09715,6.430597Q13.33207,6.359336,13.5702,6.299687Q13.80833,6.240039,14.0491,6.192147Q14.28987,6.144255,14.53269,6.108235Q14.77552,6.0722146,15.01983,6.0481527Q15.26413,6.0240909,15.50932,6.0120454Q15.75451,6,16,6Q16.2455,6,16.4907,6.0120454Q16.7359,6.0240909,16.9802,6.0481527Q17.2245,6.0722146,17.4673,6.108235Q17.7101,6.144255,17.9509,6.192147Q18.1917,6.240039,18.4298,6.299687Q18.6679,6.359336,18.9028,6.430597Q19.1378,6.501857,19.3689,6.5845590000000005Q19.6,6.667261,19.8268,6.761205Q20.0536,6.855148,20.2755,6.960107Q20.497500000000002,7.06507,20.714,7.18079Q20.930500000000002,7.29651,21.141,7.42271Q21.351599999999998,7.54892,21.5557,7.6853Q21.7598,7.82169,21.957,7.9679199999999994Q22.1542,8.11416,22.3439,8.2699Q22.5337,8.42563,22.7156,8.590489999999999Q22.8975,8.75535,23.0711,8.92893Q23.2446,9.10252,23.4095,9.28441Q23.5744,9.4663,23.7301,9.65607Q23.8858,9.84583,24.0321,10.043009999999999Q24.1783,10.240179999999999,24.3147,10.4443Q24.4511,10.64841,24.5773,10.85897Q24.7035,11.06953,24.8192,11.28603Q24.9349,11.50253,25.0399,11.724450000000001Q25.1448,11.94636,25.2388,12.17316Q25.3327,12.39996,25.4154,12.6311Q25.4981,12.86224,25.5694,13.09715Q25.6407,13.33207,25.7003,13.5702Q25.76,13.80833,25.8078,14.0491Q25.8557,14.28987,25.8918,14.53269Q25.9278,14.77552,25.9518,15.01983Q25.9759,15.26413,25.988,15.50932Q26,15.75451,26,16Z" fill="#000000" fill-opacity="0.699999988079071"/></g><g><path d="M13.0207959765625,12.56251701171875Q13.0207959765625,12.61880701171875,13.0152759765625,12.674827011718751Q13.0097559765625,12.73084701171875,12.9987759765625,12.78605701171875Q12.9877959765625,12.84126701171875,12.971455976562499,12.89513701171875Q12.9551159765625,12.94900701171875,12.9335659765625,13.00100701171875Q12.9120259765625,13.053017011718751,12.885495976562499,13.10266701171875Q12.8589559765625,13.15230701171875,12.827685976562499,13.19910701171875Q12.7964159765625,13.245917011718749,12.7606959765625,13.28942701171875Q12.7249859765625,13.33294701171875,12.6851859765625,13.37274701171875Q12.6453859765625,13.41254701171875,12.6018659765625,13.44825701171875Q12.558355976562499,13.48397701171875,12.5115459765625,13.515247011718749Q12.4647459765625,13.54651701171875,12.4151059765625,13.573057011718749Q12.365455976562501,13.59958701171875,12.3134459765625,13.62112701171875Q12.2614459765625,13.64267701171875,12.2075759765625,13.659017011718749Q12.1537059765625,13.67535701171875,12.0984959765625,13.68633701171875Q12.0432859765625,13.69731701171875,11.987265976562501,13.70283701171875Q11.9312459765625,13.70835701171875,11.8749559765625,13.70835701171875Q11.8186659765625,13.70835701171875,11.7626459765625,13.70283701171875Q11.7066279765625,13.69731701171875,11.6514179765625,13.68633701171875Q11.596208976562501,13.67535701171875,11.5423409765625,13.659017011718749Q11.4884739765625,13.64267701171875,11.4364679765625,13.62112701171875Q11.3844619765625,13.59958701171875,11.3348169765625,13.573057011718749Q11.2851729765625,13.54651701171875,11.2383679765625,13.515247011718749Q11.1915639765625,13.48397701171875,11.1480499765625,13.44825701171875Q11.1045369765625,13.41254701171875,11.0647329765625,13.37274701171875Q11.0249289765625,13.33294701171875,10.9892179765625,13.28942701171875Q10.9535069765625,13.245917011718749,10.9222339765625,13.19910701171875Q10.8909599765625,13.15230701171875,10.8644249765625,13.10266701171875Q10.8378889765625,13.053017011718751,10.8163473765625,13.00100701171875Q10.7948056765625,12.94900701171875,10.7784651765625,12.89513701171875Q10.7621246765625,12.84126701171875,10.7511428765625,12.78605701171875Q10.7401609765625,12.73084701171875,10.7346434765625,12.674827011718751Q10.7291259765625,12.61880701171875,10.7291259765625,12.56251701171875Q10.7291259765625,12.50622701171875,10.7346434765625,12.45020701171875Q10.7401609765625,12.39418901171875,10.7511428765625,12.33897901171875Q10.7621246765625,12.283770011718751,10.7784651765625,12.22990201171875Q10.7948056765625,12.17603501171875,10.8163473765625,12.12402901171875Q10.8378889765625,12.07202301171875,10.8644249765625,12.02237801171875Q10.8909599765625,11.97273401171875,10.9222339765625,11.92592901171875Q10.9535069765625,11.87912501171875,10.9892179765625,11.83561101171875Q11.0249289765625,11.79209801171875,11.0647329765625,11.75229401171875Q11.1045369765625,11.71249001171875,11.1480499765625,11.67677901171875Q11.1915639765625,11.64106801171875,11.2383679765625,11.60979501171875Q11.2851729765625,11.57852101171875,11.3348169765625,11.55198601171875Q11.3844619765625,11.52545001171875,11.4364679765625,11.50390841171875Q11.4884739765625,11.48236671171875,11.5423409765625,11.46602621171875Q11.596208976562501,11.44968571171875,11.6514179765625,11.43870391171875Q11.7066279765625,11.42772201171875,11.7626459765625,11.42220451171875Q11.8186659765625,11.41668701171875,11.8749559765625,11.41668701171875Q11.9312459765625,11.41668701171875,11.987265976562501,11.42220451171875Q12.0432859765625,11.42772201171875,12.0984959765625,11.43870391171875Q12.1537059765625,11.44968571171875,12.2075759765625,11.46602621171875Q12.2614459765625,11.48236671171875,12.3134459765625,11.50390841171875Q12.365455976562501,11.52545001171875,12.4151059765625,11.55198601171875Q12.4647459765625,11.57852101171875,12.5115459765625,11.60979501171875Q12.558355976562499,11.64106801171875,12.6018659765625,11.67677901171875Q12.6453859765625,11.71249001171875,12.6851859765625,11.75229401171875Q12.7249859765625,11.79209801171875,12.7606959765625,11.83561101171875Q12.7964159765625,11.87912501171875,12.827685976562499,11.92592901171875Q12.8589559765625,11.97273401171875,12.885495976562499,12.02237801171875Q12.9120259765625,12.07202301171875,12.9335659765625,12.12402901171875Q12.9551159765625,12.17603501171875,12.971455976562499,12.22990201171875Q12.9877959765625,12.283770011718751,12.9987759765625,12.33897901171875Q13.0097559765625,12.39418901171875,13.0152759765625,12.45020701171875Q13.0207959765625,12.50622701171875,13.0207959765625,12.56251701171875Z" fill="#FFFFFF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g><g><path d="M13.0207959765625,16.22914298828125Q13.0207959765625,16.28543298828125,13.0152759765625,16.34145298828125Q13.0097559765625,16.39747298828125,12.9987759765625,16.45268298828125Q12.9877959765625,16.50789298828125,12.971455976562499,16.56176298828125Q12.9551159765625,16.61563298828125,12.9335659765625,16.667632988281248Q12.9120259765625,16.71964298828125,12.885495976562499,16.76929298828125Q12.8589559765625,16.81893298828125,12.827685976562499,16.86573298828125Q12.7964159765625,16.91254298828125,12.7606959765625,16.95605298828125Q12.7249859765625,16.99957298828125,12.6851859765625,17.03937298828125Q12.6453859765625,17.07917298828125,12.6018659765625,17.11488298828125Q12.558355976562499,17.15060298828125,12.5115459765625,17.18187298828125Q12.4647459765625,17.21314298828125,12.4151059765625,17.23968298828125Q12.365455976562501,17.26621298828125,12.3134459765625,17.287752988281248Q12.2614459765625,17.30930298828125,12.2075759765625,17.32564298828125Q12.1537059765625,17.34198298828125,12.0984959765625,17.35296298828125Q12.0432859765625,17.36394298828125,11.987265976562501,17.36946298828125Q11.9312459765625,17.37498298828125,11.8749559765625,17.37498298828125Q11.8186659765625,17.37498298828125,11.7626459765625,17.36946298828125Q11.7066279765625,17.36394298828125,11.6514179765625,17.35296298828125Q11.596208976562501,17.34198298828125,11.5423409765625,17.32564298828125Q11.4884739765625,17.30930298828125,11.4364679765625,17.287752988281248Q11.3844619765625,17.26621298828125,11.3348169765625,17.23968298828125Q11.2851729765625,17.21314298828125,11.2383679765625,17.18187298828125Q11.1915639765625,17.15060298828125,11.1480499765625,17.11488298828125Q11.1045369765625,17.07917298828125,11.0647329765625,17.03937298828125Q11.0249289765625,16.99957298828125,10.9892179765625,16.95605298828125Q10.9535069765625,16.91254298828125,10.9222339765625,16.86573298828125Q10.8909599765625,16.81893298828125,10.8644249765625,16.76929298828125Q10.8378889765625,16.71964298828125,10.8163473765625,16.667632988281248Q10.7948056765625,16.61563298828125,10.7784651765625,16.56176298828125Q10.7621246765625,16.50789298828125,10.7511428765625,16.45268298828125Q10.7401609765625,16.39747298828125,10.7346434765625,16.34145298828125Q10.7291259765625,16.28543298828125,10.7291259765625,16.22914298828125Q10.7291259765625,16.17285298828125,10.7346434765625,16.11683298828125Q10.7401609765625,16.06081498828125,10.7511428765625,16.00560498828125Q10.7621246765625,15.950395988281251,10.7784651765625,15.89652798828125Q10.7948056765625,15.84266098828125,10.8163473765625,15.79065498828125Q10.8378889765625,15.73864898828125,10.8644249765625,15.68900398828125Q10.8909599765625,15.63935998828125,10.9222339765625,15.59255498828125Q10.9535069765625,15.54575098828125,10.9892179765625,15.50223698828125Q11.0249289765625,15.45872398828125,11.0647329765625,15.41891998828125Q11.1045369765625,15.37911598828125,11.1480499765625,15.34340498828125Q11.1915639765625,15.30769398828125,11.2383679765625,15.27642098828125Q11.2851729765625,15.24514698828125,11.3348169765625,15.21861198828125Q11.3844619765625,15.19207598828125,11.4364679765625,15.17053438828125Q11.4884739765625,15.14899268828125,11.5423409765625,15.13265218828125Q11.596208976562501,15.11631168828125,11.6514179765625,15.10532988828125Q11.7066279765625,15.09434798828125,11.7626459765625,15.08883048828125Q11.8186659765625,15.08331298828125,11.8749559765625,15.08331298828125Q11.9312459765625,15.08331298828125,11.987265976562501,15.08883048828125Q12.0432859765625,15.09434798828125,12.0984959765625,15.10532988828125Q12.1537059765625,15.11631168828125,12.2075759765625,15.13265218828125Q12.2614459765625,15.14899268828125,12.3134459765625,15.17053438828125Q12.365455976562501,15.19207598828125,12.4151059765625,15.21861198828125Q12.4647459765625,15.24514698828125,12.5115459765625,15.27642098828125Q12.558355976562499,15.30769398828125,12.6018659765625,15.34340498828125Q12.6453859765625,15.37911598828125,12.6851859765625,15.41891998828125Q12.7249859765625,15.45872398828125,12.7606959765625,15.50223698828125Q12.7964159765625,15.54575098828125,12.827685976562499,15.59255498828125Q12.8589559765625,15.63935998828125,12.885495976562499,15.68900398828125Q12.9120259765625,15.73864898828125,12.9335659765625,15.79065498828125Q12.9551159765625,15.84266098828125,12.971455976562499,15.89652798828125Q12.9877959765625,15.950395988281251,12.9987759765625,16.00560498828125Q13.0097559765625,16.06081498828125,13.0152759765625,16.11683298828125Q13.0207959765625,16.17285298828125,13.0207959765625,16.22914298828125Z" fill="#FFFFFF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g><g><path d="M17.1457959765625,12.56251701171875Q17.1457959765625,12.61880701171875,17.1402759765625,12.674827011718751Q17.1347559765625,12.73084701171875,17.1237759765625,12.78605701171875Q17.1127959765625,12.84126701171875,17.0964559765625,12.89513701171875Q17.0801159765625,12.94900701171875,17.058565976562498,13.00100701171875Q17.0370259765625,13.053017011718751,17.0104959765625,13.10266701171875Q16.9839559765625,13.15230701171875,16.9526859765625,13.19910701171875Q16.9214159765625,13.245917011718749,16.8856959765625,13.28942701171875Q16.8499859765625,13.33294701171875,16.8101859765625,13.37274701171875Q16.7703859765625,13.41254701171875,16.7268659765625,13.44825701171875Q16.6833559765625,13.48397701171875,16.6365459765625,13.515247011718749Q16.5897459765625,13.54651701171875,16.5401059765625,13.573057011718749Q16.4904559765625,13.59958701171875,16.438445976562498,13.62112701171875Q16.3864459765625,13.64267701171875,16.3325759765625,13.659017011718749Q16.2787059765625,13.67535701171875,16.2234959765625,13.68633701171875Q16.1682859765625,13.69731701171875,16.1122659765625,13.70283701171875Q16.0562459765625,13.70835701171875,15.9999559765625,13.70835701171875Q15.9436659765625,13.70835701171875,15.8876459765625,13.70283701171875Q15.8316279765625,13.69731701171875,15.7764179765625,13.68633701171875Q15.721208976562501,13.67535701171875,15.6673409765625,13.659017011718749Q15.6134739765625,13.64267701171875,15.5614679765625,13.62112701171875Q15.5094619765625,13.59958701171875,15.4598169765625,13.573057011718749Q15.4101729765625,13.54651701171875,15.3633679765625,13.515247011718749Q15.3165639765625,13.48397701171875,15.2730499765625,13.44825701171875Q15.2295369765625,13.41254701171875,15.1897329765625,13.37274701171875Q15.1499289765625,13.33294701171875,15.1142179765625,13.28942701171875Q15.0785069765625,13.245917011718749,15.0472339765625,13.19910701171875Q15.0159599765625,13.15230701171875,14.9894249765625,13.10266701171875Q14.9628889765625,13.053017011718751,14.9413473765625,13.00100701171875Q14.9198056765625,12.94900701171875,14.9034651765625,12.89513701171875Q14.8871246765625,12.84126701171875,14.8761428765625,12.78605701171875Q14.8651609765625,12.73084701171875,14.8596434765625,12.674827011718751Q14.8541259765625,12.61880701171875,14.8541259765625,12.56251701171875Q14.8541259765625,12.50622701171875,14.8596434765625,12.45020701171875Q14.8651609765625,12.39418901171875,14.8761428765625,12.33897901171875Q14.8871246765625,12.283770011718751,14.9034651765625,12.22990201171875Q14.9198056765625,12.17603501171875,14.9413473765625,12.12402901171875Q14.9628889765625,12.07202301171875,14.9894249765625,12.02237801171875Q15.0159599765625,11.97273401171875,15.0472339765625,11.92592901171875Q15.0785069765625,11.87912501171875,15.1142179765625,11.83561101171875Q15.1499289765625,11.79209801171875,15.1897329765625,11.75229401171875Q15.2295369765625,11.71249001171875,15.2730499765625,11.67677901171875Q15.3165639765625,11.64106801171875,15.3633679765625,11.60979501171875Q15.4101729765625,11.57852101171875,15.4598169765625,11.55198601171875Q15.5094619765625,11.52545001171875,15.5614679765625,11.50390841171875Q15.6134739765625,11.48236671171875,15.6673409765625,11.46602621171875Q15.721208976562501,11.44968571171875,15.7764179765625,11.43870391171875Q15.8316279765625,11.42772201171875,15.8876459765625,11.42220451171875Q15.9436659765625,11.41668701171875,15.9999559765625,11.41668701171875Q16.0562459765625,11.41668701171875,16.1122659765625,11.42220451171875Q16.1682859765625,11.42772201171875,16.2234959765625,11.43870391171875Q16.2787059765625,11.44968571171875,16.3325759765625,11.46602621171875Q16.3864459765625,11.48236671171875,16.438445976562498,11.50390841171875Q16.4904559765625,11.52545001171875,16.5401059765625,11.55198601171875Q16.5897459765625,11.57852101171875,16.6365459765625,11.60979501171875Q16.6833559765625,11.64106801171875,16.7268659765625,11.67677901171875Q16.7703859765625,11.71249001171875,16.8101859765625,11.75229401171875Q16.8499859765625,11.79209801171875,16.8856959765625,11.83561101171875Q16.9214159765625,11.87912501171875,16.9526859765625,11.92592901171875Q16.9839559765625,11.97273401171875,17.0104959765625,12.02237801171875Q17.0370259765625,12.07202301171875,17.058565976562498,12.12402901171875Q17.0801159765625,12.17603501171875,17.0964559765625,12.22990201171875Q17.1127959765625,12.283770011718751,17.1237759765625,12.33897901171875Q17.1347559765625,12.39418901171875,17.1402759765625,12.45020701171875Q17.1457959765625,12.50622701171875,17.1457959765625,12.56251701171875Z" fill="#FFFFFF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g><g><path d="M17.1457959765625,16.22914298828125Q17.1457959765625,16.28543298828125,17.1402759765625,16.34145298828125Q17.1347559765625,16.39747298828125,17.1237759765625,16.45268298828125Q17.1127959765625,16.50789298828125,17.0964559765625,16.56176298828125Q17.0801159765625,16.61563298828125,17.058565976562498,16.667632988281248Q17.0370259765625,16.71964298828125,17.0104959765625,16.76929298828125Q16.9839559765625,16.81893298828125,16.9526859765625,16.86573298828125Q16.9214159765625,16.91254298828125,16.8856959765625,16.95605298828125Q16.8499859765625,16.99957298828125,16.8101859765625,17.03937298828125Q16.7703859765625,17.07917298828125,16.7268659765625,17.11488298828125Q16.6833559765625,17.15060298828125,16.6365459765625,17.18187298828125Q16.5897459765625,17.21314298828125,16.5401059765625,17.23968298828125Q16.4904559765625,17.26621298828125,16.438445976562498,17.287752988281248Q16.3864459765625,17.30930298828125,16.3325759765625,17.32564298828125Q16.2787059765625,17.34198298828125,16.2234959765625,17.35296298828125Q16.1682859765625,17.36394298828125,16.1122659765625,17.36946298828125Q16.0562459765625,17.37498298828125,15.9999559765625,17.37498298828125Q15.9436659765625,17.37498298828125,15.8876459765625,17.36946298828125Q15.8316279765625,17.36394298828125,15.7764179765625,17.35296298828125Q15.721208976562501,17.34198298828125,15.6673409765625,17.32564298828125Q15.6134739765625,17.30930298828125,15.5614679765625,17.287752988281248Q15.5094619765625,17.26621298828125,15.4598169765625,17.23968298828125Q15.4101729765625,17.21314298828125,15.3633679765625,17.18187298828125Q15.3165639765625,17.15060298828125,15.2730499765625,17.11488298828125Q15.2295369765625,17.07917298828125,15.1897329765625,17.03937298828125Q15.1499289765625,16.99957298828125,15.1142179765625,16.95605298828125Q15.0785069765625,16.91254298828125,15.0472339765625,16.86573298828125Q15.0159599765625,16.81893298828125,14.9894249765625,16.76929298828125Q14.9628889765625,16.71964298828125,14.9413473765625,16.667632988281248Q14.9198056765625,16.61563298828125,14.9034651765625,16.56176298828125Q14.8871246765625,16.50789298828125,14.8761428765625,16.45268298828125Q14.8651609765625,16.39747298828125,14.8596434765625,16.34145298828125Q14.8541259765625,16.28543298828125,14.8541259765625,16.22914298828125Q14.8541259765625,16.17285298828125,14.8596434765625,16.11683298828125Q14.8651609765625,16.06081498828125,14.8761428765625,16.00560498828125Q14.8871246765625,15.950395988281251,14.9034651765625,15.89652798828125Q14.9198056765625,15.84266098828125,14.9413473765625,15.79065498828125Q14.9628889765625,15.73864898828125,14.9894249765625,15.68900398828125Q15.0159599765625,15.63935998828125,15.0472339765625,15.59255498828125Q15.0785069765625,15.54575098828125,15.1142179765625,15.50223698828125Q15.1499289765625,15.45872398828125,15.1897329765625,15.41891998828125Q15.2295369765625,15.37911598828125,15.2730499765625,15.34340498828125Q15.3165639765625,15.30769398828125,15.3633679765625,15.27642098828125Q15.4101729765625,15.24514698828125,15.4598169765625,15.21861198828125Q15.5094619765625,15.19207598828125,15.5614679765625,15.17053438828125Q15.6134739765625,15.14899268828125,15.6673409765625,15.13265218828125Q15.721208976562501,15.11631168828125,15.7764179765625,15.10532988828125Q15.8316279765625,15.09434798828125,15.8876459765625,15.08883048828125Q15.9436659765625,15.08331298828125,15.9999559765625,15.08331298828125Q16.0562459765625,15.08331298828125,16.1122659765625,15.08883048828125Q16.1682859765625,15.09434798828125,16.2234959765625,15.10532988828125Q16.2787059765625,15.11631168828125,16.3325759765625,15.13265218828125Q16.3864459765625,15.14899268828125,16.438445976562498,15.17053438828125Q16.4904559765625,15.19207598828125,16.5401059765625,15.21861198828125Q16.5897459765625,15.24514698828125,16.6365459765625,15.27642098828125Q16.6833559765625,15.30769398828125,16.7268659765625,15.34340498828125Q16.7703859765625,15.37911598828125,16.8101859765625,15.41891998828125Q16.8499859765625,15.45872398828125,16.8856959765625,15.50223698828125Q16.9214159765625,15.54575098828125,16.9526859765625,15.59255498828125Q16.9839559765625,15.63935998828125,17.0104959765625,15.68900398828125Q17.0370259765625,15.73864898828125,17.058565976562498,15.79065498828125Q17.0801159765625,15.84266098828125,17.0964559765625,15.89652798828125Q17.1127959765625,15.950395988281251,17.1237759765625,16.00560498828125Q17.1347559765625,16.06081498828125,17.1402759765625,16.11683298828125Q17.1457959765625,16.17285298828125,17.1457959765625,16.22914298828125Z" fill="#FFFFFF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g><g><path d="M21.2707959765625,12.56251701171875Q21.2707959765625,12.61880701171875,21.2652759765625,12.674827011718751Q21.2597559765625,12.73084701171875,21.2487759765625,12.78605701171875Q21.2377959765625,12.84126701171875,21.2214559765625,12.89513701171875Q21.2051159765625,12.94900701171875,21.183565976562498,13.00100701171875Q21.1620259765625,13.053017011718751,21.1354959765625,13.10266701171875Q21.1089559765625,13.15230701171875,21.0776859765625,13.19910701171875Q21.0464159765625,13.245917011718749,21.0106959765625,13.28942701171875Q20.9749859765625,13.33294701171875,20.9351859765625,13.37274701171875Q20.8953859765625,13.41254701171875,20.8518659765625,13.44825701171875Q20.8083559765625,13.48397701171875,20.7615459765625,13.515247011718749Q20.7147459765625,13.54651701171875,20.6651059765625,13.573057011718749Q20.6154559765625,13.59958701171875,20.563445976562498,13.62112701171875Q20.5114459765625,13.64267701171875,20.4575759765625,13.659017011718749Q20.4037059765625,13.67535701171875,20.3484959765625,13.68633701171875Q20.2932859765625,13.69731701171875,20.2372659765625,13.70283701171875Q20.1812459765625,13.70835701171875,20.1249559765625,13.70835701171875Q20.0686659765625,13.70835701171875,20.0126459765625,13.70283701171875Q19.9566279765625,13.69731701171875,19.9014179765625,13.68633701171875Q19.8462089765625,13.67535701171875,19.7923409765625,13.659017011718749Q19.7384739765625,13.64267701171875,19.6864679765625,13.62112701171875Q19.6344619765625,13.59958701171875,19.5848169765625,13.573057011718749Q19.5351729765625,13.54651701171875,19.4883679765625,13.515247011718749Q19.4415639765625,13.48397701171875,19.3980499765625,13.44825701171875Q19.3545369765625,13.41254701171875,19.3147329765625,13.37274701171875Q19.2749289765625,13.33294701171875,19.2392179765625,13.28942701171875Q19.2035069765625,13.245917011718749,19.1722339765625,13.19910701171875Q19.1409599765625,13.15230701171875,19.1144249765625,13.10266701171875Q19.0878889765625,13.053017011718751,19.0663473765625,13.00100701171875Q19.0448056765625,12.94900701171875,19.0284651765625,12.89513701171875Q19.0121246765625,12.84126701171875,19.0011428765625,12.78605701171875Q18.9901609765625,12.73084701171875,18.9846434765625,12.674827011718751Q18.9791259765625,12.61880701171875,18.9791259765625,12.56251701171875Q18.9791259765625,12.50622701171875,18.9846434765625,12.45020701171875Q18.9901609765625,12.39418901171875,19.0011428765625,12.33897901171875Q19.0121246765625,12.283770011718751,19.0284651765625,12.22990201171875Q19.0448056765625,12.17603501171875,19.0663473765625,12.12402901171875Q19.0878889765625,12.07202301171875,19.1144249765625,12.02237801171875Q19.1409599765625,11.97273401171875,19.1722339765625,11.92592901171875Q19.2035069765625,11.87912501171875,19.2392179765625,11.83561101171875Q19.2749289765625,11.79209801171875,19.3147329765625,11.75229401171875Q19.3545369765625,11.71249001171875,19.3980499765625,11.67677901171875Q19.4415639765625,11.64106801171875,19.4883679765625,11.60979501171875Q19.5351729765625,11.57852101171875,19.5848169765625,11.55198601171875Q19.6344619765625,11.52545001171875,19.6864679765625,11.50390841171875Q19.7384739765625,11.48236671171875,19.7923409765625,11.46602621171875Q19.8462089765625,11.44968571171875,19.9014179765625,11.43870391171875Q19.9566279765625,11.42772201171875,20.0126459765625,11.42220451171875Q20.0686659765625,11.41668701171875,20.1249559765625,11.41668701171875Q20.1812459765625,11.41668701171875,20.2372659765625,11.42220451171875Q20.2932859765625,11.42772201171875,20.3484959765625,11.43870391171875Q20.4037059765625,11.44968571171875,20.4575759765625,11.46602621171875Q20.5114459765625,11.48236671171875,20.563445976562498,11.50390841171875Q20.6154559765625,11.52545001171875,20.6651059765625,11.55198601171875Q20.7147459765625,11.57852101171875,20.7615459765625,11.60979501171875Q20.8083559765625,11.64106801171875,20.8518659765625,11.67677901171875Q20.8953859765625,11.71249001171875,20.9351859765625,11.75229401171875Q20.9749859765625,11.79209801171875,21.0106959765625,11.83561101171875Q21.0464159765625,11.87912501171875,21.0776859765625,11.92592901171875Q21.1089559765625,11.97273401171875,21.1354959765625,12.02237801171875Q21.1620259765625,12.07202301171875,21.183565976562498,12.12402901171875Q21.2051159765625,12.17603501171875,21.2214559765625,12.22990201171875Q21.2377959765625,12.283770011718751,21.2487759765625,12.33897901171875Q21.2597559765625,12.39418901171875,21.2652759765625,12.45020701171875Q21.2707959765625,12.50622701171875,21.2707959765625,12.56251701171875Z" fill="#FFFFFF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g><g><path d="M21.2707959765625,16.22914298828125Q21.2707959765625,16.28543298828125,21.2652759765625,16.34145298828125Q21.2597559765625,16.39747298828125,21.2487759765625,16.45268298828125Q21.2377959765625,16.50789298828125,21.2214559765625,16.56176298828125Q21.2051159765625,16.61563298828125,21.183565976562498,16.667632988281248Q21.1620259765625,16.71964298828125,21.1354959765625,16.76929298828125Q21.1089559765625,16.81893298828125,21.0776859765625,16.86573298828125Q21.0464159765625,16.91254298828125,21.0106959765625,16.95605298828125Q20.9749859765625,16.99957298828125,20.9351859765625,17.03937298828125Q20.8953859765625,17.07917298828125,20.8518659765625,17.11488298828125Q20.8083559765625,17.15060298828125,20.7615459765625,17.18187298828125Q20.7147459765625,17.21314298828125,20.6651059765625,17.23968298828125Q20.6154559765625,17.26621298828125,20.563445976562498,17.287752988281248Q20.5114459765625,17.30930298828125,20.4575759765625,17.32564298828125Q20.4037059765625,17.34198298828125,20.3484959765625,17.35296298828125Q20.2932859765625,17.36394298828125,20.2372659765625,17.36946298828125Q20.1812459765625,17.37498298828125,20.1249559765625,17.37498298828125Q20.0686659765625,17.37498298828125,20.0126459765625,17.36946298828125Q19.9566279765625,17.36394298828125,19.9014179765625,17.35296298828125Q19.8462089765625,17.34198298828125,19.7923409765625,17.32564298828125Q19.7384739765625,17.30930298828125,19.6864679765625,17.287752988281248Q19.6344619765625,17.26621298828125,19.5848169765625,17.23968298828125Q19.5351729765625,17.21314298828125,19.4883679765625,17.18187298828125Q19.4415639765625,17.15060298828125,19.3980499765625,17.11488298828125Q19.3545369765625,17.07917298828125,19.3147329765625,17.03937298828125Q19.2749289765625,16.99957298828125,19.2392179765625,16.95605298828125Q19.2035069765625,16.91254298828125,19.1722339765625,16.86573298828125Q19.1409599765625,16.81893298828125,19.1144249765625,16.76929298828125Q19.0878889765625,16.71964298828125,19.0663473765625,16.667632988281248Q19.0448056765625,16.61563298828125,19.0284651765625,16.56176298828125Q19.0121246765625,16.50789298828125,19.0011428765625,16.45268298828125Q18.9901609765625,16.39747298828125,18.9846434765625,16.34145298828125Q18.9791259765625,16.28543298828125,18.9791259765625,16.22914298828125Q18.9791259765625,16.17285298828125,18.9846434765625,16.11683298828125Q18.9901609765625,16.06081498828125,19.0011428765625,16.00560498828125Q19.0121246765625,15.950395988281251,19.0284651765625,15.89652798828125Q19.0448056765625,15.84266098828125,19.0663473765625,15.79065498828125Q19.0878889765625,15.73864898828125,19.1144249765625,15.68900398828125Q19.1409599765625,15.63935998828125,19.1722339765625,15.59255498828125Q19.2035069765625,15.54575098828125,19.2392179765625,15.50223698828125Q19.2749289765625,15.45872398828125,19.3147329765625,15.41891998828125Q19.3545369765625,15.37911598828125,19.3980499765625,15.34340498828125Q19.4415639765625,15.30769398828125,19.4883679765625,15.27642098828125Q19.5351729765625,15.24514698828125,19.5848169765625,15.21861198828125Q19.6344619765625,15.19207598828125,19.6864679765625,15.17053438828125Q19.7384739765625,15.14899268828125,19.7923409765625,15.13265218828125Q19.8462089765625,15.11631168828125,19.9014179765625,15.10532988828125Q19.9566279765625,15.09434798828125,20.0126459765625,15.08883048828125Q20.0686659765625,15.08331298828125,20.1249559765625,15.08331298828125Q20.1812459765625,15.08331298828125,20.2372659765625,15.08883048828125Q20.2932859765625,15.09434798828125,20.3484959765625,15.10532988828125Q20.4037059765625,15.11631168828125,20.4575759765625,15.13265218828125Q20.5114459765625,15.14899268828125,20.563445976562498,15.17053438828125Q20.6154559765625,15.19207598828125,20.6651059765625,15.21861198828125Q20.7147459765625,15.24514698828125,20.7615459765625,15.27642098828125Q20.8083559765625,15.30769398828125,20.8518659765625,15.34340498828125Q20.8953859765625,15.37911598828125,20.9351859765625,15.41891998828125Q20.9749859765625,15.45872398828125,21.0106959765625,15.50223698828125Q21.0464159765625,15.54575098828125,21.0776859765625,15.59255498828125Q21.1089559765625,15.63935998828125,21.1354959765625,15.68900398828125Q21.1620259765625,15.73864898828125,21.183565976562498,15.79065498828125Q21.2051159765625,15.84266098828125,21.2214559765625,15.89652798828125Q21.2377959765625,15.950395988281251,21.2487759765625,16.00560498828125Q21.2597559765625,16.06081498828125,21.2652759765625,16.11683298828125Q21.2707959765625,16.17285298828125,21.2707959765625,16.22914298828125Z" fill="#FFFFFF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g><g><path d="M12.7916259765625,19.125L19.2082959765625,19.125Q19.3067859765625,19.125,19.4033859765625,19.144215Q19.4999859765625,19.163429999999998,19.5909759765625,19.201121Q19.681965976562502,19.238812,19.7638659765625,19.29353Q19.8457559765625,19.348249,19.9153959765625,19.417893Q19.9850459765625,19.487537,20.0397659765625,19.56943Q20.0944759765625,19.651322,20.1321759765625,19.742317Q20.169865976562498,19.833311,20.1890759765625,19.92991Q20.2082959765625,20.0265086,20.2082959765625,20.125Q20.2082959765625,20.2234914,20.1890759765625,20.32009Q20.169865976562498,20.416689,20.1321759765625,20.507683Q20.0944759765625,20.598678,20.0397659765625,20.68057Q19.9850459765625,20.762463,19.9153959765625,20.832107Q19.8457559765625,20.901751,19.7638659765625,20.95647Q19.681965976562502,21.011188,19.5909759765625,21.048879Q19.4999859765625,21.086570000000002,19.4033859765625,21.105785Q19.3067859765625,21.125,19.2082959765625,21.125L12.7916259765625,21.125Q12.6931345765625,21.125,12.5965359765625,21.105785Q12.4999369765625,21.086570000000002,12.4089429765625,21.048879Q12.3179479765625,21.011188,12.2360559765625,20.95647Q12.1541629765625,20.901751,12.0845189765625,20.832107Q12.0148749765625,20.762463,11.9601559765625,20.68057Q11.9054379765625,20.598678,11.8677469765625,20.507683Q11.8300559765625,20.416689,11.810840976562499,20.32009Q11.7916259765625,20.2234914,11.7916259765625,20.125Q11.7916259765625,20.0265086,11.810840976562499,19.92991Q11.8300559765625,19.833311,11.8677469765625,19.742317Q11.9054379765625,19.651322,11.9601559765625,19.56943Q12.0148749765625,19.487537,12.0845189765625,19.417893Q12.1541629765625,19.348249,12.2360559765625,19.29353Q12.3179479765625,19.238812,12.4089429765625,19.201121Q12.4999369765625,19.163429999999998,12.5965359765625,19.144215Q12.6931345765625,19.125,12.7916259765625,19.125Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg>
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const useMultiSelectMessage: () => {
3
- show: boolean;
4
- select: string[];
5
- onSelect: import("react").Dispatch<import("react").SetStateAction<string[]>>;
6
- setShow: import("react").Dispatch<import("react").SetStateAction<boolean>>;
7
- };
@@ -1,12 +0,0 @@
1
- import "core-js/modules/web.dom-collections.iterator.js";
2
- import { useState } from 'react';
3
- export const useMultiSelectMessage = () => {
4
- const [select, setSelect] = useState([]);
5
- const [show, setShow] = useState(false);
6
- return {
7
- show,
8
- select,
9
- onSelect: setSelect,
10
- setShow
11
- };
12
- };