@steedos/steedos-plugin-schema-builder 2.6.1-beta.7 → 2.6.2-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +3 -34
  2. package/package.json +4 -4
  3. package/package.service.js +7 -5
  4. package/package.service.yml +3 -0
  5. package/public/schema-builder/index.html +1 -1
  6. package/src/objects.object.yml +1 -1
  7. package/.scripts/npm-postinstall.js +0 -35
  8. package/.vscode/extensions.json +0 -5
  9. package/.vscode/settings.json +0 -10
  10. package/nodemon.json +0 -13
  11. package/plugin.config.yml +0 -4
  12. package/steedos-config.yml +0 -31
  13. package/webapp/index.html +0 -0
  14. package/webapp/package.json +0 -53
  15. package/webapp/src/g6/behavior/activate-relations/index.tsx +0 -160
  16. package/webapp/src/g6/behavior/darg/index.tsx +0 -146
  17. package/webapp/src/g6/behavior/index.tsx +0 -5
  18. package/webapp/src/g6/model/editor-background.png +0 -0
  19. package/webapp/src/g6/model/index.tsx +0 -574
  20. package/webapp/src/g6/model/model-node.tsx +0 -1080
  21. package/webapp/src/g6/model/model.scss +0 -163
  22. package/webapp/src/g6/model/toolbar.tsx +0 -360
  23. package/webapp/src/g6/shape/base-sharp/index.tsx +0 -19
  24. package/webapp/src/g6/shape/index.tsx +0 -0
  25. package/webapp/src/g6/util/graph.tsx +0 -60
  26. package/webapp/src/g6/util/hooks.tsx +0 -26
  27. package/webapp/src/g6/util/index.tsx +0 -20
  28. package/webapp/src/hook/index.tsx +0 -47
  29. package/webapp/src/index.tsx +0 -25
  30. package/webapp/src/page/dva-model/index.tsx +0 -70
  31. package/webapp/src/page/dva-model/reducer/arrange.tsx +0 -16
  32. package/webapp/src/page/dva-model/reducer/index.tsx +0 -7
  33. package/webapp/src/page/dva-model/reducer/init.tsx +0 -61
  34. package/webapp/src/page/dva-model/reducer/model.tsx +0 -126
  35. package/webapp/src/page/dva-model/reducer/on-expand.tsx +0 -27
  36. package/webapp/src/page/dva-model/style.tsx +0 -88
  37. package/webapp/src/page/hooks/callback.tsx +0 -54
  38. package/webapp/src/page/hooks/fullscreen.tsx +0 -34
  39. package/webapp/src/page/hooks/pagehooks.tsx +0 -127
  40. package/webapp/src/page/hooks/resize.tsx +0 -20
  41. package/webapp/src/page/index.tsx +0 -393
  42. package/webapp/src/page/model-navi/index.tsx +0 -329
  43. package/webapp/src/page/model-navi/style.scss +0 -111
  44. package/webapp/src/page/util/index.tsx +0 -234
  45. package/webapp/src/page/util/layout-nodes/index.tsx +0 -185
  46. package/webapp/src/pdm/index.tsx +0 -50
  47. package/webapp/src/pdm/pdm-json/index.js +0 -224
  48. package/webapp/src/pdm/pdm-json/removeDiacritics.js +0 -96
  49. package/webapp/src/style.less +0 -14
  50. package/webapp/src/tree/index.tsx +0 -46
  51. package/webapp/src/tree/style.scss +0 -26
  52. package/webapp/src/type/field.tsx +0 -10
  53. package/webapp/src/type/index.tsx +0 -3
  54. package/webapp/src/type/model.tsx +0 -12
  55. package/webapp/src/type/module.tsx +0 -4
  56. package/webapp/webconfig.config.js +0 -57
