Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dlink
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhaowei
dlink
Commits
372436bd
Commit
372436bd
authored
Dec 29, 2021
by
wenmo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增 Mysql,Oracle,PostGreSql,ClickHouse,Doris,Java 方言及图标
parent
a1bbe440
Changes
17
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
402 additions
and
99 deletions
+402
-99
README.md
README.md
+61
-50
SqlDTO.java
dlink-admin/src/main/java/com/dlink/dto/SqlDTO.java
+28
-0
StudioService.java
...-admin/src/main/java/com/dlink/service/StudioService.java
+3
-0
StudioServiceImpl.java
...c/main/java/com/dlink/service/impl/StudioServiceImpl.java
+10
-12
TaskServiceImpl.java
...src/main/java/com/dlink/service/impl/TaskServiceImpl.java
+7
-0
Dialect.java
dlink-core/src/main/java/com/dlink/config/Dialect.java
+13
-1
AbstractJdbcDriver.java
...in/java/com/dlink/metadata/driver/AbstractJdbcDriver.java
+3
-0
index.tsx
dlink-web/src/components/Studio/StudioMenu/index.tsx
+4
-4
index.tsx
...mponents/Studio/StudioRightTool/StudioSqlConfig/index.tsx
+6
-4
index.tsx
dlink-web/src/components/Studio/StudioRightTool/index.tsx
+10
-5
index.tsx
dlink-web/src/components/Studio/StudioTabs/index.tsx
+3
-1
Function.ts
dlink-web/src/components/Studio/StudioTree/Function.ts
+1
-2
SimpleTaskForm.tsx
...omponents/Studio/StudioTree/components/SimpleTaskForm.tsx
+6
-1
index.tsx
dlink-web/src/components/Studio/StudioTree/index.tsx
+9
-19
conf.ts
dlink-web/src/components/Studio/conf.ts
+19
-0
icon.tsx
dlink-web/src/components/Studio/icon.tsx
+216
-0
Welcome.tsx
dlink-web/src/pages/Welcome.tsx
+3
-0
No files found.
README.md
View file @
372436bd
...
...
@@ -21,7 +21,7 @@ Dlink 是一个交互式的 FlinkSQL Studio,可以在线开发、补全、校
注意:以下功能均为对应版本已实现的功能,实测可用。
| 应用 | 方向 | 功能 | 进展 |
|
:------: |:----------:|---------------------------------------| :---:
|
|
:-------:|:----------:|-------------------------------------------|:-----:
|
| 开发中心 | FlinkSQL | 支持 sql-client 所有语法 | 0.4.0 |
| | | 支持 Flink 所有 Configuration | 0.4.0 |
| | | 支持 Flink 所有 Connector | 0.4.0 |
...
...
@@ -29,6 +29,7 @@ Dlink 是一个交互式的 FlinkSQL Studio,可以在线开发、补全、校
| | | 支持 INSERT 语句集 | 0.4.0 |
| | | 新增 SQL 片段语法 | 0.4.0 |
| | | 新增 AGGTABLE 表值聚合语法及 UDATF 支持 | 0.4.0 |
| | | 新增 FlinkSQLEnv 执行环境复用 | 0.5.0 |
| | | 新增 Flink Catalog 交互查询 | 0.4.0 |
| | | 新增 执行环境的共享与私有会话机制 | 0.4.0 |
| | | 新增 多种方言的作业目录管理(FlinkSQL、SQL、Java) | 0.5.0 |
...
...
@@ -46,13 +47,14 @@ Dlink 是一个交互式的 FlinkSQL Studio,可以在线开发、补全、校
| | | 支持 yarn session 模式下 FlinkSQL 提交 | 0.4.0 |
| | | 支持 yarn per-job 模式下 FlinkSQL 提交 | 0.4.0 |
| | | 支持 yarn application 模式下 FlinkSQL 提交 | 0.4.0 |
|
| | 支持 kubernetes session 模式下 FlinkSQL 提交 | 0.4
.0 |
|
| | 支持 kubernetes application 模式下 FlinkSQL 提交 | 0.4
.0 |
|
| | 支持 kubernetes session 模式下 FlinkSQL 提交 | 0.5
.0 |
|
| | 支持 kubernetes application 模式下 FlinkSQL 提交 | 0.5
.0 |
| | Flink 作业 | 支持 yarn application 模式下 Jar 提交 | 0.4.0 |
|
| | 支持 k8s application 模式下 Jar 提交 | 0.4
.0 |
|
| | 支持 k8s application 模式下 Jar 提交 | 0.5
.0 |
| | | 支持 作业 Cancel | 0.4.0 |
| | | 支持 作业 SavePoint 的 Cancel、Stop、Trigger | 0.4.0 |
| | | 新增 作业自动从 SavePoint 恢复机制(包含最近、最早、指定一次) | 0.4.0 |
| | | 新增 UDF java方言代码的开发 | 0.5.0 |
| | Flink 集群 | 支持 查看已注册集群的作业列表与运维 | 0.4.0 |
| | | 新增 自动注册 Yarn 创建的集群 | 0.4.0 |
| | SQL | 新增 外部数据源的 SQL 校验 | 0.5.0 |
...
...
@@ -69,6 +71,15 @@ Dlink 是一个交互式的 FlinkSQL Studio,可以在线开发、补全、校
| | | 新增 Oracle 数据源注册及测试 | 0.4.0 |
| | | 新增 postgreSql 数据源注册及测试 | 0.4.0 |
| | | 新增 ClickHouse 数据源注册及测试 | 0.4.0 |
| OpenApi | 调度 | 新增 submitTask 调度接口 | 0.5.0 |
| | FlinkSQL | 新增 executeSql 提交接口 | 0.5.0 |
| | | 新增 explainSql 验证接口 | 0.5.0 |
| | | 新增 getJobPlan 计划接口 | 0.5.0 |
| | | 新增 getStreamGraph 计划接口 | 0.5.0 |
| | | 新增 getJobData 数据接口 | 0.5.0 |
| | Flink | 新增 executeJar 提交接口 | 0.5.0 |
| | | 新增 cancel 停止接口 | 0.5.0 |
| | | 新增 savepoint 触发接口 | 0.5.0 |
| 关于 | 关于 Dlink | 版本更新记录 | 0.4.0 |
## 部署
...
...
dlink-admin/src/main/java/com/dlink/dto/SqlDTO.java
0 → 100644
View file @
372436bd
package
com
.
dlink
.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* SqlDTO
*
* @author wenmo
* @since 2021/12/29 19:42
*/
@Getter
@Setter
public
class
SqlDTO
{
private
String
statement
;
private
Integer
databaseId
;
private
Integer
maxRowNum
;
public
SqlDTO
(
String
statement
,
Integer
databaseId
,
Integer
maxRowNum
)
{
this
.
statement
=
statement
;
this
.
databaseId
=
databaseId
;
this
.
maxRowNum
=
maxRowNum
;
}
public
static
SqlDTO
build
(
String
statement
,
Integer
databaseId
,
Integer
maxRowNum
){
return
new
SqlDTO
(
statement
,
databaseId
,
maxRowNum
);
}
}
dlink-admin/src/main/java/com/dlink/service/StudioService.java
View file @
372436bd
package
com
.
dlink
.
service
;
import
com.dlink.dto.SessionDTO
;
import
com.dlink.dto.SqlDTO
;
import
com.dlink.dto.StudioDDLDTO
;
import
com.dlink.dto.StudioExecuteDTO
;
import
com.dlink.explainer.ca.ColumnCANode
;
...
...
@@ -25,6 +26,8 @@ public interface StudioService {
JobResult
executeSql
(
StudioExecuteDTO
studioExecuteDTO
);
JobResult
executeCommonSql
(
SqlDTO
sqlDTO
);
IResult
executeDDL
(
StudioDDLDTO
studioDDLDTO
);
List
<
SqlExplainResult
>
explainSql
(
StudioExecuteDTO
studioExecuteDTO
);
...
...
dlink-admin/src/main/java/com/dlink/service/impl/StudioServiceImpl.java
View file @
372436bd
...
...
@@ -3,10 +3,7 @@ package com.dlink.service.impl;
import
com.dlink.api.FlinkAPI
;
import
com.dlink.assertion.Asserts
;
import
com.dlink.config.Dialect
;
import
com.dlink.dto.AbstractStatementDTO
;
import
com.dlink.dto.SessionDTO
;
import
com.dlink.dto.StudioDDLDTO
;
import
com.dlink.dto.StudioExecuteDTO
;
import
com.dlink.dto.*
;
import
com.dlink.explainer.ca.CABuilder
;
import
com.dlink.explainer.ca.ColumnCANode
;
import
com.dlink.explainer.ca.TableCANode
;
...
...
@@ -77,8 +74,9 @@ public class StudioServiceImpl implements StudioService {
@Override
public
JobResult
executeSql
(
StudioExecuteDTO
studioExecuteDTO
)
{
if
(
Dialect
.
SQL
.
equalsVal
(
studioExecuteDTO
.
getDialect
())){
return
executeCommonSql
(
studioExecuteDTO
);
if
(
Dialect
.
isSql
(
studioExecuteDTO
.
getDialect
())){
return
executeCommonSql
(
SqlDTO
.
build
(
studioExecuteDTO
.
getStatement
(),
studioExecuteDTO
.
getDatabaseId
(),
studioExecuteDTO
.
getMaxRowNum
()));
}
else
{
return
executeFlinkSql
(
studioExecuteDTO
);
}
...
...
@@ -97,17 +95,17 @@ public class StudioServiceImpl implements StudioService {
return
jobResult
;
}
p
rivate
JobResult
executeCommonSql
(
StudioExecuteDTO
studioExecute
DTO
)
{
p
ublic
JobResult
executeCommonSql
(
SqlDTO
sql
DTO
)
{
JobResult
result
=
new
JobResult
();
result
.
setStatement
(
s
tudioExecute
DTO
.
getStatement
());
result
.
setStatement
(
s
ql
DTO
.
getStatement
());
result
.
setStartTime
(
LocalDateTime
.
now
());
if
(
Asserts
.
isNull
(
s
tudioExecute
DTO
.
getDatabaseId
())){
if
(
Asserts
.
isNull
(
s
ql
DTO
.
getDatabaseId
())){
result
.
setSuccess
(
false
);
result
.
setError
(
"请指定数据源"
);
result
.
setEndTime
(
LocalDateTime
.
now
());
return
result
;
}
else
{
DataBase
dataBase
=
dataBaseService
.
getById
(
s
tudioExecute
DTO
.
getDatabaseId
());
DataBase
dataBase
=
dataBaseService
.
getById
(
s
ql
DTO
.
getDatabaseId
());
if
(
Asserts
.
isNull
(
dataBase
)){
result
.
setSuccess
(
false
);
result
.
setError
(
"数据源不存在"
);
...
...
@@ -115,7 +113,7 @@ public class StudioServiceImpl implements StudioService {
return
result
;
}
Driver
driver
=
Driver
.
build
(
dataBase
.
getDriverConfig
()).
connect
();
JdbcSelectResult
selectResult
=
driver
.
query
(
s
tudioExecuteDTO
.
getStatement
(),
studioExecute
DTO
.
getMaxRowNum
());
JdbcSelectResult
selectResult
=
driver
.
query
(
s
qlDTO
.
getStatement
(),
sql
DTO
.
getMaxRowNum
());
driver
.
close
();
result
.
setResult
(
selectResult
);
if
(
selectResult
.
isSuccess
()){
...
...
@@ -141,7 +139,7 @@ public class StudioServiceImpl implements StudioService {
@Override
public
List
<
SqlExplainResult
>
explainSql
(
StudioExecuteDTO
studioExecuteDTO
)
{
if
(
Dialect
.
SQL
.
equalsVa
l
(
studioExecuteDTO
.
getDialect
())){
if
(
Dialect
.
isSq
l
(
studioExecuteDTO
.
getDialect
())){
return
explainCommonSql
(
studioExecuteDTO
);
}
else
{
return
explainFlinkSql
(
studioExecuteDTO
);
...
...
dlink-admin/src/main/java/com/dlink/service/impl/TaskServiceImpl.java
View file @
372436bd
...
...
@@ -6,6 +6,7 @@ import com.dlink.assertion.Asserts;
import
com.dlink.assertion.Tips
;
import
com.dlink.config.Dialect
;
import
com.dlink.db.service.impl.SuperServiceImpl
;
import
com.dlink.dto.SqlDTO
;
import
com.dlink.gateway.GatewayType
;
import
com.dlink.job.JobConfig
;
import
com.dlink.job.JobManager
;
...
...
@@ -39,6 +40,8 @@ public class TaskServiceImpl extends SuperServiceImpl<TaskMapper, Task> implemen
private
SavepointsService
savepointsService
;
@Autowired
private
JarService
jarService
;
@Autowired
private
StudioService
studioService
;
@Value
(
"${spring.datasource.driver-class-name}"
)
private
String
driver
;
...
...
@@ -57,6 +60,10 @@ public class TaskServiceImpl extends SuperServiceImpl<TaskMapper, Task> implemen
public
JobResult
submitByTaskId
(
Integer
id
)
{
Task
task
=
this
.
getTaskInfoById
(
id
);
Asserts
.
checkNull
(
task
,
Tips
.
TASK_NOT_EXIST
);
if
(
Dialect
.
isSql
(
task
.
getDialect
())){
return
studioService
.
executeCommonSql
(
SqlDTO
.
build
(
task
.
getStatement
(),
task
.
getDatabaseId
(),
null
));
}
boolean
isJarTask
=
isJarTask
(
task
);
if
(!
isJarTask
&&
Asserts
.
isNotNull
(
task
.
getEnvId
())){
Task
envTask
=
getTaskInfoById
(
task
.
getEnvId
());
...
...
dlink-core/src/main/java/com/dlink/config/Dialect.java
View file @
372436bd
...
...
@@ -10,7 +10,9 @@ import com.dlink.assertion.Asserts;
**/
public
enum
Dialect
{
FLINKSQL
(
"FlinkSql"
),
FLINKSQLENV
(
"FlinkSqlEnv"
),
SQL
(
"Sql"
),
JAVA
(
"Java"
);
FLINKSQL
(
"FlinkSql"
),
FLINKSQLENV
(
"FlinkSqlEnv"
),
SQL
(
"Sql"
),
JAVA
(
"Java"
),
MYSQL
(
"Mysql"
),
ORACLE
(
"Oracle"
),
POSTGRESQL
(
"PostGreSql"
),
CLICKHOUSE
(
"ClickHouse"
),
DORIS
(
"Doris"
);
private
String
value
;
...
...
@@ -36,5 +38,15 @@ public enum Dialect {
}
return
Dialect
.
FLINKSQL
;
}
public
static
boolean
isSql
(
String
value
){
Dialect
dialect
=
Dialect
.
get
(
value
);
switch
(
dialect
){
case
SQL:
case
MYSQL:
case
ORACLE:
case
POSTGRESQL:
case
CLICKHOUSE:
case
DORIS:
return
true
;
default
:
return
false
;
}
}
}
dlink-metadata/dlink-metadata-base/src/main/java/com/dlink/metadata/driver/AbstractJdbcDriver.java
View file @
372436bd
...
...
@@ -248,6 +248,9 @@ public abstract class AbstractJdbcDriver extends AbstractDriver {
@Override
public
JdbcSelectResult
query
(
String
sql
,
Integer
limit
)
{
if
(
Asserts
.
isNull
(
limit
)){
limit
=
100
;
}
JdbcSelectResult
result
=
new
JdbcSelectResult
();
List
<
HashMap
<
String
,
Object
>>
datas
=
new
ArrayList
<>();
List
<
Column
>
columns
=
new
ArrayList
<>();
...
...
dlink-web/src/components/Studio/StudioMenu/index.tsx
View file @
372436bd
...
...
@@ -18,7 +18,7 @@ import StudioGraph from "./StudioGraph";
import
{
showCluster
,
showTables
,
saveTask
}
from
"@/components/Studio/StudioEvent/DDL"
;
import
{
useEffect
,
useState
}
from
"react"
;
import
StudioExplain
from
"../StudioConsole/StudioExplain"
;
import
{
DIALECT
}
from
"@/components/Studio/conf"
;
import
{
DIALECT
,
isSql
}
from
"@/components/Studio/conf"
;
const
menu
=
(
<
Menu
>
...
...
@@ -358,7 +358,7 @@ const StudioMenu = (props: any) => {
onClick=
{
onCheckSql
}
/>
</
Tooltip
>
{
current
.
task
.
dialect
==
DIALECT
.
FLINKSQL
&&
(
{
current
.
task
.
dialect
==
=
DIALECT
.
FLINKSQL
&&
(
<
Tooltip
title=
"获取当前的 FlinkSql 的执行图"
>
<
Button
type=
"text"
...
...
@@ -366,7 +366,7 @@ const StudioMenu = (props: any) => {
onClick=
{
onGetStreamGraph
}
/>
</
Tooltip
>)
}
{
(
current
.
task
.
dialect
==
DIALECT
.
FLINKSQL
||
current
.
task
.
dialect
==
DIALECT
.
SQL
)
&&
(
{
(
current
.
task
.
dialect
==
=
DIALECT
.
FLINKSQL
||
isSql
(
current
.
task
.
dialect
)
)
&&
(
<
Tooltip
title=
"执行当前的 FlinkSql"
>
<
Button
type=
"text"
...
...
@@ -375,7 +375,7 @@ const StudioMenu = (props: any) => {
onClick=
{
execute
}
/>
</
Tooltip
>)
}
{
current
.
task
.
dialect
==
DIALECT
.
FLINKSQL
&&
(<>
{
(
current
.
task
.
dialect
===
DIALECT
.
FLINKSQL
||
isSql
(
current
.
task
.
dialect
))
&&
(<>
<
Tooltip
title=
"提交当前的作业到集群"
>
<
Button
type=
"text"
...
...
dlink-web/src/components/Studio/StudioRightTool/StudioSqlConfig/index.tsx
View file @
372436bd
...
...
@@ -38,11 +38,13 @@ const StudioSqlConfig = (props: any) => {
const
getDataBaseOptions
=
()
=>
{
const
itemList
=
[];
for
(
const
item
of
database
)
{
if
(
item
.
type
.
toUpperCase
()
===
current
.
task
.
dialect
.
toUpperCase
())
{
const
tag
=
(<><
Tag
color=
{
item
.
enabled
?
"processing"
:
"error"
}
>
{
item
.
type
}
</
Tag
>
{
item
.
alias
}
</>);
itemList
.
push
(<
Option
key=
{
item
.
id
}
value=
{
item
.
id
}
label=
{
tag
}
>
{
tag
}
</
Option
>)
}
}
return
itemList
;
};
...
...
dlink-web/src/components/Studio/StudioRightTool/index.tsx
View file @
372436bd
...
...
@@ -8,7 +8,7 @@ import StudioSetting from "./StudioSetting";
import
StudioSavePoint
from
"./StudioSavePoint"
;
import
StudioEnvSetting
from
"./StudioEnvSetting"
;
import
StudioSqlConfig
from
"./StudioSqlConfig"
;
import
{
DIALECT
}
from
"@/components/Studio/conf"
;
import
{
DIALECT
,
isSql
}
from
"@/components/Studio/conf"
;
const
{
TabPane
}
=
Tabs
;
...
...
@@ -19,11 +19,16 @@ const StudioRightTool = (props:any) => {
const
{
current
,
form
,
toolHeight
}
=
props
;
const
renderContent
=
()
=>
{
switch
(
current
.
task
.
dialect
){
case
DIALECT
.
SQL
:
return
renderSqlContent
();
case
DIALECT
.
FLINKSQLENV
:
return
renderEnvContent
();
default
:
return
renderFlinkSqlContent
();
if
(
isSql
(
current
.
task
.
dialect
)){
return
renderSqlContent
();
}
if
(
DIALECT
.
FLINKSQLENV
===
current
.
task
.
dialect
){
return
renderEnvContent
();
}
if
(
DIALECT
.
JAVA
===
current
.
task
.
dialect
){
return
undefined
;
}
return
renderFlinkSqlContent
();
};
const
renderSqlContent
=
()
=>
{
...
...
dlink-web/src/components/Studio/StudioTabs/index.tsx
View file @
372436bd
...
...
@@ -5,6 +5,7 @@ import {StateType} from "@/pages/FlinkSqlStudio/model";
import
styles
from
'./index.less'
;
import
StudioEdit
from
'../StudioEdit'
;
import
{
saveTask
}
from
"@/components/Studio/StudioEvent/DDL"
;
import
{
DIALECT
}
from
'../conf'
;
const
{
TabPane
}
=
Tabs
;
...
...
@@ -79,7 +80,8 @@ const EditorTabs = (props: any) => {
>
{
tabs
.
panes
.
map
(
pane
=>
(
<
TabPane
tab=
{
pane
.
title
}
key=
{
pane
.
key
}
closable=
{
pane
.
closable
}
>
<
StudioEdit
tabsKey=
{
pane
.
key
}
height=
{
(
toolHeight
-
32
)
}
width=
{
width
}
/>
<
StudioEdit
tabsKey=
{
pane
.
key
}
height=
{
(
toolHeight
-
32
)
}
width=
{
width
}
language=
{
current
.
task
.
dialect
===
DIALECT
.
JAVA
?
'java'
:
'sql'
}
/>
</
TabPane
>
))
}
</
Tabs
>
...
...
dlink-web/src/components/Studio/StudioTree/Function.ts
View file @
372436bd
...
...
@@ -44,8 +44,7 @@ export function getTreeNodeByKey(node:any[], key:number) {
if
(
result
){
return
result
;
}
}
else
{
return
null
;
}
}
return
null
;
}
dlink-web/src/components/Studio/StudioTree/components/SimpleTaskForm.tsx
View file @
372436bd
...
...
@@ -53,8 +53,13 @@ const SimpleTaskForm: React.FC<UpdateFormProps> = (props) => {
<
Select
defaultValue=
{
DIALECT
.
FLINKSQL
}
value=
{
DIALECT
.
FLINKSQL
}
>
<
Option
value=
{
DIALECT
.
FLINKSQL
}
>
FlinkSql
</
Option
>
<
Option
value=
{
DIALECT
.
FLINKSQLENV
}
>
FlinkSql 环境
</
Option
>
<
Option
value=
{
DIALECT
.
SQL
}
>
Sql
</
Option
>
<
Option
value=
{
DIALECT
.
MYSQL
}
>
Mysql
</
Option
>
<
Option
value=
{
DIALECT
.
ORACLE
}
>
Oracle
</
Option
>
<
Option
value=
{
DIALECT
.
POSTGRESQL
}
>
PostGreSql
</
Option
>
<
Option
value=
{
DIALECT
.
CLICKHOUSE
}
>
ClickHouse
</
Option
>
<
Option
value=
{
DIALECT
.
DORIS
}
>
Doris
</
Option
>
<
Option
value=
{
DIALECT
.
JAVA
}
>
Java
</
Option
>
<
Option
value=
{
DIALECT
.
SQL
}
>
Sql
</
Option
>
</
Select
>
</
Form
.
Item
>):
undefined
}
<
Form
.
Item
...
...
dlink-web/src/components/Studio/StudioTree/index.tsx
View file @
372436bd
...
...
@@ -13,6 +13,8 @@ import {
import
UpdateCatalogueForm
from
'./components/UpdateCatalogueForm'
;
import
SimpleTaskForm
from
"@/components/Studio/StudioTree/components/SimpleTaskForm"
;
import
{
Scrollbars
}
from
"react-custom-scrollbars"
;
import
{
getIcon
}
from
"@/components/Studio/icon"
;
const
{
DirectoryTree
}
=
Tree
;
...
...
@@ -32,25 +34,9 @@ type RightClickMenu = {
categoryName
:
string
};
// const getParentKey = (key:any, tree:any) => {
// let parentKey;
// for (let i = 0; i < tree.length; i++) {
// const node = tree[i];
// if (node.children) {
// if (node.children.some((item:any) => item.key === key)) {
// parentKey = node.key;
// } else if (getParentKey(key, node.children)) {
// parentKey = getParentKey(key, node.children);
// }
// }
// }
// return parentKey;
// };
const
StudioTree
:
React
.
FC
<
StudioTreeProps
>
=
(
props
)
=>
{
const
{
rightClickMenu
,
dispatch
,
tabs
,
refs
,
toolHeight
}
=
props
;
const
[
treeData
,
setTreeData
]
=
useState
<
TreeDataNode
[]
>
();
//const [dataList, setDataList] = useState<[]>();
const
[
expandedKeys
,
setExpandedKeys
]
=
useState
<
Key
[]
>
();
const
[
rightClickNodeTreeItem
,
setRightClickNodeTreeItem
]
=
useState
<
RightClickMenu
>
();
const
[
updateCatalogueModalVisible
,
handleUpdateCatalogueModalVisible
]
=
useState
<
boolean
>
(
false
);
...
...
@@ -60,7 +46,7 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => {
const
[
taskFormValues
,
setTaskFormValues
]
=
useState
({});
const
[
rightClickNode
,
setRightClickNode
]
=
useState
<
TreeDataNode
>
();
const
[
available
,
setAvailable
]
=
useState
<
boolean
>
(
true
);
let
sref
:
any
=
React
.
createRef
<
Scrollbars
>
();
const
sref
:
any
=
React
.
createRef
<
Scrollbars
>
();
const
getTreeData
=
async
()
=>
{
const
result
=
await
getCatalogueTreeData
();
...
...
@@ -69,8 +55,10 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => {
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
){
list
[
i
].
title
=
list
[
i
].
name
;
list
[
i
].
key
=
list
[
i
].
id
;
if
(
list
[
i
].
isLeaf
){
list
[
i
].
icon
=
getIcon
(
list
[
i
].
type
);
}
}
// setDataList(list);
data
=
convertToTreeData
(
data
,
0
);
setTreeData
(
data
);
};
...
...
@@ -82,8 +70,10 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => {
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
){
list
[
i
].
title
=
list
[
i
].
name
;
list
[
i
].
key
=
list
[
i
].
id
;
if
(
list
[
i
].
isLeaf
){
list
[
i
].
icon
=
getIcon
(
list
[
i
].
type
);
}
}
//setDataList(list);
data
=
convertToTreeData
(
data
,
0
);
setTreeData
(
data
);
let
node
=
getTreeNodeByKey
(
data
,
key
);
...
...
dlink-web/src/components/Studio/conf.ts
View file @
372436bd
...
...
@@ -12,5 +12,24 @@ export const DIALECT = {
FLINKSQL
:
'FlinkSql'
,
FLINKSQLENV
:
'FlinkSqlEnv'
,
SQL
:
'Sql'
,
MYSQL
:
'Mysql'
,
ORACLE
:
'Oracle'
,
POSTGRESQL
:
'PostGreSql'
,
CLICKHOUSE
:
'ClickHouse'
,
DORIS
:
'Doris'
,
JAVA
:
'Java'
,
};
export
const
isSql
=
(
type
:
string
)
=>
{
switch
(
type
){
case
DIALECT
.
SQL
:
case
DIALECT
.
MYSQL
:
case
DIALECT
.
ORACLE
:
case
DIALECT
.
POSTGRESQL
:
case
DIALECT
.
CLICKHOUSE
:
case
DIALECT
.
DORIS
:
return
true
;
default
:
return
false
;
}
}
dlink-web/src/components/Studio/icon.tsx
0 → 100644
View file @
372436bd
import
Icon
from
"@ant-design/icons"
;
import
{
DIALECT
}
from
"@/components/Studio/conf"
;
export
const
getIcon
=
(
type
:
string
)
=>
{
switch
(
type
){
case
DIALECT
.
SQL
:
return
(<
Icon
component=
{
SqlSvg
}
/>);
case
DIALECT
.
MYSQL
:
return
(<
Icon
component=
{
MysqlSvg
}
/>);
case
DIALECT
.
ORACLE
:
return
(<
Icon
component=
{
OracleSvg
}
/>);
case
DIALECT
.
POSTGRESQL
:
return
(<
Icon
component=
{
PostGreSqlSvg
}
/>);
case
DIALECT
.
CLICKHOUSE
:
return
(<
Icon
component=
{
ClickHouseSvg
}
/>);
case
DIALECT
.
DORIS
:
return
(<
Icon
component=
{
DorisSvg
}
/>);
case
DIALECT
.
JAVA
:
return
(<
Icon
component=
{
JavaSvg
}
/>);
default
:
return
(<
Icon
component=
{
FlinkSQLSvg
}
/>);
}
};
export
const
FlinkSQLSvg
=
()
=>
(
<
svg
t=
"1640784681443"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"6264"
width=
"20px"
height=
"20px"
>
<
path
d=
"M821.76 870.4s-5.12 33.28 5.12 48.64l43.52 30.72-2.56 10.24v15.36l10.24 2.56 15.36-2.56 2.56 5.12 7.68 10.24h10.24l10.24-23.04v-10.24l10.24-2.56s69.12-23.04 53.76-48.64l-5.12-2.56s-30.72 12.8-43.52 10.24c0 0-58.88 2.56-87.04-17.92l-30.72-25.6z"
fill=
"#D77083"
p
-
id=
"6265"
></
path
>
<
path
d=
"M837.12 849.92s-28.16 0-10.24 28.16c0 0 28.16 30.72 81.92 38.4 0 0 79.36 0 84.48-25.6 0 0-2.56-30.72-25.6-28.16-23.04 7.68-130.56-12.8-130.56-12.8z"
fill=
"#733D48"
p
-
id=
"6266"
></
path
>
<
path
d=
"M960 768s35.84 38.4 20.48 97.28c0 0-2.56 25.6-23.04 33.28 0 0-38.4 7.68-48.64 2.56 0 0-48.64-2.56-64-28.16 0 0-20.48-20.48-2.56-43.52 0 0 35.84-15.36 43.52-38.4 0 0 12.8-10.24 28.16-7.68 15.36 2.56 28.16 10.24 28.16 10.24s23.04-17.92 17.92-25.6z"
fill=
"#D59D52"
p
-
id=
"6267"
></
path
>
<
path
d=
"M865.28 798.72s17.92 38.4 61.44 40.96c0 0 40.96 0 58.88-25.6l-15.36-38.4-28.16-7.68s-74.24-23.04-76.8 30.72z"
fill=
"#DBAE62"
p
-
id=
"6268"
></
path
>
<
path
d=
"M960 768s17.92 23.04-5.12 28.16c0 0-23.04 5.12-35.84 0 0 0-79.36 23.04-58.88 89.6 0 0-15.36 0-23.04-38.4L844.8 768s107.52-20.48 115.2 0z"
fill=
"#B88F4D"
p
-
id=
"6269"
></
path
>
<
path
d=
"M949.76 806.4s10.24 20.48 2.56 30.72c0 0-2.56 5.12 10.24 7.68 0 0 15.36-17.92-2.56-46.08 0 0-10.24-2.56-10.24 7.68z"
fill=
"#FFFFFF"
p
-
id=
"6270"
></
path
>
<
path
d=
"M954.88 803.84m-5.12 0a5.12 5.12 0 1 0 10.24 0 5.12 5.12 0 1 0-10.24 0Z"
fill=
"#FFFFFF"
p
-
id=
"6271"
></
path
>
<
path
d=
"M957.44 839.68m-5.12 0a5.12 5.12 0 1 0 10.24 0 5.12 5.12 0 1 0-10.24 0Z"
fill=
"#FFFFFF"
p
-
id=
"6272"
></
path
>
<
path
d=
"M988.16 870.4s23.04-58.88-20.48-104.96h-7.68v12.8s25.6 28.16 17.92 61.44c0 0-2.56 28.16-7.68 40.96 0 0-17.92 17.92-38.4 17.92 0 0-43.52 0-79.36-20.48 0 0-17.92-20.48-10.24-43.52h-5.12c0-2.56-2.56-5.12-12.8 0 0 0 5.12 7.68-5.12 10.24 0 0-20.48 10.24-15.36 51.2 2.56 35.84 48.64 58.88 48.64 58.88s2.56 2.56 2.56 7.68-2.56 17.92 12.8 20.48c0 0 10.24 2.56 15.36-2.56 0 0 7.68 23.04 23.04 17.92 15.36-5.12 20.48-20.48 12.8-33.28 0 0 35.84-5.12 58.88-33.28 5.12 0 35.84-33.28 10.24-61.44z m-10.24 48.64c-5.12 7.68-15.36 30.72-51.2 38.4 0 0-20.48 0-28.16-2.56 0 0-20.48 7.68 2.56 5.12 0 0 17.92 0 15.36 12.8 0 0-2.56 12.8-7.68 12.8 0 0-5.12 5.12-12.8-10.24 0 0 2.56-5.12-7.68-5.12 0 0-17.92 7.68-17.92-10.24 0 0 5.12-10.24 10.24-12.8 0 0-51.2-15.36-58.88-58.88 0 0-5.12-10.24 2.56-7.68 35.84 33.28 79.36 38.4 79.36 38.4 38.4 5.12 71.68-10.24 71.68-10.24 2.56 2.56 5.12 5.12 2.56 10.24z m7.68-23.04s-2.56 5.12-5.12 7.68c-2.56 0-2.56 2.56-5.12 2.56-46.08 20.48-102.4 0-102.4 0-43.52-23.04-46.08-38.4-46.08-40.96 0-2.56 0-5.12 2.56-5.12 0 0 5.12-10.24 10.24-5.12 0 7.68 5.12 17.92 10.24 23.04 15.36 12.8 35.84 23.04 69.12 25.6 33.28 2.56 51.2-7.68 58.88-23.04 5.12 2.56 10.24 10.24 7.68 15.36z"
p
-
id=
"6273"
></
path
>
<
path
d=
"M35.84 563.2s15.36 125.44 112.64 207.36l115.2-99.84L435.2 665.6l220.16-125.44s133.12-84.48 128-179.2c0 0-145.92 66.56-179.2 46.08L547.84 435.2 486.4 478.72l-89.6 7.68-12.8 15.36-166.4 51.2s-23.04-71.68 53.76-192l25.6-40.96-110.08 51.2-2.56-25.6-12.8 2.56-20.48 64-23.04 7.68-64 110.08-7.68-17.92h-10.24v51.2h-10.24z"
fill=
"#947BB0"
p
-
id=
"6274"
></
path
>
<
path
d=
"M757.76 460.8l23.04-7.68 28.16-40.96h10.24l17.92 2.56 7.68 15.36 15.36 15.36 28.16 7.68 25.6 10.24 23.04 20.48 10.24 15.36 12.8 23.04 10.24 35.84 7.68 25.6 5.12 17.92 5.12 15.36-2.56 23.04-7.68 17.92-10.24 12.8-25.6 7.68-7.68 7.68-33.28 5.12h-23.04l-15.36 10.24 2.56 12.8h15.36l28.16-7.68 28.16 2.56 17.92 15.36 7.68 7.68 2.56 17.92v25.6l-17.92 15.36-17.92-2.56-12.8-5.12-23.04 2.56-7.68 10.24-15.36 15.36-28.16 15.36-25.6 5.12-38.4 5.12-2.56 10.24v10.24l-5.12 20.48-15.36 20.48-15.36 23.04 30.72 2.56 28.16 5.12 12.8 15.36 5.12 15.36-5.12 12.8-17.92 15.36-40.96 2.56H384s-204.8 0-289.28-148.48-53.76-243.2-53.76-243.2l5.12-23.04s33.28 117.76 89.6 176.64l15.36 17.92s10.24-2.56 17.92-43.52c0 0 17.92-84.48 227.84-84.48l87.04-46.08 87.04-25.6 64-15.36 51.2-25.6 71.68-69.12z"
fill=
"#D77083"
p
-
id=
"6275"
></
path
>
<
path
d=
"M870.4 555.52s15.36-23.04 46.08-7.68c0 0 30.72 17.92 10.24 58.88 0 0-12.8-2.56-23.04 0-2.56 0-61.44 2.56-33.28-51.2z"
p
-
id=
"6276"
></
path
>
<
path
d=
"M880.64 581.12s-7.68-7.68-2.56-17.92l-7.68-7.68s-12.8 15.36 10.24 33.28c0 0 10.24 7.68 33.28 7.68 0 0 7.68 2.56 7.68 5.12v-20.48s-5.12 12.8-12.8 12.8c0 0-17.92-2.56-28.16-12.8z"
fill=
"#FFFFFF"
p
-
id=
"6277"
></
path
>
<
path
d=
"M901.12 568.32m-15.36 0a15.36 15.36 0 1 0 30.72 0 15.36 15.36 0 1 0-30.72 0Z"
fill=
"#D19B52"
p
-
id=
"6278"
></
path
>
<
path
d=
"M888.32 558.08m-7.68 0a7.68 7.68 0 1 0 15.36 0 7.68 7.68 0 1 0-15.36 0Z"
fill=
"#FFFFFF"
p
-
id=
"6279"
></
path
>
<
path
d=
"M312.32 153.6l2.56-25.6 66.56-48.64 30.72-15.36s40.96-35.84 99.84-35.84l71.68 7.68 51.2 17.92 38.4 23.04 30.72 15.36 38.4 25.6-7.68 46.08-7.68 33.28 10.24 46.08-15.36 23.04s-7.68 20.48-48.64 53.76l-23.04 43.52-40.96 51.2L537.6 460.8l-61.44 17.92-48.64 5.12L250.88 537.6l-33.28 15.36s-20.48-110.08 53.76-192l46.08-40.96s30.72-25.6 35.84-66.56l28.16 48.64 20.48-43.52c0-2.56 2.56-112.64-89.6-104.96z"
fill=
"#E7DFAB"
p
-
id=
"6280"
></
path
>
<
path
d=
"M765.44 99.84L742.4 128l-7.68 25.6-5.12 58.88-7.68 53.76s-30.72 48.64-43.52 43.52l-10.24 23.04-5.12 17.92 40.96-35.84 53.76-23.04 30.72-12.8 12.8-25.6-12.8-48.64-2.56-30.72-15.36-5.12s-7.68-40.96 5.12-56.32l-10.24-12.8z"
fill=
"#D19456"
p
-
id=
"6281"
></
path
>
<
path
d=
"M642.56 373.76s51.2-61.44 115.2-89.6v15.36l64-35.84h15.36l-5.12 33.28-17.92 23.04-20.48 33.28-33.28 23.04-69.12 25.6-66.56 15.36 17.92-43.52z"
fill=
"#D77083"
p
-
id=
"6282"
></
path
>
<
path
d=
"M396.8 174.08s84.48-23.04 112.64 0c28.16 23.04 104.96-5.12 104.96-5.12l69.12 40.96-5.12 97.28s-7.68-64-81.92-71.68-71.68-20.48-117.76-43.52-35.84 2.56-81.92-17.92z"
fill=
"#D89E52"
p
-
id=
"6283"
></
path
>
<
path
d=
"M396.8 174.08s10.24 30.72 61.44 33.28 215.04 87.04 151.04 156.16c0 0-10.24 76.8-74.24 94.72 0 0 51.2-66.56 17.92-138.24 0 0-7.68-58.88-79.36-76.8 2.56 0-43.52-20.48-76.8-69.12z"
fill=
"#D89E52"
p
-
id=
"6284"
></
path
>
<
path
d=
"M445.44 273.92s25.6 79.36 69.12 92.16c0 0 51.2 46.08 5.12 79.36l-92.16 38.4-158.72 40.96-56.32 20.48s64-81.92 107.52-102.4c0 0 76.8-20.48 110.08-102.4l15.36-66.56z"
fill=
"#D89E52"
p
-
id=
"6285"
></
path
>
<
path
d=
"M371.2 273.92s-17.92 76.8-94.72 151.04C238.08 460.8 230.4 506.88 222.72 540.16c0 0 20.48-71.68 76.8-117.76 33.28-28.16 69.12-71.68 71.68-148.48z"
fill=
"#814879"
p
-
id=
"6286"
></
path
>
<
path
d=
"M437.76 496.64s48.64 2.56 66.56 17.92c0 0-15.36-12.8-28.16-17.92 0 0 76.8 10.24 107.52 23.04 0 0 35.84 7.68 56.32 0 0 0-56.32-2.56-79.36-17.92 0 0-46.08-17.92-74.24-15.36l-48.64 10.24z"
fill=
"#785085"
p
-
id=
"6287"
></
path
>
<
path
d=
"M601.6 437.76s23.04-5.12 53.76 0c0 0 48.64 25.6 104.96-12.8 0 0-43.52 53.76-79.36 46.08 0 0-99.84-17.92-120.32-10.24 2.56 2.56 33.28-7.68 40.96-23.04z"
fill=
"#E1CAC9"
p
-
id=
"6288"
></
path
>
<
path
d=
"M378.88 156.16s35.84-30.72 51.2-35.84c0 0 69.12-17.92 40.96 0l-12.8 15.36s25.6-12.8 53.76-10.24l-12.8 10.24s43.52-7.68 48.64 0c0 0 17.92 20.48 35.84 10.24 0 0-7.68 20.48-51.2-2.56 0 0-30.72 0 0 12.8-2.56 0-84.48-20.48-153.6 0z"
fill=
"#FFFFFF"
p
-
id=
"6289"
></
path
>
<
path
d=
"M345.6 709.12s-35.84 5.12-35.84 58.88c0 0 7.68 43.52 40.96 56.32 0 0-15.36-66.56 7.68-112.64l-12.8-2.56z"
fill=
"#A04F5D"
p
-
id=
"6290"
></
path
>
<
path
d=
"M675.84 724.48s-5.12 89.6 30.72 128c0 0 30.72 30.72 71.68 25.6 0 0 23.04-38.4-23.04-40.96 0 0-46.08-10.24-58.88-56.32-2.56 2.56-7.68-51.2-20.48-56.32z"
fill=
"#9A505E"
p
-
id=
"6291"
></
path
>
<
path
d=
"M714.24 642.56s-17.92 71.68 58.88 92.16c0 0 61.44 7.68 79.36-25.6 0 0-64 12.8-97.28-20.48-2.56 0-38.4-25.6-40.96-46.08zM824.32 427.52s-48.64 30.72-12.8 64c0 0 7.68-35.84 15.36-46.08 10.24-10.24-2.56-17.92-2.56-17.92z"
fill=
"#A04F5E"
p
-
id=
"6292"
></
path
>
<
path
d=
"M819.2 450.56s-12.8 28.16-7.68 38.4c0 0 7.68 17.92 12.8 15.36 0 0-12.8-25.6 2.56-48.64 0 0 12.8-17.92 0-43.52 0 2.56 5.12 20.48-7.68 38.4zM844.8 501.76s30.72-17.92 10.24-46.08c0 0 5.12 25.6-10.24 46.08zM714.24 640c0-2.56 0 0 0 0zM714.24 640c10.24 74.24 89.6 69.12 89.6 69.12-79.36-15.36-89.6-66.56-89.6-69.12z"
p
-
id=
"6293"
></
path
>
<
path
d=
"M985.6 591.36s-10.24-35.84-10.24-53.76c0 0-17.92-94.72-115.2-99.84 0 0-10.24-30.72-40.96-30.72 0 0-17.92 2.56-46.08 38.4-5.12 5.12-5.12-2.56-5.12-2.56 5.12-5.12 5.12-10.24 5.12-10.24 17.92-20.48 28.16-64 33.28-81.92 10.24-7.68 17.92-17.92 25.6-28.16l10.24-33.28s-5.12 0-10.24 7.68 17.92-40.96 10.24-53.76c0 0-30.72 15.36-33.28 23.04 0 0-7.68-46.08-17.92-69.12 0 0 0-33.28 10.24-38.4 0 0-10.24-12.8-25.6 10.24 0 0-17.92-17.92 7.68-66.56 0 0 5.12-10.24-20.48-2.56 0 0-20.48 20.48-23.04 25.6 0 0-10.24-12.8-15.36-28.16 0 0-2.56-2.56-5.12 0 0 0-5.12 7.68-7.68-7.68 0 0-10.24-17.92-15.36-17.92 0 0 2.56 12.8 0 12.8 0 0-2.56 0-10.24-5.12 0 0-38.4-25.6-97.28-38.4 0 0-12.8-5.12-17.92-7.68 0 0-2.56 0-5.12 2.56 0 0-10.24 0-17.92-2.56-28.16-12.8-40.96 0-40.96 0-145.92 0-192 94.72-192 94.72-15.36 15.36-2.56 25.6-2.56 25.6h23.04c97.28 61.44 35.84 120.32 35.84 120.32l-10.24-33.28c-23.04-23.04-15.36 0-15.36 0 7.68 35.84-17.92 58.88-17.92 58.88-76.8 23.04-133.12 56.32-133.12 56.32-15.36-2.56 7.68-25.6-10.24-23.04s-28.16 48.64-28.16 48.64C107.52 417.28 66.56 486.4 51.2 512c0-5.12-2.56-38.4-2.56-56.32 0 0-17.92 43.52-7.68 89.6 0 0-7.68 20.48-12.8 46.08 0 0 0 5.12-2.56 10.24v33.28c0 40.96 2.56 102.4 28.16 153.6 0 0 38.4 120.32 197.12 186.88 0 0 64 23.04 120.32 23.04h384s53.76 0 61.44-28.16c7.68-30.72-10.24-61.44-61.44-53.76 0 0-15.36 2.56 5.12-12.8 0 0 17.92-15.36 17.92-48.64 0 0-7.68-12.8 17.92-10.24 0 0 17.92 0 28.16-2.56 0 0 48.64-10.24 66.56-51.2 0 0 17.92-7.68 28.16 0 0 0 20.48 10.24 25.6 2.56 0 0 2.56-2.56 15.36-10.24 0 0 5.12 2.56 10.24-35.84 0 0 0-15.36-10.24-23.04 0 0-5.12-7.68-7.68-12.8 0 0-12.8-17.92-56.32-10.24 0 0-23.04 15.36-28.16 7.68-5.12-7.68 7.68-7.68 7.68-7.68s51.2-2.56 71.68-17.92c0 0 33.28-2.56 35.84-38.4 2.56-5.12 23.04-23.04 2.56-53.76z m-220.16-168.96c-46.08 94.72-135.68 122.88-135.68 122.88-46.08 0-56.32 2.56-56.32 2.56 33.28 5.12 25.6 10.24 25.6 10.24-71.68 7.68-97.28 20.48-97.28 20.48-94.72-15.36-145.92-5.12-145.92-5.12-115.2 20.48-163.84 74.24-163.84 74.24 102.4-58.88 171.52-64 171.52-64 112.64-7.68 120.32 0 120.32 0-30.72 5.12-69.12 33.28-69.12 33.28-17.92 12.8-97.28 25.6-97.28 25.6-28.16 2.56-79.36 17.92-79.36 17.92-79.36 25.6-79.36 97.28-79.36 97.28-25.6-28.16-23.04-76.8-23.04-76.8l-2.56-2.56c2.56-10.24 7.68-20.48 17.92-43.52 23.04-53.76 38.4-56.32 79.36-81.92s192-53.76 192-53.76c148.48-17.92 189.44-71.68 189.44-71.68 2.56-2.56 7.68-7.68 15.36-12.8h2.56s87.04-2.56 156.16-48.64c-2.56 23.04-20.48 56.32-20.48 56.32z m64-153.6s-5.12 43.52-38.4 71.68c0 0-48.64 48.64-153.6 66.56l-5.12 2.56c7.68-10.24 17.92-17.92 17.92-17.92 84.48-12.8 135.68-74.24 135.68-74.24-74.24 53.76-130.56 64-130.56 64 7.68-10.24 12.8-23.04 20.48-35.84 10.24-7.68 43.52-35.84 71.68-43.52 0 0-12.8 23.04-28.16 33.28 0 0 23.04-2.56 61.44-38.4-2.56-5.12 28.16-28.16 48.64-28.16z m-92.16-94.72c5.12-43.52 28.16-64 28.16-64 10.24 7.68 0 15.36 0 15.36-7.68 25.6-2.56 58.88-2.56 58.88l-25.6 58.88c0-2.56-5.12-25.6 0-69.12z m-381.44 92.16c33.28 43.52-20.48 115.2-20.48 115.2 92.16-71.68 71.68-138.24 71.68-138.24 0-66.56-53.76-87.04-53.76-87.04-28.16-5.12-23.04-15.36-23.04-15.36 76.8-87.04 148.48-71.68 148.48-71.68 0-12.8-53.76-5.12-53.76-5.12 17.92-25.6 79.36-20.48 79.36-20.48 10.24 2.56 33.28 12.8 33.28 12.8l-10.24-20.48c7.68 2.56 12.8 5.12 17.92 7.68 5.12 2.56 10.24 2.56 10.24 2.56 7.68 0 17.92 2.56 33.28 2.56 0 0 15.36 2.56 28.16 28.16 0 0-2.56-15.36-5.12-20.48 0 0 17.92 10.24 25.6 23.04 0 0 2.56-2.56 0-12.8 0 0 33.28 15.36 46.08 35.84 0 0 2.56 2.56 2.56-5.12 0 0 2.56-15.36 7.68 0 0 0-2.56 15.36 2.56 12.8 0 0 5.12-5.12 5.12-12.8 0 0 5.12-2.56 5.12 5.12 0 0 5.12 5.12 10.24 0 0 0 5.12 5.12 7.68 15.36 2.56 10.24 7.68 17.92 7.68 17.92s-10.24 25.6-7.68 53.76c0 0 0 71.68-10.24 84.48 0 0 30.72-12.8 43.52-66.56 0 0 17.92-46.08 20.48-17.92 0 0-5.12 12.8 0 28.16 0 0-7.68 30.72-15.36 35.84 0 0 15.36-10.24 23.04-23.04 0 0 7.68 25.6-5.12 33.28 0 0-35.84 23.04-69.12 30.72 0 0-23.04 12.8-30.72 28.16l-5.12 7.68c12.8-30.72 20.48-61.44 20.48-61.44 12.8-10.24 17.92-30.72 17.92-30.72-5.12 0-15.36 12.8-15.36 12.8-10.24 10.24-5.12-17.92-5.12-17.92 5.12-7.68 10.24-20.48 10.24-20.48 0-10.24-10.24 2.56-10.24 2.56-10.24 5.12-5.12-12.8-5.12-12.8 7.68-15.36 2.56-20.48 2.56-20.48-5.12 0-12.8 23.04-12.8 23.04-2.56 15.36-15.36-15.36-15.36-15.36-12.8-10.24-10.24-35.84-10.24-35.84-2.56-15.36-5.12 0-5.12 0-2.56 17.92-5.12 7.68-5.12 7.68 0-12.8-2.56-23.04-2.56-23.04v20.48c-5.12 7.68-10.24-10.24-10.24-10.24-2.56-17.92-7.68-15.36-7.68-15.36-2.56 10.24 2.56 15.36 0 17.92-2.56 2.56-10.24-7.68-10.24-17.92 0-10.24-7.68-5.12-7.68-5.12 0 17.92-5.12 10.24-5.12 10.24-133.12-58.88-189.44-12.8-189.44-12.8 122.88-51.2 232.96 69.12 232.96 69.12-17.92-7.68-48.64-2.56-48.64-2.56-35.84 15.36-56.32 5.12-56.32 5.12 12.8 15.36 64 7.68 64 7.68 20.48-7.68 38.4 2.56 38.4 2.56 23.04 20.48-5.12 20.48-5.12 20.48 25.6 10.24 33.28 48.64 33.28 48.64-7.68 104.96-117.76 158.72-117.76 158.72 53.76-81.92 20.48-130.56 20.48-130.56-17.92-40.96-92.16-58.88-92.16-58.88 74.24 33.28 79.36 76.8 79.36 76.8 7.68 76.8-35.84 122.88-35.84 122.88l-25.6 10.24c17.92-23.04 15.36-64 15.36-64-12.8 53.76-64 79.36-64 79.36 17.92-28.16 15.36-53.76 15.36-53.76-5.12 25.6-46.08 56.32-46.08 56.32-17.92 23.04-135.68 51.2-145.92 51.2-5.12 0-30.72 7.68-46.08 15.36-28.16-81.92 81.92-199.68 81.92-199.68 38.4-25.6 48.64-74.24 48.64-74.24z m-220.16 161.28c-12.8 145.92 35.84 143.36 35.84 143.36-56.32-38.4-5.12-199.68-5.12-199.68 15.36-38.4 17.92 0 17.92 0-23.04 43.52-15.36 84.48-15.36 84.48 12.8-102.4 107.52-115.2 107.52-115.2-69.12 99.84-64 204.8-64 204.8h2.56c-7.68 0-10.24 2.56-10.24 2.56-20.48-56.32 0-130.56 0-130.56-35.84 38.4-15.36 156.16-15.36 156.16-2.56 7.68-12.8 2.56-12.8 2.56-10.24 0-28.16 38.4-28.16 38.4-5.12 0-12.8-17.92-12.8-17.92-5.12 12.8 0 17.92 0 17.92 5.12 30.72 2.56 25.6 2.56 25.6-5.12 2.56-10.24-15.36-10.24-15.36-7.68 15.36 2.56 33.28 2.56 33.28l-2.56 15.36s-46.08-64-66.56-130.56c20.48-56.32 74.24-115.2 74.24-115.2z m-87.04 92.16s-5.12 33.28 79.36 168.96c0 15.36 0 30.72 2.56 46.08 0 0-61.44-56.32-76.8-158.72 0 0-7.68-48.64-5.12-56.32z m934.4 115.2s-17.92-20.48-23.04-10.24l17.92 15.36s0 30.72-35.84 33.28c0 0-12.8 17.92-53.76 17.92 0 0-25.6 2.56-33.28 10.24 0 0-10.24 7.68-46.08 5.12 0 0 10.24 5.12 30.72 5.12 0 0 12.8-2.56 15.36 2.56 0 0 20.48 7.68 20.48 10.24s53.76-30.72 74.24 0c0 0 5.12 10.24 10.24 10.24 0 0 2.56 12.8 0 15.36s-10.24-7.68-10.24 0c0 0 17.92 2.56 10.24 23.04 0 0-15.36 23.04-35.84 5.12 0 0-28.16 5.12-35.84 0 0 0-23.04 74.24-138.24 53.76 0 0-46.08-10.24-66.56-76.8 0 0-28.16-120.32-140.8-89.6 0 0 71.68-5.12 104.96 40.96 0 0 25.6 20.48 40.96 81.92 0 0 17.92 43.52 64 51.2 0 0 33.28 2.56 10.24 46.08 0 0-12.8 20.48-40.96 35.84 0 0-10.24 5.12-7.68 12.8 0 0-2.56 15.36 12.8 2.56 0 0 58.88-33.28 76.8 12.8 0 0 5.12 10.24 0 12.8 0 0-5.12 0-7.68-5.12 0 0-5.12-12.8-12.8-10.24 0 0 15.36 10.24 10.24 30.72 0 0-12.8 15.36-17.92 0 0 0 5.12-28.16-15.36-23.04 0 0 20.48 15.36 5.12 30.72 0 0-7.68 5.12-23.04 2.56 0 0-7.68-10.24-46.08 0h-332.8s-174.08-2.56-276.48-156.16c0 0-46.08-84.48-48.64-140.8L76.8 742.4l-33.28-81.92v-56.32c0-10.24 2.56-20.48 2.56-25.6 2.56-10.24 12.8 79.36 89.6 176.64 10.24 40.96 30.72 66.56 30.72 66.56-20.48 0-48.64-28.16-48.64-28.16 30.72 48.64 76.8 61.44 76.8 61.44 61.44 51.2 122.88 64 122.88 64-43.52-10.24-92.16-51.2-92.16-51.2-46.08-35.84-69.12-94.72-69.12-94.72 0-20.48 23.04-56.32 23.04-56.32 30.72-46.08 110.08-58.88 110.08-58.88 46.08-2.56 102.4-12.8 102.4-12.8-12.8 5.12-30.72 43.52-30.72 43.52-2.56 5.12-23.04 7.68-23.04 7.68C248.32 706.56 230.4 742.4 230.4 742.4c15.36-12.8 43.52-23.04 43.52-23.04 15.36-7.68 71.68-10.24 71.68-10.24-23.04 87.04 10.24 156.16 10.24 156.16-30.72-94.72 12.8-163.84 12.8-163.84 56.32-84.48 148.48-102.4 148.48-102.4 33.28-10.24 115.2-30.72 115.2-30.72 56.32-20.48 84.48-58.88 84.48-58.88 12.8-20.48 40.96-33.28 51.2-38.4 0 7.68 5.12 15.36 12.8 20.48 0 0 10.24 2.56 5.12-15.36 0 0-10.24-10.24 5.12-33.28 0 0 17.92-20.48 30.72-23.04 0 0 23.04 17.92 25.6 35.84 0 0 97.28 15.36 110.08 99.84 0 0 2.56 15.36 2.56 20.48 0 0 0 10.24 10.24 25.6 5.12-5.12 20.48 20.48 12.8 33.28z"
p
-
id=
"6294"
></
path
>
</
svg
>
);
export
const
SqlSvg
=
()
=>
(
<
svg
t=
"1640788645374"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"9314"
width=
"20px"
height=
"20px"
>
<
path
d=
"M145.621959 0c-44.79888 0-79.998 36.81188-79.998 81.61076v860.77848c0 44.79888 35.19912 81.61076 79.998 81.61076h732.781681a81.969151 81.969151 0 0 0 81.61076-81.61076V324.80468L657.60916 0h-511.987201z"
fill=
"#A4D3EE"
p
-
id=
"9315"
></
path
>
<
path
d=
"M657.60916 0v233.59416c0 25.59936 17.61236 92.79768 97.61036 92.79768h204.79488L657.60916 0z"
fill=
"#FFFFFF"
p
-
id=
"9316"
></
path
>
<
path
d=
"M243.565111 696.532987c3.404715 1.20317 6.886228 2.611135 10.418939 4.198295s7.21902 3.123122 11.033325 4.582285 7.782205 2.662333 11.929301 3.686308 8.575786 1.510362 13.286068 1.510362c5.503862 0 11.058924-0.639984 16.639584-1.945551s11.084523-3.225519 16.434789-5.785455 10.470138-5.657459 15.385216-9.292568 9.394965-7.884603 13.490862-12.671683c4.505487-5.094273 8.242994-9.727757 11.238119-13.874854s5.427064-7.859004 7.270219-11.110122 3.174321-6.041449 3.967901-8.39659 1.20317-4.377491 1.203169-6.067048c0-2.508737-0.844779-4.684683-2.559936-6.527837s-3.967901-3.379116-6.835029-4.582285-6.067048-2.073548-9.676558-2.636734-7.347016-0.81918-11.238119-0.81918c-2.303942 0-4.991875 0.076798-8.089398 0.230394l-9.446163 0.460789-9.292568 0.38399a150.39624 150.39624 0 0 1-7.807805 0.153596c-3.302317 0-6.732632-0.38399-10.265343-1.126372s-7.014225-1.971151-10.41894-3.686307-6.553436-3.9935-9.446164-6.911828a35.403915 35.403915 0 0 1-8.831779-15.743606 24.626584 24.626584 0 0 1-0.742381-6.143846c0-2.40634 0.179196-4.684683 0.537586-6.83503s0.767981-4.223894 1.279968-6.220644c1.407965-4.991875 3.737507-10.086148 6.963026-15.231619s7.142221-10.162946 11.698908-15.078023 9.497363-9.650959 14.847629-14.258844 10.854129-8.934177 16.511587-12.978875 11.21252-7.705407 16.639584-10.956526 10.521337-6.01585 15.231619-8.319792c6.604635-3.19992 13.337267-5.529462 20.172296-6.963026s13.61886-2.175946 20.325891-2.175946c3.9935 0 7.807805 0.537587 11.391716 1.58716s6.78383 2.585535 9.522962 4.582286 4.915077 4.479888 6.527836 7.423814 2.40634 6.323042 2.40634 10.137347c0 2.201545-0.255994 4.044699-0.742381 5.555061s-1.151971 2.713532-1.945552 3.686308-1.663958 1.61276-2.636734 2.022349-1.919952 0.588785-2.918327 0.588785c-2.687933 0-5.171071-0.307192-7.423814-0.895977s-4.428689-1.279968-6.527837-2.02235-4.198295-1.459164-6.297442-2.099147-4.40309-0.972776-6.911828-0.972776c-7.398215 0-14.924427 1.484763-22.578635 4.428689s-15.103622 6.707032-22.348241 11.23812-14.105247 9.625359-20.556287 15.231619-12.236494 11.058924-17.330766 16.357991c-2.687933 2.79033-4.684683 5.60626-5.913452 8.39659s-1.868753 5.452664-1.868754 7.961401c0 3.711907 1.61276 6.604635 4.81268 8.703782s7.091023 3.148721 11.698907 3.148722c2.687933 0 5.759856-0.051199 9.138972-0.153597a796.140096 796.140096 0 0 0 20.761081-0.844779c3.353516-0.153596 6.323042-0.230394 8.934177-0.230394 6.195045 0 12.159696 0.870378 17.842754 2.636734s10.751731 4.326292 15.154821 7.731007 7.935802 7.628609 10.572535 12.671683 3.967901 10.828529 3.967901 17.330767c0 3.9935-0.588785 8.038199-1.791955 12.159696s-2.841529 8.217395-4.940677 12.364491-4.505487 8.242994-7.19342 12.287693-5.555061 8.0126-8.550186 11.929301c-5.401465 6.988625-11.417315 13.59326-18.073148 19.788306s-13.721257 11.59651-21.22187 16.204395-15.436414 8.242994-23.781805 10.956526-16.921177 4.044699-25.727357 4.044699a74.724532 74.724532 0 0 1-23.551411-4.121497c-3.891103-1.356766-7.577411-3.046324-11.033324-5.094273s-6.476638-4.377491-9.062174-6.963026-4.684683-5.478263-6.220644-8.626984-2.40634-6.655834-2.40634-10.342142c0-1.791955 0.281593-3.532712 0.81918-5.17107s1.945551-2.483138 4.147096-2.483138zM577.150371 752.621184c0.79358 0.79358 1.382365 1.740756 1.715157 2.841529s0.537587 2.201545 0.537587 3.302318c0 2.508737-0.81918 4.761481-2.483138 6.758231s-3.60951 3.686308-5.862253 5.017474-4.582285 2.38074-6.963026 3.071924-4.351891 1.049574-5.862254 1.049573c-1.61276 0-3.148721-0.40959-4.659083-1.203169s-2.841529-1.740756-4.044699-2.841529-2.252744-2.201545-3.148721-3.302318l-1.945552-2.40634a122.211345 122.211345 0 0 1-13.030074-22.809029c-1.791955-4.095898-3.532712-8.39659-5.171071-12.902078s-3.276718-9.292568-4.863878-14.41244c-1.510362 0.204795-3.251119 0.40959-5.247869 0.588786s-4.044699 0.38399-6.143846 0.537586l-6.143847 0.383991s-3.711907 0.153596-5.094272 0.153596c-10.905327 0-20.377091-1.740756-28.41529-5.247869s-14.924427-9.292568-20.633084-17.407565c-3.711907-5.19667-6.527837-11.135722-8.473388-17.765956s-2.918327-13.977251-2.918327-21.964251c0-7.500612 1.100772-15.257219 3.302317-23.244218s5.222269-15.9996 9.062173-24.0122 8.447789-15.846004 13.798055-23.551411 11.161321-15.026824 17.407565-21.964251 12.850879-13.362866 19.788306-19.276318 14.028449-10.982125 21.221869-15.23162 14.361241-7.577411 21.452264-9.98375 13.951651-3.60951 20.556286-3.60951c2.687933 0 4.863878 0.332792 6.527837 0.972776l5.478263 2.175946 4.940676 2.099147c2.79033 0.511987 5.375866 1.023974 7.731007 1.58716s4.633484 1.20317 6.835029 1.945552 4.428689 1.663958 6.681433 2.764731 4.684683 2.457539 7.270218 4.044698c4.198295 2.611135 7.833404 6.195045 10.879728 10.80293s5.555061 9.702157 7.500613 15.308418 3.404715 11.519712 4.351891 17.765956 1.433564 12.313292 1.433564 18.226744c0 11.59651-2.201545 22.78343-6.604635 33.535162s-10.316542 20.940276-17.765956 30.591235-16.127597 18.661933-26.034549 27.007325a258.911927 258.911927 0 0 1-33.381565 23.935401 2.047949 2.047949 0 0 0-0.665584 1.638359c1.407965 5.299068 2.892728 9.958151 4.505488 13.951651s3.455914 7.705407 5.555061 11.110123 4.531087 6.681433 7.270218 9.830154 5.939052 6.553436 9.753356 10.137346z m-112.201995-111.894802c-0.691183 2.79033-1.254369 5.555061-1.638359 8.242994s-0.588785 5.299068-0.588785 7.807805c0 4.505487 0.639984 8.729382 1.945551 12.671683s3.276718 7.372616 5.913452 10.265343 6.01585 5.171071 10.137347 6.835029 9.010975 2.483138 14.694033 2.483138a101.706257 101.706257 0 0 0 10.77733-0.537586c1.484763-0.153596 2.969526-0.38399 4.42869-0.665584l4.428689-0.895977-1.126372-6.527837a311.032224 311.032224 0 0 1-2.252744-15.154821c-0.255994-2.252744-0.38399-3.967901-0.38399-5.171071s0.102397-2.662333 0.307192-4.351891 0.767981-3.327917 1.715157-4.863879 2.38074-2.867128 4.275093-3.9679 4.556686-1.638359 7.961401-1.638359c3.788705 0 6.655834 1.177571 8.550187 3.532711s3.379116 5.273468 4.428689 8.780581 1.868753 7.270218 2.483138 11.314917 1.510362 7.833404 2.687933 11.314917c6.707032-3.9935 13.362866-8.626984 20.018699-13.874853s12.876478-11.135722 18.661934-17.61236 10.982125-13.721257 15.513212-21.682658 8.063798-16.716382 10.572536-26.316142c0.588785-2.508737 1.075173-4.991875 1.433564-7.500612s0.537587-4.991875 0.537586-7.500613c0-5.094273-0.691183-10.214145-2.099147-15.385215s-3.58391-9.778956-6.527837-13.874853-6.758231-7.449414-11.391715-10.060549-10.162946-3.891103-16.562786-3.891103c-4.505487 0-8.831779 0.332792-12.978876 0.972776s-8.319792 1.715157-12.518087 3.22552-8.575786 3.481513-13.132471 5.913452-9.420564 5.478263-14.617235 9.062173c-6.39984 4.40309-12.543686 9.625359-18.457139 15.666808s-11.263718 12.543686-16.127596 19.506713-9.087773 14.182045-12.748482 21.682658-6.425439 14.898828-8.319792 22.194645zM663.394615 653.782055c4.505487-13.798055 8.80618-27.058524 12.902078-39.755806s7.731007-24.447389 10.879728-35.250318 5.657459-20.351491 7.500612-28.645684 2.867128-14.898828 3.071923-19.788306c1.20317-4.710282 3.327917-8.447789 6.374241-11.238119s6.579036-4.198295 10.572536-4.198295c2.40634 0 4.454289 0.537587 6.143846 1.638359s3.071923 2.559936 4.121497 4.351892 1.817555 3.814305 2.329542 6.067048 0.742381 4.531087 0.742381 6.835029c0 1.689558-0.102397 3.251119-0.307192 4.659084s-0.460788 2.739132-0.742382 4.044698c-2.303942 9.19017-5.043074 18.687533-8.242994 28.492088s-6.476638 19.737107-9.830154 29.772056-6.681433 20.121097-9.98375 30.232844-6.246244 19.9931-8.857379 29.695258l-2.687933 10.188545c-1.407965 5.19667-2.611135 10.137347-3.609509 14.847629s-1.510362 8.498988-1.510363 11.391715c0 1.61276 0.307192 2.867128 0.895978 3.814305s1.740756 1.433564 3.455914 1.433564c4.095898 0 8.908577-0.665583 14.412439-2.02235s11.21252-2.995125 17.100373-4.940676 11.775706-4.095898 17.61236-6.451039 11.21252-4.582285 16.127596-6.681433l6.681433-2.841529 6.911828-2.918327 11.033324-4.582285 19.045924-7.961401 3.686307-1.279968a9.087773 9.087773 0 0 1 7.039824 0.358391c1.151971 0.588785 2.047949 1.407965 2.687933 2.40634s1.126372 2.150346 1.433564 3.455913 0.460788 2.611135 0.460789 3.891103a27.647309 27.647309 0 0 1-1.663959 9.906952c-1.20317 1.894353-2.739132 3.635109-4.659083 5.171071s-3.891103 2.892728-5.99025 4.044699-4.147096 2.124747-6.143847 2.918327-3.660708 1.407965-4.940676 1.791955l-6.374241 2.40634-8.626984 3.302317a1375.556011 1375.556011 0 0 1-18.892328 7.21902l-7.731007 2.918327c-2.252744 0.844779-3.814305 1.433564-4.735881 1.715157l-14.335642 5.401465c-5.273468 1.99675-10.470138 3.891103-15.666808 5.708657s-10.137347 3.327917-14.770831 4.582286-8.524587 1.868753-11.622109 1.868753c-3.788705 0-6.78383-0.307192-8.934177-0.895978s-4.070298-1.433564-5.785455-2.483137-3.430314-2.329542-5.171071-3.814305-4.070298-3.148721-6.963026-4.940677c-2.611135-1.61276-4.454289-3.788705-5.555061-6.604634s-1.638359-5.811055-1.638359-9.010975c0-1.61276 0.127997-3.455914 0.38399-5.555061a121.59696 121.59696 0 0 1 2.329542-13.362866 60.158496 60.158496 0 0 1 1.638359-5.862254l8.39659-25.445764z"
fill=
"#FFFFFF"
p
-
id=
"9317"
></
path
>
</
svg
>
);
export
const
MysqlSvg
=
()
=>
(
<
svg
t=
"1640784392625"
className=
"icon"
viewBox=
"0 0 1536 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"1930"
width=
"24px"
height=
"24px"
>
<
path
d=
"M1049.682334 103.921981a71.661153 71.661153 0 0 0-17.556983 2.098648v0.818984h0.870171a141.070099 141.070099 0 0 0 13.717992 17.096304c3.429498 6.705436 6.398317 13.410873 9.879002 20.116309l0.870171-0.818984a23.443434 23.443434 0 0 0 8.957644-20.935294c-2.559327-3.020006-2.917633-5.937638-5.118653-8.855271-2.559327-4.197296-8.036286-6.295944-11.516971-9.571883zM369.208498 932.785589h-59.376384Q307.119228 793.967698 292.633437 655.71286h-0.511865l-90.293053 277.072729h-45.09534l-89.576441-277.072729H66.542499q-10.237308 138.203652-12.438328 277.072729H0q5.118654-185.295267 26.207507-347.454219H99.813749l85.379145 255.318451h0.511866l86.146943-255.216078h70.125557q21.856652 173.010498 27.282425 347.454219z m256.956421-256.290995a775.527236 775.527236 0 0 1-95.462894 280.195109A127.096174 127.096174 0 0 1 429.455053 1024a101.298159 101.298159 0 0 1-36.240069-8.650525v-30.967855a177.412541 177.412541 0 0 0 24.723098 1.586782 60.400115 60.400115 0 0 0 41.358723-13.973925 50.162807 50.162807 0 0 0 18.939019-37.929224 246.770299 246.770299 0 0 0-14.741723-59.325198l-64.853344-198.143088h58.199094l46.477377 148.44096a195.788508 195.788508 0 0 1 13.15494 70.535049 944.852304 944.852304 0 0 0 53.387559-218.976009h56.305192z m859.933837-207.561411a202.033265 202.033265 0 0 0-83.024565 11.721717c-6.398317 2.50814-16.635625 2.50814-17.505795 10.544427 3.480685 3.327125 3.99255 8.804085 7.012555 13.410873a98.636459 98.636459 0 0 0 22.163771 25.593268c8.957644 6.858996 17.915288 13.564433 27.282425 19.450885 16.635625 10.237308 35.472271 16.021386 51.800776 26.156321 9.367136 5.886452 18.785459 13.410873 28.152596 19.706817 4.709161 3.122379 7.677981 8.804085 13.717992 10.800359v-1.382036c-2.968819-3.787804-3.83899-9.213577-6.756623-13.410873-4.248483-4.197296-8.548152-8.036286-12.796634-12.13121a204.746152 204.746152 0 0 0-44.429915-42.484826c-13.666806-9.213577-43.662117-21.959025-49.292636-37.366173l-0.870171-0.818984a179.152883 179.152883 0 0 0 29.534632-6.705437c14.48579-3.787804 27.79429-2.917633 42.843132-6.705436a307.631093 307.631093 0 0 0 20.474616-5.886452v-3.787804c-7.677981-7.524421-13.410873-17.761729-21.344787-24.774284a566.737348 566.737348 0 0 0-70.637422-51.698404c-13.462059-8.394592-30.711923-13.820365-44.634661-20.935294-5.118654-2.50814-13.666806-3.83899-16.635625-8.036286a158.166402 158.166402 0 0 1-17.556983-32.349892q-18.836646-35.830577-34.960405-73.04319a438.259138 438.259138 0 0 0-21.754279-47.910599A427.458778 427.458778 0 0 0 1120.985181 60.003931 212.219386 212.219386 0 0 0 1066.215585 42.754068c-10.6468-0.511865-21.344786-1.279663-31.991586-1.689156a150.590795 150.590795 0 0 1-19.80919-14.741723c-24.415979-15.100029-87.37542-47.75704-105.188336-4.504415-11.619344 27.231238 17.045117 54.104171 26.975306 67.924536a195.788508 195.788508 0 0 1 21.754279 31.428534c2.968819 7.268488 3.83899 14.844096 6.807809 22.368517a507.156218 507.156218 0 0 0 22.163771 56.305192 191.949517 191.949517 0 0 0 15.867827 25.951574c3.429498 4.606788 9.367136 6.705436 10.6468 14.229858a120.134805 120.134805 0 0 0-9.827816 31.428534 183.145433 183.145433 0 0 0 12.387143 141.377218c6.80781 10.237308 23.136315 33.527182 44.94178 24.620725 19.194952-7.524421 14.997656-31.428534 20.474615-52.415015 1.279663-5.118654 0.409492-8.394592 3.071192-11.721717v0.921357c5.988825 11.82409 12.028836 23.033942 17.556983 34.858033a238.529267 238.529267 0 0 0 55.43502 56.305191c10.237308 7.524421 18.324781 20.474615 31.121416 25.234964v-1.279664h-0.563052a59.58113 59.58113 0 0 0-9.879002-8.394592 217.696346 217.696346 0 0 1-22.368517-25.13259 548.6685 548.6685 0 0 1-47.75704-76.472688c-7.063742-13.257313-12.950194-27.384798-18.580713-40.386178-2.559327-5.118654-2.559327-12.540702-6.80781-15.100029a154.788091 154.788091 0 0 0-20.474615 28.459715 235.458075 235.458075 0 0 0-12.028837 63.420121c-1.689156 0.409492-0.870171 0-1.689155 0.818984-13.666806-3.275938-18.427154-17.14749-23.443435-28.920394a178.845764 178.845764 0 0 1-3.83899-112.047331c2.968819-8.804085 15.765454-36.598375 10.6468-44.992967-2.712887-8.036286-11.107479-12.540702-15.765454-19.092579a152.126391 152.126391 0 0 1-15.355961-26.821746c-10.237308-23.443434-15.355961-49.395009-26.514627-72.940816a218.259398 218.259398 0 0 0-21.344786-32.247519 207.663784 207.663784 0 0 1-23.648181-32.503452c-2.149835-4.606788-5.118654-12.233583-1.689156-17.249863a7.012556 7.012556 0 0 1 5.988825-5.630519c5.630519-4.504415 21.395973 1.33085 26.975306 3.83899a223.122119 223.122119 0 0 1 42.382453 20.935294c5.988825 4.197296 12.438329 12.233583 20.11631 14.229858h8.957644c13.666806 3.020006 29.073954 0.818985 41.870588 4.606788a276.407305 276.407305 0 0 1 61.423845 28.920394 376.57936 376.57936 0 0 1 133.443305 143.629426c5.118654 9.623069 7.319675 18.427154 11.926463 28.459715 8.957644 20.781734 20.065123 41.717028 29.176327 61.730964a270.008988 270.008988 0 0 0 30.711923 56.305192c6.398317 8.804085 32.093959 13.410873 43.61093 18.017662 8.548152 3.787804 21.754279 7.217302 29.432259 11.721717 14.741723 8.855271 29.022767 18.939019 42.894319 28.562088 7.012556 4.760348 28.306155 15.355961 29.585819 23.80174z"
fill=
"#13748E"
p
-
id=
"1931"
></
path
>
<
path
d=
"M1414.795909 931.096434h-168.40371v-353.903724h56.663497v310.395166h111.689026z m-357.537968-359.227124q138.203652 0 137.845347 175.723385a216.774988 216.774988 0 0 1-41.461096 144.192477 136.412124 136.412124 0 0 1-16.277319 15.9702l65.006903 31.991587-23.033942 39.77194-84.816093-49.39501a162.824377 162.824377 0 0 1-46.323817 6.295945 126.021256 126.021256 0 0 1-101.349345-39.311262 209.864806 209.864806 0 0 1-36.700748-136.923989 216.979734 216.979734 0 0 1 41.358723-143.680612 130.935164 130.935164 0 0 1 105.495454-44.685847z m-5.784079 43.508558q-81.284222 0-81.284222 133.750423a217.18448 217.18448 0 0 0 21.600719 111.074788 67.668603 67.668603 0 0 0 62.447576 32.401078c54.155357 0 81.284222-45.146526 81.284223-134.9789a216.365496 216.365496 0 0 0-21.600719-110.204617 68.180469 68.180469 0 0 0-62.447577-31.991586z m-165.742009 217.696345a94.080857 94.080857 0 0 1-33.015317 73.964548 129.911433 129.911433 0 0 1-88.655084 28.766834 177.975592 177.975592 0 0 1-100.68392-32.912944l15.355961-30.45599a171.270156 171.270156 0 0 0 76.114382 20.986481 79.953372 79.953372 0 0 0 50.060434-14.076298 48.217719 48.217719 0 0 0 19.194952-39.311261c0-21.14004-14.690536-39.055328-41.461096-54.104171-24.723098-13.666806-74.37404-42.075334-74.37404-42.075334a84.764907 84.764907 0 0 1-40.437364-75.346584 87.682539 87.682539 0 0 1 30.097684-69.357759 113.173435 113.173435 0 0 1 78.05947-26.617 160.725729 160.725729 0 0 1 89.576442 26.258694l-13.666806 30.711923a174.341348 174.341348 0 0 0-68.078096-14.741723 59.683503 59.683503 0 0 0-41.819401 13.206127 43.866863 43.866863 0 0 0-15.9702 33.527182c0 20.986481 14.997656 39.004142 42.638386 54.360104 25.183777 13.820365 75.909636 42.894319 75.909636 42.894318a83.229311 83.229311 0 0 1 41.461096 74.732346z"
fill=
"#F28D05"
p
-
id=
"1932"
></
path
>
</
svg
>
);
export
const
OracleSvg
=
()
=>
(
<
svg
t=
"1640789029266"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"11509"
width=
"24px"
height=
"24px"
>
<
path
d=
"M670.62528 711.899955h-316.933062c-57.361215 0-103.363076-14.287388-127.492886-71.40166H175.999449c28.292555 71.401661 94.931753 114.228546 177.692769 114.228546h316.545009c82.902126 0 149.541324-42.826885 177.728047-114.228546h-49.847108C773.988356 697.612568 728.021773 711.899955 670.62528 711.899955zM353.727495 312.100045H670.62528c57.361215 0 103.363076 14.287388 127.492886 71.40166h49.847108c-28.186723-71.401661-94.825921-114.228546-177.728047-114.228546h-316.545009c-82.761016 0-149.400214 42.826885-177.692769 114.228546h50.23516c24.12981-57.14955 70.131671-71.401661 127.492886-71.40166zM313.616977 513.569849c0-47.095463-39.193303-85.406828-87.382368-85.406828H151.375754c-48.189065 0-87.382368 38.311365-87.382369 85.406828s39.193303 85.406828 87.382369 85.406828h74.894133c48.189065 0 87.347091-38.346643 87.34709-85.406828z m-207.996141 0c0-24.658973 20.531505-44.73187 45.754918-44.731871h74.894133c25.223413 0 45.754918 20.072898 45.754917 44.731871s-20.531505 44.73187-45.754917 44.73187H151.375754c-25.25869 0-45.754918-20.072898-45.754918-44.73187z m416.73311-22.471768c0-34.71306-28.892273-62.970338-64.416715-62.970338h-124.882351v171.342819H374.647053v-83.325456l79.44493 83.325456h56.867331l-43.779378-45.896028c31.18531-4.409688 55.17401-30.726703 55.17401-62.476453z m-64.416715 22.471768H374.647053V468.837978h83.290178c12.594068 0 22.789265 10.089365 22.789265 22.436491 0.035278 12.27657-10.195198 22.29538-22.789265 22.29538z m170.249216-44.767148h86.500431l41.592173-40.674958h-128.092604c-48.189065 0-87.382368 38.311365-87.382368 85.406828s39.193303 85.406828 87.382368 85.406828h85.442106l41.592173-40.674957h-127.069556c-25.25869 0-45.754918-20.072898-45.754918-44.731871 0.035278-24.658973 20.566783-44.73187 45.790195-44.73187z m188.487684 81.561581v-122.201261h-49.917663v171.025321h143.297206l49.917663-48.788783H816.674131z"
fill=
"#E04E31"
p
-
id=
"11510"
></
path
>
</
svg
>
);
export
const
PostGreSqlSvg
=
()
=>
(
<
svg
t=
"1640789293797"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"12358"
width=
"20px"
height=
"20px"
>
<
path
d=
"M930.56415839 579.12956914c-14.30569336-12.26202276-32.69872793-14.30569336-51.09176337-8.17468154-14.30569336 4.08734121-30.65505732 6.13101182-44.96075156 6.13101094 40.87341035-67.44112734 71.52846768-141.01326563 91.96517373-218.67274424 10.21835214-34.74239854 16.34936396-71.52846768 16.34936396-110.35820831 4.08734121-30.65505732-4.08734121-61.31011552-22.48037578-85.83416102-51.0917625-65.39745674-130.7949126-102.18352588-212.5417333-100.13985528h-6.13101181c-34.74239854 0-69.48479707 6.13101182-102.18352588 14.30569336h-2.04367061c-20.43670518-4.08734121-42.91708096-6.13101182-63.35378525-6.13101182-38.82973974-2.0436706-79.7031501 8.17468242-114.44554864 28.6113876-49.04809277-18.39303457-104.22719648-26.567717-157.36262959-24.52404639-49.04809277 0-98.09618467 20.43670518-132.83858408 55.17910371-36.78606914 38.82973974-55.17910371 98.09618467-53.13543311 181.88667598 4.08734121 36.78606914 10.21835214 73.57213828 18.39303458 108.31453681 12.26202276 53.1354331 26.567717 104.22719648 44.96075156 155.31895898 14.30569336 47.00442217 38.82973974 91.96517286 71.52846767 128.75124288 16.34936396 16.34936396 38.82973974 26.567717 63.35378614 28.61138672 18.39303457 0 34.74239854-8.17468242 49.04809189-20.4367043 12.26202276 14.30569336 28.6113876 22.48037578 47.00442217 26.56771612 24.52404638 6.13101182 49.04809277 8.17468242 73.57213828 4.08734121 12.26202276-2.0436706 22.48037578-6.13101182 32.69872881-10.21835303 0 12.26202276 0 24.52404638 2.0436706 36.78607002-2.0436706 36.78606914 4.08734121 71.52846768 14.30569336 106.27086621 4.08734121 20.43670518 14.30569336 38.82973974 28.61138672 55.17910372 28.6113876 26.567717 67.44112734 36.78606914 104.22719648 28.61138759 38.82973974-6.13101182 75.61580888-26.567717 98.09618468-57.22277431 26.567717-36.78606914 38.82973974-91.96517286 40.87341034-179.84300538 0-4.08734121 2.0436706-8.17468242 2.04367061-12.26202275h6.13101182c34.74239854 2.0436706 69.48479707-4.08734121 100.13985439-16.34936484 24.52404638-10.21835214 47.00442217-26.567717 63.35378613-49.0480919 4.08734121-8.17468242 8.17468242-16.34936396 10.21835304-24.52404639 2.0436706-16.34936396-4.08734121-30.65505732-16.34936397-40.87341035z m-12.26202362 47.00442217c-14.30569336 18.39303457-30.65505732 30.65505732-53.13543311 38.82973975-24.52404638 10.21835214-51.0917625 14.30569336-77.65947949 14.30569336-12.26202276 0-24.52404638-2.0436706-36.78606914-4.08734122-6.13101182 51.0917625-10.21835214 102.18352588-20.43670517 153.27528926-2.0436706 24.52404638-14.30569336 49.04809277-30.65505821 69.48479707-20.43670518 18.39303457-44.96075156 30.65505732-71.52846767 32.69872793-30.65505732 8.17468242-61.31011552 2.0436706-85.83416192-16.34936397-14.30569336-12.26202276-24.52404638-30.65505732-32.69872793-49.04809189-4.08734121-12.26202276-6.13101182-22.48037578-8.17468242-34.74239941-2.0436706-18.39303457-4.08734121-36.78606914-4.08734033-53.13543311-2.0436706-32.69872793-2.0436706-63.35378614-2.04367061-94.00884345-16.34936396 14.30569336-36.78606914 24.52404638-57.22277432 28.6113876-20.43670518 4.08734121-42.91708096 2.0436706-63.35378612-4.08734122-6.13101182-2.0436706-12.26202276-4.08734121-18.39303458-8.17468242-8.17468242-2.0436706-12.26202276-8.17468242-16.34936396-14.30569336-2.0436706-4.08734121-4.08734121-10.21835214-2.04367061-14.30569336 2.0436706-4.08734121 4.08734121-10.21835214 8.17468155-12.26202363 10.21835214-6.13101182 20.43670518-10.21835214 32.6987288-12.26202276 14.30569336-2.0436706 28.6113876-6.13101182 42.91708008-12.26202363 8.17468242-6.13101182 14.30569336-14.30569336 20.43670518-22.4803749v-2.04367061c-18.39303457 0-34.74239854-6.13101182-51.0917625-12.26202363-6.13101182 6.13101182-32.69872793 34.74239854-69.48479708 77.65947949-12.26202276 16.34936396-28.6113876 26.567717-49.04809277 28.6113876-18.39303457 0-34.74239854-8.17468242-47.00442216-20.43670517-30.65505732-34.74239854-51.0917625-75.61580888-65.39745586-118.53288985-16.34936396-53.1354331-30.65505732-104.22719648-40.87341036-155.31895898-8.17468242-34.74239854-14.30569336-67.44112734-18.39303456-102.18352588-4.08734121-77.65947949 14.30569336-128.751242 44.96075068-161.44997081 30.65505732-30.65505732 71.52846768-47.00442217 116.48922011-49.04809188 55.17910371-2.0436706 110.35820742 8.17468242 161.44996992 28.61138671 32.69872793-20.43670518 69.48479707-30.65505732 108.3145377-30.65505733 20.43670518 0 42.91708096 4.08734121 63.35378613 8.17468242 8.17468242-4.08734121 18.39303457-6.13101182 28.61138672-8.17468242 26.567717-6.13101182 51.0917625-8.17468242 77.6594795-10.21835302 77.65947949-2.0436706 151.23161777 30.65505732 200.27971054 91.96517373 12.26202276 20.43670518 18.39303457 47.00442217 16.34936397 71.52846767-2.0436706 34.74239854-8.17468242 69.48479707-16.34936397 104.22719649-22.48037578 85.83416191-59.26644492 167.58098174-108.3145377 243.19679062 2.0436706 2.0436706 4.08734121 2.0436706 6.13101182 4.08734122 28.6113876 6.13101182 57.22277432 6.13101182 85.83416192-2.04367061 10.21835214-4.08734121 22.48037578-2.0436706 32.69872793 2.04367061 4.08734121 4.08734121 8.17468242 10.21835214 8.17468242 16.34936396-6.13101182 0-6.13101182 6.13101182-8.17468242 10.21835303z"
p
-
id=
"12359"
></
path
>
<
path
d=
"M703.71673086 111.12902158h-6.13101182c-20.43670518 0-42.91708096 2.0436706-63.35378525 8.17468243 40.87341035 18.39303457 77.65947949 49.04809277 106.27086621 83.79049042 16.34936396 22.48037578 30.65505732 44.96075156 42.91708096 71.52846856 4.08734121 10.21835214 8.17468242 18.39303457 10.21835214 24.52404638 0 4.08734121 2.0436706 6.13101182 2.04367061 10.21835216v6.13101181c2.0436706 32.69872793-8.17468242 53.1354331-8.17468154 85.83416103 0 22.48037578 6.13101182 49.04809277 6.13101093 77.6594795 4.08734121 30.65505732-4.08734121 61.31011552-20.43670429 85.83416191 2.0436706 2.0436706 4.08734121 4.08734121 4.08734033 6.13101182 42.91708096-69.48479707 77.65947949-145.10060683 98.09618467-224.80375693 8.17468242-32.69872793 14.30569336-65.39745674 14.30569424-98.09618468 2.0436706-18.39303457-2.0436706-36.78606914-10.21835303-55.1791037-40.87341035-55.17910371-106.27086709-83.79049131-175.75566416-81.74682071z"
fill=
"#306092"
p
-
id=
"12360"
></
path
>
<
path
d=
"M527.9610667 119.30370401c-36.78606914-2.0436706-71.52846768 10.21835214-98.09618467 32.69872792-24.52404638 20.43670518-40.87341035 49.04809277-53.1354331 77.6594795-10.21835214 28.6113876-16.34936396 59.26644492-18.39303458 89.92150312 16.34936396-8.17468242 32.69872793-14.30569336 51.0917625-18.39303545 18.39303457-4.08734121 38.82973974-4.08734121 57.22277432 2.04367061 20.43670518 8.17468242 34.74239854 26.567717 38.82973975 49.04809277 26.567717 120.57656045-8.17468242 165.53731201-20.43670517 202.32338115-6.13101182 12.26202276-10.21835214 24.52404638-12.26202276 36.78606914 2.0436706 0 4.08734121 0 6.13101182-2.0436706 6.13101182 0 14.30569336 2.0436706 20.4367043 4.08734121 12.26202276 6.13101182 22.48037578 16.34936396 26.56771698 30.65505732 2.0436706 4.08734121 2.0436706 8.17468242 2.04367061 10.21835215v6.13101182c-2.0436706 47.00442217-2.0436706 94.00884346 0 141.01326562 0 18.39303457 2.0436706 34.74239854 4.08734121 53.1354331 0 10.21835214 2.0436706 18.39303457 6.13101094 28.6113876 4.08734121 14.30569336 12.26202276 26.567717 24.52404638 36.78606914s30.65505732 16.34936396 63.35378614 10.21835216c20.43670518-2.0436706 40.87341035-12.26202276 57.22277431-26.56771612 12.26202276-16.34936396 20.43670518-34.74239854 22.48037578-55.17910371 8.17468242-38.82973974 20.43670518-153.27528838 22.48037578-173.71199444 0-12.26202276 2.0436706-26.567717 8.17468155-36.78606914 4.08734121-8.17468242 12.26202276-14.30569336 20.43670517-18.39303456 4.08734121-2.0436706 6.13101182-2.0436706 10.21835304-4.08734122-4.08734121-4.08734121-6.13101182-8.17468242-10.21835304-12.26202275-10.21835214-12.26202276-18.39303457-26.567717-24.5240455-40.87341035-4.08734121-6.13101182-6.13101182-12.26202276-10.21835303-18.39303458-6.13101182-10.21835214-10.21835214-20.43670518-18.39303457-32.69872792-14.30569336-26.567717-26.567717-55.17910371-34.74239854-85.83416192-8.17468242-30.65505732-10.21835214-59.26644492 10.21835216-81.7468207 16.34936396-18.39303457 47.00442217-28.6113876 91.96517372-22.48037578-2.0436706-4.08734121-2.0436706-8.17468242-4.0873412-12.26202275-8.17468242-24.52404638-22.48037578-47.00442217-38.82973976-65.39745674-44.96075156-61.31011552-116.48921924-96.05251406-192.10502812-98.09618467l-8.17468242-6.13101093z"
fill=
"#306092"
p
-
id=
"12361"
></
path
>
<
path
d=
"M278.63326426 121.34737461h-14.30569424c-36.78606914 0-73.57213828 14.30569336-98.09618466 40.87341035-26.567717 26.567717-44.96075156 71.52846768-40.87340948 147.14427656 4.08734121 32.69872793 10.21835214 65.39745674 16.34936396 98.09618467 10.21835214 51.0917625 24.52404638 100.13985528 42.91708096 149.18794717 12.26202276 40.87341035 32.69872793 77.65947949 59.26644404 110.3582083 6.13101182 8.17468242 16.34936396 12.26202276 28.6113876 12.26202276 12.26202276-2.0436706 22.48037578-8.17468242 30.65505733-18.39303458 22.48037578-26.567717 44.96075156-53.1354331 67.44112734-75.61580888-34.74239854-28.6113876-51.0917625-73.57213828-42.91708096-118.53288984 2.0436706-24.52404638 4.08734121-49.04809277 4.08734122-75.61580889 0-20.43670518-2.0436706-32.69872793-2.04367061-40.87341036V348.19480127c0-42.91708096 8.17468242-85.83416191 22.48037578-126.70757139 10.21835214-28.6113876 26.567717-55.17910371 49.04809189-77.65948037-34.74239854-12.26202276-71.52846768-18.39303457-108.31453681-20.43670518-6.13101182-2.0436706-10.21835214-2.0436706-14.30569336-2.04366972zM760.93950518 399.28656377c2.0436706-32.69872793 8.17468242-53.1354331 8.17468242-75.61580888-10.21835214-2.0436706-18.39303457-2.0436706-28.6113876-2.04367062-16.34936396-2.0436706-32.69872793 4.08734121-47.00442128 14.30569425-10.21835214 10.21835214-10.21835214 32.69872793-6.13101182 59.26644492 8.17468242 28.6113876 18.39303457 55.17910371 32.69872792 79.7031501 6.13101182 12.26202276 12.26202276 22.48037578 16.34936397 32.69872792 4.08734121 6.13101182 8.17468242 14.30569336 10.21835303 20.43670518 2.0436706 4.08734121 4.08734121 10.21835214 8.17468154 12.26202276 8.17468242-20.43670518 12.26202276-40.87341035 10.21835302-61.31011553 2.0436706-24.52404638-4.08734121-53.1354331-4.0873412-79.7031501z m-14.30569336-61.31011465c0 2.0436706 0 4.08734121-2.0436706 6.13101094-2.0436706 2.0436706-2.0436706 4.08734121-4.08734122 6.13101181-4.08734121 4.08734121-10.21835214 6.13101182-14.30569336 8.17468243-6.13101182 0-10.21835214 0-14.30569336-4.08734121-2.0436706-2.0436706-4.08734121-2.0436706-6.13101182-4.08734122-2.0436706 0-2.0436706-2.0436706-2.0436706-4.0873412s0-4.08734121 2.0436706-6.13101182l4.08734122-4.08734033c6.13101182-4.08734121 14.30569336-6.13101182 20.43670518-6.13101182h10.21835214c2.0436706 0 4.08734121 2.0436706 6.13101182 2.04367061v6.13101181z"
fill=
"#306092"
p
-
id=
"12362"
></
path
>
<
path
d=
"M478.9129748 356.36948369c-2.0436706-14.30569336-10.21835214-26.567717-24.52404638-32.69872881-6.13101182-2.0436706-12.26202276-2.0436706-18.39303457-2.04367061-8.17468242 0-14.30569336 2.0436706-22.48037578 2.04367061-14.30569336 4.08734121-28.6113876 10.21835214-42.91708096 16.34936397-4.08734121 2.0436706-8.17468242 6.13101182-12.26202276 10.21835302 0 6.13101182 2.0436706 18.39303457 2.04367062 36.78606915 0 26.567717 0 53.1354331-4.08734122 77.65947948-10.21835214 55.17910371 26.567717 106.27086709 81.7468207 116.48921924 4.08734121 0 6.13101182 0 10.21835215 2.04367062 4.08734121-12.26202276 10.21835214-26.567717 12.26202275-40.87341036 12.26202276-36.78606914 42.91708096-67.44112734 18.39303545-185.97401631z m-14.30569423 2.04367061l-6.13101094 6.13101093c-4.08734121 4.08734121-10.21835214 6.13101182-16.34936484 4.08734121-6.13101182-2.0436706-10.21835214-4.08734121-14.30569336-10.21835214-2.0436706-2.0436706-4.08734121-4.08734121-4.08734122-6.13101182-4.08734121-4.08734121-4.08734121-6.13101182-4.08734033-8.17468242 0-4.08734121 4.08734121-6.13101182 8.17468155-8.17468154 4.08734121-2.0436706 8.17468242-2.0436706 10.21835302-2.04367061h6.13101094c6.13101182 0 10.21835214 2.0436706 14.30569424 6.13101094 2.0436706 2.0436706 4.08734121 2.0436706 6.13101094 4.08734121s2.0436706 4.08734121 2.0436706 8.17468242c-2.0436706 2.0436706-2.0436706 4.08734121-2.0436706 6.13101182zM777.28886914 611.82829795c-4.08734121 2.0436706-8.17468242 2.0436706-12.26202276 2.04367061-4.08734121 2.0436706-6.13101182 4.08734121-10.21835302 8.17468154-2.0436706 8.17468242-4.08734121 16.34936396-4.08734033 24.52404638 2.0436706 2.0436706 4.08734121 2.0436706 6.13101093 2.04367061 8.17468242 2.0436706 18.39303457 4.08734121 28.6113876 4.08734121 24.52404638 0 47.00442217-4.08734121 69.48479707-12.26202363 12.26202276-6.13101182 24.52404638-12.26202276 34.74239942-22.48037579-53.1354331 10.21835214-79.7031501 8.17468242-98.09618467 0-6.13101182-2.0436706-10.21835214-4.08734121-14.30569424-6.13101093zM476.8693042 615.91563828c-2.0436706 0-6.13101182 0-10.21835303 8.17468242-12.26202276 14.30569336-16.34936396 24.52404638-28.61138672 32.69872794-16.34936396 10.21835214-32.69872793 16.34936396-53.13543398 18.39303456-6.13101182 0-12.26202276 2.0436706-16.34936396 6.13101182l2.0436706 2.04367061c4.08734121 2.0436706 10.21835214 4.08734121 12.26202276 6.13101181 16.34936396 4.08734121 34.74239854 6.13101182 53.13543398 4.08734034 24.52404638-4.08734121 47.00442217-18.39303457 59.26644492-38.82973975 4.08734121-6.13101182 4.08734121-12.26202276 0-18.39303457-2.0436706-6.13101182-8.17468242-12.26202276-12.26202364-14.30569336 0-6.13101182-4.08734121-6.13101182-6.13101093-6.13101182z"
fill=
"#306092"
p
-
id=
"12363"
></
path
>
</
svg
>
);
export
const
ClickHouseSvg
=
()
=>
(
<
svg
t=
"1640789681111"
className=
"icon"
viewBox=
"0 0 1152 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"13211"
width=
"20px"
height=
"20px"
>
<
path
d=
"M0 896h128v128H0z"
fill=
"#ff0000"
p
-
id=
"13212"
></
path
>
<
path
d=
"M0 0h128v896H0zM256 0h128v1024H256zM512 0h128v1024H512zM768 0h128v1024H768zM1024 416h128v192H1024z"
fill=
"#ffcc00"
p
-
id=
"13213"
></
path
>
</
svg
>
);
export
const
DorisSvg
=
()
=>
(
<
svg
t=
"1640789853861"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"13678"
width=
"20px"
height=
"20px"
>
<
path
d=
"M272.816 43.1136c57.4848-57.4848 150.688-57.4848 208.1728 0l113.136 113.136c57.4848 57.488 57.4848 150.688 0 208.1728l-85.984 85.984a25.6 25.6 0 0 1-36.2048 0L272.816 251.2864c-57.4848-57.4848-57.4848-150.688 0-208.1728z"
fill=
"#14A9CA"
p
-
id=
"13679"
></
path
>
<
path
d=
"M277.3408 771.7152l391.472-391.472c11.5744-14.4288 21.1296-30.6176 28.6656-48.5696 7.536-17.952 12.3904-38.6304 14.56-62.0384l137.776 137.7792c57.4848 57.4848 57.4848 150.688 0 208.1728L485.5136 979.888c-57.4848 57.4848-150.688 57.4848-208.1728 0s-57.4848-150.688 0-208.1728z"
fill=
"#52CAA4"
p
-
id=
"13680"
></
path
>
<
path
d=
"M177.1648 246.144l249.5168 249.5168a25.6 25.6 0 0 1 0 36.2048l-249.5168 249.5168A28.8 28.8 0 0 1 128 761.0176V266.5088a28.8 28.8 0 0 1 49.1648-20.3648z"
fill=
"#5168AC"
p
-
id=
"13681"
></
path
>
</
svg
>
);
export
const
JavaSvg
=
()
=>
(
<
svg
t=
"1640791080436"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"19717"
width=
"20px"
height=
"20px"
>
<
path
d=
"M558.08 472.064c48.128 53.248-13.312 103.424-13.312 103.424s119.808-61.44 65.536-139.264c-51.2-71.68-91.136-107.52 122.88-232.448 0 1.024-335.872 86.016-175.104 268.288"
fill=
"#FF0000"
p
-
id=
"19718"
></
path
>
<
path
d=
"M610.304 5.12s101.376 101.376-96.256 258.048C356.352 389.12 478.208 460.8 514.048 543.744 420.864 459.776 354.304 386.048 399.36 317.44 463.872 216.064 651.264 166.912 610.304 5.12"
fill=
"#FF0000"
p
-
id=
"19719"
></
path
>
<
path
d=
"M720.896 757.76c183.296-95.232 98.304-188.416 39.936-175.104-15.36 3.072-21.504 5.12-21.504 5.12s5.12-8.192 16.384-11.264c117.76-40.96 207.872 120.832-37.888 186.368-1.024 0 2.048-3.072 3.072-5.12m-337.92 38.912s-37.888 21.504 26.624 29.696c76.8 8.192 117.76 8.192 202.752-8.192 0 0 23.552 15.36 53.248 26.624-191.488 80.896-433.152-5.12-282.624-48.128m-23.552-106.496s-43.008 31.744 23.552 37.888c82.944 8.192 149.504 10.24 261.12-13.312 0 0 16.384 16.384 40.96 24.576-231.424 68.608-490.496 5.12-325.632-49.152"
fill=
"#6699FF"
p
-
id=
"19720"
></
path
>
<
path
d=
"M811.008 876.544s27.648 23.552-31.744 40.96c-111.616 34.816-460.8 45.056-558.08 2.048-34.816-15.36 31.744-35.84 51.2-40.96 21.504-5.12 34.816-3.072 34.816-3.072-38.912-28.672-251.904 52.224-107.52 75.776 390.144 62.464 712.704-28.672 611.328-74.752M400.384 578.56s-178.176 43.008-63.488 56.32c49.152 6.144 146.432 5.12 235.52-3.072 73.728-6.144 147.456-19.456 147.456-19.456s-26.624 11.264-45.056 24.576c-181.248 48.128-530.432 26.624-430.08-23.552 88.064-39.936 155.648-34.816 155.648-34.816"
fill=
"#6699FF"
p
-
id=
"19721"
></
path
>
<
path
d=
"M418.816 1015.808c176.128 11.264 446.464-6.144 453.632-90.112 0 0-13.312 31.744-146.432 56.32-150.528 27.648-336.896 24.576-446.464 6.144 2.048 1.024 24.576 20.48 139.264 27.648"
fill=
"#6699FF"
p
-
id=
"19722"
></
path
>
</
svg
>
);
export
const
UDFSvg
=
()
=>
(
<
svg
t=
"1640792304032"
className=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"28067"
width=
"20px"
height=
"20px"
>
<
path
d=
"M234.56 1024a164.288 164.288 0 0 0 150.656-118.848l0.64-2.112c32.512-126.08 84.224-325.888 122.56-471.232h137.152a43.84 43.84 0 1 0 0-87.488h-113.92c12.288-45.76 21.248-78.4 24.768-89.6l3.904-12.48c14.464-46.272 48.384-154.752 100.8-154.752 48.64 0 55.872 70.4 56.192 73.536a45.632 45.632 0 0 0 50.112 40.064 44.8 44.8 0 0 0 43.136-46.912A157.12 157.12 0 0 0 660.928 0C538.496 0 492.544 147.2 470.464 217.6l-3.776 11.904c-4.48 13.952-16.256 57.088-31.616 114.688H271.744a43.84 43.84 0 1 0 0 87.488h140.288c-47.936 182.208-109.952 422.4-116.736 449.088-2.56 6.912-21.696 55.616-60.864 55.616-59.84 0-85.696-78.656-85.952-79.232a47.168 47.168 0 0 0-57.6-29.888 43.456 43.456 0 0 0-32 54.208A193.216 193.216 0 0 0 234.56 1024z"
fill=
"#262626"
p
-
id=
"28068"
></
path
>
<
path
d=
"M919.68 911.168a45.952 45.952 0 0 0 47.488-47.488 59.392 59.392 0 0 0-16.96-39.36l-90.88-104.448 88.192-103.104a54.848 54.848 0 0 0 14.208-35.264 45.568 45.568 0 0 0-48.192-44.8 59.456 59.456 0 0 0-44.8 26.496l-68.48 89.6-67.136-89.6a58.944 58.944 0 0 0-48.128-26.432 45.952 45.952 0 0 0-47.488 47.488 59.456 59.456 0 0 0 16.96 39.296l84.8 97.664-92.928 109.824a51.52 51.52 0 0 0-14.208 35.264 45.568 45.568 0 0 0 48.128 44.8 59.392 59.392 0 0 0 44.8-26.432l73.216-96 73.216 96a58.944 58.944 0 0 0 48.192 26.496z"
fill=
"#5764FC"
fill
-
opacity=
"0.9"
p
-
id=
"28069"
></
path
>
</
svg
>
);
dlink-web/src/pages/Welcome.tsx
View file @
372436bd
...
...
@@ -511,6 +511,9 @@ export default (): React.ReactNode => {
<
li
>
<
Link
>
新增 FlinkSQL 执行环境方言及其应用功能
</
Link
>
</
li
>
<
li
>
<
Link
>
新增 Mysql,Oracle,PostGreSql,ClickHouse,Doris,Java 方言及图标
</
Link
>
</
li
>
</
ul
>
</
Paragraph
>
</
Timeline
.
Item
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment