4.8.16 test (#3442)

* perf: simple app save

* fix: notify config i18n

* perf: service side props render

* perf: model selector

* update doc
This commit is contained in:
Archer
2024-12-20 18:58:40 +08:00
committed by GitHub
parent 922cb433d3
commit e6d53e3daa
77 changed files with 878 additions and 326 deletions

View File

@@ -2,3 +2,5 @@ export const HUMAN_ICON = `/icon/human.svg`;
export const LOGO_ICON = `/icon/logo.svg`;
export const HUGGING_FACE_ICON = `/imgs/model/huggingface.svg`;
export const DEFAULT_TEAM_AVATAR = `/imgs/avatar/defaultTeamAvatar.svg`;
export const isProduction = process.env.NODE_ENV === 'production';

View File

@@ -1,7 +1,10 @@
import type { ModelProviderIdType } from './provider';
export type LLMModelItemType = {
provider: ModelProviderIdType;
model: string;
name: string;
avatar?: string;
avatar?: string; // model icon, from provider
maxContext: number;
maxResponse: number;
quoteMaxToken: number;
@@ -31,6 +34,7 @@ export type LLMModelItemType = {
};
export type VectorModelItemType = {
provider: ModelProviderIdType;
model: string; // model name
name: string; // show name
avatar?: string;

View File

@@ -1,7 +1,9 @@
import type { LLMModelItemType, VectorModelItemType } from './model.d';
import { getModelProvider, ModelProviderIdType } from './provider';
export const defaultQAModels: LLMModelItemType[] = [
{
provider: 'OpenAI',
model: 'gpt-4o-mini',
name: 'gpt-4o-mini',
maxContext: 16000,
@@ -23,6 +25,7 @@ export const defaultQAModels: LLMModelItemType[] = [
export const defaultVectorModels: VectorModelItemType[] = [
{
provider: 'OpenAI',
model: 'text-embedding-3-small',
name: 'Embedding-2',
charsPointsPrice: 0,
@@ -31,3 +34,15 @@ export const defaultVectorModels: VectorModelItemType[] = [
weight: 100
}
];
export const getModelFromList = (
modelList: { provider: ModelProviderIdType; name: string; model: string }[],
model: string
) => {
const modelData = modelList.find((item) => item.model === model) ?? modelList[0];
const provider = getModelProvider(modelData.provider);
return {
...modelData,
avatar: provider.avatar
};
};

View File

@@ -0,0 +1,121 @@
import { i18nT } from '../../../web/i18n/utils';
export type ModelProviderIdType =
| 'OpenAI'
| 'Claude'
| 'Gemini'
| 'MistralAI'
| 'Qwen'
| 'Doubao'
| 'ChatGLM'
| 'DeepSeek'
| 'Moonshot'
| 'MiniMax'
| 'SparkDesk'
| 'Hunyuan'
| 'Baichuan'
| 'Yi'
| 'Ernie'
| 'Ollama'
| 'Other';
export type ModelProviderType = {
id: ModelProviderIdType;
name: string;
avatar: string;
};
export const ModelProviderList: ModelProviderType[] = [
{
id: 'OpenAI',
name: 'OpenAI',
avatar: 'model/openai'
},
{
id: 'Claude',
name: 'Claude',
avatar: 'model/claude'
},
{
id: 'Gemini',
name: 'Gemini',
avatar: 'model/gemini'
},
{
id: 'MistralAI',
name: 'MistralAI',
avatar: 'model/huggingface'
},
{
id: 'Qwen',
name: i18nT('common:model_qwen'),
avatar: 'model/qwen'
},
{
id: 'Doubao',
name: i18nT('common:model_doubao'),
avatar: 'model/doubao'
},
{
id: 'ChatGLM',
name: i18nT('common:model_chatglm'),
avatar: 'model/chatglm'
},
{
id: 'DeepSeek',
name: 'DeepSeek',
avatar: 'model/deepseek'
},
{
id: 'Moonshot',
name: i18nT('common:model_moonshot'),
avatar: 'model/moonshot'
},
{
id: 'MiniMax',
name: 'MiniMax',
avatar: 'model/minimax'
},
{
id: 'SparkDesk',
name: i18nT('common:model_sparkdesk'),
avatar: 'model/sparkDesk'
},
{
id: 'Hunyuan',
name: i18nT('common:model_hunyuan'),
avatar: 'model/hunyuan'
},
{
id: 'Baichuan',
name: i18nT('common:model_baichuan'),
avatar: 'model/baichuan'
},
{
id: 'Yi',
name: i18nT('common:model_yi'),
avatar: 'model/yi'
},
{
id: 'Ernie',
name: i18nT('common:model_ernie'),
avatar: 'model/ernie'
},
{
id: 'Ollama',
name: 'Ollama',
avatar: 'model/ollama'
},
{
id: 'Other',
name: i18nT('common:model_other'),
avatar: 'model/huggingface'
}
];
export const ModelProviderMap = Object.fromEntries(
ModelProviderList.map((item) => [item.id, item])
);
export const getModelProvider = (provider: ModelProviderIdType) => {
return ModelProviderMap[provider] ?? ModelProviderMap.Other;
};

View File

@@ -1,6 +1,6 @@
import path from 'path';
import { isProduction } from '@fastgpt/global/common/system/constants';
export const tmpFileDirPath =
process.env.NODE_ENV === 'production' ? '/app/tmp' : path.join(process.cwd(), 'tmp');
export const tmpFileDirPath = isProduction ? '/app/tmp' : path.join(process.cwd(), 'tmp');
export const previewMaxCharCount = 3000;

View File

@@ -1,4 +1,4 @@
import { isProduction } from '../system/constants';
import { isProduction } from '@fastgpt/global/common/system/constants';
import fs from 'fs';
import path from 'path';

View File

@@ -1,3 +1 @@
export const FastGPTProUrl = process.env.PRO_URL ? `${process.env.PRO_URL}/api` : '';
export const isProduction = process.env.NODE_ENV === 'production';

View File

@@ -0,0 +1,15 @@
import { I18nNsType } from '../../types/i18next';
import { serverSideTranslations } from 'next-i18next/serverSideTranslations';
export const serviceSideProps = async (content: any, ns: I18nNsType = []) => {
const lang = content.req?.cookies?.NEXT_LOCALE || content.locale;
const extraLng = content.req?.cookies?.NEXT_LOCALE ? undefined : content.locales;
// Device size
const deviceSize = content.req?.cookies?.NEXT_DEVICE_SIZE || 'pc';
return {
...(await serverSideTranslations(lang, ['common', ...ns], null, extraLng)),
deviceSize
};
};

View File

@@ -29,6 +29,7 @@ export const iconPaths = {
'common/courseLight': () => import('./icons/common/courseLight.svg'),
'common/customTitleLight': () => import('./icons/common/customTitleLight.svg'),
'common/data': () => import('./icons/common/data.svg'),
'common/dingtalkFill': () => import('./icons/common/dingtalkFill.svg'),
'common/editor/resizer': () => import('./icons/common/editor/resizer.svg'),
'common/errorFill': () => import('./icons/common/errorFill.svg'),
'common/file/move': () => import('./icons/common/file/move.svg'),
@@ -91,7 +92,6 @@ export const iconPaths = {
'common/voiceLight': () => import('./icons/common/voiceLight.svg'),
'common/warn': () => import('./icons/common/warn.svg'),
'common/wechatFill': () => import('./icons/common/wechatFill.svg'),
'common/dingtalkFill': () => import('./icons/common/dingtalkFill.svg'),
configmap: () => import('./icons/configmap.svg'),
copy: () => import('./icons/copy.svg'),
'core/app/aiFill': () => import('./icons/core/app/aiFill.svg'),
@@ -256,7 +256,6 @@ export const iconPaths = {
'core/workflow/template/formInput': () => import('./icons/core/workflow/template/formInput.svg'),
'core/workflow/template/getTime': () => import('./icons/core/workflow/template/getTime.svg'),
'core/workflow/template/google': () => import('./icons/core/workflow/template/google.svg'),
'core/workflow/template/searxng': () => import('./icons/core/workflow/template/searxng.svg'),
'core/workflow/template/httpRequest': () =>
import('./icons/core/workflow/template/httpRequest.svg'),
'core/workflow/template/ifelse': () => import('./icons/core/workflow/template/ifelse.svg'),
@@ -275,6 +274,7 @@ export const iconPaths = {
'core/workflow/template/readFiles': () => import('./icons/core/workflow/template/readFiles.svg'),
'core/workflow/template/reply': () => import('./icons/core/workflow/template/reply.svg'),
'core/workflow/template/runApp': () => import('./icons/core/workflow/template/runApp.svg'),
'core/workflow/template/searxng': () => import('./icons/core/workflow/template/searxng.svg'),
'core/workflow/template/stopTool': () => import('./icons/core/workflow/template/stopTool.svg'),
'core/workflow/template/systemConfig': () =>
import('./icons/core/workflow/template/systemConfig.svg'),
@@ -341,6 +341,22 @@ export const iconPaths = {
'modal/selectSource': () => import('./icons/modal/selectSource.svg'),
'modal/setting': () => import('./icons/modal/setting.svg'),
'modal/teamPlans': () => import('./icons/modal/teamPlans.svg'),
'model/baichuan': () => import('./icons/model/baichuan.svg'),
'model/chatglm': () => import('./icons/model/chatglm.svg'),
'model/claude': () => import('./icons/model/claude.svg'),
'model/deepseek': () => import('./icons/model/deepseek.svg'),
'model/doubao': () => import('./icons/model/doubao.svg'),
'model/ernie': () => import('./icons/model/ernie.svg'),
'model/gemini': () => import('./icons/model/gemini.svg'),
'model/huggingface': () => import('./icons/model/huggingface.svg'),
'model/hunyuan': () => import('./icons/model/hunyuan.svg'),
'model/minimax': () => import('./icons/model/minimax.svg'),
'model/moonshot': () => import('./icons/model/moonshot.svg'),
'model/ollama': () => import('./icons/model/ollama.svg'),
'model/openai': () => import('./icons/model/openai.svg'),
'model/qwen': () => import('./icons/model/qwen.svg'),
'model/sparkDesk': () => import('./icons/model/sparkDesk.svg'),
'model/yi': () => import('./icons/model/yi.svg'),
more: () => import('./icons/more.svg'),
moreLine: () => import('./icons/moreLine.svg'),
out: () => import('./icons/out.svg'),

View File

@@ -0,0 +1,6 @@
<svg t="1710841200339" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1550"
width="128" height="128">
<path
d="M441.08001533 510.85997782V108.53819562c0-20.25527787 0-20.30830215 20.57342359-20.33481431H649.86314777c16.91474774 0 17.5510392 0.42419429 17.55103921 17.07382061 0 178.50626422-0.05302429 357.03904059-0.13256073 535.6513534 0 90.06175249 0.47721859 180.12350499 0.66280361 270.15874534 0 20.52039931 0 20.62644787-21.60739721 20.65296002h-188.20970885c-16.57008987 0-16.88823559-0.29163359-16.88823562-16.17240772V510.80695353l-0.15907285 0.05302429zM34.78141155 936.19430083c8.56342244-16.96777203 15.05889769-30.3829168 22.00507936-43.63898869 21.95205507-42.63152723 44.38132873-85.1039816 65.77662877-128.00063028 3.60565156-7.26432739 4.2949673-16.33148058 4.32147945-24.57675731 0.26512144-147.03634954 0.26512144-294.01967477 0-440.94997572-0.15907286-16.11938343 3.44657869-32.07969399 10.49880894-46.68788524a10636.14185068 10636.14185068 0 0 0 71.2381304-152.33877828c3.92379728-8.56342244 9.17320175-12.32814687 18.98269496-12.11604972 33.45832548 0.39768215 66.91665095 0.13256073 100.37497644 0.21209715 17.20638133 0 17.57755134 0.34465787 17.57755134 16.96777204v468.81423886c0 56.12620844 0.45070644 112.25241685-0.23860931 168.37862529-0.21209715 10.79044253-2.65121438 21.44832433-7.2113031 31.28432968-22.58834652 49.04746604-46.39625165 97.59120133-69.35576818 146.50610666-5.30242877 11.26766112-12.30163473 15.85426198-25.87585235 15.69518912-61.45514934-0.53024288-122.96332295 0.21209715-184.39196015 0.47721859L34.78141155 936.19430083zM762.14207678 633.13398503V350.99175069c0-18.66454924 0-18.92967068 19.56596212-18.95618283 62.72773223-0.10604857 125.45546447-0.10604857 188.236221 0 18.31989136 0 18.87664639 0.79536432 18.87664639 18.55850067L989.21858845 913.73851504c0 4.02984586-0.26512144 8.05969171-0.42419431 12.11604971-0.26512144 6.8401331-3.60565156 10.02159036-11.02905181 10.02159035-68.13620958 0-136.27241915 0.10604857-204.35560443 0.31814573-7.34386383 0-10.92300324-2.78377509-10.73741824-9.96856606V633.13398503h-0.53024288zM874.68612722 260.82394962c-32.98110689 0-66.01523807-0.39768215-98.99634496 0.21209715-10.63136967 0.185585-13.65375406-3.44657869-13.60072977-13.25607191 0.31814573-47.58929812 0-95.20510839 0-142.82091866 0-15.85426198 0.90141289-16.6496263 16.83521131-16.70265059 65.59104377-0.13256073 131.18208753 0 196.79964344-0.34465788 9.80949321 0 13.09699904 3.15494512 13.04397477 12.61978046-0.185585 47.64232241 0.26512144 95.25813268 0.34465786 142.84743081 0 16.09287129-0.90141289 16.78218703-17.97523349 16.80869917h-96.50420346l0.07953644 0.63629145z"
fill="#E06639" p-id="1551"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,9 @@
<svg t="1710841195972" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1400"
width="128" height="128">
<path
d="M164.864 616.704c0-57.856 34.56-115.925333 102.186667-161.706667 67.413333-45.653333 163.285333-75.52 271.786666-75.52 108.416 0 204.373333 29.866667 271.701334 75.52 34.133333 23.04 59.818667 49.322667 76.928 77.056 20.778667-37.973333 29.738667-78.293333 24.917333-118.485333a18.346667 18.346667 0 0 1 0.725333-7.765333 412.714667 412.714667 0 0 0-44.586666-34.773334C781.952 312.32 665.173333 277.76 538.794667 277.76S295.68 312.32 209.109333 371.029333c-86.314667 58.453333-146.944 144.426667-146.944 245.674667s60.586667 187.264 146.944 245.76c86.528 58.581333 203.264 93.226667 329.685334 93.226667s243.2-34.645333 329.728-93.269334c86.314667-58.453333 146.901333-144.469333 146.901333-245.717333 0-64.384-24.490667-122.581333-64.512-171.477333-2.133333 45.098667-18.133333 88.405333-44.757333 127.786666 4.394667 14.464 6.613333 29.098667 6.613333 43.690667 0 57.898667-34.602667 115.968-102.229333 161.749333-67.370667 45.653333-163.285333 75.52-271.744 75.52s-204.373333-29.866667-271.744-75.52c-67.626667-45.781333-102.186667-103.850667-102.186667-161.706666z"
fill="#3762FF" p-id="1401"></path>
<path
d="M164.010667 498.517333c-27.392 77.013333-20.906667 146.432 14.72 196.266667 35.626667 49.834667 99.584 78.933333 182.016 78.933333 82.261333-0.042667 178.133333-29.610667 266.197333-91.392s148.053333-141.525333 175.402667-218.368c27.392-77.013333 20.906667-146.432-14.677334-196.266666-35.626667-49.834667-99.584-78.933333-182.016-78.933334-82.261333 0-178.133333 29.610667-266.24 91.392-88.021333 61.738667-148.053333 141.525333-175.36 218.368z m-98.474667-34.389333C100.864 364.8 175.488 268.373333 279.04 195.669333 382.72 123.008 499.328 85.333333 605.610667 85.333333c106.197333 0 206.890667 38.058667 267.306666 122.624 60.416 84.522667 63.232 191.274667 27.946667 290.432-35.328 99.328-109.952 195.754667-213.589333 268.416-103.594667 72.704-220.202667 110.378667-326.528 110.378667-106.154667 0-206.848-38.058667-267.264-122.581333-60.458667-84.522667-63.232-191.274667-27.946667-290.432z"
fill="#1041F3" p-id="1402"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1,7 @@
<svg t="1710840533172" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1458"
width="128" height="128">
<path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#F3DFBC" p-id="1459"></path>
<path
d="M653.443072 286.424064h-97.913856l178.556928 451.150848H832L653.443072 286.424064z m-282.886144 0L192 737.575936h99.84512l36.514816-94.741504h186.805248l36.514816 94.741504h99.84512L472.968192 286.424064H370.556928z m-9.89696 272.622592l61.103104-158.55104 61.103104 158.55104H360.659968z"
fill="#20201C" p-id="1460"></path>
</svg>

After

Width:  |  Height:  |  Size: 619 B

View File

@@ -0,0 +1,6 @@
<svg t="1719124967762" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1456"
width="200" height="200">
<path
d="M320.512 804.864C46.08 676.864 77.824 274.432 362.496 274.432c34.816 0 86.016-7.168 114.688-14.336 59.392-16.384 99.328-10.24 69.632 10.24-9.216 7.168-15.36 19.456-13.312 28.672 5.12 20.48 158.72 161.792 177.152 161.792 27.648 0 27.648-32.768 1.024-57.344-43.008-38.912-55.296-90.112-35.84-141.312l9.216-26.624 54.272 52.224c35.84 34.816 58.368 49.152 68.608 44.032 9.216-4.096 30.72-9.216 49.152-12.288 18.432-2.048 38.912-10.24 45.056-18.432 19.456-23.552 43.008-17.408 35.84 9.216-3.072 12.288-6.144 27.648-6.144 34.816 0 23.552-62.464 83.968-92.16 90.112-23.552 5.12-30.72 12.288-30.72 30.72 0 46.08-38.912 148.48-75.776 198.656l-37.888 51.2 36.864 15.36c56.32 23.552 40.96 41.984-37.888 43.008-43.008 1.024-75.776 7.168-92.16 18.432-68.608 45.056-198.656 50.176-281.6 12.288z m251.904-86.016c-24.576-27.648-66.56-79.872-93.184-117.76-69.632-98.304-158.72-150.528-256-150.528-37.888 0-38.912 1.024-38.912 34.816 0 94.208 99.328 240.64 175.104 257.024 38.912 9.216 59.392-7.168 39.936-29.696-7.168-9.216-10.24-23.552-6.144-31.744 5.12-14.336 9.216-14.336 38.912 1.024 18.432 9.216 50.176 29.696 69.632 45.056 35.84 27.648 58.368 37.888 96.256 39.936 14.336 1.024 9.216-10.24-25.6-48.128z m88.064-145.408c8.192-13.312-31.744-78.848-56.32-92.16-10.24-6.144-26.624-10.24-34.816-10.24-23.552 0-20.48 27.648 4.096 33.792 13.312 3.072 20.48 14.336 20.48 29.696 0 13.312 5.12 29.696 12.288 36.864 15.36 15.36 46.08 16.384 54.272 2.048z"
fill="#4D6BFE" p-id="1457"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1 @@
<svg t="1734679654271" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7734" width="64" height="64"><path d="M604.814264 81.402675a1319.065676 1319.065676 0 0 1 36.517088 237.361069c-88.649795-11.49071-173.856333 0.427554-255.619614 35.756315a427.093207 427.093207 0 0 0-59.340267 34.23477 450.161355 450.161355 0 0 0-66.947994 49.450223C170.040297 521.839834 103.600499 620.994377 60.10104 735.667162c-0.715126-140.51471 0.045646-281.003554 2.282318-421.468054C76.803043 215.078039 122.195305 133.675364 198.561664 69.991085c95.178746-71.853456 199.150502-87.575584 311.916791-47.167905 35.223774 13.789765 66.669551 33.315756 94.335809 58.579495z" fill="#A569FF" p-id="7735"></path><path d="M604.814264 81.402675a56768.782835 56768.782835 0 0 0 346.912333 352.998514c-94.145617-61.14482-197.102502-99.183453-308.8737-114.115899-1.014871 0-1.521545-0.506675-1.521545-1.521546a1319.065676 1319.065676 0 0 0-36.517088-237.361069z" fill="#2038FB" p-id="7736"></path><path d="M641.331352 318.763744c0 1.014871 0.506675 1.521545 1.521545 1.521546 7.105617 102.384785 3.301753 204.328321-11.411589 305.830609-13.789765 84.228184-40.416808 163.855215-79.88113 238.882615a499.523328 499.523328 0 0 1-103.465081 35.756315c-131.312404 17.313664-206.122223-39.744285-224.427935-171.173848-8.108315-103.991536 14.20819-200.863762 66.947994-290.615156a679.070241 679.070241 0 0 1 35.756315-50.210996 427.093207 427.093207 0 0 1 59.340267-34.23477c81.763281-35.328761 166.969819-47.247025 255.619614-35.756315z" fill="#FEFEFE" p-id="7737"></path><path d="M642.852897 320.28529c111.771198 14.932446 214.728083 52.971079 308.8737 114.115899 1.240059 2.034306 3.015703 3.555851 5.325409 4.564636 6.883471 14.958312 10.18066 30.681961 9.890045 47.167905-3.882984 72.767905-26.95874 138.70255-69.230313 197.800891-44.500636 59.716089-96.993949 111.196053-157.47994 154.43685-86.741777 63.043709-180.570912 113.508802-281.485884 151.393759 36.800095-37.296119 67.739198-78.886039 92.814264-124.766716 39.464321-75.0274 66.091364-154.654431 79.88113-238.882615 14.713343-101.502288 18.517207-203.445825 11.411589-305.830609z" fill="#37E0BE" p-id="7738"></path><path d="M326.371471 388.754829a679.070241 679.070241 0 0 0-35.756315 50.210996c-52.739804 89.751394-75.056309 186.62362-66.947994 290.615156 18.305712 131.429563 93.11553 188.487513 224.427935 171.173848a499.523328 499.523328 0 0 0 103.465081-35.756315c-25.075067 45.880678-56.014169 87.470597-92.814264 124.766716-39.120452 18.194639-80.202175 29.099554-123.245171 32.713225-87.99553 4.042746-161.790478-26.134062-221.384844-90.531947-45.209676-57.563103-63.215643-122.989551-54.014859-196.279346 43.499459-114.672785 109.939257-213.827328 199.322437-297.46211a450.161355 450.161355 0 0 1 66.947994-49.450223z" fill="#1F37FB" p-id="7739"></path></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,11 @@
<svg t="1710923402682" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1121"
width="128" height="128">
<path
d="M68.48129212 644.59999627c-0.15710901-120.97393023-0.31421799-241.94786048-0.314218-362.92179071 0-15.86800901 8.16966803-28.27962006 21.83815104-36.29217909 48.5466811-28.43672906 97.09336219-56.87345811 145.9542613-84.83886017 75.88364715-43.67630209 151.9244033-87.03838618 227.96515945-130.55757925 7.85545002-4.39905201 15.55379103-8.95521301 22.93791404-14.13981003 20.73838803-14.29691903 41.63388507-17.12488105 64.10047214-3.77061602 29.22227406 17.43909904 58.60165712 34.40687107 87.98104017 51.37464313 93.95118219 54.3597141 188.05947338 108.56231921 282.01065555 162.7649243 10.52630302 6.127251 21.20971504 11.94028402 31.57890906 18.22464405 15.08246403 9.11232202 22.93791404 22.46658704 22.93791406 40.21990407 0 157.58032731 0.31421799 315.16065462-0.15710901 472.74098195 0 16.49644503-7.69834101 30.47914606-23.25213205 39.43435907-37.07772405 21.52393302-75.25521114 41.47677609-111.54739022 63.94336312-52.1601881 32.20734506-106.67701121 59.85852912-158.68009031 92.38009218-30.95047306 19.32440705-63.47203613 36.29217908-95.05094519 54.35971411-13.98270102 8.01255901-27.80829306 16.18222702-41.63388508 24.50900405-14.76824603 8.95521301-29.69360106 9.42654002-44.77606509 0.78554499-60.17274713-34.72108908-120.34549424-69.44217814-180.67535037-104.1632672-65.98578013-38.02037807-131.97156027-75.88364715-197.80023136-113.90402523-11.94028402-6.91279601-23.72345905-13.66848304-35.1924161-21.20971504-12.25450203-8.16966803-18.22464404-20.42417004-18.22464403-34.87819806-0.15710901-37.07772405 0.15710901-74.15544815 0.314218-111.23317222 1.72819901-0.628436 1.72819901-1.72819901-0.314218-2.827962z m380.36088975-240.53387947c2.35663501-1.885308 4.71327001-3.92772502 7.22701402-5.49881501 73.52701215-42.26232108 147.05402429-84.52464218 220.73814544-126.78696327 2.98507101-1.72819901 6.91279601-1.72819901 7.06990501-6.59857801 0.15710901-5.18459701-4.39905201-5.02748801-7.22701402-6.598578-43.36208409-25.13744005-87.03838618-49.96066209-130.24336125-75.56942917-17.91042605-10.68341202-35.03530708-9.11232202-51.6888611 0.62843601-49.01800811 28.27962006-97.56468919 57.18767612-146.4255883 85.78151417-34.09265308 19.95284304-68.49952413 39.59146809-102.74928619 59.38720211-19.63862503 11.31184801-29.37938307 27.02274804-29.06516507 50.90331611 0.94265401 95.52227219 0.628436 191.04454438 0.157109 286.56681656-0.15710901 21.52393302 9.89786702 35.82085206 27.02274805 46.0329371 33.46421707 19.95284304 67.39976113 39.59146809 101.4924142 58.60165712 11.62606602 6.441469 22.46658704 14.92535503 38.17748709 19.63862503V505.08720399c6.91279601 20.89549705 19.79573404 36.29217908 39.12014107 47.60402709 29.69360106 17.28199003 67.39976113 13.35426503 92.06587419-11.15473903 28.75094705-28.43672906 30.63625506-67.08554313 13.66848301-96.15070819-17.43909904-30.32203706-46.50426407-40.06279507-79.34004515-41.31966706z m87.98104018 458.2869539c15.23957303-4.08483399 27.65118406-14.92535503 41.47677608-22.78080505 43.67630209-24.82322205 86.72416817-50.90331611 130.71468825-75.25521115 28.75094705-16.02511803 56.40213111-33.77843506 86.09573217-48.2324631 17.91042605-8.64099502 31.57890905-24.03767705 31.57890908-46.34715509 0.15710901-99.1357792 0.31421799-198.1144494 0.157109-297.25022859 0-11.94028402-5.49881501-14.92535503-14.76824605-7.54123201-28.27962006 22.15236905-61.11540111 36.76350606-91.90876517 54.67393211-58.13033011 33.93554407-116.41776923 67.55687014-174.70520834 101.33530519-9.11232202 5.18459701-12.56872002 11.15473903-12.41161104 21.83815106 0.31421799 102.59217721 0.15710901 205.3414634 0.15710901 307.9336406-0.31421799 3.770616-1.57108999 8.16966803 3.61350701 11.62606603z"
fill="#066AF3" p-id="1122"></path>
<path d="M68.48129212 644.59999627c2.042417 1.09976302 2.042417 2.19952601 0 3.29928901v-3.29928901z" fill="#4372E0"
p-id="1123"></path>
<path
d="M383.32772875 504.93009499c-5.81303301-47.28980909 14.76824603-79.02582716 65.51445312-100.86397819 32.99289006 1.25687199 61.90094612 10.99763002 79.34004515 41.16255808 16.81066303 29.22227406 15.08246403 67.71397913-13.66848301 96.15070819-24.82322205 24.50900404-62.37227313 28.43672906-92.06587419 11.15473902-19.32440705-11.31184801-32.36445406-26.70853004-39.12014107-47.6040271z"
fill="#002A9A" p-id="1124"></path>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -0,0 +1,10 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 28C14 26.0633 13.6267 24.2433 12.88 22.54C12.1567 20.8367 11.165 19.355 9.905 18.095C8.645 16.835 7.16333 15.8433 5.46 15.12C3.75667 14.3733 1.93667 14 0 14C1.93667 14 3.75667 13.6383 5.46 12.915C7.16333 12.1683 8.645 11.165 9.905 9.905C11.165 8.645 12.1567 7.16333 12.88 5.46C13.6267 3.75667 14 1.93667 14 0C14 1.93667 14.3617 3.75667 15.085 5.46C15.8317 7.16333 16.835 8.645 18.095 9.905C19.355 11.165 20.8367 12.1683 22.54 12.915C24.2433 13.6383 26.0633 14 28 14C26.0633 14 24.2433 14.3733 22.54 15.12C20.8367 15.8433 19.355 16.835 18.095 18.095C16.835 19.355 15.8317 20.8367 15.085 22.54C14.3617 24.2433 14 26.0633 14 28Z" fill="url(#paint0_radial_16771_53212)"/>
<defs>
<radialGradient id="paint0_radial_16771_53212" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(2.77876 11.3795) rotate(18.6832) scale(29.8025 238.737)">
<stop offset="0.0671246" stop-color="#9168C0"/>
<stop offset="0.342551" stop-color="#5684D1"/>
<stop offset="0.672076" stop-color="#1BA1E3"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,15 @@
<svg t="1710841272884" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2684"
width="128" height="128">
<path
d="M511.968 959.936c298.688 0 447.968-200.576 447.968-448 0-247.36-149.28-447.936-448-447.936C213.28 64 64 264.576 64 511.968c0 247.392 149.248 447.968 447.968 447.968z"
fill="#FFB02E" p-id="2685"></path>
<path
d="M103.936 586.912a31.936 31.936 0 0 0-7.584 25.568 32 32 0 0 0-37.152 51.84l9.344 8a32 32 0 0 0-24.992 56.256l63.52 52.928-4.032-1.984a35.712 35.712 0 0 0-36.672 60.896C107.712 869.76 163.008 908.64 192 928c48 32 102.72 42.944 160 0 32-24 72.48-97.984 29.92-171.712-8.064-13.952-15.296-28.64-18.304-44.48-13.152-69.76-32.8-141.216-75.616-119.808-23.2 11.584-21.184 31.584-18.304 60 1.088 10.784 2.304 22.784 2.304 36l-2.56 1.28-120.384-105.376a32 32 0 0 0-45.12 3.04zM920.096 586.912c6.368 7.296 8.832 16.64 7.584 25.568a32 32 0 0 1 37.12 51.84l-9.344 8a32 32 0 0 1 25.024 56.256l-63.52 52.928 4.032-1.984a35.712 35.712 0 0 1 36.672 60.896C916.32 869.76 861.024 908.64 832 928c-48 32-102.752 42.944-160 0-32-24-72.48-97.984-29.92-171.712 8.064-13.952 15.296-28.64 18.304-44.48 13.152-69.76 32.8-141.216 75.616-119.808 23.2 11.584 21.184 31.584 18.304 60-1.088 10.784-2.304 22.784-2.304 36l2.56 1.28 120.384-105.376a32 32 0 0 1 45.12 3.04z"
fill="#FF822D" p-id="2686"></path>
<path
d="M224 464c0 44.16-28.64 80-64 80s-64-35.84-64-80 28.64-80 64-80 64 35.84 64 80zM928 464c0 44.16-28.64 80-64 80s-64-35.84-64-80 28.64-80 64-80 64 35.84 64 80z"
fill="#FF6723" p-id="2687"></path>
<path
d="M299.168 333.184c-6.72 7.296-10.24 17.024-11.744 24.928a32 32 0 0 1-62.848-12.224c2.848-14.592 9.92-36.896 27.456-55.968C270.496 269.792 298.112 256 336 256c38.24 0 65.984 14.464 84.352 34.624 17.408 19.104 24.64 41.344 27.2 55.904a32 32 0 0 1-63.072 10.944 49.472 49.472 0 0 0-11.456-23.744C367.04 327.104 356.544 320 336 320c-20.896 0-31.104 6.944-36.832 13.184zM651.2 333.184c-6.72 7.296-10.24 17.024-11.776 24.928a32 32 0 0 1-62.816-12.224c2.816-14.592 9.92-36.896 27.424-55.968C622.496 269.792 650.112 256 688 256c38.272 0 65.984 14.464 84.352 34.624 17.408 19.104 24.64 41.344 27.2 55.904a32 32 0 0 1-63.072 10.944 49.44 49.44 0 0 0-11.456-23.744C719.04 327.104 708.544 320 688 320c-20.896 0-31.072 6.944-36.8 13.184zM313.6 492.8a32 32 0 1 0-51.2 38.4c22.464 29.952 96.256 92.8 249.6 92.8s227.136-62.848 249.6-92.8a32 32 0 0 0-51.2-38.4c-9.536 12.704-63.744 67.2-198.4 67.2s-188.864-54.496-198.4-67.2z"
fill="#402A32" p-id="2688"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,13 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_19_417)">
<path d="M8.69132 19.7708L8.43646 10.1106C7.92262 9.92227 9.99843 7.48009 10.8505 7.6956C13.3489 7.06769 16.0648 3.09118 11.1064 0.142151C-3.89673 0.142151 -2.25275 18.589 8.69132 19.7708Z" fill="#B3DDF2"/>
<path d="M8.64384 19.7663C4.17343 18.7386 -0.201612 12.4833 5.14972 6.86892C6.37883 5.78554 3.9237 2.58709 1.91253 4.3511C-3.43099 11.7411 3.5968 19.7863 8.64384 19.7663Z" fill="#0055E9"/>
<path d="M7.92307 10.4705C7.79974 10.5592 7.92307 10.4191 7.92307 10.4705V10.4705ZM7.92307 10.4705V11.2412C7.92307 11.344 7.77919 12.0274 7.71753 12.3203L8.48829 13.9646C8.48829 13.9646 9.00213 14.1187 9.05351 14.1701C9.1049 14.2215 9.35668 14.2575 9.46459 14.2729L10.5436 14.9409L12.3421 14.684L14.6544 13.9646L16.8125 12.1148L17.4805 10.9843L18.0457 8.1068L17.9429 6.77082V5.58898L16.7611 3.43086L16.1445 2.6601L15.0654 1.6838L14.1405 1.11858L13.8836 0.964424L13.5753 0.861657L13.0101 0.656121L11.2116 0.193665C15.1168 1.47826 15.4251 5.43483 14.2947 7.33604C13.1642 9.23725 10.715 10.3348 8.33414 10.1108L7.92307 10.4705Z" fill="#00BCFF"/>
<path d="M8.95026 19.7715C12.4444 20.6959 20.0974 17.3601 19.9978 10.2141C20.2549 7.02775 17.2808 0.68943 12.4444 0.451111C17.8362 1.54919 19.8961 11.4535 12.9079 13.9137C9.41293 14.7872 8.12863 12.1153 8.38607 10.2141C4.79042 10.3958 2.88305 18.1057 8.95026 19.7715Z" fill="#0055DF"/>
</g>
<defs>
<clipPath id="clip0_19_417">
<rect width="20" height="20" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none">
<path d="M8.33595 9.4104V14.8168C7.95355 16.6472 5.40635 16.1752 5.39515 14.8472C5.38315 13.1792 5.39515 11.5232 5.39515 9.8664V7.9472C5.39515 7.7072 5.34075 7.5176 5.11995 7.3664C4.69035 7.0608 4.17595 7.4208 4.16475 7.8624C4.14075 8.4544 4.15275 9.0344 4.14075 9.6192C4.14075 10.08 4.14075 10.5288 4.15275 10.9888C3.83515 13.0168 1.25835 12.68 1.19995 11.0008V9.596C1.19995 9.1352 2.14395 9.0272 2.09755 9.716C2.06715 10.0568 2.08635 10.4088 2.07435 10.7456C2.06315 11.3488 3.03035 11.7552 3.25835 10.7688C3.27035 9.956 3.27035 9.1432 3.27035 8.3224C3.27035 7.2936 3.57595 6.4576 4.71835 6.38C5.21355 6.3376 5.54235 6.5344 5.85915 6.876C5.97915 6.996 6.26555 7.3784 6.27755 7.796C6.27755 8.18 6.28875 8.5624 6.28875 8.9496C6.28875 9.716 6.27755 10.4856 6.27755 11.252C6.27755 11.748 6.28875 12.2392 6.28875 12.7232C6.28875 13.3384 6.28875 13.9616 6.27755 14.5768C6.26555 15.3776 7.28715 15.3664 7.45035 14.5648C7.45035 13.6208 7.46155 12.688 7.46155 11.744C7.46155 9.4176 7.45035 7.092 7.45035 4.7664C7.45035 4.5264 7.41515 3.8568 7.55035 3.6128C8.26235 1.9568 10.4264 2.68 10.4456 4.0504C10.488 6.86 10.4456 9.7008 10.4568 12.5176C10.4568 13.4936 9.62475 13.284 9.57835 12.9016C9.57835 9.9712 9.57835 7.0296 9.59035 4.104C9.54795 3.3688 8.40635 3.4696 8.33995 3.996C8.31675 4.6 8.32875 5.2152 8.31675 5.8184V9.4064H8.32875L8.33675 9.4104H8.33595Z" fill="#D4367A"/>
<path d="M11.68 9.36721V13.3376V3.96801C12.052 2.12561 14.5984 2.60561 14.6096 3.93361C14.6216 5.58961 14.6096 7.25761 14.6216 8.91361C14.6216 9.54881 14.6216 10.1872 14.6096 10.8216C14.6096 11.0736 14.6752 11.2512 14.896 11.4136C15.3144 11.712 15.8288 11.36 15.852 10.9112C15.8752 10.3304 15.8632 9.74961 15.8632 9.15361V7.79201C16.1808 5.76401 18.7512 6.10081 18.8048 7.78001V12.8688C18.8048 13.3296 17.872 13.4384 17.9144 12.7488C17.9384 12.3968 17.9144 8.37281 17.9264 8.02001C17.9496 7.42801 16.9704 7.00961 16.7424 8.00801V10.4424C16.7424 11.484 16.436 12.308 15.2832 12.3968C14.1952 12.4208 13.7584 11.704 13.7232 10.9808V6.06161C13.7232 5.43441 13.7232 4.82321 13.7352 4.20801C13.7464 3.40721 12.7248 3.40721 12.5512 4.22001V15.2336C12.5512 15.4736 12.5856 16.1432 12.4616 16.3872C11.7496 18.0432 9.57518 17.32 9.55518 15.9496V14.6456C9.60958 13.7672 10.3872 13.976 10.4224 14.3472V15.8952C10.4648 16.6312 11.6064 16.5416 11.6608 16.004C11.684 15.4 11.684 14.796 11.684 14.1808V9.36801H11.68V9.36721Z" fill="#ED6D48"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,31 @@
<svg t="1710840553956" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2078"
width="128" height="128">
<path d="M0.143417 0h1011.952942v1011.952941h-1011.952942v-1011.952941z" fill="#1A1D22" p-id="2079"></path>
<path
d="M554.308123 289.129412a1898.375529 1898.375529 0 0 0-289.129412-96.376471c175.911153-130.710588 352.617412-126.686871 530.070589 12.047059 46.116141 34.044988 78.2336 78.2336 96.37647 132.517647l-60.235294 24.094118a1077.320282 1077.320282 0 0 0-277.082353-72.282353z"
fill="#EDEDEE" p-id="2080"></path>
<path
d="M265.178711 216.847059c86.690635 52.814306 183.067106 76.908424 289.129412 72.282353 14.215529 15.709365 30.286306 31.756047 48.188236 48.188235-27.467294 22.287059-27.467294 42.381553 0 60.235294l337.317647 84.329412v96.376471a2918.207247 2918.207247 0 0 0-409.6-96.376471c-122.398118-52.043294-250.916141-92.184094-385.505883-120.470588-18.432-86.738824 21.7088-134.927059 120.470588-144.564706z"
fill="#EFEFF0" p-id="2081"></path>
<path
d="M265.178711 192.752941a1898.375529 1898.375529 0 0 1 289.129412 96.376471c-106.062306 4.626071-202.438776-19.468047-289.129412-72.282353v-24.094118z"
fill="#626568" p-id="2082"></path>
<path
d="M144.708123 385.505882a2590.021271 2590.021271 0 0 0 313.22353 96.376471c29.226165 5.951247 45.296941 22.022024 48.188235 48.188235 2.891294 26.166212 18.962071 42.236988 48.188235 48.188236a6047.623529 6047.623529 0 0 1 361.411765 108.423529c-17.492329 33.659482-45.586071 53.729882-84.329412 60.235294a2021.7856 2021.7856 0 0 1-301.17647-72.282353 3182.302871 3182.302871 0 0 0-457.788236-120.470588v-72.282353c-9.926776-59.584753 14.167341-91.702212 72.282353-96.376471z"
fill="#EEEEEF" p-id="2083"></path>
<path
d="M144.708123 361.411765c134.589741 28.286494 263.107765 68.427294 385.505883 120.470588 4.144188 23.901365-3.903247 39.948047-24.094118 48.188235-2.891294-26.166212-18.962071-42.236988-48.188235-48.188235a2590.021271 2590.021271 0 0 1-313.22353-96.376471v-24.094117z"
fill="#5C5E62" p-id="2084"></path>
<path
d="M72.42577 481.882353v72.282353a3182.302871 3182.302871 0 0 1 457.788236 120.470588c-16.070776 0-24.094118 8.023341-24.094118 24.094118a6126.772706 6126.772706 0 0 1-397.552941-120.470588 118.832188 118.832188 0 0 0-12.047059 72.282352c-49.007435-51.922824-57.030776-108.1344-24.094118-168.658823z"
fill="#4F5155" p-id="2085"></path>
<path
d="M506.119888 698.729412v72.282353c94.930824 9.637647 183.283953 37.755482 265.035294 84.329411-44.092235 66.499765-100.303812 78.546824-168.658823 36.141177a4261.285647 4261.285647 0 0 0-433.694118-120.470588c-42.164706-27.949176-66.258824-68.089976-72.282353-120.470589a118.832188 118.832188 0 0 1 12.047059-72.282352 6126.772706 6126.772706 0 0 0 397.552941 120.470588z"
fill="#F2F2F3" p-id="2086"></path>
<path
d="M168.802241 771.011765a4261.285647 4261.285647 0 0 1 433.694118 120.470588v24.094118a2109.391812 2109.391812 0 0 1-397.552942-120.470589c-9.613553 5.493459-13.613176 13.540894-12.047058 24.094118-20.190871-8.240188-28.238306-24.286871-24.094118-48.188235z"
fill="#5D5F62" p-id="2087"></path>
<path
d="M602.496359 915.576471c10.553224-1.566118 18.600659 2.433506 24.094117 12.047058-169.285271 59.994353-313.825882 23.853176-433.694117-108.423529-1.566118-10.553224 2.433506-18.600659 12.047058-24.094118a2109.391812 2109.391812 0 0 0 397.552942 120.470589z"
fill="#E7E7E8" p-id="2088"></path>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="181px" height="256px" viewBox="0 0 181 256" enable-background="new 0 0 181 256" xml:space="preserve"> <image id="image0" width="181" height="256" x="0" y="0"
xlink:href="data:image/png;base64,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
MDYrMDA6MDAeYvBBAAAAAElFTkSuQmCC" />
</svg>

After

Width:  |  Height:  |  Size: 9.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -0,0 +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="1734679619961" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4292" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M955 607.2L843.6 412.1l47.8-91.6c6.6-8.7 8.3-21.5 5.6-31.8L835.7 178c-4.7-7.3-12.8-11.8-21.5-12H586.3l-51-89.2c-3.6-7-10.5-11.8-18.3-12.7H396.7c-8.9 0.2-15.2 6.7-19.6 14.4l-1.9 3.1-113.8 195.1H152.2c-9-0.2-17.5 4.3-22.3 12L67 400.1c-4 8-4 17.5 0 25.5l113.1 196.7-51 89.2c-4 8-4 17.4 0 25.5l58.1 102c4.7 7.8 13.2 12.7 22.3 12.7h227.8l54.9 95.5c4.2 7.2 11.6 11.9 19.9 12.8h129c8.9-0.2 17.1-5 21.5-12.7L775 750.5h100.4c8.9-0.8 16.9-5.8 21.5-13.5L955 634.3c5.4-8.3 5.4-18.9 0-27.1zM814.1 620L756 512.5 517 933.7l-65.3-107.5H212.8l57.4-104.3H392L153 302.2h125L396.7 90.3l59.7 104.3-61.3 107.5H873l-60.5 106.8 120.3 211H814.1z" fill="#605BEC" p-id="4293"></path><path d="M511.4 660.5l149-238.9H361.7l149.7 238.9z m0 0" fill="#605BEC" p-id="4294"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,12 @@
<svg t="1710840542445" class="icon" viewBox="0 0 1090 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1764"
width="128" height="128">
<path
d="M851.79730973 887.73599356c-22.09345317 31.07812413-50.66765259 55.38092261-81.15661796 77.32708609-89.84670956 64.80746262-190.74014569 91.17231675-300.6182528 82.48222515-178.6623913-13.99252034-341.71207568-148.32071561-387.96103764-322.26983687-46.39625165-174.09641097-5.89158752-326.68852752 121.66128212-454.8305559 62.89269668-63.18727606 126.96371088-125.04894493 190.59285601-187.49977256 3.24037312-3.24037312 5.89158752-7.51177407 12.07775439-9.27925034 2.79850407 8.10093283-1.17831749 15.75999659-2.06205562 23.12448099-10.31027814 90.4358683 16.49644503 171.29790689 63.33456575 246.85751673 33.87662819 54.79176385 76.0014789 102.95549177 125.93268306 143.16557653 61.71437919 49.78391447 68.48970482 131.23511182 32.551021 187.20519319-41.24111259 64.21830387-129.32034589 82.77680453-192.06575288 39.47363633-3.24037312-2.20934532-7.95364315-3.5349525-8.83738126-9.86840908 8.54280189 0.29457937 16.79102442 2.79850407 25.03924691 0.88373812 19.73681815-4.71327001 33.28746944-16.49644503 38.44260852-36.2332632 5.15513907-19.88410785-0.88373813-36.96971163-16.64373473-49.78391447-45.51251353-37.11700133-88.0792333-77.32708608-123.13417898-124.90165524-13.2560719-17.96934191-25.18653662-36.96971163-36.96971164-57.73755762-17.67476253 19.88410785-29.75251694 41.68298165-38.88447757 64.95475232-45.80709291 116.9480121-7.2171947 240.81863954 97.06390426 313.87432469 7.65906378 5.30242877 15.75999659 10.16298847 22.68261191 16.49644504 1.62018657 1.62018657 3.09308345 3.5349525 5.00784938 4.86055968 59.94690292 40.21008477 124.60707587 68.93157389 196.33715382 80.12559017 50.96223197 7.95364315 102.07175363 8.69009158 153.4758547 3.68224218 37.26429101-3.5349525 71.73007796-14.13981003 104.13380925-32.10915193z"
fill="#3EC7F8" p-id="1765"></path>
<path
d="M514.06205563-27.96399545c65.54391107 64.36559357 130.204084 127.84744899 194.71696726 191.18201476 38.73718787 38.00073946 77.76895517 76.0014789 116.21156367 114.29679774 70.84633982 70.55176044 112.82390085 155.83248969 128.28931806 254.3692908 0.58915875 3.82953187 0.88373813 7.51177407 1.03102783 11.34130596 0 1.17831749-0.58915875 2.35663501-0.88373814 3.53495249-3.5349525 0.29457937-4.27140094-2.35663501-5.15513907-4.41869062-24.45008817-50.52036291-64.95475232-82.18764578-116.94801211-100.59885675-27.39588193-9.72111939-55.97008134-15.31812754-83.95512203-22.82990161-70.10989139-18.55850066-133.29716746-49.04746604-179.39883976-107.3741824-37.4115807-47.42727948-57.44297824-101.48259488-57.14839883-162.46052565 0.29457937-53.90802574 0-107.66876177 0.14728966-161.5767875-0.1472897-4.56598032-2.35663501-10.16298847 3.09308346-15.46541722z"
fill="#E90302" p-id="1766"></path>
<path
d="M851.79730973 887.73599356c-32.40373131 17.96934191-66.86951826 28.42690974-103.83922989 32.10915193-51.40410106 5.0078494-102.5136227 4.27140094-153.47585469-3.68224218-71.73007796-11.19401627-136.39025089-39.9155054-196.33715381-80.12559017-1.91476594-1.3256072-3.38766283-3.24037312-5.00784939-4.86055968 5.74429781-1.91476594 10.01569877 1.91476594 14.72896877 3.97682157 161.13491844 70.25718107 343.18497255-38.44260851 358.06123104-213.717337 3.97682157-46.24896197-3.68224221-90.14128893-22.82990161-132.11884996-1.17831749-2.65121438-2.35663501-5.15513907-3.38766282-7.80635344-0.29457937-0.73644845 0.1472897-1.76747625 0.14728968-2.79850407 4.12411126-3.5349525 8.24822251-0.44186907 12.07775441 0.44186905 49.78391447 10.89943689 94.55997955 32.10915193 132.70800869 66.13306983 51.55139072 46.10167228 72.4665264 103.8392299 56.70652979 171.29790689-14.72896878 64.0710142-44.7760651 121.8085718-89.55213017 171.15061723z"
fill="#1753D7" p-id="1767"></path>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,10 @@
<svg viewBox="0 0 600 600" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="300" cy="300" r="300" fill="white" />
<rect x="409.733" y="340.032" width="42.3862" height="151.648" rx="21.1931" fill="#003425" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M422.005 133.354C413.089 125.771 399.714 126.851 392.131 135.768L273.699 275.021C270.643 278.614 268.994 282.932 268.698 287.302C268.532 288.371 268.446 289.466 268.446 290.581V468.603C268.446 480.308 277.934 489.796 289.639 489.796C301.344 489.796 310.832 480.308 310.832 468.603V296.784L424.419 163.228C432.002 154.312 430.921 140.937 422.005 133.354Z"
fill="#003425" />
<rect x="113.972" y="134.25" width="42.3862" height="174.745" rx="21.1931"
transform="rotate(-39.3441 113.972 134.25)" fill="#003425" />
<circle cx="460.126" cy="279.278" r="25.9027" fill="#00DD20" />
</svg>

After

Width:  |  Height:  |  Size: 892 B

View File

@@ -8,6 +8,7 @@ import MyImage from './MyImage';
const MyPhotoView = ({ ...props }: ImageProps) => {
const { isPc } = useSystem();
return (
<PhotoProvider
maskOpacity={0.6}

View File

@@ -1,5 +1,16 @@
import React, { useRef, useCallback, useState, useMemo } from 'react';
import { Button, useDisclosure, Box, Flex, useOutsideClick, Checkbox } from '@chakra-ui/react';
import React, { useRef, useCallback, useState, useMemo, useEffect } from 'react';
import {
Button,
useDisclosure,
Box,
Flex,
useOutsideClick,
Checkbox,
css,
Menu,
MenuButton,
MenuList
} from '@chakra-ui/react';
import { ListItemType, MultipleArraySelectProps, MultipleSelectProps } from './type';
import EmptyTip from '../EmptyTip';
import { useTranslation } from 'next-i18next';
@@ -14,18 +25,31 @@ export const MultipleRowSelect = ({
maxH = 300,
onSelect,
popDirection = 'bottom',
styles,
ButtonProps,
changeOnEverySelect = false
}: MultipleSelectProps) => {
const { t } = useTranslation();
const ref = useRef<HTMLDivElement>(null);
const ButtonRef = useRef<HTMLButtonElement>(null);
const { isOpen, onOpen, onClose } = useDisclosure();
const [cloneValue, setCloneValue] = useState(value);
useOutsideClick({
ref: ref,
handler: onClose
});
const MenuRef = useRef<(HTMLDivElement | null)[]>([]);
const SelectedItemRef = useRef<(HTMLDivElement | null)[]>([]);
useEffect(() => {
if (isOpen) {
for (let i = 0; i < MenuRef.current.length; i++) {
const menu = MenuRef.current[i];
const selectedItem = SelectedItemRef.current[i];
if (menu && selectedItem) {
menu.scrollTop = selectedItem.offsetTop - menu.offsetTop - 100;
}
}
}
}, [isOpen]);
const minWidth = `${MenuRef.current?.[0]?.offsetWidth || 0}px`;
const RenderList = useCallback(
({ index, list }: { index: number; list: MultipleSelectProps['list'] }) => {
@@ -37,11 +61,14 @@ export const MultipleRowSelect = ({
return (
<>
<Box
ref={(ref) => {
MenuRef.current[index] = ref;
}}
className="nowheel"
flex={'1 0 auto'}
// width={0}
px={2}
borderLeft={index !== 0 ? 'base' : 'none'}
minW={index !== 0 ? minWidth : 'auto'}
maxH={`${maxH}px`}
overflowY={'auto'}
whiteSpace={'nowrap'}
@@ -49,13 +76,17 @@ export const MultipleRowSelect = ({
{list.map((item) => (
<Flex
key={item.value}
ref={(ref) => {
if (item.value === selectedValue) {
SelectedItemRef.current[index] = ref;
}
}}
py={2}
cursor={'pointer'}
px={2}
borderRadius={'md'}
_hover={{
bg: 'primary.50',
color: 'primary.600'
bg: 'primary.50'
}}
onClick={() => {
const newValue = [...cloneValue];
@@ -81,6 +112,7 @@ export const MultipleRowSelect = ({
}}
{...(item.value === selectedValue
? {
bg: 'primary.50',
color: 'primary.600'
}
: {})}
@@ -109,60 +141,73 @@ export const MultipleRowSelect = ({
}, [value, onOpen]);
return (
<Box ref={ref} position={'relative'}>
<Button
justifyContent={'space-between'}
width={'100%'}
variant={'whitePrimaryOutline'}
size={'lg'}
fontSize={'sm'}
px={3}
outline={'none'}
rightIcon={<MyIcon name={'core/chat/chevronDown'} w="1rem" color={'myGray.500'} />}
_active={{
transform: 'none'
}}
{...(isOpen
? {
borderColor: 'primary.600',
color: 'primary.700',
boxShadow: '0px 0px 0px 2.4px rgba(51, 112, 255, 0.15)'
}
: {
borderColor: 'myGray.200',
boxShadow: 'none'
})}
{...styles}
onClick={() => (isOpen ? onClose() : onOpenSelect())}
<Box
css={css({
'& div': {
width: 'auto !important'
}
})}
>
<Menu
autoSelect={false}
isOpen={isOpen}
onOpen={onOpenSelect}
onClose={onClose}
strategy={'fixed'}
matchWidth
>
<Box>{label ?? placeholder}</Box>
</Button>
{isOpen && (
<Box
position={'absolute'}
{...(popDirection === 'top'
<MenuButton
as={Button}
ref={ButtonRef}
width={'100%'}
px={3}
rightIcon={<MyIcon name={'core/chat/chevronDown'} w={4} color={'myGray.500'} />}
variant={'whitePrimaryOutline'}
size={'lg'}
fontSize={'sm'}
textAlign={'left'}
_active={{
transform: 'none'
}}
{...(isOpen
? {
transform: 'translateY(-105%)',
top: '0'
boxShadow: '0px 0px 0px 2.4px rgba(51, 112, 255, 0.15)',
borderColor: 'primary.600',
color: 'primary.700'
}
: {
transform: 'translateY(105%)',
bottom: '0'
})}
py={2}
bg={'white'}
border={'1px solid #fff'}
boxShadow={'5'}
borderRadius={'md'}
zIndex={1}
minW={'100%'}
w={'max-content'}
: {})}
{...ButtonProps}
>
<Flex>
<RenderList list={list} index={0} />
</Flex>
</Box>
)}
<Box>{label ?? placeholder}</Box>
</MenuButton>
<MenuList
className={ButtonProps?.className}
minW={(() => {
const w = ButtonRef.current?.clientWidth;
if (w) {
return `${w}px !important`;
}
const width = ButtonProps?.width;
return Array.isArray(width)
? width.map((item) => `${item} !important`)
: `${width} !important`;
})()}
w={'auto'}
px={'6px'}
py={'6px'}
border={'1px solid #fff'}
boxShadow={
'0px 2px 4px rgba(161, 167, 179, 0.25), 0px 0px 1px rgba(121, 141, 159, 0.25);'
}
zIndex={99}
maxH={'40vh'}
overflowY={'auto'}
display={'flex'}
>
<RenderList list={list} index={0} />
</MenuList>
</Menu>
</Box>
);
};
@@ -176,7 +221,7 @@ export const MultipleRowArraySelect = ({
maxH = 300,
onSelect,
popDirection = 'bottom',
styles
ButtonProps
}: MultipleArraySelectProps) => {
const { t } = useTranslation();
const ref = useRef<HTMLDivElement>(null);
@@ -318,7 +363,7 @@ export const MultipleRowArraySelect = ({
borderColor: 'myGray.200',
boxShadow: 'none'
})}
{...styles}
{...ButtonProps}
onClick={() => (isOpen ? onClose() : onOpenSelect())}
className="nowheel"
>
@@ -343,7 +388,7 @@ export const MultipleRowArraySelect = ({
border={'1px solid #fff'}
boxShadow={'5'}
borderRadius={'md'}
zIndex={1}
zIndex={1000}
minW={'100%'}
w={'max-content'}
>

View File

@@ -1,3 +1,5 @@
import { ButtonProps } from '@chakra-ui/react';
type ListItemType = {
alias?: string;
label: string | React.ReactNode;
@@ -12,9 +14,9 @@ export type MultipleSelectProps = {
emptyTip?: string;
maxH?: number;
onSelect: (val: any[]) => void;
styles?: ButtonProps;
popDirection?: 'top' | 'bottom';
changeOnEverySelect?: boolean;
ButtonProps?: ButtonProps;
};
export type MultipleArraySelectProps = Omit<MultipleSelectProps, 'value'> & {
value?: any[][];

View File

@@ -0,0 +1,45 @@
import React, { ReactNode, useMemo } from 'react';
import { createContext } from 'use-context-selector';
import { useMediaQuery } from '@chakra-ui/react';
import Cookies from 'js-cookie';
import { useEffect } from 'react';
const CookieKey = 'NEXT_DEVICE_SIZE';
const setSize = (value: string) => {
Cookies.set(CookieKey, value, { expires: 30 });
localStorage.setItem(CookieKey, value);
};
type useSystemContextType = {
isPc: boolean;
};
export const useSystemStoreContext = createContext<useSystemContextType>({
isPc: true
});
const SystemStoreContextProvider = ({
children,
device
}: {
children: ReactNode;
device?: 'pc' | 'mobile';
}) => {
const [isPc] = useMediaQuery('(min-width: 900px)');
useEffect(() => {
setSize(isPc ? 'pc' : 'mobile');
}, [isPc]);
const contextValue = useMemo(
() => ({
isPc: device ? device === 'pc' : isPc
}),
[device, isPc]
);
return (
<useSystemStoreContext.Provider value={contextValue}>{children}</useSystemStoreContext.Provider>
);
};
export default SystemStoreContextProvider;

View File

@@ -1,5 +1,6 @@
import { useTranslation } from 'next-i18next';
import { useEffect } from 'react';
import { isProduction } from '@fastgpt/global/common/system/constants';
export const useBeforeunload = (props?: { callback?: () => any; tip?: string }) => {
const { t } = useTranslation();
@@ -7,16 +8,15 @@ export const useBeforeunload = (props?: { callback?: () => any; tip?: string })
const { tip = t('common:common.Confirm to leave the page'), callback } = props || {};
useEffect(() => {
const listen =
process.env.NODE_ENV === 'production'
? (e: any) => {
e.preventDefault();
e.returnValue = tip;
callback?.();
}
: () => {
callback?.();
};
const listen = isProduction
? (e: any) => {
e.preventDefault();
e.returnValue = tip;
callback?.();
}
: () => {
callback?.();
};
window.addEventListener('beforeunload', listen);
return () => {

View File

@@ -1,7 +1,8 @@
import { useMediaQuery } from '@chakra-ui/react';
import { useSystemStoreContext } from '../context/useSystem';
import { useContextSelector } from 'use-context-selector';
export const useSystem = () => {
const [isPc] = useMediaQuery('(min-width: 900px)');
const isPc = useContextSelector(useSystemStoreContext, (state) => state.isPc);
return { isPc };
};

View File

@@ -77,7 +77,7 @@
"usage_balance_notice": "Due to the system upgrade, the original \"automatic renewal and deduction from balance\" mode has been cancelled, and the balance recharge entrance has been closed. \nYour balance can be used to purchase points",
"user_account": "Username",
"user_team_team_name": "Team",
"verification_code_required": "Verification code cannot be empty",
"verification_code": "Verification code",
"you_can_convert": "you can redeem",
"yuan": "Yuan"
}

View File

@@ -906,6 +906,16 @@
"item_name": "Field Name",
"just_now": "just",
"key_repetition": "Key Repetition",
"model_baichuan": "Baichuan",
"model_chatglm": "ChatGLM",
"model_doubao": "Doubao",
"model_ernie": "Ernie",
"model_hunyuan": "Hunyuan",
"model_moonshot": "Moonshot",
"model_other": "Other",
"model_qwen": "Qwen",
"model_sparkdesk": "SprkDesk",
"model_yi": "Yi",
"move.confirm": "Confirm move",
"navbar.Account": "Account",
"navbar.Chat": "Chat",

View File

@@ -77,7 +77,7 @@
"usage_balance_notice": "由于系统升级,原“自动续费从余额扣款”模式取消,余额充值入口关闭。您的余额可用于购买积分",
"user_account": "账号",
"user_team_team_name": "团队名",
"verification_code_required": "验证码不能为空",
"verification_code": "验证码",
"you_can_convert": "您可以兑换",
"yuan": "元"
}

View File

@@ -905,6 +905,16 @@
"item_name": "字段名",
"just_now": "刚刚",
"key_repetition": "key 重复",
"model_baichuan": "百川智能",
"model_chatglm": "ChatGLM",
"model_doubao": "豆包",
"model_ernie": "文心一言",
"model_hunyuan": "腾讯混元",
"model_moonshot": "月之暗面",
"model_other": "自定义",
"model_qwen": "阿里千问",
"model_sparkdesk": "讯飞星火",
"model_yi": "零一万物",
"move.confirm": "确认移动",
"navbar.Account": "账号",
"navbar.Chat": "聊天",

View File

@@ -77,7 +77,7 @@
"usage_balance_notice": "由於系統升級,原「自動續費從餘額扣款」模式取消,餘額儲值入口關閉。\n您的餘額可用於購買積分",
"user_account": "帳號",
"user_team_team_name": "團隊名",
"verification_code_required": "驗證碼不能為空",
"verification_code": "驗證碼",
"you_can_convert": "您可以兌換",
"yuan": "元"
}

View File

@@ -907,6 +907,16 @@
"item_name": "欄位名稱",
"just_now": "剛剛",
"key_repetition": "鍵值重複",
"model_baichuan": "百川智能",
"model_chatglm": "ChatGLM",
"model_doubao": "豆包",
"model_ernie": "文心一言",
"model_hunyuan": "騰訊混元",
"model_moonshot": "月之暗面",
"model_other": "自訂",
"model_qwen": "阿里千問",
"model_sparkdesk": "訊飛星火",
"model_yi": "零一萬物",
"move.confirm": "確認移動",
"navbar.Account": "帳戶",
"navbar.Chat": "對話",