@@ -1,224 +0,0 @@
1
- const removeDiacritics = require('./removeDiacritics');
2
- // const util = require('util');
3
- const parser = require('xml2js');
4
- // const fs = require('fs');
5
- // const writeFile = util.promisify(fs.writeFile);
6
- // const readFile = util.promisify(fs.readFile);
7
- const parseString = parser.parseString;
8
- const rtfToHTMLLibFun = require('@iarna/rtf-to-html').fromString;
9
- const rtfToHTMLLib = (aa) => {
10
- return new Promise((res) => {
11
- rtfToHTMLLibFun(aa, (err, result) => { res(ressult)})
12
- })
13
- }
14
-
15
- module.exports = async (xml) => {
16
-
17
- const parseStringPromise = new Promise((res) => {
18
- parseString(xml, (err, result) => { res(result)})
19
- })
20
-
21
- const parseResult = await parseStringPromise
22
- const info = getPdmInfo(parseResult)
23
-
24
-
25
- return info
26
- }
27
-
28
- const First = (a) => {
29
- return a && a.length && a.length[0]
30
- }
31
-
32
- async function getPdmInfo(parsedJson) {
33
- const model = parsedJson['Model']['o:RootObject'][0]['c:Children'][0]['o:Model'][0];
34
- const tables = model['c:Tables'][0]['o:Table'];
35
- const parsedModel = {};
36
- const parsedRoot = {
37
- Name: model['a:Name'][0],
38
- Code:model['a:Code'][0],
39
- }
40
-
41
- for (const table of tables) {
42
- const ref = table['$']['Id'];
43
- const name = codify(table['a:Name'][0]);
44
- const code = table['a:Code'][0];
45
- const constantName = codifyUpper(table['a:Name'][0]);
46
- const conceptualName = table['a:Name'][0];
47
- const comment = table['a:Comment'];
48
- const description = await rtfToHTML(table['a:Description']);
49
- const primaryKeyArray = table["c:PrimaryKey"] ? table["c:PrimaryKey"][0]["o:Key"] : [];
50
- const columns = await getColumns(table);
51
- const keys = getKeys(table, primaryKeyArray, columns);
52
-
53
- parsedModel[code] = {
54
- ref,
55
- name,
56
- code,
57
- constantName,
58
- conceptualName,
59
- comment,
60
- description,
61
- columns,
62
- keys
63
- };
64
- }
65
-
66
- for (const tableCode in parsedModel) {
67
- const table = parsedModel[tableCode];
68
- table.inRelations = [];
69
- table.outRelations = [];
70
- const inReferences = model['c:References'] ? model['c:References'][0]['o:Reference'].filter(r => r['c:ChildTable'][0]['o:Table'][0]['$']['Ref'] === table.ref) : [];
71
- const outReferences = model['c:References'] ? model['c:References'][0]['o:Reference'].filter(r => r['c:ParentTable'][0]['o:Table'][0]['$']['Ref'] === table.ref) : [];
72
-
73
- mapInRelations(inReferences, parsedModel, table);
74
- mapOutRelations(outReferences, parsedModel, table);
75
-
76
- }
77
-
78
- return { parsedModel, parsedRoot };
79
- }
80
-
81
- function mapInRelations(inReferences, parsedModel, table) {
82
- for (const reference of inReferences) {
83
- const parentTable = findTableByRef(parsedModel, reference['c:ParentTable'][0]['o:Table'][0]['$']['Ref']);
84
- let parentColumnRef , childColumnRef, isSuccess = true
85
- try{
86
- parentColumnRef = reference['c:Joins'][0]['o:ReferenceJoin'][0]['c:Object1'][0]['o:Column'][0]['$']['Ref'];
87
- childColumnRef = reference['c:Joins'][0]['o:ReferenceJoin'][0]['c:Object2'][0]['o:Column'][0]['$']['Ref'];
88
-
89
- }
90
- catch {
91
- isSuccess = false
92
- }
93
- isSuccess && table.inRelations.push({
94
- name: reference['a:Name'][0],
95
- code: reference['a:Code'][0],
96
- cardinality: reference['a:Cardinality'][0],
97
- // parentRole: reference['a:ParentRole'][0],
98
- // childRole: reference['a:ChildRole'][0],
99
- parentTable: parentTable.code,
100
- parentColumn: findColumnByRef(parentTable, parentColumnRef)['code'],
101
- childTable: table.code,
102
- childColumn: findColumnByRef(table, childColumnRef)['code']
103
- });
104
- }
105
- }
106
-
107
- function mapOutRelations(outReferences, parsedModel, table) {
108
- for (const reference of outReferences) {
109
- const childTable = findTableByRef(parsedModel, reference['c:ChildTable'][0]['o:Table'][0]['$']['Ref']);
110
- let parentColumnRef , childColumnRef, isSuccess
111
- try{
112
- parentColumnRef = reference['c:Joins'][0]['o:ReferenceJoin'][0]['c:Object1'][0]['o:Column'][0]['$']['Ref'];
113
- childColumnRef = reference['c:Joins'][0]['o:ReferenceJoin'][0]['c:Object2'][0]['o:Column'][0]['$']['Ref'];
114
- isSuccess = true
115
- } catch {
116
- isSuccess = false
117
- }
118
- isSuccess && table.outRelations.push({
119
- name: reference['a:Name'][0],
120
- code: reference['a:Code'][0],
121
- cardinality: reference['a:Cardinality'][0],
122
- // parentRole: reference['a:ParentRole'][0],
123
- // childRole: reference['a:ChildRole'][0],
124
- parentTable: table.conceptualName,
125
- parentColumn: findColumnByRef(table, parentColumnRef)['code'],
126
- childTable: childTable.conceptualName,
127
- childColumn: findColumnByRef(childTable, childColumnRef)['code']
128
- });
129
- }
130
- }
131
-
132
- function getKeys(table, primaryKeyArray, columns) {
133
- return table["c:Keys"] ? table["c:Keys"][0]["o:Key"].map(key => {
134
- const ref = key['$']['Id'];
135
- const name = key['a:Name'][0];
136
- const code = key['a:Code'][0];
137
- const isPrimaryKey = !!primaryKeyArray.find(k => k['$']['Ref'] == key['$']['Id']);
138
- const columnsKey = getColumnsKey(key, columns, isPrimaryKey);
139
- return { ref, name, code, isPrimaryKey, columnsKey };
140
- }) : [];
141
- }
142
-
143
- function getColumnsKey(key, columns, isPrimaryKey) {
144
- return key['c:Key.Columns'][0]['o:Column'].map(cKey => {
145
- const column = columns.find(c => c.ref === cKey['$']['Ref']);
146
- column.isPrimaryKey = isPrimaryKey;
147
- return {
148
- name: column.name,
149
- code: column.code,
150
- conceptualName: column.conceptualName
151
- };
152
- });
153
- }
154
-
155
- async function getColumns(table) {
156
- return await Promise.all(table["c:Columns"][0]["o:Column"].map(async (column) => {
157
- return {
158
- ref: column['$']['Id'],
159
- name: codify(column['a:Name'][0]),
160
- code: column['a:Code'][0],
161
- constantName: codifyUpper(column['a:Name'][0]),
162
- conceptualName: column['a:Name'][0],
163
- description: await rtfToHTML(column['a:Description']),
164
- dataType: column['a:DataType'] && column['a:DataType'][0],
165
- isIdentity: column['a:Identity'] ? !!Number(column['a:Identity'][0]) : false,
166
- isMandatory: column['a:Column.Mandatory'] ? !!Number(column['a:Column.Mandatory'][0]) : false,
167
- isPrimaryKey: false,
168
- length: column['a:Length'] && column['a:Length'].length ? column['a:Length'][0] : null,
169
- listOfValues: column['a:ListOfValues'] && column['a:ListOfValues'].length ? extractListOfValues(column['a:ListOfValues'][0]) : null,
170
- precision: column['a:Precision'] && column['a:Precision'].length ? column['a:Precision'][0] : null,
171
- defaultValue: column['a:DefaultValue'] && column['a:DefaultValue'].length ? column['a:DefaultValue'][0] : null
172
- };
173
- }));
174
- }
175
-
176
- async function rtfToHTML(arr) {
177
- try {
178
- if (arr && arr.length) {
179
- return await rtfToHTMLLib(arr[0]);
180
- }
181
- } catch (error) {
182
- return await arr;
183
- }
184
- }
185
-
186
- function codify(str) {
187
- return removeDiacritics(str)
188
- .replace(/ /g, "")
189
- .replace(/\W/g, "");
190
- }
191
-
192
- function extractListOfValues(str) {
193
- return str.split('\r\n').map(s => {
194
- const elements = s.split('\t');
195
- const obj = {};
196
- obj.code = elements[0];
197
- obj.name = elements[1];
198
- obj.constantName = removeDiacritics(elements[1])
199
- .toUpperCase()
200
- .replace(/ /g, "_")
201
- .replace(/\W/g, "");
202
-
203
- return obj;
204
- });
205
- }
206
-
207
- function codifyUpper(str) {
208
- return removeDiacritics(str)
209
- .toUpperCase()
210
- .replace(/ /g, "_")
211
- .replace(/\W/g, "");
212
- }
213
-
214
- function findColumnByRef(parsedTable, ref) {
215
- return parsedTable.columns.find(c => c.ref === ref);
216
- }
217
-
218
- function findTableByRef(parsedModel, ref) {
219
- for (const key in parsedModel) {
220
- if (parsedModel[key].ref === ref) {
221
- return parsedModel[key];
222
- }
223
- }
224
- }
@@ -1,96 +0,0 @@
1
- module.exports = function removeDiacritics(str) {
2
-
3
- var defaultDiacriticsRemovalMap = [
4
- { 'base': 'A', 'letters': /[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g },
5
- { 'base': 'AA', 'letters': /[\uA732]/g },
6
- { 'base': 'AE', 'letters': /[\u00C6\u01FC\u01E2]/g },
7
- { 'base': 'AO', 'letters': /[\uA734]/g },
8
- { 'base': 'AU', 'letters': /[\uA736]/g },
9
- { 'base': 'AV', 'letters': /[\uA738\uA73A]/g },
10
- { 'base': 'AY', 'letters': /[\uA73C]/g },
11
- { 'base': 'B', 'letters': /[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g },
12
- { 'base': 'C', 'letters': /[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g },
13
- { 'base': 'D', 'letters': /[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g },
14
- { 'base': 'DZ', 'letters': /[\u01F1\u01C4]/g },
15
- { 'base': 'Dz', 'letters': /[\u01F2\u01C5]/g },
16
- { 'base': 'E', 'letters': /[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g },
17
- { 'base': 'F', 'letters': /[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g },
18
- { 'base': 'G', 'letters': /[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g },
19
- { 'base': 'H', 'letters': /[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g },
20
- { 'base': 'I', 'letters': /[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g },
21
- { 'base': 'J', 'letters': /[\u004A\u24BF\uFF2A\u0134\u0248]/g },
22
- { 'base': 'K', 'letters': /[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g },
23
- { 'base': 'L', 'letters': /[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g },
24
- { 'base': 'LJ', 'letters': /[\u01C7]/g },
25
- { 'base': 'Lj', 'letters': /[\u01C8]/g },
26
- { 'base': 'M', 'letters': /[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g },
27
- { 'base': 'N', 'letters': /[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g },
28
- { 'base': 'NJ', 'letters': /[\u01CA]/g },
29
- { 'base': 'Nj', 'letters': /[\u01CB]/g },
30
- { 'base': 'O', 'letters': /[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g },
31
- { 'base': 'OI', 'letters': /[\u01A2]/g },
32
- { 'base': 'OO', 'letters': /[\uA74E]/g },
33
- { 'base': 'OU', 'letters': /[\u0222]/g },
34
- { 'base': 'P', 'letters': /[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g },
35
- { 'base': 'Q', 'letters': /[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g },
36
- { 'base': 'R', 'letters': /[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g },
37
- { 'base': 'S', 'letters': /[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g },
38
- { 'base': 'T', 'letters': /[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g },
39
- { 'base': 'TZ', 'letters': /[\uA728]/g },
40
- { 'base': 'U', 'letters': /[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g },
41
- { 'base': 'V', 'letters': /[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g },
42
- { 'base': 'VY', 'letters': /[\uA760]/g },
43
- { 'base': 'W', 'letters': /[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g },
44
- { 'base': 'X', 'letters': /[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g },
45
- { 'base': 'Y', 'letters': /[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g },
46
- { 'base': 'Z', 'letters': /[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g },
47
- { 'base': 'a', 'letters': /[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g },
48
- { 'base': 'aa', 'letters': /[\uA733]/g },
49
- { 'base': 'ae', 'letters': /[\u00E6\u01FD\u01E3]/g },
50
- { 'base': 'ao', 'letters': /[\uA735]/g },
51
- { 'base': 'au', 'letters': /[\uA737]/g },
52
- { 'base': 'av', 'letters': /[\uA739\uA73B]/g },
53
- { 'base': 'ay', 'letters': /[\uA73D]/g },
54
- { 'base': 'b', 'letters': /[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g },
55
- { 'base': 'c', 'letters': /[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g },
56
- { 'base': 'd', 'letters': /[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g },
57
- { 'base': 'dz', 'letters': /[\u01F3\u01C6]/g },
58
- { 'base': 'e', 'letters': /[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g },
59
- { 'base': 'f', 'letters': /[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g },
60
- { 'base': 'g', 'letters': /[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g },
61
- { 'base': 'h', 'letters': /[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g },
62
- { 'base': 'hv', 'letters': /[\u0195]/g },
63
- { 'base': 'i', 'letters': /[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g },
64
- { 'base': 'j', 'letters': /[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g },
65
- { 'base': 'k', 'letters': /[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g },
66
- { 'base': 'l', 'letters': /[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g },
67
- { 'base': 'lj', 'letters': /[\u01C9]/g },
68
- { 'base': 'm', 'letters': /[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g },
69
- { 'base': 'n', 'letters': /[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g },
70
- { 'base': 'nj', 'letters': /[\u01CC]/g },
71
- { 'base': 'o', 'letters': /[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g },
72
- { 'base': 'oi', 'letters': /[\u01A3]/g },
73
- { 'base': 'ou', 'letters': /[\u0223]/g },
74
- { 'base': 'oo', 'letters': /[\uA74F]/g },
75
- { 'base': 'p', 'letters': /[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g },
76
- { 'base': 'q', 'letters': /[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g },
77
- { 'base': 'r', 'letters': /[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g },
78
- { 'base': 's', 'letters': /[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g },
79
- { 'base': 't', 'letters': /[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g },
80
- { 'base': 'tz', 'letters': /[\uA729]/g },
81
- { 'base': 'u', 'letters': /[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g },
82
- { 'base': 'v', 'letters': /[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g },
83
- { 'base': 'vy', 'letters': /[\uA761]/g },
84
- { 'base': 'w', 'letters': /[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g },
85
- { 'base': 'x', 'letters': /[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g },
86
- { 'base': 'y', 'letters': /[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g },
87
- { 'base': 'z', 'letters': /[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g }
88
- ];
89
-
90
- for (var i = 0; i < defaultDiacriticsRemovalMap.length; i++) {
91
- str = str.replace(defaultDiacriticsRemovalMap[i].letters, defaultDiacriticsRemovalMap[i].base);
92
- }
93
-
94
- return str;
95
-
96
- }
@@ -1,14 +0,0 @@
1
-
2
- @import '~antd/lib/style/themes/default.less';
3
- @import '~antd/dist/antd.less'; // 引入官方提供的 less 样式入口文件
4
- body {
5
- height: 100%;
6
- }
7
-
8
- #app {
9
- height : 100%;
10
- }
11
-
12
- @primary-color: rgb(60,61,62); // 全局主色
13
- // @link-color: #000; // 链接色
14
-
@@ -1,46 +0,0 @@
1
- import { Dropdown, Menu, Tree } from 'antd'
2
- import React, { useState, useCallback } from 'react'
3
- import './style.scss'
4
-
5
- const { TreeNode } = Tree
6
- export default () => {
7
- return (
8
- <div className='tree-erd'>
9
- <Tree>
10
- <TreeNode title='111' key='1'>
11
- <TreeNode title='111' key='2' />
12
- <TreeNode title={<OptionBuilder data={{title: 'ddddd', options: [{title: 'aaa'}]}} />} key='3' />
13
- </TreeNode>
14
- </Tree>
15
- </div>)
16
-
17
- }
18
-
19
- const OptionBuilder = ({data}) => {
20
- const { title, options = [] } = data
21
- const [ showMenu , setShowMenu ] = useState(false)
22
- const onShowMenu = useCallback((val)=> () => { setShowMenu(val) } , [])
23
-
24
- const menu = (
25
- <Menu>
26
- { options.map((option) => {
27
- return (
28
- <Menu.Item key={option}>
29
- <a onClick={option.click}>{option.title}</a>
30
- </Menu.Item>
31
- )})
32
- }
33
- </Menu>
34
- )
35
- return (
36
- <div className='tree-node-title' onMouseEnter={onShowMenu(true)} onMouseLeave={onShowMenu(false)} >
37
- <span className='tree-node-title-title'>{title}</span>
38
- {!!options.length && showMenu && <Dropdown overlay={menu}><span className='tree-node-title-options'>...</span></Dropdown>}
39
- </div>)
40
- }
41
- // alert()
42
- Tree.OptionBuilder = OptionBuilder
43
-
44
- export {
45
- Tree,
46
- }
@@ -1,26 +0,0 @@
1
-
2
- .navitree-warp {
3
- .tree-node-title {
4
- display: flex;
5
-
6
- }
7
- .tree-node-title-title {
8
- flex:1;
9
-
10
- }
11
-
12
- // .tree-node-title-options {
13
- // // padding-right: 40px;
14
- // display: none;
15
- // }
16
- div.tree-node-title-options:hover {
17
- display: block;
18
- color: red;
19
- }
20
-
21
- .ant-tree-node-content-wrapper {
22
- width: 100%;
23
- }
24
-
25
- }
26
-
@@ -1,10 +0,0 @@
1
- export interface IField {
2
- type: string ,
3
- key: string ,
4
- name: string ,
5
- originalKey: string ,
6
- typeMeta?: {
7
- type: string,
8
- relationModel: string,
9
- }
10
- }
@@ -1,3 +0,0 @@
1
- export { IField } from './field'
2
- export { IModel } from './model'
3
- export { IModule } from './module'
@@ -1,12 +0,0 @@
1
- import { IField } from './field'
2
- export interface IModel {
3
- key: string,
4
- name: string,
5
- moduleKey?: string,
6
- fields: IField[],
7
- originalKey: string,
8
- aggregateRoot?: string,
9
- belongAggregate?: string,
10
- aggregateModelKey?: string,
11
- type: string,
12
- }
@@ -1,4 +0,0 @@
1
- export interface IModule {
2
- key: string ,
3
- name: string
4
- }
@@ -1,57 +0,0 @@
1
- const ConsoleWebpack = require("ak-webpack");
2
- const processPath = process.cwd()
3
- const path = require('path')
4
-
5
- const moduleName = 'schema-builder'
6
-
7
- module.exports = ConsoleWebpack({
8
- output: {
9
- path: path.join(process.cwd(), '/public/'+ moduleName),
10
- publicPath: './',
11
-
12
- },
13
- devServer: {
14
- https: false ,
15
- open: true ,
16
- openPage: moduleName,
17
- proxy: {
18
- // "/api/v4/objects": {
19
- // target: "http://127.0.0.1:5000",
20
- // // target: 'http://30.43.85.42/',
21
- // secure: false,
22
- // changeOrigin: true,
23
- // // cookieDomainRewrite: {
24
- // // '*': 'localhost' // 把相应的 cookie 域都设置成 localhost,也可以配置成自己电脑的ip,或者指定的域名
25
- // // }
26
- // },
27
- // ///accounts/a
28
- // "/accounts": {
29
- // target: "http://127.0.0.1:5000",
30
- // // target: 'http://30.43.85.42/',
31
- // secure: false,
32
- // changeOrigin: true,
33
- // // cookieDomainRewrite: {
34
- // // '*': 'localhost' // 把相应的 cookie 域都设置成 localhost,也可以配置成自己电脑的ip,或者指定的域名
35
- // // }
36
- // },
37
- "*": {
38
- target: "https://schema-builder.trial.steedos.com:8443",
39
- // target: 'http://30.43.85.42/',
40
- secure: true,
41
- changeOrigin: true,
42
- // cookieDomainRewrite: {
43
- // '*': 'localhost' // 把相应的 cookie 域都设置成 localhost,也可以配置成自己电脑的ip,或者指定的域名
44
- // }
45
- },
46
- }
47
- },
48
- entry: {
49
- app: './webapp/test/index.tsx',
50
- },
51
- }, moduleName, {
52
- tsLoaderInclude: [
53
- path.resolve(processPath, 'webapp/src'),
54
- path.resolve(processPath,'webapp/test')
55
- ]
56
- }
57
- );