@tmagic/editor 1.3.0-alpha.8 → 1.3.0-beta.0
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.
- package/dist/style.css +82 -218
- package/dist/tmagic-editor.js +4985 -3999
- package/dist/tmagic-editor.js.map +1 -1
- package/dist/tmagic-editor.umd.cjs +5013 -4012
- package/dist/tmagic-editor.umd.cjs.map +1 -1
- package/package.json +15 -15
- package/src/Editor.vue +4 -5
- package/src/components/CodeBlockEditor.vue +257 -0
- package/src/components/CodeParams.vue +60 -0
- package/src/components/ContentMenu.vue +11 -3
- package/src/editorProps.ts +30 -5
- package/src/fields/Code.vue +23 -19
- package/src/fields/CodeLink.vue +6 -7
- package/src/fields/CodeSelect.vue +12 -9
- package/src/fields/CodeSelectCol.vue +70 -81
- package/src/fields/DataSourceFieldSelect.vue +47 -0
- package/src/fields/DataSourceFields.vue +28 -22
- package/src/fields/DataSourceInput.vue +21 -58
- package/src/fields/DataSourceMethodSelect.vue +136 -0
- package/src/fields/DataSourceMethods.vue +103 -0
- package/src/fields/DataSourceSelect.vue +68 -0
- package/src/fields/EventSelect.vue +53 -19
- package/src/fields/KeyValue.vue +9 -11
- package/src/fields/UISelect.vue +54 -14
- package/src/hooks/index.ts +21 -0
- package/src/hooks/use-code-block-edit.ts +84 -0
- package/src/hooks/use-data-source-method.ts +100 -0
- package/src/{utils/stage.ts → hooks/use-stage.ts} +4 -7
- package/src/icons/CenterIcon.vue +13 -0
- package/src/icons/CodeIcon.vue +0 -2
- package/src/icons/FolderMinusIcon.vue +22 -0
- package/src/index.ts +15 -0
- package/src/initService.ts +73 -16
- package/src/layouts/CodeEditor.vue +62 -10
- package/src/layouts/Framework.vue +7 -3
- package/src/layouts/PropsPanel.vue +8 -3
- package/src/layouts/sidebar/ComponentListPanel.vue +6 -9
- package/src/layouts/sidebar/LayerMenu.vue +20 -21
- package/src/layouts/sidebar/LayerNode.vue +40 -0
- package/src/layouts/sidebar/LayerPanel.vue +14 -5
- package/src/layouts/sidebar/Sidebar.vue +22 -36
- package/src/layouts/sidebar/code-block/CodeBlockList.vue +81 -119
- package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +64 -0
- package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +27 -47
- package/src/layouts/sidebar/data-source/DataSourceList.vue +145 -0
- package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +58 -69
- package/src/layouts/workspace/Stage.vue +13 -5
- package/src/layouts/workspace/ViewerMenu.vue +10 -35
- package/src/services/codeBlock.ts +18 -71
- package/src/services/dataSource.ts +16 -1
- package/src/services/dep.ts +23 -20
- package/src/services/editor.ts +46 -18
- package/src/services/props.ts +2 -2
- package/src/theme/code-block.scss +5 -117
- package/src/theme/code-editor.scss +27 -2
- package/src/theme/content-menu.scss +1 -1
- package/src/theme/data-source-methods.scss +13 -0
- package/src/theme/data-source.scss +11 -0
- package/src/theme/event.scss +15 -12
- package/src/theme/framework.scss +0 -3
- package/src/theme/layer-panel.scss +6 -0
- package/src/theme/layout.scss +4 -0
- package/src/theme/sidebar.scss +18 -60
- package/src/theme/theme.scss +1 -0
- package/src/type.ts +47 -7
- package/src/utils/content-menu.ts +92 -0
- package/src/utils/data-source/formConfigs/base.ts +28 -30
- package/src/utils/data-source/index.ts +65 -2
- package/src/utils/dep.ts +39 -7
- package/src/utils/index.ts +1 -1
- package/src/utils/props.ts +298 -189
- package/src/utils/undo-redo.ts +1 -1
- package/types/Editor.vue.d.ts +30 -6
- package/types/components/CodeBlockEditor.vue.d.ts +23 -0
- package/types/components/CodeParams.vue.d.ts +26 -0
- package/types/components/ContentMenu.vue.d.ts +2 -2
- package/types/components/ToolButton.vue.d.ts +3 -3
- package/types/editorProps.d.ts +19 -5
- package/types/fields/Code.vue.d.ts +24 -19
- package/types/fields/CodeLink.vue.d.ts +12 -21
- package/types/fields/CodeSelect.vue.d.ts +6 -17
- package/types/fields/CodeSelectCol.vue.d.ts +10 -14
- package/types/fields/DataSourceFieldSelect.vue.d.ts +29 -0
- package/types/fields/DataSourceFields.vue.d.ts +7 -18
- package/types/fields/DataSourceInput.vue.d.ts +10 -30
- package/types/fields/DataSourceMethodSelect.vue.d.ts +29 -0
- package/types/fields/DataSourceMethods.vue.d.ts +32 -0
- package/types/fields/DataSourceSelect.vue.d.ts +40 -0
- package/types/fields/EventSelect.vue.d.ts +2 -13
- package/types/fields/KeyValue.vue.d.ts +9 -24
- package/types/fields/UISelect.vue.d.ts +2 -11
- package/types/hooks/index.d.ts +3 -0
- package/types/{components/FunctionEditor.vue.d.ts → hooks/use-code-block-edit.d.ts} +31 -119
- package/types/hooks/use-data-source-method.d.ts +123 -0
- package/types/icons/CenterIcon.vue.d.ts +2 -0
- package/types/icons/FolderMinusIcon.vue.d.ts +2 -0
- package/types/index.d.ts +7 -0
- package/types/initService.d.ts +2 -2
- package/types/layouts/CodeEditor.vue.d.ts +10 -4
- package/types/layouts/PropsPanel.vue.d.ts +274 -2
- package/types/layouts/sidebar/LayerNode.vue.d.ts +16 -0
- package/types/layouts/sidebar/Sidebar.vue.d.ts +0 -3
- package/types/layouts/sidebar/code-block/CodeBlockList.vue.d.ts +4 -9
- package/types/layouts/sidebar/code-block/{CodeBlockEditor.vue.d.ts → CodeBlockListPanel.vue.d.ts} +9 -5
- package/types/layouts/sidebar/data-source/DataSourceConfigPanel.vue.d.ts +3 -1
- package/types/layouts/sidebar/data-source/DataSourceList.vue.d.ts +14 -0
- package/types/layouts/sidebar/data-source/DataSourceListPanel.vue.d.ts +1 -11
- package/types/services/codeBlock.d.ts +6 -37
- package/types/services/dataSource.d.ts +7 -1
- package/types/services/dep.d.ts +12 -21
- package/types/services/editor.d.ts +1 -1
- package/types/services/props.d.ts +10 -115
- package/types/type.d.ts +42 -7
- package/types/utils/content-menu.d.ts +7 -0
- package/types/utils/data-source/formConfigs/base.d.ts +1 -2
- package/types/utils/data-source/index.d.ts +5 -0
- package/types/utils/dep.d.ts +4 -2
- package/types/utils/index.d.ts +1 -1
- package/types/utils/props.d.ts +13 -102
- package/src/components/CodeDraftEditor.vue +0 -148
- package/src/components/FunctionEditor.vue +0 -197
- package/src/layouts/sidebar/code-block/CodeBlockEditor.vue +0 -100
- package/types/components/CodeDraftEditor.vue.d.ts +0 -61
- /package/types/{utils/stage.d.ts → hooks/use-stage.d.ts} +0 -0
package/src/services/dep.ts
CHANGED
|
@@ -19,27 +19,24 @@ import { EventEmitter } from 'events';
|
|
|
19
19
|
|
|
20
20
|
import { reactive } from 'vue';
|
|
21
21
|
|
|
22
|
-
import { MNode } from '@tmagic/schema';
|
|
22
|
+
import type { Dep, Id, MNode } from '@tmagic/schema';
|
|
23
|
+
import { isObject } from '@tmagic/utils';
|
|
24
|
+
|
|
25
|
+
import { DepTargetType } from '@editor/type';
|
|
23
26
|
|
|
24
27
|
type IsTarget = (key: string | number, value: any) => boolean;
|
|
25
28
|
|
|
26
29
|
interface TargetOptions {
|
|
27
30
|
isTarget: IsTarget;
|
|
28
31
|
id: string | number;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
interface Dep {
|
|
34
|
-
[key: string | number]: {
|
|
35
|
-
name: string;
|
|
36
|
-
keys: (string | number)[];
|
|
37
|
-
};
|
|
32
|
+
/** 类型,数据源、代码块或其他 */
|
|
33
|
+
type?: DepTargetType | string;
|
|
34
|
+
name?: string;
|
|
38
35
|
}
|
|
39
36
|
|
|
40
37
|
interface TargetList {
|
|
41
|
-
[
|
|
42
|
-
[
|
|
38
|
+
[type: DepTargetType | string]: {
|
|
39
|
+
[targetId: string | number]: Target;
|
|
43
40
|
};
|
|
44
41
|
}
|
|
45
42
|
|
|
@@ -60,11 +57,11 @@ export class Target extends EventEmitter {
|
|
|
60
57
|
/**
|
|
61
58
|
* 目标名称,用于显示在依赖列表中
|
|
62
59
|
*/
|
|
63
|
-
public name
|
|
60
|
+
public name?: string;
|
|
64
61
|
/**
|
|
65
62
|
* 不同的目标可以进行分类,例如代码块,数据源可以为两个不同的type
|
|
66
63
|
*/
|
|
67
|
-
public type =
|
|
64
|
+
public type: DepTargetType | string = DepTargetType.DEFAULT;
|
|
68
65
|
/**
|
|
69
66
|
* 依赖详情
|
|
70
67
|
* 实例:{ 'node_id': { name: 'node_name', keys: [ created, mounted ] } }
|
|
@@ -156,14 +153,14 @@ export class Target extends EventEmitter {
|
|
|
156
153
|
}
|
|
157
154
|
|
|
158
155
|
export class Watcher extends EventEmitter {
|
|
159
|
-
|
|
156
|
+
private targets = reactive<TargetList>({});
|
|
160
157
|
|
|
161
158
|
/**
|
|
162
159
|
* 获取指定类型中的所有target
|
|
163
160
|
* @param type 分类
|
|
164
161
|
* @returns Target[]
|
|
165
162
|
*/
|
|
166
|
-
public getTargets(type =
|
|
163
|
+
public getTargets(type: DepTargetType | string = DepTargetType.DEFAULT) {
|
|
167
164
|
return this.targets[type] || {};
|
|
168
165
|
}
|
|
169
166
|
|
|
@@ -230,7 +227,7 @@ export class Watcher extends EventEmitter {
|
|
|
230
227
|
* @param type 分类
|
|
231
228
|
* @returns void
|
|
232
229
|
*/
|
|
233
|
-
public removeTargets(type =
|
|
230
|
+
public removeTargets(type: DepTargetType | string = DepTargetType.DEFAULT) {
|
|
234
231
|
const targets = this.targets[type];
|
|
235
232
|
|
|
236
233
|
if (!targets) return;
|
|
@@ -262,6 +259,7 @@ export class Watcher extends EventEmitter {
|
|
|
262
259
|
Object.values(this.targets).forEach((targets) => {
|
|
263
260
|
Object.values(targets).forEach((target) => {
|
|
264
261
|
nodes.forEach((node) => {
|
|
262
|
+
// 先删除原有依赖,重新收集
|
|
265
263
|
target.removeDep(node);
|
|
266
264
|
this.collectItem(node, target, deep);
|
|
267
265
|
});
|
|
@@ -276,13 +274,15 @@ export class Watcher extends EventEmitter {
|
|
|
276
274
|
* @param nodes 需要清除依赖的节点
|
|
277
275
|
*/
|
|
278
276
|
public clear(nodes?: MNode[]) {
|
|
277
|
+
const clearedItemsNodeIds: Id[] = [];
|
|
279
278
|
Object.values(this.targets).forEach((targets) => {
|
|
280
279
|
Object.values(targets).forEach((target) => {
|
|
281
280
|
if (nodes) {
|
|
282
281
|
nodes.forEach((node) => {
|
|
283
282
|
target.removeDep(node);
|
|
284
283
|
|
|
285
|
-
if (Array.isArray(node.items)) {
|
|
284
|
+
if (Array.isArray(node.items) && node.items.length && !clearedItemsNodeIds.includes(node.id)) {
|
|
285
|
+
clearedItemsNodeIds.push(node.id);
|
|
286
286
|
this.clear(node.items);
|
|
287
287
|
}
|
|
288
288
|
});
|
|
@@ -304,9 +304,11 @@ export class Watcher extends EventEmitter {
|
|
|
304
304
|
this.emit('update-dep', node, fullKey);
|
|
305
305
|
} else if (!keyIsItems && Array.isArray(value)) {
|
|
306
306
|
value.forEach((item, index) => {
|
|
307
|
-
|
|
307
|
+
if (isObject(item)) {
|
|
308
|
+
collectTarget(item, `${fullKey}.${index}`);
|
|
309
|
+
}
|
|
308
310
|
});
|
|
309
|
-
} else if (
|
|
311
|
+
} else if (isObject(value)) {
|
|
310
312
|
collectTarget(value, fullKey);
|
|
311
313
|
}
|
|
312
314
|
|
|
@@ -318,6 +320,7 @@ export class Watcher extends EventEmitter {
|
|
|
318
320
|
};
|
|
319
321
|
|
|
320
322
|
Object.entries(config).forEach(([key, value]) => {
|
|
323
|
+
if (typeof value === 'undefined' || value === '') return;
|
|
321
324
|
doCollect(key, value);
|
|
322
325
|
});
|
|
323
326
|
};
|
package/src/services/editor.ts
CHANGED
|
@@ -193,7 +193,7 @@ class Editor extends BaseService {
|
|
|
193
193
|
/**
|
|
194
194
|
* 只有容器拥有布局
|
|
195
195
|
*/
|
|
196
|
-
public async getLayout(parent: MNode, node?: MNode): Promise<Layout> {
|
|
196
|
+
public async getLayout(parent: MNode, node?: MNode | null): Promise<Layout> {
|
|
197
197
|
if (node && typeof node !== 'function' && isFixed(node)) return Layout.FIXED;
|
|
198
198
|
|
|
199
199
|
if (parent.layout) {
|
|
@@ -648,12 +648,14 @@ class Editor extends BaseService {
|
|
|
648
648
|
|
|
649
649
|
if (doc) {
|
|
650
650
|
const el = doc.getElementById(`${node.id}`);
|
|
651
|
-
const parentEl = el?.offsetParent;
|
|
651
|
+
const parentEl = layout === Layout.FIXED ? doc.body : el?.offsetParent;
|
|
652
652
|
if (parentEl && el) {
|
|
653
653
|
node.style.left = (parentEl.clientWidth - el.clientWidth) / 2;
|
|
654
|
+
node.style.right = '';
|
|
654
655
|
}
|
|
655
656
|
} else if (parent.style && isNumber(parent.style?.width) && isNumber(node.style?.width)) {
|
|
656
657
|
node.style.left = (parent.style.width - node.style.width) / 2;
|
|
658
|
+
node.style.right = '';
|
|
657
659
|
}
|
|
658
660
|
|
|
659
661
|
return node;
|
|
@@ -705,9 +707,9 @@ class Editor extends BaseService {
|
|
|
705
707
|
brothers.splice(index, 1);
|
|
706
708
|
|
|
707
709
|
if (offset === LayerOffset.TOP) {
|
|
708
|
-
brothers.splice(isRelative ? 0 : brothers.length
|
|
710
|
+
brothers.splice(isRelative ? 0 : brothers.length, 0, node);
|
|
709
711
|
} else if (offset === LayerOffset.BOTTOM) {
|
|
710
|
-
brothers.splice(isRelative ? brothers.length
|
|
712
|
+
brothers.splice(isRelative ? brothers.length : 0, 0, node);
|
|
711
713
|
} else {
|
|
712
714
|
brothers.splice(index + (isRelative ? -offset : offset), 0, node);
|
|
713
715
|
}
|
|
@@ -792,20 +794,46 @@ class Editor extends BaseService {
|
|
|
792
794
|
if (!node || isPage(node)) return;
|
|
793
795
|
|
|
794
796
|
const { style, id, type } = node;
|
|
795
|
-
if (!style || style.position
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
797
|
+
if (!style || !['absolute', 'fixed'].includes(style.position)) return;
|
|
798
|
+
|
|
799
|
+
const update = (style: { [key: string]: any }) =>
|
|
800
|
+
this.update({
|
|
801
|
+
id,
|
|
802
|
+
type,
|
|
803
|
+
style,
|
|
804
|
+
});
|
|
805
|
+
|
|
806
|
+
if (top) {
|
|
807
|
+
if (isNumber(style.top)) {
|
|
808
|
+
update({
|
|
809
|
+
...style,
|
|
810
|
+
top: Number(style.top) + Number(top),
|
|
811
|
+
bottom: '',
|
|
812
|
+
});
|
|
813
|
+
} else if (isNumber(style.bottom)) {
|
|
814
|
+
update({
|
|
815
|
+
...style,
|
|
816
|
+
bottom: Number(style.bottom) - Number(top),
|
|
817
|
+
top: '',
|
|
818
|
+
});
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
if (left) {
|
|
823
|
+
if (isNumber(style.left)) {
|
|
824
|
+
update({
|
|
825
|
+
...style,
|
|
826
|
+
left: Number(style.left) + Number(left),
|
|
827
|
+
right: '',
|
|
828
|
+
});
|
|
829
|
+
} else if (isNumber(style.right)) {
|
|
830
|
+
update({
|
|
831
|
+
...style,
|
|
832
|
+
right: Number(style.right) - Number(left),
|
|
833
|
+
left: '',
|
|
834
|
+
});
|
|
835
|
+
}
|
|
836
|
+
}
|
|
809
837
|
}
|
|
810
838
|
|
|
811
839
|
public resetState() {
|
package/src/services/props.ts
CHANGED
|
@@ -80,7 +80,7 @@ class Props extends BaseService {
|
|
|
80
80
|
return cloneDeep(this.state.propsConfigMap[type] || (await this.fillConfig([])));
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
public setPropsValues(values: Record<string, MNode
|
|
83
|
+
public setPropsValues(values: Record<string, Partial<MNode>>) {
|
|
84
84
|
Object.keys(values).forEach((type: string) => {
|
|
85
85
|
this.setPropsValue(toLine(type), values[type]);
|
|
86
86
|
});
|
|
@@ -91,7 +91,7 @@ class Props extends BaseService {
|
|
|
91
91
|
* @param type 组件类型
|
|
92
92
|
* @param value 组件初始值
|
|
93
93
|
*/
|
|
94
|
-
public async setPropsValue(type: string, value: MNode) {
|
|
94
|
+
public async setPropsValue(type: string, value: Partial<MNode>) {
|
|
95
95
|
this.state.propsValueMap[type] = value;
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -25,124 +25,12 @@
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
.code-editor-dialog {
|
|
33
|
-
.tmagic-design-card {
|
|
34
|
-
.t-card__header {
|
|
35
|
-
display: block;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.el-dialog__body,
|
|
40
|
-
.t-dialog__body {
|
|
41
|
-
height: 90%;
|
|
42
|
-
padding-top: 10px;
|
|
43
|
-
}
|
|
44
|
-
.tmagic-design-card {
|
|
45
|
-
height: 100%;
|
|
46
|
-
background: #fff;
|
|
47
|
-
.el-card__body,
|
|
48
|
-
.t-card__body {
|
|
49
|
-
height: 100%;
|
|
50
|
-
background: #fff;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.code-editor-layout {
|
|
55
|
-
height: 100%;
|
|
56
|
-
border: 1px solid #e4e7ed;
|
|
57
|
-
|
|
58
|
-
.side-tree {
|
|
59
|
-
height: 100%;
|
|
60
|
-
overflow: auto;
|
|
61
|
-
.el-tree-node__label {
|
|
62
|
-
width: 100%;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.list-container {
|
|
66
|
-
width: 100%;
|
|
67
|
-
overflow: hidden;
|
|
68
|
-
margin-left: -10px;
|
|
69
|
-
.list-item {
|
|
70
|
-
width: 100%;
|
|
71
|
-
margin: 10px 0;
|
|
72
|
-
line-height: 30px;
|
|
73
|
-
.code-name {
|
|
74
|
-
width: 100%;
|
|
75
|
-
font-size: 14px;
|
|
76
|
-
overflow: hidden;
|
|
77
|
-
white-space: nowrap;
|
|
78
|
-
text-overflow: ellipsis;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
28
|
+
.m-editor-code-block-editor {
|
|
29
|
+
.tmagic-design-table {
|
|
30
|
+
height: 180px;
|
|
83
31
|
}
|
|
84
32
|
|
|
85
|
-
.
|
|
86
|
-
|
|
87
|
-
align-items: center;
|
|
88
|
-
font-size: 16px;
|
|
89
|
-
margin-bottom: 10px;
|
|
90
|
-
.code-name-label {
|
|
91
|
-
margin-right: 10px;
|
|
92
|
-
}
|
|
93
|
-
.code-name-input {
|
|
94
|
-
width: 300px;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.m-editor-code-block-editor-panel-list-mode {
|
|
99
|
-
height: 100%;
|
|
100
|
-
z-index: 10;
|
|
101
|
-
background: #fff;
|
|
102
|
-
.el-card {
|
|
103
|
-
border: 0;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.m-editor-code-block-editor-panel {
|
|
108
|
-
position: absolute;
|
|
109
|
-
top: 0;
|
|
110
|
-
left: 4px;
|
|
111
|
-
width: calc(100% - 9px);
|
|
112
|
-
height: 100%;
|
|
113
|
-
z-index: 10;
|
|
114
|
-
background: #fff;
|
|
115
|
-
.el-card {
|
|
116
|
-
border: 0;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.m-editor-wrapper {
|
|
121
|
-
height: 100%;
|
|
122
|
-
&.fullScreen {
|
|
123
|
-
height: 100%;
|
|
124
|
-
width: 100%;
|
|
125
|
-
position: fixed;
|
|
126
|
-
top: 0;
|
|
127
|
-
left: 0;
|
|
128
|
-
z-index: 100;
|
|
129
|
-
}
|
|
130
|
-
.m-editor-container {
|
|
131
|
-
height: calc(100% - 45px);
|
|
132
|
-
}
|
|
133
|
-
.m-editor-content-bottom {
|
|
134
|
-
height: 45px;
|
|
135
|
-
width: 100%;
|
|
136
|
-
display: flex;
|
|
137
|
-
justify-content: end;
|
|
138
|
-
background: #fff;
|
|
139
|
-
position: absolute;
|
|
140
|
-
right: 20px;
|
|
141
|
-
bottom: 0;
|
|
142
|
-
> button {
|
|
143
|
-
height: 30px;
|
|
144
|
-
margin-top: 5px;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
33
|
+
.el-drawer__body {
|
|
34
|
+
padding: 10px 20px;
|
|
147
35
|
}
|
|
148
36
|
}
|
|
@@ -1,7 +1,32 @@
|
|
|
1
1
|
.magic-code-editor {
|
|
2
2
|
width: 100%;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.magic-code-editor-wrapper {
|
|
6
|
+
width: 100%;
|
|
7
|
+
height: 100%;
|
|
8
|
+
position: relative;
|
|
9
|
+
|
|
10
|
+
&.full-screen {
|
|
11
|
+
position: fixed;
|
|
12
|
+
z-index: 10000;
|
|
13
|
+
top: 0;
|
|
14
|
+
left: 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.magic-code-editor-content {
|
|
18
|
+
width: 100%;
|
|
19
|
+
height: 100%;
|
|
20
|
+
|
|
21
|
+
.margin {
|
|
22
|
+
margin: 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
3
25
|
|
|
4
|
-
.
|
|
5
|
-
|
|
26
|
+
.magic-code-editor-full-screen-icon {
|
|
27
|
+
position: absolute;
|
|
28
|
+
top: 5px;
|
|
29
|
+
right: 0;
|
|
30
|
+
z-index: 11;
|
|
6
31
|
}
|
|
7
32
|
}
|
package/src/theme/event.scss
CHANGED
|
@@ -19,18 +19,21 @@
|
|
|
19
19
|
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.12);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
.m-fields-code-select-col
|
|
22
|
+
.m-fields-code-select-col,
|
|
23
|
+
.m-fields-data-source-method-select {
|
|
23
24
|
width: 100%;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.code-select-container,
|
|
28
|
+
.data-source-method-select-container {
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
.select {
|
|
32
|
+
flex: 10 0 100px;
|
|
33
|
+
}
|
|
34
|
+
.icon {
|
|
35
|
+
flex: 1 0 20px;
|
|
36
|
+
cursor: pointer;
|
|
37
|
+
margin-right: 5px;
|
|
35
38
|
}
|
|
36
39
|
}
|
package/src/theme/framework.scss
CHANGED
package/src/theme/layout.scss
CHANGED
package/src/theme/sidebar.scss
CHANGED
|
@@ -1,76 +1,33 @@
|
|
|
1
|
-
.m-editor-sidebar
|
|
1
|
+
.m-editor-sidebar {
|
|
2
|
+
display: flex;
|
|
2
3
|
height: 100%;
|
|
3
4
|
|
|
4
|
-
.
|
|
5
|
-
.t-tabs__header {
|
|
5
|
+
.m-editor-sidebar-header {
|
|
6
6
|
background: $--sidebar-heder-background-color;
|
|
7
|
-
border: 0;
|
|
8
7
|
height: 100%;
|
|
8
|
+
width: 40px;
|
|
9
9
|
|
|
10
|
-
.
|
|
11
|
-
background-color: transparent;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.t-tabs__nav--card.t-tabs__nav-item:not(.t-is-disabled):not(
|
|
15
|
-
.t-is-active
|
|
16
|
-
):hover {
|
|
17
|
-
background-color: transparent;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
&.is-left,
|
|
21
|
-
&.t-is-left {
|
|
22
|
-
width: 40px;
|
|
23
|
-
margin-right: 0;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.el-tabs__nav-wrap {
|
|
27
|
-
margin: 0;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.el-tabs__nav {
|
|
31
|
-
border: 0;
|
|
32
|
-
border-radius: 0;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.tab-label {
|
|
36
|
-
margin-left: 2px;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.el-tabs__item.is-left,
|
|
40
|
-
.t-tabs__nav-item {
|
|
10
|
+
.m-editor-sidebar-header-item {
|
|
41
11
|
line-height: 15px;
|
|
42
|
-
border: 0;
|
|
43
12
|
height: auto;
|
|
44
13
|
padding: 8px;
|
|
45
14
|
color: rgb(255, 255, 255);
|
|
46
15
|
box-sizing: border-box;
|
|
16
|
+
cursor: pointer;
|
|
47
17
|
|
|
48
|
-
&.is-
|
|
49
|
-
|
|
50
|
-
&.is-active,
|
|
51
|
-
&.t-is-active {
|
|
52
|
-
background: $--sidebar-content-background-color;
|
|
53
|
-
border: 0;
|
|
54
|
-
|
|
55
|
-
i {
|
|
56
|
-
color: #353140;
|
|
57
|
-
}
|
|
18
|
+
&.is-active {
|
|
19
|
+
background: $--sidebar-content-background-color;
|
|
58
20
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
21
|
+
i {
|
|
22
|
+
color: #353140;
|
|
62
23
|
}
|
|
63
24
|
|
|
64
|
-
|
|
65
|
-
|
|
25
|
+
.magic-editor-tab-panel-title {
|
|
26
|
+
color: #353140;
|
|
66
27
|
}
|
|
67
28
|
}
|
|
68
29
|
}
|
|
69
30
|
|
|
70
|
-
.t-tabs__nav-item {
|
|
71
|
-
padding: 7px;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
31
|
i {
|
|
75
32
|
font-size: 25px;
|
|
76
33
|
color: rgba(255, 255, 255, 0.6);
|
|
@@ -86,6 +43,12 @@
|
|
|
86
43
|
}
|
|
87
44
|
}
|
|
88
45
|
|
|
46
|
+
.m-editor-sidebar-content {
|
|
47
|
+
height: 100%;
|
|
48
|
+
width: calc(100% - 40px);
|
|
49
|
+
overflow: auto;
|
|
50
|
+
}
|
|
51
|
+
|
|
89
52
|
.el-scrollbar {
|
|
90
53
|
height: 100%;
|
|
91
54
|
}
|
|
@@ -109,9 +72,4 @@
|
|
|
109
72
|
background: rgba(0, 0, 0, 0.2);
|
|
110
73
|
}
|
|
111
74
|
}
|
|
112
|
-
|
|
113
|
-
.el-tabs__content,
|
|
114
|
-
.el-tab-pane {
|
|
115
|
-
height: 100%;
|
|
116
|
-
}
|
|
117
75
|
}
|