diff --git a/web/src/pages/agent/agent-sidebar.tsx b/web/src/pages/agent/agent-sidebar.tsx index a57b9af71..c175924eb 100644 --- a/web/src/pages/agent/agent-sidebar.tsx +++ b/web/src/pages/agent/agent-sidebar.tsx @@ -1,3 +1,4 @@ +import { Card, CardContent } from '@/components/ui/card'; import { Collapsible, CollapsibleContent, @@ -11,81 +12,97 @@ import { SidebarGroupLabel, SidebarHeader, SidebarMenu, - SidebarMenuButton, - SidebarMenuItem, } from '@/components/ui/sidebar'; +import { ChevronDown } from 'lucide-react'; +import { useMemo } from 'react'; import { - Calendar, - ChevronDown, - Home, - Inbox, - Search, - Settings, -} from 'lucide-react'; + AgentOperatorList, + Operator, + componentMenuList, + operatorMap, +} from './constant'; +import OperatorIcon from './operator-icon'; -// Menu items. -const items = [ - { - title: 'Home', - url: '#', - icon: Home, - }, - { - title: 'Inbox', - url: '#', - icon: Inbox, - }, - { - title: 'Calendar', - url: '#', - icon: Calendar, - }, - { - title: 'Search', - url: '#', - icon: Search, - }, - { - title: 'Settings', - url: '#', - icon: Settings, - }, -]; +function SideDown() { + return ( + + ); +} + +type OperatorItem = { + name: Operator; +}; + +function OperatorCard({ name }: OperatorItem) { + return ( + + + + {name} + + + ); +} + +type OperatorCollapsibleProps = { operatorList: OperatorItem[]; title: string }; + +function OperatorCollapsible({ + operatorList, + title, +}: OperatorCollapsibleProps) { + return ( + + + + + {title} + + + + + + + {operatorList.map((item) => ( + + ))} + + + + + + ); +} export function AgentSidebar() { + const agentOperatorList = useMemo(() => { + return componentMenuList.filter((x) => + AgentOperatorList.some((y) => y === x.name), + ); + }, []); + + const thirdOperatorList = useMemo(() => { + return componentMenuList.filter( + (x) => !AgentOperatorList.some((y) => y === x.name), + ); + }, []); + return (

All nodes

- - - - - Help - - - - - - - {items.map((item) => ( - - - - - {item.title} - - - - ))} - - - - - - yyy + +
); diff --git a/web/src/pages/agent/constant.tsx b/web/src/pages/agent/constant.tsx new file mode 100644 index 000000000..f308e0727 --- /dev/null +++ b/web/src/pages/agent/constant.tsx @@ -0,0 +1,2985 @@ +import { + GitHubIcon, + KeywordIcon, + QWeatherIcon, + WikipediaIcon, +} from '@/assets/icon/Icon'; +import { ReactComponent as AkShareIcon } from '@/assets/svg/akshare.svg'; +import { ReactComponent as ArXivIcon } from '@/assets/svg/arxiv.svg'; +import { ReactComponent as baiduFanyiIcon } from '@/assets/svg/baidu-fanyi.svg'; +import { ReactComponent as BaiduIcon } from '@/assets/svg/baidu.svg'; +import { ReactComponent as BeginIcon } from '@/assets/svg/begin.svg'; +import { ReactComponent as BingIcon } from '@/assets/svg/bing.svg'; +import { ReactComponent as ConcentratorIcon } from '@/assets/svg/concentrator.svg'; +import { ReactComponent as CrawlerIcon } from '@/assets/svg/crawler.svg'; +import { ReactComponent as DeepLIcon } from '@/assets/svg/deepl.svg'; +import { ReactComponent as DuckIcon } from '@/assets/svg/duck.svg'; +import { ReactComponent as EmailIcon } from '@/assets/svg/email.svg'; +import { ReactComponent as ExeSqlIcon } from '@/assets/svg/exesql.svg'; +import { ReactComponent as GoogleScholarIcon } from '@/assets/svg/google-scholar.svg'; +import { ReactComponent as GoogleIcon } from '@/assets/svg/google.svg'; +import { ReactComponent as InvokeIcon } from '@/assets/svg/invoke-ai.svg'; +import { ReactComponent as Jin10Icon } from '@/assets/svg/jin10.svg'; +import { ReactComponent as NoteIcon } from '@/assets/svg/note.svg'; +import { ReactComponent as PubMedIcon } from '@/assets/svg/pubmed.svg'; +import { ReactComponent as SwitchIcon } from '@/assets/svg/switch.svg'; +import { ReactComponent as TemplateIcon } from '@/assets/svg/template.svg'; +import { ReactComponent as TuShareIcon } from '@/assets/svg/tushare.svg'; +import { ReactComponent as WenCaiIcon } from '@/assets/svg/wencai.svg'; +import { ReactComponent as YahooFinanceIcon } from '@/assets/svg/yahoo-finance.svg'; + +// 邮件功能 + +import { + ChatVariableEnabledField, + variableEnabledFieldMap, +} from '@/constants/chat'; +import i18n from '@/locales/config'; +import { setInitialChatVariableEnabledFieldValue } from '@/utils/chat'; + +// DuckDuckGo's channel options +export enum Channel { + Text = 'text', + News = 'news', +} + +import { + BranchesOutlined, + DatabaseOutlined, + FormOutlined, + MergeCellsOutlined, + MessageOutlined, + RocketOutlined, + SendOutlined, +} from '@ant-design/icons'; +import upperFirst from 'lodash/upperFirst'; +import { + CirclePower, + CloudUpload, + IterationCcw, + ListOrdered, + OptionIcon, + TextCursorInput, + ToggleLeft, + WrapText, +} from 'lucide-react'; + +export const BeginId = 'begin'; + +export enum Operator { + Begin = 'Begin', + Retrieval = 'Retrieval', + Generate = 'Generate', + Answer = 'Answer', + Categorize = 'Categorize', + Message = 'Message', + Relevant = 'Relevant', + RewriteQuestion = 'RewriteQuestion', + KeywordExtract = 'KeywordExtract', + Baidu = 'Baidu', + DuckDuckGo = 'DuckDuckGo', + Wikipedia = 'Wikipedia', + PubMed = 'PubMed', + ArXiv = 'ArXiv', + Google = 'Google', + Bing = 'Bing', + GoogleScholar = 'GoogleScholar', + DeepL = 'DeepL', + GitHub = 'GitHub', + BaiduFanyi = 'BaiduFanyi', + QWeather = 'QWeather', + ExeSQL = 'ExeSQL', + Switch = 'Switch', + WenCai = 'WenCai', + AkShare = 'AkShare', + YahooFinance = 'YahooFinance', + Jin10 = 'Jin10', + Concentrator = 'Concentrator', + TuShare = 'TuShare', + Note = 'Note', + Crawler = 'Crawler', + Invoke = 'Invoke', + Template = 'Template', + Email = 'Email', + Iteration = 'Iteration', + IterationStart = 'IterationItem', +} + +export const CommonOperatorList = Object.values(Operator).filter( + (x) => x !== Operator.Note, +); + +export const AgentOperatorList = [ + Operator.Retrieval, + Operator.Generate, + Operator.Answer, + Operator.Categorize, + Operator.Message, + Operator.RewriteQuestion, + Operator.KeywordExtract, + Operator.Switch, + Operator.Concentrator, + Operator.Template, + Operator.Iteration, + Operator.Note, +]; + +export const operatorIconMap = { + [Operator.Retrieval]: RocketOutlined, + [Operator.Generate]: MergeCellsOutlined, + [Operator.Answer]: SendOutlined, + [Operator.Begin]: BeginIcon, + [Operator.Categorize]: DatabaseOutlined, + [Operator.Message]: MessageOutlined, + [Operator.Relevant]: BranchesOutlined, + [Operator.RewriteQuestion]: FormOutlined, + [Operator.KeywordExtract]: KeywordIcon, + [Operator.DuckDuckGo]: DuckIcon, + [Operator.Baidu]: BaiduIcon, + [Operator.Wikipedia]: WikipediaIcon, + [Operator.PubMed]: PubMedIcon, + [Operator.ArXiv]: ArXivIcon, + [Operator.Google]: GoogleIcon, + [Operator.Bing]: BingIcon, + [Operator.GoogleScholar]: GoogleScholarIcon, + [Operator.DeepL]: DeepLIcon, + [Operator.GitHub]: GitHubIcon, + [Operator.BaiduFanyi]: baiduFanyiIcon, + [Operator.QWeather]: QWeatherIcon, + [Operator.ExeSQL]: ExeSqlIcon, + [Operator.Switch]: SwitchIcon, + [Operator.WenCai]: WenCaiIcon, + [Operator.AkShare]: AkShareIcon, + [Operator.YahooFinance]: YahooFinanceIcon, + [Operator.Jin10]: Jin10Icon, + [Operator.Concentrator]: ConcentratorIcon, + [Operator.TuShare]: TuShareIcon, + [Operator.Note]: NoteIcon, + [Operator.Crawler]: CrawlerIcon, + [Operator.Invoke]: InvokeIcon, + [Operator.Template]: TemplateIcon, + [Operator.Email]: EmailIcon, + [Operator.Iteration]: IterationCcw, + [Operator.IterationStart]: CirclePower, +}; + +export const operatorMap: Record< + Operator, + { + backgroundColor?: string; + color?: string; + width?: number; + height?: number; + fontSize?: number; + iconFontSize?: number; + iconWidth?: number; + moreIconColor?: string; + } +> = { + [Operator.Retrieval]: { + backgroundColor: '#cad6e0', + color: '#385974', + }, + [Operator.Generate]: { + backgroundColor: '#ebd6d6', + width: 150, + height: 150, + fontSize: 20, + iconFontSize: 30, + color: '#996464', + }, + [Operator.Answer]: { + backgroundColor: '#f4816d', + color: '#f4816d', + }, + [Operator.Begin]: { + backgroundColor: '#4f51d6', + }, + [Operator.Categorize]: { + backgroundColor: '#ffebcd', + color: '#cc8a26', + }, + [Operator.Message]: { + backgroundColor: '#c5ddc7', + color: 'green', + }, + [Operator.Relevant]: { + backgroundColor: '#9fd94d', + color: '#8ef005', + width: 70, + height: 70, + fontSize: 12, + iconFontSize: 16, + }, + [Operator.RewriteQuestion]: { + backgroundColor: '#f8c7f8', + color: '#f32bf3', + width: 70, + height: 70, + fontSize: 12, + iconFontSize: 16, + }, + [Operator.KeywordExtract]: { + width: 70, + height: 70, + backgroundColor: '#6E5494', + color: '#6E5494', + fontSize: 12, + iconWidth: 16, + }, + [Operator.DuckDuckGo]: { + backgroundColor: '#e7e389', + color: '#aea00c', + }, + [Operator.Baidu]: { + backgroundColor: '#d9e0f8', + }, + [Operator.Wikipedia]: { + backgroundColor: '#dee0e2', + }, + [Operator.PubMed]: { + backgroundColor: '#a2ccf0', + }, + [Operator.ArXiv]: { + width: 70, + height: 70, + fontSize: 12, + iconWidth: 16, + iconFontSize: 16, + moreIconColor: 'white', + backgroundColor: '#b31b1b', + color: 'white', + }, + [Operator.Google]: { + backgroundColor: 'pink', + }, + [Operator.Bing]: { + backgroundColor: '#c0dcc4', + }, + [Operator.GoogleScholar]: { + backgroundColor: '#b4e4f6', + }, + [Operator.DeepL]: { + backgroundColor: '#f5e8e6', + }, + [Operator.GitHub]: { + backgroundColor: 'purple', + color: 'purple', + }, + [Operator.BaiduFanyi]: { backgroundColor: '#e5f2d3' }, + [Operator.QWeather]: { + backgroundColor: '#a4bbf3', + color: '#a4bbf3', + }, + [Operator.ExeSQL]: { backgroundColor: '#b9efe8' }, + [Operator.Switch]: { backgroundColor: '#dbaff6', color: '#dbaff6' }, + [Operator.WenCai]: { backgroundColor: '#faac5b' }, + [Operator.AkShare]: { backgroundColor: '#8085f5' }, + [Operator.YahooFinance]: { backgroundColor: '#b474ff' }, + [Operator.Jin10]: { backgroundColor: '#a0b9f8' }, + [Operator.Concentrator]: { + backgroundColor: '#32d2a3', + color: '#32d2a3', + width: 70, + height: 70, + fontSize: 10, + iconFontSize: 16, + }, + [Operator.TuShare]: { backgroundColor: '#f8cfa0' }, + [Operator.Note]: { backgroundColor: '#f8cfa0' }, + [Operator.Crawler]: { + backgroundColor: '#dee0e2', + }, + [Operator.Invoke]: { + backgroundColor: '#dee0e2', + }, + [Operator.Template]: { + backgroundColor: '#dee0e2', + }, + [Operator.Email]: { backgroundColor: '#e6f7ff' }, + [Operator.Iteration]: { backgroundColor: '#e6f7ff' }, + [Operator.IterationStart]: { backgroundColor: '#e6f7ff' }, +}; + +export const componentMenuList = [ + { + name: Operator.Retrieval, + }, + { + name: Operator.Generate, + }, + { + name: Operator.Answer, + }, + { + name: Operator.Categorize, + }, + { + name: Operator.Message, + }, + + { + name: Operator.RewriteQuestion, + }, + { + name: Operator.KeywordExtract, + }, + { + name: Operator.Switch, + }, + { + name: Operator.Concentrator, + }, + { + name: Operator.Template, + }, + { + name: Operator.Iteration, + }, + { + name: Operator.Note, + }, + { + name: Operator.DuckDuckGo, + }, + { + name: Operator.Baidu, + }, + { + name: Operator.Wikipedia, + }, + { + name: Operator.PubMed, + }, + { + name: Operator.ArXiv, + }, + { + name: Operator.Google, + }, + { + name: Operator.Bing, + }, + { + name: Operator.GoogleScholar, + }, + { + name: Operator.DeepL, + }, + { + name: Operator.GitHub, + }, + { + name: Operator.BaiduFanyi, + }, + { + name: Operator.QWeather, + }, + { + name: Operator.ExeSQL, + }, + { + name: Operator.WenCai, + }, + { + name: Operator.AkShare, + }, + { + name: Operator.YahooFinance, + }, + { + name: Operator.Jin10, + }, + { + name: Operator.TuShare, + }, + { + name: Operator.Crawler, + }, + { + name: Operator.Invoke, + }, + { + name: Operator.Email, + }, +]; + +const initialQueryBaseValues = { + query: [], +}; + +export const initialRetrievalValues = { + similarity_threshold: 0.2, + keywords_similarity_weight: 0.3, + top_n: 8, + ...initialQueryBaseValues, +}; + +export const initialBeginValues = { + prologue: `Hi! I'm your assistant, what can I do for you?`, +}; + +export const variableCheckBoxFieldMap = Object.keys( + variableEnabledFieldMap, +).reduce>((pre, cur) => { + pre[cur] = setInitialChatVariableEnabledFieldValue( + cur as ChatVariableEnabledField, + ); + return pre; +}, {}); + +const initialLlmBaseValues = { + ...variableCheckBoxFieldMap, + temperature: 0.1, + top_p: 0.3, + frequency_penalty: 0.7, + presence_penalty: 0.4, + max_tokens: 256, +}; + +export const initialGenerateValues = { + ...initialLlmBaseValues, + prompt: i18n.t('flow.promptText'), + cite: true, + message_history_window_size: 12, + parameters: [], +}; + +export const initialRewriteQuestionValues = { + ...initialLlmBaseValues, + language: '', + message_history_window_size: 6, +}; + +export const initialRelevantValues = { + ...initialLlmBaseValues, +}; + +export const initialCategorizeValues = { + ...initialLlmBaseValues, + message_history_window_size: 1, + category_description: {}, + ...initialQueryBaseValues, +}; + +export const initialMessageValues = { + messages: [], +}; + +export const initialKeywordExtractValues = { + ...initialLlmBaseValues, + top_n: 3, + ...initialQueryBaseValues, +}; +export const initialDuckValues = { + top_n: 10, + channel: Channel.Text, + ...initialQueryBaseValues, +}; + +export const initialBaiduValues = { + top_n: 10, + ...initialQueryBaseValues, +}; + +export const initialWikipediaValues = { + top_n: 10, + language: 'en', + ...initialQueryBaseValues, +}; + +export const initialPubMedValues = { + top_n: 10, + email: '', + ...initialQueryBaseValues, +}; + +export const initialArXivValues = { + top_n: 10, + sort_by: 'relevance', + ...initialQueryBaseValues, +}; + +export const initialGoogleValues = { + top_n: 10, + api_key: 'YOUR_API_KEY (obtained from https://serpapi.com/manage-api-key)', + country: 'cn', + language: 'en', + ...initialQueryBaseValues, +}; + +export const initialBingValues = { + top_n: 10, + channel: 'Webpages', + api_key: + 'YOUR_API_KEY (obtained from https://www.microsoft.com/en-us/bing/apis/bing-web-search-api)', + country: 'CH', + language: 'en', + ...initialQueryBaseValues, +}; + +export const initialGoogleScholarValues = { + top_n: 5, + sort_by: 'relevance', + patents: true, + ...initialQueryBaseValues, +}; + +export const initialDeepLValues = { + top_n: 5, + auth_key: 'relevance', +}; + +export const initialGithubValues = { + top_n: 5, + ...initialQueryBaseValues, +}; + +export const initialBaiduFanyiValues = { + appid: 'xxx', + secret_key: 'xxx', + trans_type: 'translate', + ...initialQueryBaseValues, +}; + +export const initialQWeatherValues = { + web_apikey: 'xxx', + type: 'weather', + user_type: 'free', + time_period: 'now', + ...initialQueryBaseValues, +}; + +export const initialExeSqlValues = { + ...initialLlmBaseValues, + db_type: 'mysql', + database: '', + username: '', + host: '', + port: 3306, + password: '', + loop: 3, + top_n: 30, + ...initialQueryBaseValues, +}; + +export const initialSwitchValues = { conditions: [] }; + +export const initialWenCaiValues = { + top_n: 20, + query_type: 'stock', + ...initialQueryBaseValues, +}; + +export const initialAkShareValues = { top_n: 10, ...initialQueryBaseValues }; + +export const initialYahooFinanceValues = { + info: true, + history: false, + financials: false, + balance_sheet: false, + cash_flow_statement: false, + news: true, + ...initialQueryBaseValues, +}; + +export const initialJin10Values = { + type: 'flash', + secret_key: 'xxx', + flash_type: '1', + contain: '', + filter: '', + ...initialQueryBaseValues, +}; + +export const initialConcentratorValues = {}; + +export const initialTuShareValues = { + token: 'xxx', + src: 'eastmoney', + start_date: '2024-01-01 09:00:00', + ...initialQueryBaseValues, +}; + +export const initialNoteValues = { + text: '', +}; + +export const initialCrawlerValues = { + extract_type: 'markdown', + ...initialQueryBaseValues, +}; + +export const initialInvokeValues = { + url: 'http://', + method: 'GET', + timeout: 60, + headers: `{ + "Accept": "*/*", + "Cache-Control": "no-cache", + "Connection": "keep-alive" +}`, + proxy: 'http://', + clean_html: false, +}; + +export const initialTemplateValues = { + content: '', + parameters: [], +}; + +export const initialEmailValues = { + smtp_server: '', + smtp_port: 587, + email: '', + password: '', + sender_name: '', + to_email: '', + cc_email: '', + subject: '', + content: '', +}; + +export const initialIterationValues = { + delimiter: ',', +}; +export const initialIterationStartValues = {}; + +export const CategorizeAnchorPointPositions = [ + { top: 1, right: 34 }, + { top: 8, right: 18 }, + { top: 15, right: 10 }, + { top: 24, right: 4 }, + { top: 31, right: 1 }, + { top: 38, right: -2 }, + { top: 62, right: -2 }, //bottom + { top: 71, right: 1 }, + { top: 79, right: 6 }, + { top: 86, right: 12 }, + { top: 91, right: 20 }, + { top: 98, right: 34 }, +]; + +// key is the source of the edge, value is the target of the edge +// no connection lines are allowed between key and value +export const RestrictedUpstreamMap = { + [Operator.Begin]: [Operator.Relevant], + [Operator.Categorize]: [ + Operator.Begin, + Operator.Categorize, + Operator.Answer, + Operator.Relevant, + ], + [Operator.Answer]: [ + Operator.Begin, + Operator.Answer, + Operator.Message, + Operator.Relevant, + ], + [Operator.Retrieval]: [Operator.Begin, Operator.Retrieval], + [Operator.Generate]: [Operator.Begin, Operator.Relevant], + [Operator.Message]: [ + Operator.Begin, + Operator.Message, + Operator.Generate, + Operator.Retrieval, + Operator.RewriteQuestion, + Operator.Categorize, + Operator.Relevant, + ], + [Operator.Relevant]: [Operator.Begin, Operator.Answer, Operator.Relevant], + [Operator.RewriteQuestion]: [ + Operator.Begin, + Operator.Message, + Operator.RewriteQuestion, + Operator.Relevant, + ], + [Operator.KeywordExtract]: [ + Operator.Begin, + Operator.Message, + Operator.Relevant, + ], + [Operator.Baidu]: [Operator.Begin, Operator.Retrieval], + [Operator.DuckDuckGo]: [Operator.Begin, Operator.Retrieval], + [Operator.Wikipedia]: [Operator.Begin, Operator.Retrieval], + [Operator.PubMed]: [Operator.Begin, Operator.Retrieval], + [Operator.ArXiv]: [Operator.Begin, Operator.Retrieval], + [Operator.Google]: [Operator.Begin, Operator.Retrieval], + [Operator.Bing]: [Operator.Begin, Operator.Retrieval], + [Operator.GoogleScholar]: [Operator.Begin, Operator.Retrieval], + [Operator.DeepL]: [Operator.Begin, Operator.Retrieval], + [Operator.GitHub]: [Operator.Begin, Operator.Retrieval], + [Operator.BaiduFanyi]: [Operator.Begin, Operator.Retrieval], + [Operator.QWeather]: [Operator.Begin, Operator.Retrieval], + [Operator.ExeSQL]: [Operator.Begin], + [Operator.Switch]: [Operator.Begin], + [Operator.WenCai]: [Operator.Begin], + [Operator.AkShare]: [Operator.Begin], + [Operator.YahooFinance]: [Operator.Begin], + [Operator.Jin10]: [Operator.Begin], + [Operator.Concentrator]: [Operator.Begin], + [Operator.TuShare]: [Operator.Begin], + [Operator.Crawler]: [Operator.Begin], + [Operator.Note]: [], + [Operator.Invoke]: [Operator.Begin], + [Operator.Template]: [Operator.Begin, Operator.Relevant], + [Operator.Email]: [Operator.Begin], + [Operator.Iteration]: [Operator.Begin], + [Operator.IterationStart]: [Operator.Begin], +}; + +export const NodeMap = { + [Operator.Begin]: 'beginNode', + [Operator.Categorize]: 'categorizeNode', + [Operator.Retrieval]: 'retrievalNode', + [Operator.Generate]: 'generateNode', + [Operator.Answer]: 'logicNode', + [Operator.Message]: 'messageNode', + [Operator.Relevant]: 'relevantNode', + [Operator.RewriteQuestion]: 'rewriteNode', + [Operator.KeywordExtract]: 'keywordNode', + [Operator.DuckDuckGo]: 'ragNode', + [Operator.Baidu]: 'ragNode', + [Operator.Wikipedia]: 'ragNode', + [Operator.PubMed]: 'ragNode', + [Operator.ArXiv]: 'ragNode', + [Operator.Google]: 'ragNode', + [Operator.Bing]: 'ragNode', + [Operator.GoogleScholar]: 'ragNode', + [Operator.DeepL]: 'ragNode', + [Operator.GitHub]: 'ragNode', + [Operator.BaiduFanyi]: 'ragNode', + [Operator.QWeather]: 'ragNode', + [Operator.ExeSQL]: 'ragNode', + [Operator.Switch]: 'switchNode', + [Operator.Concentrator]: 'logicNode', + [Operator.WenCai]: 'ragNode', + [Operator.AkShare]: 'ragNode', + [Operator.YahooFinance]: 'ragNode', + [Operator.Jin10]: 'ragNode', + [Operator.TuShare]: 'ragNode', + [Operator.Note]: 'noteNode', + [Operator.Crawler]: 'ragNode', + [Operator.Invoke]: 'invokeNode', + [Operator.Template]: 'templateNode', + [Operator.Email]: 'emailNode', + [Operator.Iteration]: 'group', + [Operator.IterationStart]: 'iterationStartNode', +}; + +export const LanguageOptions = [ + { + value: 'af', + label: 'Afrikaans', + }, + { + value: 'pl', + label: 'Polski', + }, + { + value: 'ar', + label: 'العربية', + }, + { + value: 'ast', + label: 'Asturianu', + }, + { + value: 'az', + label: 'Azərbaycanca', + }, + { + value: 'bg', + label: 'Български', + }, + { + value: 'nan', + label: '閩南語 / Bân-lâm-gú', + }, + { + value: 'bn', + label: 'বাংলা', + }, + { + value: 'be', + label: 'Беларуская', + }, + { + value: 'ca', + label: 'Català', + }, + { + value: 'cs', + label: 'Čeština', + }, + { + value: 'cy', + label: 'Cymraeg', + }, + { + value: 'da', + label: 'Dansk', + }, + { + value: 'de', + label: 'Deutsch', + }, + { + value: 'et', + label: 'Eesti', + }, + { + value: 'el', + label: 'Ελληνικά', + }, + { + value: 'en', + label: 'English', + }, + { + value: 'es', + label: 'Español', + }, + { + value: 'eo', + label: 'Esperanto', + }, + { + value: 'eu', + label: 'Euskara', + }, + { + value: 'fa', + label: 'فارسی', + }, + { + value: 'fr', + label: 'Français', + }, + { + value: 'gl', + label: 'Galego', + }, + { + value: 'ko', + label: '한국어', + }, + { + value: 'hy', + label: 'Հայերեն', + }, + { + value: 'hi', + label: 'हिन्दी', + }, + { + value: 'hr', + label: 'Hrvatski', + }, + { + value: 'id', + label: 'Bahasa Indonesia', + }, + { + value: 'it', + label: 'Italiano', + }, + { + value: 'he', + label: 'עברית', + }, + { + value: 'ka', + label: 'ქართული', + }, + { + value: 'lld', + label: 'Ladin', + }, + { + value: 'la', + label: 'Latina', + }, + { + value: 'lv', + label: 'Latviešu', + }, + { + value: 'lt', + label: 'Lietuvių', + }, + { + value: 'hu', + label: 'Magyar', + }, + { + value: 'mk', + label: 'Македонски', + }, + { + value: 'arz', + label: 'مصرى', + }, + { + value: 'ms', + label: 'Bahasa Melayu', + }, + { + value: 'min', + label: 'Bahaso Minangkabau', + }, + { + value: 'my', + label: 'မြန်မာဘာသာ', + }, + { + value: 'nl', + label: 'Nederlands', + }, + { + value: 'ja', + label: '日本語', + }, + { + value: 'no', + label: 'Norsk (bokmål)', + }, + { + value: 'nn', + label: 'Norsk (nynorsk)', + }, + { + value: 'ce', + label: 'Нохчийн', + }, + { + value: 'uz', + label: 'Oʻzbekcha / Ўзбекча', + }, + { + value: 'pt', + label: 'Português', + }, + { + value: 'kk', + label: 'Қазақша / Qazaqşa / قازاقشا', + }, + { + value: 'ro', + label: 'Română', + }, + { + value: 'ru', + label: 'Русский', + }, + { + value: 'ceb', + label: 'Sinugboanong Binisaya', + }, + { + value: 'sk', + label: 'Slovenčina', + }, + { + value: 'sl', + label: 'Slovenščina', + }, + { + value: 'sr', + label: 'Српски / Srpski', + }, + { + value: 'sh', + label: 'Srpskohrvatski / Српскохрватски', + }, + { + value: 'fi', + label: 'Suomi', + }, + { + value: 'sv', + label: 'Svenska', + }, + { + value: 'ta', + label: 'தமிழ்', + }, + { + value: 'tt', + label: 'Татарча / Tatarça', + }, + { + value: 'th', + label: 'ภาษาไทย', + }, + { + value: 'tg', + label: 'Тоҷикӣ', + }, + { + value: 'azb', + label: 'تۆرکجه', + }, + { + value: 'tr', + label: 'Türkçe', + }, + { + value: 'uk', + label: 'Українська', + }, + { + value: 'ur', + label: 'اردو', + }, + { + value: 'vi', + label: 'Tiếng Việt', + }, + { + value: 'war', + label: 'Winaray', + }, + { + value: 'zh', + label: '中文', + }, + { + value: 'yue', + label: '粵語', + }, +]; + +export const GoogleLanguageOptions = [ + { + language_code: 'af', + language_name: 'Afrikaans', + }, + { + language_code: 'ak', + language_name: 'Akan', + }, + { + language_code: 'sq', + language_name: 'Albanian', + }, + { + language_code: 'ws', + language_name: 'Samoa', + }, + { + language_code: 'am', + language_name: 'Amharic', + }, + { + language_code: 'ar', + language_name: 'Arabic', + }, + { + language_code: 'hy', + language_name: 'Armenian', + }, + { + language_code: 'az', + language_name: 'Azerbaijani', + }, + { + language_code: 'eu', + language_name: 'Basque', + }, + { + language_code: 'be', + language_name: 'Belarusian', + }, + { + language_code: 'bem', + language_name: 'Bemba', + }, + { + language_code: 'bn', + language_name: 'Bengali', + }, + { + language_code: 'bh', + language_name: 'Bihari', + }, + { + language_code: 'xx-bork', + language_name: 'Bork, bork, bork!', + }, + { + language_code: 'bs', + language_name: 'Bosnian', + }, + { + language_code: 'br', + language_name: 'Breton', + }, + { + language_code: 'bg', + language_name: 'Bulgarian', + }, + { + language_code: 'bt', + language_name: 'Bhutanese', + }, + { + language_code: 'km', + language_name: 'Cambodian', + }, + { + language_code: 'ca', + language_name: 'Catalan', + }, + { + language_code: 'chr', + language_name: 'Cherokee', + }, + { + language_code: 'ny', + language_name: 'Chichewa', + }, + { + language_code: 'zh-cn', + language_name: 'Chinese (Simplified)', + }, + { + language_code: 'zh-tw', + language_name: 'Chinese (Traditional)', + }, + { + language_code: 'co', + language_name: 'Corsican', + }, + { + language_code: 'hr', + language_name: 'Croatian', + }, + { + language_code: 'cs', + language_name: 'Czech', + }, + { + language_code: 'da', + language_name: 'Danish', + }, + { + language_code: 'nl', + language_name: 'Dutch', + }, + { + language_code: 'xx-elmer', + language_name: 'Elmer Fudd', + }, + { + language_code: 'en', + language_name: 'English', + }, + { + language_code: 'eo', + language_name: 'Esperanto', + }, + { + language_code: 'et', + language_name: 'Estonian', + }, + { + language_code: 'ee', + language_name: 'Ewe', + }, + { + language_code: 'fo', + language_name: 'Faroese', + }, + { + language_code: 'tl', + language_name: 'Filipino', + }, + { + language_code: 'fi', + language_name: 'Finnish', + }, + { + language_code: 'fr', + language_name: 'French', + }, + { + language_code: 'fy', + language_name: 'Frisian', + }, + { + language_code: 'gaa', + language_name: 'Ga', + }, + { + language_code: 'gl', + language_name: 'Galician', + }, + { + language_code: 'ka', + language_name: 'Georgian', + }, + { + language_code: 'de', + language_name: 'German', + }, + { + language_code: 'el', + language_name: 'Greek', + }, + { + language_code: 'kl', + language_name: 'Greenlandic', + }, + { + language_code: 'gn', + language_name: 'Guarani', + }, + { + language_code: 'gu', + language_name: 'Gujarati', + }, + { + language_code: 'xx-hacker', + language_name: 'Hacker', + }, + { + language_code: 'ht', + language_name: 'Haitian Creole', + }, + { + language_code: 'ha', + language_name: 'Hausa', + }, + { + language_code: 'haw', + language_name: 'Hawaiian', + }, + { + language_code: 'iw', + language_name: 'Hebrew', + }, + { + language_code: 'hi', + language_name: 'Hindi', + }, + { + language_code: 'hu', + language_name: 'Hungarian', + }, + { + language_code: 'is', + language_name: 'Icelandic', + }, + { + language_code: 'ig', + language_name: 'Igbo', + }, + { + language_code: 'id', + language_name: 'Indonesian', + }, + { + language_code: 'ia', + language_name: 'Interlingua', + }, + { + language_code: 'ga', + language_name: 'Irish', + }, + { + language_code: 'it', + language_name: 'Italian', + }, + { + language_code: 'ja', + language_name: 'Japanese', + }, + { + language_code: 'jw', + language_name: 'Javanese', + }, + { + language_code: 'kn', + language_name: 'Kannada', + }, + { + language_code: 'kk', + language_name: 'Kazakh', + }, + { + language_code: 'rw', + language_name: 'Kinyarwanda', + }, + { + language_code: 'rn', + language_name: 'Kirundi', + }, + { + language_code: 'xx-klingon', + language_name: 'Klingon', + }, + { + language_code: 'kg', + language_name: 'Kongo', + }, + { + language_code: 'ko', + language_name: 'Korean', + }, + { + language_code: 'kri', + language_name: 'Krio (Sierra Leone)', + }, + { + language_code: 'ku', + language_name: 'Kurdish', + }, + { + language_code: 'ckb', + language_name: 'Kurdish (Soranî)', + }, + { + language_code: 'ky', + language_name: 'Kyrgyz', + }, + { + language_code: 'lo', + language_name: 'Laothian', + }, + { + language_code: 'la', + language_name: 'Latin', + }, + { + language_code: 'lv', + language_name: 'Latvian', + }, + { + language_code: 'ln', + language_name: 'Lingala', + }, + { + language_code: 'lt', + language_name: 'Lithuanian', + }, + { + language_code: 'loz', + language_name: 'Lozi', + }, + { + language_code: 'lg', + language_name: 'Luganda', + }, + { + language_code: 'ach', + language_name: 'Luo', + }, + { + language_code: 'mk', + language_name: 'Macedonian', + }, + { + language_code: 'mg', + language_name: 'Malagasy', + }, + { + language_code: 'ms', + language_name: 'Malay', + }, + { + language_code: 'ml', + language_name: 'Malayalam', + }, + { + language_code: 'mt', + language_name: 'Maltese', + }, + { + language_code: 'mv', + language_name: 'Maldives', + }, + { + language_code: 'mi', + language_name: 'Maori', + }, + { + language_code: 'mr', + language_name: 'Marathi', + }, + { + language_code: 'mfe', + language_name: 'Mauritian Creole', + }, + { + language_code: 'mo', + language_name: 'Moldavian', + }, + { + language_code: 'mn', + language_name: 'Mongolian', + }, + { + language_code: 'sr-me', + language_name: 'Montenegrin', + }, + { + language_code: 'my', + language_name: 'Myanmar', + }, + { + language_code: 'ne', + language_name: 'Nepali', + }, + { + language_code: 'pcm', + language_name: 'Nigerian Pidgin', + }, + { + language_code: 'nso', + language_name: 'Northern Sotho', + }, + { + language_code: 'no', + language_name: 'Norwegian', + }, + { + language_code: 'nn', + language_name: 'Norwegian (Nynorsk)', + }, + { + language_code: 'oc', + language_name: 'Occitan', + }, + { + language_code: 'or', + language_name: 'Oriya', + }, + { + language_code: 'om', + language_name: 'Oromo', + }, + { + language_code: 'ps', + language_name: 'Pashto', + }, + { + language_code: 'fa', + language_name: 'Persian', + }, + { + language_code: 'xx-pirate', + language_name: 'Pirate', + }, + { + language_code: 'pl', + language_name: 'Polish', + }, + { + language_code: 'pt', + language_name: 'Portuguese', + }, + { + language_code: 'pt-br', + language_name: 'Portuguese (Brazil)', + }, + { + language_code: 'pt-pt', + language_name: 'Portuguese (Portugal)', + }, + { + language_code: 'pa', + language_name: 'Punjabi', + }, + { + language_code: 'qu', + language_name: 'Quechua', + }, + { + language_code: 'ro', + language_name: 'Romanian', + }, + { + language_code: 'rm', + language_name: 'Romansh', + }, + { + language_code: 'nyn', + language_name: 'Runyakitara', + }, + { + language_code: 'ru', + language_name: 'Russian', + }, + { + language_code: 'gd', + language_name: 'Scots Gaelic', + }, + { + language_code: 'sr', + language_name: 'Serbian', + }, + { + language_code: 'sh', + language_name: 'Serbo-Croatian', + }, + { + language_code: 'st', + language_name: 'Sesotho', + }, + { + language_code: 'tn', + language_name: 'Setswana', + }, + { + language_code: 'crs', + language_name: 'Seychellois Creole', + }, + { + language_code: 'sn', + language_name: 'Shona', + }, + { + language_code: 'sd', + language_name: 'Sindhi', + }, + { + language_code: 'si', + language_name: 'Sinhalese', + }, + { + language_code: 'sk', + language_name: 'Slovak', + }, + { + language_code: 'sl', + language_name: 'Slovenian', + }, + { + language_code: 'so', + language_name: 'Somali', + }, + { + language_code: 'es', + language_name: 'Spanish', + }, + { + language_code: 'es-419', + language_name: 'Spanish (Latin American)', + }, + { + language_code: 'su', + language_name: 'Sundanese', + }, + { + language_code: 'sw', + language_name: 'Swahili', + }, + { + language_code: 'sv', + language_name: 'Swedish', + }, + { + language_code: 'tg', + language_name: 'Tajik', + }, + { + language_code: 'ta', + language_name: 'Tamil', + }, + { + language_code: 'tt', + language_name: 'Tatar', + }, + { + language_code: 'te', + language_name: 'Telugu', + }, + { + language_code: 'th', + language_name: 'Thai', + }, + { + language_code: 'ti', + language_name: 'Tigrinya', + }, + { + language_code: 'to', + language_name: 'Tonga', + }, + { + language_code: 'lua', + language_name: 'Tshiluba', + }, + { + language_code: 'tum', + language_name: 'Tumbuka', + }, + { + language_code: 'tr', + language_name: 'Turkish', + }, + { + language_code: 'tk', + language_name: 'Turkmen', + }, + { + language_code: 'tw', + language_name: 'Twi', + }, + { + language_code: 'ug', + language_name: 'Uighur', + }, + { + language_code: 'uk', + language_name: 'Ukrainian', + }, + { + language_code: 'ur', + language_name: 'Urdu', + }, + { + language_code: 'uz', + language_name: 'Uzbek', + }, + { + language_code: 'vu', + language_name: 'Vanuatu', + }, + { + language_code: 'vi', + language_name: 'Vietnamese', + }, + { + language_code: 'cy', + language_name: 'Welsh', + }, + { + language_code: 'wo', + language_name: 'Wolof', + }, + { + language_code: 'xh', + language_name: 'Xhosa', + }, + { + language_code: 'yi', + language_name: 'Yiddish', + }, + { + language_code: 'yo', + language_name: 'Yoruba', + }, + { + language_code: 'zu', + language_name: 'Zulu', + }, +].map((x) => ({ label: x.language_name, value: x.language_code })); + +export const GoogleCountryOptions = [ + { + country_code: 'af', + country_name: 'Afghanistan', + }, + { + country_code: 'al', + country_name: 'Albania', + }, + { + country_code: 'dz', + country_name: 'Algeria', + }, + { + country_code: 'as', + country_name: 'American Samoa', + }, + { + country_code: 'ad', + country_name: 'Andorra', + }, + { + country_code: 'ao', + country_name: 'Angola', + }, + { + country_code: 'ai', + country_name: 'Anguilla', + }, + { + country_code: 'aq', + country_name: 'Antarctica', + }, + { + country_code: 'ag', + country_name: 'Antigua and Barbuda', + }, + { + country_code: 'ar', + country_name: 'Argentina', + }, + { + country_code: 'am', + country_name: 'Armenia', + }, + { + country_code: 'aw', + country_name: 'Aruba', + }, + { + country_code: 'au', + country_name: 'Australia', + }, + { + country_code: 'at', + country_name: 'Austria', + }, + { + country_code: 'az', + country_name: 'Azerbaijan', + }, + { + country_code: 'bs', + country_name: 'Bahamas', + }, + { + country_code: 'bh', + country_name: 'Bahrain', + }, + { + country_code: 'bd', + country_name: 'Bangladesh', + }, + { + country_code: 'bb', + country_name: 'Barbados', + }, + { + country_code: 'by', + country_name: 'Belarus', + }, + { + country_code: 'be', + country_name: 'Belgium', + }, + { + country_code: 'bz', + country_name: 'Belize', + }, + { + country_code: 'bj', + country_name: 'Benin', + }, + { + country_code: 'bm', + country_name: 'Bermuda', + }, + { + country_code: 'bt', + country_name: 'Bhutan', + }, + { + country_code: 'bo', + country_name: 'Bolivia', + }, + { + country_code: 'ba', + country_name: 'Bosnia and Herzegovina', + }, + { + country_code: 'bw', + country_name: 'Botswana', + }, + { + country_code: 'bv', + country_name: 'Bouvet Island', + }, + { + country_code: 'br', + country_name: 'Brazil', + }, + { + country_code: 'io', + country_name: 'British Indian Ocean Territory', + }, + { + country_code: 'bn', + country_name: 'Brunei Darussalam', + }, + { + country_code: 'bg', + country_name: 'Bulgaria', + }, + { + country_code: 'bf', + country_name: 'Burkina Faso', + }, + { + country_code: 'bi', + country_name: 'Burundi', + }, + { + country_code: 'kh', + country_name: 'Cambodia', + }, + { + country_code: 'cm', + country_name: 'Cameroon', + }, + { + country_code: 'ca', + country_name: 'Canada', + }, + { + country_code: 'cv', + country_name: 'Cape Verde', + }, + { + country_code: 'ky', + country_name: 'Cayman Islands', + }, + { + country_code: 'cf', + country_name: 'Central African Republic', + }, + { + country_code: 'td', + country_name: 'Chad', + }, + { + country_code: 'cl', + country_name: 'Chile', + }, + { + country_code: 'cn', + country_name: 'China', + }, + { + country_code: 'cx', + country_name: 'Christmas Island', + }, + { + country_code: 'cc', + country_name: 'Cocos (Keeling) Islands', + }, + { + country_code: 'co', + country_name: 'Colombia', + }, + { + country_code: 'km', + country_name: 'Comoros', + }, + { + country_code: 'cg', + country_name: 'Congo', + }, + { + country_code: 'cd', + country_name: 'Congo, the Democratic Republic of the', + }, + { + country_code: 'ck', + country_name: 'Cook Islands', + }, + { + country_code: 'cr', + country_name: 'Costa Rica', + }, + { + country_code: 'ci', + country_name: "Cote D'ivoire", + }, + { + country_code: 'hr', + country_name: 'Croatia', + }, + { + country_code: 'cu', + country_name: 'Cuba', + }, + { + country_code: 'cy', + country_name: 'Cyprus', + }, + { + country_code: 'cz', + country_name: 'Czech Republic', + }, + { + country_code: 'dk', + country_name: 'Denmark', + }, + { + country_code: 'dj', + country_name: 'Djibouti', + }, + { + country_code: 'dm', + country_name: 'Dominica', + }, + { + country_code: 'do', + country_name: 'Dominican Republic', + }, + { + country_code: 'ec', + country_name: 'Ecuador', + }, + { + country_code: 'eg', + country_name: 'Egypt', + }, + { + country_code: 'sv', + country_name: 'El Salvador', + }, + { + country_code: 'gq', + country_name: 'Equatorial Guinea', + }, + { + country_code: 'er', + country_name: 'Eritrea', + }, + { + country_code: 'ee', + country_name: 'Estonia', + }, + { + country_code: 'et', + country_name: 'Ethiopia', + }, + { + country_code: 'fk', + country_name: 'Falkland Islands (Malvinas)', + }, + { + country_code: 'fo', + country_name: 'Faroe Islands', + }, + { + country_code: 'fj', + country_name: 'Fiji', + }, + { + country_code: 'fi', + country_name: 'Finland', + }, + { + country_code: 'fr', + country_name: 'France', + }, + { + country_code: 'gf', + country_name: 'French Guiana', + }, + { + country_code: 'pf', + country_name: 'French Polynesia', + }, + { + country_code: 'tf', + country_name: 'French Southern Territories', + }, + { + country_code: 'ga', + country_name: 'Gabon', + }, + { + country_code: 'gm', + country_name: 'Gambia', + }, + { + country_code: 'ge', + country_name: 'Georgia', + }, + { + country_code: 'de', + country_name: 'Germany', + }, + { + country_code: 'gh', + country_name: 'Ghana', + }, + { + country_code: 'gi', + country_name: 'Gibraltar', + }, + { + country_code: 'gr', + country_name: 'Greece', + }, + { + country_code: 'gl', + country_name: 'Greenland', + }, + { + country_code: 'gd', + country_name: 'Grenada', + }, + { + country_code: 'gp', + country_name: 'Guadeloupe', + }, + { + country_code: 'gu', + country_name: 'Guam', + }, + { + country_code: 'gt', + country_name: 'Guatemala', + }, + { + country_code: 'gn', + country_name: 'Guinea', + }, + { + country_code: 'gw', + country_name: 'Guinea-Bissau', + }, + { + country_code: 'gy', + country_name: 'Guyana', + }, + { + country_code: 'ht', + country_name: 'Haiti', + }, + { + country_code: 'hm', + country_name: 'Heard Island and Mcdonald Islands', + }, + { + country_code: 'va', + country_name: 'Holy See (Vatican City State)', + }, + { + country_code: 'hn', + country_name: 'Honduras', + }, + { + country_code: 'hk', + country_name: 'Hong Kong', + }, + { + country_code: 'hu', + country_name: 'Hungary', + }, + { + country_code: 'is', + country_name: 'Iceland', + }, + { + country_code: 'in', + country_name: 'India', + }, + { + country_code: 'id', + country_name: 'Indonesia', + }, + { + country_code: 'ir', + country_name: 'Iran, Islamic Republic of', + }, + { + country_code: 'iq', + country_name: 'Iraq', + }, + { + country_code: 'ie', + country_name: 'Ireland', + }, + { + country_code: 'il', + country_name: 'Israel', + }, + { + country_code: 'it', + country_name: 'Italy', + }, + { + country_code: 'jm', + country_name: 'Jamaica', + }, + { + country_code: 'jp', + country_name: 'Japan', + }, + { + country_code: 'jo', + country_name: 'Jordan', + }, + { + country_code: 'kz', + country_name: 'Kazakhstan', + }, + { + country_code: 'ke', + country_name: 'Kenya', + }, + { + country_code: 'ki', + country_name: 'Kiribati', + }, + { + country_code: 'kp', + country_name: "Korea, Democratic People's Republic of", + }, + { + country_code: 'kr', + country_name: 'Korea, Republic of', + }, + { + country_code: 'kw', + country_name: 'Kuwait', + }, + { + country_code: 'kg', + country_name: 'Kyrgyzstan', + }, + { + country_code: 'la', + country_name: "Lao People's Democratic Republic", + }, + { + country_code: 'lv', + country_name: 'Latvia', + }, + { + country_code: 'lb', + country_name: 'Lebanon', + }, + { + country_code: 'ls', + country_name: 'Lesotho', + }, + { + country_code: 'lr', + country_name: 'Liberia', + }, + { + country_code: 'ly', + country_name: 'Libyan Arab Jamahiriya', + }, + { + country_code: 'li', + country_name: 'Liechtenstein', + }, + { + country_code: 'lt', + country_name: 'Lithuania', + }, + { + country_code: 'lu', + country_name: 'Luxembourg', + }, + { + country_code: 'mo', + country_name: 'Macao', + }, + { + country_code: 'mk', + country_name: 'Macedonia, the Former Yugosalv Republic of', + }, + { + country_code: 'mg', + country_name: 'Madagascar', + }, + { + country_code: 'mw', + country_name: 'Malawi', + }, + { + country_code: 'my', + country_name: 'Malaysia', + }, + { + country_code: 'mv', + country_name: 'Maldives', + }, + { + country_code: 'ml', + country_name: 'Mali', + }, + { + country_code: 'mt', + country_name: 'Malta', + }, + { + country_code: 'mh', + country_name: 'Marshall Islands', + }, + { + country_code: 'mq', + country_name: 'Martinique', + }, + { + country_code: 'mr', + country_name: 'Mauritania', + }, + { + country_code: 'mu', + country_name: 'Mauritius', + }, + { + country_code: 'yt', + country_name: 'Mayotte', + }, + { + country_code: 'mx', + country_name: 'Mexico', + }, + { + country_code: 'fm', + country_name: 'Micronesia, Federated States of', + }, + { + country_code: 'md', + country_name: 'Moldova, Republic of', + }, + { + country_code: 'mc', + country_name: 'Monaco', + }, + { + country_code: 'mn', + country_name: 'Mongolia', + }, + { + country_code: 'ms', + country_name: 'Montserrat', + }, + { + country_code: 'ma', + country_name: 'Morocco', + }, + { + country_code: 'mz', + country_name: 'Mozambique', + }, + { + country_code: 'mm', + country_name: 'Myanmar', + }, + { + country_code: 'na', + country_name: 'Namibia', + }, + { + country_code: 'nr', + country_name: 'Nauru', + }, + { + country_code: 'np', + country_name: 'Nepal', + }, + { + country_code: 'nl', + country_name: 'Netherlands', + }, + { + country_code: 'an', + country_name: 'Netherlands Antilles', + }, + { + country_code: 'nc', + country_name: 'New Caledonia', + }, + { + country_code: 'nz', + country_name: 'New Zealand', + }, + { + country_code: 'ni', + country_name: 'Nicaragua', + }, + { + country_code: 'ne', + country_name: 'Niger', + }, + { + country_code: 'ng', + country_name: 'Nigeria', + }, + { + country_code: 'nu', + country_name: 'Niue', + }, + { + country_code: 'nf', + country_name: 'Norfolk Island', + }, + { + country_code: 'mp', + country_name: 'Northern Mariana Islands', + }, + { + country_code: 'no', + country_name: 'Norway', + }, + { + country_code: 'om', + country_name: 'Oman', + }, + { + country_code: 'pk', + country_name: 'Pakistan', + }, + { + country_code: 'pw', + country_name: 'Palau', + }, + { + country_code: 'ps', + country_name: 'Palestinian Territory, Occupied', + }, + { + country_code: 'pa', + country_name: 'Panama', + }, + { + country_code: 'pg', + country_name: 'Papua New Guinea', + }, + { + country_code: 'py', + country_name: 'Paraguay', + }, + { + country_code: 'pe', + country_name: 'Peru', + }, + { + country_code: 'ph', + country_name: 'Philippines', + }, + { + country_code: 'pn', + country_name: 'Pitcairn', + }, + { + country_code: 'pl', + country_name: 'Poland', + }, + { + country_code: 'pt', + country_name: 'Portugal', + }, + { + country_code: 'pr', + country_name: 'Puerto Rico', + }, + { + country_code: 'qa', + country_name: 'Qatar', + }, + { + country_code: 're', + country_name: 'Reunion', + }, + { + country_code: 'ro', + country_name: 'Romania', + }, + { + country_code: 'ru', + country_name: 'Russian Federation', + }, + { + country_code: 'rw', + country_name: 'Rwanda', + }, + { + country_code: 'sh', + country_name: 'Saint Helena', + }, + { + country_code: 'kn', + country_name: 'Saint Kitts and Nevis', + }, + { + country_code: 'lc', + country_name: 'Saint Lucia', + }, + { + country_code: 'pm', + country_name: 'Saint Pierre and Miquelon', + }, + { + country_code: 'vc', + country_name: 'Saint Vincent and the Grenadines', + }, + { + country_code: 'ws', + country_name: 'Samoa', + }, + { + country_code: 'sm', + country_name: 'San Marino', + }, + { + country_code: 'st', + country_name: 'Sao Tome and Principe', + }, + { + country_code: 'sa', + country_name: 'Saudi Arabia', + }, + { + country_code: 'sn', + country_name: 'Senegal', + }, + { + country_code: 'rs', + country_name: 'Serbia and Montenegro', + }, + { + country_code: 'sc', + country_name: 'Seychelles', + }, + { + country_code: 'sl', + country_name: 'Sierra Leone', + }, + { + country_code: 'sg', + country_name: 'Singapore', + }, + { + country_code: 'sk', + country_name: 'Slovakia', + }, + { + country_code: 'si', + country_name: 'Slovenia', + }, + { + country_code: 'sb', + country_name: 'Solomon Islands', + }, + { + country_code: 'so', + country_name: 'Somalia', + }, + { + country_code: 'za', + country_name: 'South Africa', + }, + { + country_code: 'gs', + country_name: 'South Georgia and the South Sandwich Islands', + }, + { + country_code: 'es', + country_name: 'Spain', + }, + { + country_code: 'lk', + country_name: 'Sri Lanka', + }, + { + country_code: 'sd', + country_name: 'Sudan', + }, + { + country_code: 'sr', + country_name: 'Suriname', + }, + { + country_code: 'sj', + country_name: 'Svalbard and Jan Mayen', + }, + { + country_code: 'sz', + country_name: 'Swaziland', + }, + { + country_code: 'se', + country_name: 'Sweden', + }, + { + country_code: 'ch', + country_name: 'Switzerland', + }, + { + country_code: 'sy', + country_name: 'Syrian Arab Republic', + }, + { + country_code: 'tw', + country_name: 'Taiwan, Province of China', + }, + { + country_code: 'tj', + country_name: 'Tajikistan', + }, + { + country_code: 'tz', + country_name: 'Tanzania, United Republic of', + }, + { + country_code: 'th', + country_name: 'Thailand', + }, + { + country_code: 'tl', + country_name: 'Timor-Leste', + }, + { + country_code: 'tg', + country_name: 'Togo', + }, + { + country_code: 'tk', + country_name: 'Tokelau', + }, + { + country_code: 'to', + country_name: 'Tonga', + }, + { + country_code: 'tt', + country_name: 'Trinidad and Tobago', + }, + { + country_code: 'tn', + country_name: 'Tunisia', + }, + { + country_code: 'tr', + country_name: 'Turkiye', + }, + { + country_code: 'tm', + country_name: 'Turkmenistan', + }, + { + country_code: 'tc', + country_name: 'Turks and Caicos Islands', + }, + { + country_code: 'tv', + country_name: 'Tuvalu', + }, + { + country_code: 'ug', + country_name: 'Uganda', + }, + { + country_code: 'ua', + country_name: 'Ukraine', + }, + { + country_code: 'ae', + country_name: 'United Arab Emirates', + }, + { + country_code: 'uk', + country_name: 'United Kingdom', + }, + { + country_code: 'gb', + country_name: 'United Kingdom', + }, + { + country_code: 'us', + country_name: 'United States', + }, + { + country_code: 'um', + country_name: 'United States Minor Outlying Islands', + }, + { + country_code: 'uy', + country_name: 'Uruguay', + }, + { + country_code: 'uz', + country_name: 'Uzbekistan', + }, + { + country_code: 'vu', + country_name: 'Vanuatu', + }, + { + country_code: 've', + country_name: 'Venezuela', + }, + { + country_code: 'vn', + country_name: 'Viet Nam', + }, + { + country_code: 'vg', + country_name: 'Virgin Islands, British', + }, + { + country_code: 'vi', + country_name: 'Virgin Islands, U.S.', + }, + { + country_code: 'wf', + country_name: 'Wallis and Futuna', + }, + { + country_code: 'eh', + country_name: 'Western Sahara', + }, + { + country_code: 'ye', + country_name: 'Yemen', + }, + { + country_code: 'zm', + country_name: 'Zambia', + }, + { + country_code: 'zw', + country_name: 'Zimbabwe', + }, +].map((x) => ({ label: x.country_name, value: x.country_code })); + +export const BingCountryOptions = [ + { label: 'Argentina AR', value: 'AR' }, + { label: 'Australia AU', value: 'AU' }, + { label: 'Austria AT', value: 'AT' }, + { label: 'Belgium BE', value: 'BE' }, + { label: 'Brazil BR', value: 'BR' }, + { label: 'Canada CA', value: 'CA' }, + { label: 'Chile CL', value: 'CL' }, + { label: 'Denmark DK', value: 'DK' }, + { label: 'Finland FI', value: 'FI' }, + { label: 'France FR', value: 'FR' }, + { label: 'Germany DE', value: 'DE' }, + { label: 'Hong Kong SAR HK', value: 'HK' }, + { label: 'India IN', value: 'IN' }, + { label: 'Indonesia ID', value: 'ID' }, + { label: 'Italy IT', value: 'IT' }, + { label: 'Japan JP', value: 'JP' }, + { label: 'Korea KR', value: 'KR' }, + { label: 'Malaysia MY', value: 'MY' }, + { label: 'Mexico MX', value: 'MX' }, + { label: 'Netherlands NL', value: 'NL' }, + { label: 'New Zealand NZ', value: 'NZ' }, + { label: 'Norway NO', value: 'NO' }, + { label: "People's Republic of China CN", value: 'CN' }, + { label: 'Poland PL', value: 'PL' }, + { label: 'Portugal PT', value: 'PT' }, + { label: 'Republic of the Philippines PH', value: 'PH' }, + { label: 'Russia RU', value: 'RU' }, + { label: 'Saudi Arabia SA', value: 'SA' }, + { label: 'South Africa ZA', value: 'ZA' }, + { label: 'Spain ES', value: 'ES' }, + { label: 'Sweden SE', value: 'SE' }, + { label: 'Switzerland CH', value: 'CH' }, + { label: 'Taiwan TW', value: 'TW' }, + { label: 'Türkiye TR', value: 'TR' }, + { label: 'United Kingdom GB', value: 'GB' }, + { label: 'United States US', value: 'US' }, +]; + +export const BingLanguageOptions = [ + { label: 'Arabic ar', value: 'ar' }, + { label: 'Basque eu', value: 'eu' }, + { label: 'Bengali bn', value: 'bn' }, + { label: 'Bulgarian bg', value: 'bg' }, + { label: 'Catalan ca', value: 'ca' }, + { label: 'Chinese (Simplified) zh-hans', value: 'ns' }, + { label: 'Chinese (Traditional) zh-hant', value: 'nt' }, + { label: 'Croatian hr', value: 'hr' }, + { label: 'Czech cs', value: 'cs' }, + { label: 'Danish da', value: 'da' }, + { label: 'Dutch nl', value: 'nl' }, + { label: 'English en', value: 'en' }, + { label: 'English-United Kingdom en-gb', value: 'gb' }, + { label: 'Estonian et', value: 'et' }, + { label: 'Finnish fi', value: 'fi' }, + { label: 'French fr', value: 'fr' }, + { label: 'Galician gl', value: 'gl' }, + { label: 'German de', value: 'de' }, + { label: 'Gujarati gu', value: 'gu' }, + { label: 'Hebrew he', value: 'he' }, + { label: 'Hindi hi', value: 'hi' }, + { label: 'Hungarian hu', value: 'hu' }, + { label: 'Icelandic is', value: 'is' }, + { label: 'Italian it', value: 'it' }, + { label: 'Japanese jp', value: 'jp' }, + { label: 'Kannada kn', value: 'kn' }, + { label: 'Korean ko', value: 'ko' }, + { label: 'Latvian lv', value: 'lv' }, + { label: 'Lithuanian lt', value: 'lt' }, + { label: 'Malay ms', value: 'ms' }, + { label: 'Malayalam ml', value: 'ml' }, + { label: 'Marathi mr', value: 'mr' }, + { label: 'Norwegian (Bokmål) nb', value: 'nb' }, + { label: 'Polish pl', value: 'pl' }, + { label: 'Portuguese (Brazil) pt-br', value: 'br' }, + { label: 'Portuguese (Portugal) pt-pt', value: 'pt' }, + { label: 'Punjabi pa', value: 'pa' }, + { label: 'Romanian ro', value: 'ro' }, + { label: 'Russian ru', value: 'ru' }, + { label: 'Serbian (Cyrylic) sr', value: 'sr' }, + { label: 'Slovak sk', value: 'sk' }, + { label: 'Slovenian sl', value: 'sl' }, + { label: 'Spanish es', value: 'es' }, + { label: 'Swedish sv', value: 'sv' }, + { label: 'Tamil ta', value: 'ta' }, + { label: 'Telugu te', value: 'te' }, + { label: 'Thai th', value: 'th' }, + { label: 'Turkish tr', value: 'tr' }, + { label: 'Ukrainian uk', value: 'uk' }, + { label: 'Vietnamese vi', value: 'vi' }, +]; + +export const DeepLSourceLangOptions = [ + { label: 'Arabic [1]', value: 'AR' }, + { label: 'Bulgarian', value: 'BG' }, + { label: 'Czech', value: 'CS' }, + { label: 'Danish', value: 'DA' }, + { label: 'German', value: 'DE' }, + { label: 'Greek', value: 'EL' }, + { label: 'English', value: 'EN' }, + { label: 'Spanish', value: 'ES' }, + { label: 'Estonian', value: 'ET' }, + { label: 'Finnish', value: 'FI' }, + { label: 'French', value: 'FR' }, + { label: 'Hungarian', value: 'HU' }, + { label: 'Indonesian', value: 'ID' }, + { label: 'Italian', value: 'IT' }, + { label: 'Japanese', value: 'JA' }, + { label: 'Korean', value: 'KO' }, + { label: 'Lithuanian', value: 'LT' }, + { label: 'Latvian', value: 'LV' }, + { label: 'Norwegian Bokmål', value: 'NB' }, + { label: 'Dutch', value: 'NL' }, + { label: 'Polish', value: 'PL' }, + { label: 'Portuguese (all Portuguese varieties mixed)', value: 'PT' }, + { label: 'Romanian', value: 'RO' }, + { label: 'Russian', value: 'RU' }, + { label: 'Slovak', value: 'SK' }, + { label: 'Slovenian', value: 'SL' }, + { label: 'Swedish', value: 'SV' }, + { label: 'Turkish', value: 'TR' }, + { label: 'Ukrainian', value: 'UK' }, + { label: 'Chinese', value: 'ZH' }, +]; +export const DeepLTargetLangOptions = [ + { label: 'Arabic [1]', value: 'AR' }, + { label: 'Bulgarian', value: 'BG' }, + { label: 'Czech', value: 'CS' }, + { label: 'Danish', value: 'DA' }, + { label: 'German', value: 'DE' }, + { label: 'Greek', value: 'EL' }, + { label: 'English (British)', value: 'EN-GB' }, + { label: 'English (American)', value: 'EN-US' }, + { label: 'Spanish', value: 'ES' }, + { label: 'Estonian', value: 'ET' }, + { label: 'Finnish', value: 'FI' }, + { label: 'French', value: 'FR' }, + { label: 'Hungarian', value: 'HU' }, + { label: 'Indonesian', value: 'ID' }, + { label: 'Italian', value: 'IT' }, + { label: 'Japanese', value: 'JA' }, + { label: 'Korean', value: 'KO' }, + { label: 'Lithuanian', value: 'LT' }, + { label: 'Latvian', value: 'LV' }, + { label: 'Norwegian Bokmål', value: 'NB' }, + { label: 'Dutch', value: 'NL' }, + { label: 'Polish', value: 'PL' }, + { label: 'Portuguese (Brazilian)', value: 'PT-BR' }, + { + label: + 'Portuguese (all Portuguese varieties excluding Brazilian Portuguese)', + value: 'PT-PT', + }, + { label: 'Romanian', value: 'RO' }, + { label: 'Russian', value: 'RU' }, + { label: 'Slovak', value: 'SK' }, + { label: 'Slovenian', value: 'SL' }, + { label: 'Swedish', value: 'SV' }, + { label: 'Turkish', value: 'TR' }, + { label: 'Ukrainian', value: 'UK' }, + { label: 'Chinese (simplified)', value: 'ZH' }, +]; + +export const BaiduFanyiDomainOptions = [ + 'it', + 'finance', + 'machinery', + 'senimed', + 'novel', + 'academic', + 'aerospace', + 'wiki', + 'news', + 'law', + 'contract', +]; + +export const BaiduFanyiSourceLangOptions = [ + 'auto', + 'zh', + 'en', + 'yue', + 'wyw', + 'jp', + 'kor', + 'fra', + 'spa', + 'th', + 'ara', + 'ru', + 'pt', + 'de', + 'it', + 'el', + 'nl', + 'pl', + 'bul', + 'est', + 'dan', + 'fin', + 'cs', + 'rom', + 'slo', + 'swe', + 'hu', + 'cht', + 'vie', +]; + +export const QWeatherLangOptions = [ + 'zh', + 'zh-hant', + 'en', + 'de', + 'es', + 'fr', + 'it', + 'ja', + 'ko', + 'ru', + 'hi', + 'th', + 'ar', + 'pt', + 'bn', + 'ms', + 'nl', + 'el', + 'la', + 'sv', + 'id', + 'pl', + 'tr', + 'cs', + 'et', + 'vi', + 'fil', + 'fi', + 'he', + 'is', + 'nb', +]; + +export const QWeatherTypeOptions = ['weather', 'indices', 'airquality']; + +export const QWeatherUserTypeOptions = ['free', 'paid']; + +export const QWeatherTimePeriodOptions = [ + 'now', + '3d', + '7d', + '10d', + '15d', + '30d', +]; + +export const ExeSQLOptions = ['mysql', 'postgresql', 'mariadb', 'mssql'].map( + (x) => ({ + label: upperFirst(x), + value: x, + }), +); + +export const SwitchElseTo = 'end_cpn_id'; + +export const SwitchOperatorOptions = [ + { value: '=', label: 'equal' }, + { value: '≠', label: 'notEqual' }, + { value: '>', label: 'gt' }, + { value: '≥', label: 'ge' }, + { value: '<', label: 'lt' }, + { value: '≤', label: 'le' }, + { value: 'contains', label: 'contains' }, + { value: 'not contains', label: 'notContains' }, + { value: 'start with', label: 'startWith' }, + { value: 'end with', label: 'endWith' }, + { value: 'empty', label: 'empty' }, + { value: 'not empty', label: 'notEmpty' }, +]; + +export const SwitchLogicOperatorOptions = ['and', 'or']; + +export const WenCaiQueryTypeOptions = [ + 'stock', + 'zhishu', + 'fund', + 'hkstock', + 'usstock', + 'threeboard', + 'conbond', + 'insurance', + 'futures', + 'lccp', + 'foreign_exchange', +]; + +export const Jin10TypeOptions = ['flash', 'calendar', 'symbols', 'news']; +export const Jin10FlashTypeOptions = new Array(5) + .fill(1) + .map((x, idx) => (idx + 1).toString()); +export const Jin10CalendarTypeOptions = ['cj', 'qh', 'hk', 'us']; +export const Jin10CalendarDatashapeOptions = ['data', 'event', 'holiday']; +export const Jin10SymbolsTypeOptions = ['GOODS', 'FOREX', 'FUTURE', 'CRYPTO']; +export const Jin10SymbolsDatatypeOptions = ['symbols', 'quotes']; +export const TuShareSrcOptions = [ + 'sina', + 'wallstreetcn', + '10jqka', + 'eastmoney', + 'yuncaijing', + 'fenghuang', + 'jinrongjie', +]; +export const CrawlerResultOptions = ['markdown', 'html', 'content']; + +export enum BeginQueryType { + Line = 'line', + Paragraph = 'paragraph', + Options = 'options', + File = 'file', + Integer = 'integer', + Boolean = 'boolean', +} + +export const BeginQueryTypeIconMap = { + [BeginQueryType.Line]: TextCursorInput, + [BeginQueryType.Paragraph]: WrapText, + [BeginQueryType.Options]: OptionIcon, + [BeginQueryType.File]: CloudUpload, + [BeginQueryType.Integer]: ListOrdered, + [BeginQueryType.Boolean]: ToggleLeft, +}; + +export const NoDebugOperatorsList = [ + Operator.Begin, + Operator.Answer, + Operator.Concentrator, + Operator.Template, + Operator.Message, + Operator.RewriteQuestion, + Operator.Switch, + Operator.Iteration, +]; diff --git a/web/src/pages/agent/operator-icon/index.tsx b/web/src/pages/agent/operator-icon/index.tsx new file mode 100644 index 000000000..1f6ec2c7f --- /dev/null +++ b/web/src/pages/agent/operator-icon/index.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { Operator, operatorIconMap } from '../constant'; + +interface IProps { + name: Operator; + fontSize?: number; + width?: number; + color?: string; +} + +const OperatorIcon = ({ name, fontSize, width, color }: IProps) => { + const Icon = operatorIconMap[name] || React.Fragment; + return ( + + ); +}; + +export default OperatorIcon;