@@ -20,6 +20,7 @@ import {
20
20
InputNumber ,
21
21
Tooltip ,
22
22
Spin ,
23
+ Tag ,
23
24
Toast ,
24
25
Popconfirm ,
25
26
} from "@douyinfe/semi-ui" ;
@@ -30,6 +31,7 @@ import {
30
31
jsonToSQLite ,
31
32
jsonToMariaDB ,
32
33
jsonToSQLServer ,
34
+ jsonToOracleSQL ,
33
35
} from "../../utils/exportSQL/generic" ;
34
36
import {
35
37
ObjectType ,
@@ -793,48 +795,63 @@ export default function ControlPanel({
793
795
import_from : {
794
796
children : [
795
797
{
796
- JSON : fileImport ,
798
+ function : fileImport ,
799
+ name : "JSON" ,
797
800
} ,
798
801
{
799
- DBML : ( ) => {
802
+ function : ( ) => {
800
803
setModal ( MODAL . IMPORT ) ;
801
804
setImportFrom ( IMPORT_FROM . DBML ) ;
802
805
} ,
806
+ name : "DBML" ,
803
807
} ,
804
808
] ,
805
809
} ,
806
810
import_from_source : {
807
811
...( database === DB . GENERIC && {
808
812
children : [
809
813
{
810
- MySQL : ( ) => {
814
+ function : ( ) => {
811
815
setModal ( MODAL . IMPORT_SRC ) ;
812
816
setImportDb ( DB . MYSQL ) ;
813
817
} ,
818
+ name : "MySQL" ,
814
819
} ,
815
820
{
816
- PostgreSQL : ( ) => {
821
+ function : ( ) => {
817
822
setModal ( MODAL . IMPORT_SRC ) ;
818
823
setImportDb ( DB . POSTGRES ) ;
819
824
} ,
825
+ name : "PostgreSQL" ,
820
826
} ,
821
827
{
822
- SQLite : ( ) => {
828
+ function : ( ) => {
823
829
setModal ( MODAL . IMPORT_SRC ) ;
824
830
setImportDb ( DB . SQLITE ) ;
825
831
} ,
832
+ name : "SQLite" ,
826
833
} ,
827
834
{
828
- MariaDB : ( ) => {
835
+ function : ( ) => {
829
836
setModal ( MODAL . IMPORT_SRC ) ;
830
837
setImportDb ( DB . MARIADB ) ;
831
838
} ,
839
+ name : "MariaDB" ,
832
840
} ,
833
841
{
834
- MSSQL : ( ) => {
842
+ function : ( ) => {
835
843
setModal ( MODAL . IMPORT_SRC ) ;
836
844
setImportDb ( DB . MSSQL ) ;
837
845
} ,
846
+ name : "MSSQL" ,
847
+ } ,
848
+ {
849
+ function : ( ) => {
850
+ setModal ( MODAL . IMPORT_SRC ) ;
851
+ setImportDb ( DB . ORACLESQL ) ;
852
+ } ,
853
+ name : "Oracle" ,
854
+ label : "Beta" ,
838
855
} ,
839
856
] ,
840
857
} ) ,
@@ -848,7 +865,8 @@ export default function ControlPanel({
848
865
...( database === DB . GENERIC && {
849
866
children : [
850
867
{
851
- MySQL : ( ) => {
868
+ name : "MySQL" ,
869
+ function : ( ) => {
852
870
setModal ( MODAL . CODE ) ;
853
871
const src = jsonToMySQL ( {
854
872
tables : tables ,
@@ -864,7 +882,8 @@ export default function ControlPanel({
864
882
} ,
865
883
} ,
866
884
{
867
- PostgreSQL : ( ) => {
885
+ name : "PostgreSQL" ,
886
+ function : ( ) => {
868
887
setModal ( MODAL . CODE ) ;
869
888
const src = jsonToPostgreSQL ( {
870
889
tables : tables ,
@@ -880,7 +899,8 @@ export default function ControlPanel({
880
899
} ,
881
900
} ,
882
901
{
883
- SQLite : ( ) => {
902
+ name : "SQLite" ,
903
+ function : ( ) => {
884
904
setModal ( MODAL . CODE ) ;
885
905
const src = jsonToSQLite ( {
886
906
tables : tables ,
@@ -896,7 +916,8 @@ export default function ControlPanel({
896
916
} ,
897
917
} ,
898
918
{
899
- MariaDB : ( ) => {
919
+ name : "MariaDB" ,
920
+ function : ( ) => {
900
921
setModal ( MODAL . CODE ) ;
901
922
const src = jsonToMariaDB ( {
902
923
tables : tables ,
@@ -912,7 +933,8 @@ export default function ControlPanel({
912
933
} ,
913
934
} ,
914
935
{
915
- MSSQL : ( ) => {
936
+ name : "MSSQL" ,
937
+ function : ( ) => {
916
938
setModal ( MODAL . CODE ) ;
917
939
const src = jsonToSQLServer ( {
918
940
tables : tables ,
@@ -927,6 +949,24 @@ export default function ControlPanel({
927
949
} ) ) ;
928
950
} ,
929
951
} ,
952
+ {
953
+ label : "Beta" ,
954
+ name : "Oracle" ,
955
+ function : ( ) => {
956
+ setModal ( MODAL . CODE ) ;
957
+ const src = jsonToOracleSQL ( {
958
+ tables : tables ,
959
+ references : relationships ,
960
+ types : types ,
961
+ database : database ,
962
+ } ) ;
963
+ setExportData ( ( prev ) => ( {
964
+ ...prev ,
965
+ data : src ,
966
+ extension : "sql" ,
967
+ } ) ) ;
968
+ } ,
969
+ } ,
930
970
] ,
931
971
} ) ,
932
972
function : ( ) => {
@@ -949,7 +989,8 @@ export default function ControlPanel({
949
989
export_as : {
950
990
children : [
951
991
{
952
- PNG : ( ) => {
992
+ name : "PNG" ,
993
+ function : ( ) => {
953
994
toPng ( document . getElementById ( "canvas" ) ) . then ( function ( dataUrl ) {
954
995
setExportData ( ( prev ) => ( {
955
996
...prev ,
@@ -961,7 +1002,8 @@ export default function ControlPanel({
961
1002
} ,
962
1003
} ,
963
1004
{
964
- JPEG : ( ) => {
1005
+ name : "JPEG" ,
1006
+ function : ( ) => {
965
1007
toJpeg ( document . getElementById ( "canvas" ) , { quality : 0.95 } ) . then (
966
1008
function ( dataUrl ) {
967
1009
setExportData ( ( prev ) => ( {
@@ -975,7 +1017,8 @@ export default function ControlPanel({
975
1017
} ,
976
1018
} ,
977
1019
{
978
- SVG : ( ) => {
1020
+ name : "SVG" ,
1021
+ function : ( ) => {
979
1022
const filter = ( node ) => node . tagName !== "i" ;
980
1023
toSvg ( document . getElementById ( "canvas" ) , { filter : filter } ) . then (
981
1024
function ( dataUrl ) {
@@ -990,7 +1033,8 @@ export default function ControlPanel({
990
1033
} ,
991
1034
} ,
992
1035
{
993
- JSON : ( ) => {
1036
+ name : "JSON" ,
1037
+ function : ( ) => {
994
1038
setModal ( MODAL . CODE ) ;
995
1039
const result = JSON . stringify (
996
1040
{
@@ -1014,7 +1058,8 @@ export default function ControlPanel({
1014
1058
} ,
1015
1059
} ,
1016
1060
{
1017
- DBML : ( ) => {
1061
+ name : "DBML" ,
1062
+ function : ( ) => {
1018
1063
setModal ( MODAL . CODE ) ;
1019
1064
const result = toDBML ( {
1020
1065
tables,
@@ -1029,7 +1074,8 @@ export default function ControlPanel({
1029
1074
} ,
1030
1075
} ,
1031
1076
{
1032
- PDF : ( ) => {
1077
+ name : "PDF" ,
1078
+ function : ( ) => {
1033
1079
const canvas = document . getElementById ( "canvas" ) ;
1034
1080
toJpeg ( canvas ) . then ( function ( dataUrl ) {
1035
1081
const doc = new jsPDF ( "l" , "px" , [
@@ -1049,7 +1095,8 @@ export default function ControlPanel({
1049
1095
} ,
1050
1096
} ,
1051
1097
{
1052
- MERMAID : ( ) => {
1098
+ name : "Mermaid" ,
1099
+ function : ( ) => {
1053
1100
setModal ( MODAL . CODE ) ;
1054
1101
const result = jsonToMermaid ( {
1055
1102
tables : tables ,
@@ -1067,7 +1114,8 @@ export default function ControlPanel({
1067
1114
} ,
1068
1115
} ,
1069
1116
{
1070
- readme : ( ) => {
1117
+ name : "Markdown" ,
1118
+ function : ( ) => {
1071
1119
setModal ( MODAL . CODE ) ;
1072
1120
const result = jsonToDocumentation ( {
1073
1121
tables : tables ,
@@ -1271,7 +1319,8 @@ export default function ControlPanel({
1271
1319
theme : {
1272
1320
children : [
1273
1321
{
1274
- light : ( ) => {
1322
+ name : t ( "light" ) ,
1323
+ function : ( ) => {
1275
1324
const body = document . body ;
1276
1325
if ( body . hasAttribute ( "theme-mode" ) ) {
1277
1326
body . setAttribute ( "theme-mode" , "light" ) ;
@@ -1281,7 +1330,8 @@ export default function ControlPanel({
1281
1330
} ,
1282
1331
} ,
1283
1332
{
1284
- dark : ( ) => {
1333
+ name : t ( "dark" ) ,
1334
+ function : ( ) => {
1285
1335
const body = document . body ;
1286
1336
if ( body . hasAttribute ( "theme-mode" ) ) {
1287
1337
body . setAttribute ( "theme-mode" , "dark" ) ;
@@ -1602,9 +1652,9 @@ export default function ControlPanel({
1602
1652
const body = document . body ;
1603
1653
if ( body . hasAttribute ( "theme-mode" ) ) {
1604
1654
if ( body . getAttribute ( "theme-mode" ) === "light" ) {
1605
- menu [ "view" ] [ "theme" ] . children [ 1 ] [ "dark" ] ( ) ;
1655
+ menu [ "view" ] [ "theme" ] . children [ 1 ] . function ( ) ;
1606
1656
} else {
1607
- menu [ "view" ] [ "theme" ] . children [ 0 ] [ "light" ] ( ) ;
1657
+ menu [ "view" ] [ "theme" ] . children [ 0 ] . function ( ) ;
1608
1658
}
1609
1659
}
1610
1660
} }
@@ -1703,7 +1753,7 @@ export default function ControlPanel({
1703
1753
if ( menu [ category ] [ item ] . children ) {
1704
1754
return (
1705
1755
< Dropdown
1706
- style = { { width : "120px " } }
1756
+ style = { { width : "150px " } }
1707
1757
key = { item }
1708
1758
position = "rightTop"
1709
1759
render = {
@@ -1712,9 +1762,18 @@ export default function ControlPanel({
1712
1762
( e , i ) => (
1713
1763
< Dropdown . Item
1714
1764
key = { i }
1715
- onClick = { Object . values ( e ) [ 0 ] }
1765
+ onClick = { e . function }
1766
+ className = "flex justify-between"
1716
1767
>
1717
- { t ( Object . keys ( e ) [ 0 ] ) }
1768
+ < span > { e . name } </ span >
1769
+ { e . label && (
1770
+ < Tag
1771
+ size = "small"
1772
+ color = "light-blue"
1773
+ >
1774
+ { e . label }
1775
+ </ Tag >
1776
+ ) }
1718
1777
</ Dropdown . Item >
1719
1778
) ,
1720
1779
) }
0 commit comments