@tmagic/editor 1.0.0-rc.7 → 1.0.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 +4 -0
- package/dist/tmagic-editor.es.js +122 -104
- package/dist/tmagic-editor.es.js.map +1 -1
- package/dist/tmagic-editor.umd.js +123 -104
- package/dist/tmagic-editor.umd.js.map +1 -1
- package/dist/types/src/Editor.vue.d.ts +10 -1
- package/dist/types/src/layouts/workspace/Workspace.vue.d.ts +3 -31
- package/dist/types/src/services/editor.d.ts +6 -3
- package/dist/types/src/services/props.d.ts +8 -2
- package/dist/types/src/type.d.ts +11 -0
- package/dist/types/src/utils/editor.d.ts +1 -6
- package/dist/types/src/utils/props.d.ts +10 -1
- package/package.json +7 -7
- package/src/Editor.vue +18 -8
- package/src/layouts/workspace/Stage.vue +40 -35
- package/src/layouts/workspace/Workspace.vue +2 -28
- package/src/services/editor.ts +15 -9
- package/src/services/ui.ts +4 -2
- package/src/theme/page-bar.scss +1 -0
- package/src/theme/workspace.scss +4 -0
- package/src/type.ts +13 -0
- package/src/utils/editor.ts +15 -0
- package/src/utils/props.ts +16 -6
package/dist/style.css
CHANGED
|
@@ -414,6 +414,9 @@
|
|
|
414
414
|
width: 100%;
|
|
415
415
|
user-select: none;
|
|
416
416
|
}
|
|
417
|
+
.m-editor-workspace:focus-visible {
|
|
418
|
+
outline: 0;
|
|
419
|
+
}
|
|
417
420
|
.m-editor-page-bar {
|
|
418
421
|
position: fixed;
|
|
419
422
|
bottom: 0;
|
|
@@ -440,6 +443,7 @@
|
|
|
440
443
|
justify-items: center;
|
|
441
444
|
align-items: center;
|
|
442
445
|
background-color: #f3f3f3;
|
|
446
|
+
white-space: nowrap;
|
|
443
447
|
}
|
|
444
448
|
.m-editor-page-bar-item.active {
|
|
445
449
|
background-color: #fff;
|
package/dist/tmagic-editor.es.js
CHANGED
|
@@ -10,7 +10,7 @@ import { DEFAULT_EVENTS, DEFAULT_METHODS } from '@tmagic/core';
|
|
|
10
10
|
import Gesto from 'gesto';
|
|
11
11
|
import { ElMessage } from 'element-plus';
|
|
12
12
|
import KeyController from 'keycon';
|
|
13
|
-
import StageCore from '@tmagic/stage';
|
|
13
|
+
import StageCore, { GuidesType } from '@tmagic/stage';
|
|
14
14
|
|
|
15
15
|
if (typeof global === "undefined") {
|
|
16
16
|
window.global = window;
|
|
@@ -627,7 +627,7 @@ var historyService = new History();
|
|
|
627
627
|
|
|
628
628
|
class Props extends BaseService {
|
|
629
629
|
constructor() {
|
|
630
|
-
super(["setPropsConfig", "getPropsConfig", "setPropsValue", "getPropsValue"]);
|
|
630
|
+
super(["setPropsConfig", "getPropsConfig", "setPropsValue", "getPropsValue", "createId", "setNewItemId"]);
|
|
631
631
|
this.state = reactive({
|
|
632
632
|
propsConfigMap: {},
|
|
633
633
|
propsValueMap: {}
|
|
@@ -666,12 +666,44 @@ class Props extends BaseService {
|
|
|
666
666
|
}
|
|
667
667
|
return value;
|
|
668
668
|
}
|
|
669
|
+
const data = cloneDeep(defaultValue);
|
|
670
|
+
await this.setNewItemId(data);
|
|
669
671
|
return {
|
|
670
|
-
...getDefaultPropsValue(type),
|
|
671
|
-
...mergeWith(cloneDeep(this.state.propsValueMap[type] || {}),
|
|
672
|
+
...getDefaultPropsValue(type, await this.createId(type)),
|
|
673
|
+
...mergeWith(cloneDeep(this.state.propsValueMap[type] || {}), data)
|
|
672
674
|
};
|
|
673
675
|
}
|
|
676
|
+
async createId(type) {
|
|
677
|
+
return `${type}_${random(1e4, false)}`;
|
|
678
|
+
}
|
|
679
|
+
async setNewItemId(config, parent) {
|
|
680
|
+
const oldId = config.id;
|
|
681
|
+
config.id = await this.createId(config.type || "component");
|
|
682
|
+
if (isPop(config) && parent?.type === NodeType.PAGE) {
|
|
683
|
+
updatePopId(oldId, config.id, parent);
|
|
684
|
+
}
|
|
685
|
+
if (config.items && Array.isArray(config.items)) {
|
|
686
|
+
for (const item of config.items) {
|
|
687
|
+
await this.setNewItemId(item, config);
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
}
|
|
674
691
|
}
|
|
692
|
+
const updatePopId = (oldId, popId, pageConfig) => {
|
|
693
|
+
pageConfig.items?.forEach((config) => {
|
|
694
|
+
if (config.pop === oldId) {
|
|
695
|
+
config.pop = popId;
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
if (config.popId === oldId) {
|
|
699
|
+
config.popId = popId;
|
|
700
|
+
return;
|
|
701
|
+
}
|
|
702
|
+
if (Array.isArray(config.items)) {
|
|
703
|
+
updatePopId(oldId, popId, config);
|
|
704
|
+
}
|
|
705
|
+
});
|
|
706
|
+
};
|
|
675
707
|
var propsService = new Props();
|
|
676
708
|
|
|
677
709
|
var LayerOffset = /* @__PURE__ */ ((LayerOffset2) => {
|
|
@@ -690,9 +722,10 @@ var Keys = /* @__PURE__ */ ((Keys2) => {
|
|
|
690
722
|
Keys2["ESCAPE"] = "Space";
|
|
691
723
|
return Keys2;
|
|
692
724
|
})(Keys || {});
|
|
725
|
+
const H_GUIDE_LINE_STORAGE_KEY = "$MagicStageHorizontalGuidelinesData";
|
|
726
|
+
const V_GUIDE_LINE_STORAGE_KEY = "$MagicStageVerticalGuidelinesData";
|
|
693
727
|
|
|
694
728
|
const COPY_STORAGE_KEY = "$MagicEditorCopyData";
|
|
695
|
-
const generateId = (type) => `${type}_${random(1e4, false)}`;
|
|
696
729
|
const getPageList = (app) => {
|
|
697
730
|
if (app.items && Array.isArray(app.items)) {
|
|
698
731
|
return app.items.filter((item) => item.type === NodeType.PAGE);
|
|
@@ -712,32 +745,6 @@ const generatePageName = (pageNameList) => {
|
|
|
712
745
|
return pageName;
|
|
713
746
|
};
|
|
714
747
|
const generatePageNameByApp = (app) => generatePageName(getPageNameList(getPageList(app)));
|
|
715
|
-
const updatePopId = (oldId, popId, pageConfig) => {
|
|
716
|
-
pageConfig.items?.forEach((config) => {
|
|
717
|
-
if (config.pop === oldId) {
|
|
718
|
-
config.pop = popId;
|
|
719
|
-
return;
|
|
720
|
-
}
|
|
721
|
-
if (config.popId === oldId) {
|
|
722
|
-
config.popId = popId;
|
|
723
|
-
return;
|
|
724
|
-
}
|
|
725
|
-
if (Array.isArray(config.items)) {
|
|
726
|
-
updatePopId(oldId, popId, config);
|
|
727
|
-
}
|
|
728
|
-
});
|
|
729
|
-
};
|
|
730
|
-
const setNewItemId = (config, parent) => {
|
|
731
|
-
const oldId = config.id;
|
|
732
|
-
config.id = generateId(config.type || "component");
|
|
733
|
-
config.name = `${config.name?.replace(/_(\d+)$/, "")}_${config.id}`;
|
|
734
|
-
if (isPop(config) && parent?.type === NodeType.PAGE) {
|
|
735
|
-
updatePopId(oldId, config.id, parent);
|
|
736
|
-
}
|
|
737
|
-
if (config.items && Array.isArray(config.items)) {
|
|
738
|
-
config.items.forEach((item) => setNewItemId(item, config));
|
|
739
|
-
}
|
|
740
|
-
};
|
|
741
748
|
const isFixed = (node) => node.style?.position === "fixed";
|
|
742
749
|
const getNodeIndex = (node, parent) => {
|
|
743
750
|
const items = parent?.items || [];
|
|
@@ -843,6 +850,19 @@ const Fixed2Other = async (node, root, getLayout) => {
|
|
|
843
850
|
}
|
|
844
851
|
return toRelative(node);
|
|
845
852
|
};
|
|
853
|
+
const getGuideLineFromCache = (key) => {
|
|
854
|
+
if (!key)
|
|
855
|
+
return [];
|
|
856
|
+
const guideLineCacheData = globalThis.localStorage.getItem(key);
|
|
857
|
+
if (guideLineCacheData) {
|
|
858
|
+
try {
|
|
859
|
+
return JSON.parse(guideLineCacheData) || [];
|
|
860
|
+
} catch (e) {
|
|
861
|
+
console.error(e);
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
return [];
|
|
865
|
+
};
|
|
846
866
|
|
|
847
867
|
const log = (...args) => {
|
|
848
868
|
};
|
|
@@ -895,8 +915,11 @@ class Editor$1 extends BaseService {
|
|
|
895
915
|
get(name) {
|
|
896
916
|
return this.state[name];
|
|
897
917
|
}
|
|
898
|
-
getNodeInfo(id) {
|
|
899
|
-
|
|
918
|
+
getNodeInfo(id, raw = true) {
|
|
919
|
+
let root = this.get("root");
|
|
920
|
+
if (raw) {
|
|
921
|
+
root = toRaw(root);
|
|
922
|
+
}
|
|
900
923
|
if (!root)
|
|
901
924
|
return {};
|
|
902
925
|
if (id === root.id) {
|
|
@@ -917,14 +940,14 @@ class Editor$1 extends BaseService {
|
|
|
917
940
|
});
|
|
918
941
|
return info;
|
|
919
942
|
}
|
|
920
|
-
getNodeById(id) {
|
|
921
|
-
const { node } = this.getNodeInfo(id);
|
|
943
|
+
getNodeById(id, raw = true) {
|
|
944
|
+
const { node } = this.getNodeInfo(id, raw);
|
|
922
945
|
return node;
|
|
923
946
|
}
|
|
924
|
-
getParentById(id) {
|
|
947
|
+
getParentById(id, raw = true) {
|
|
925
948
|
if (!this.get("root"))
|
|
926
949
|
return;
|
|
927
|
-
const { parent } = this.getNodeInfo(id);
|
|
950
|
+
const { parent } = this.getNodeInfo(id, raw);
|
|
928
951
|
return parent;
|
|
929
952
|
}
|
|
930
953
|
async getLayout(parent, node) {
|
|
@@ -999,7 +1022,7 @@ class Editor$1 extends BaseService {
|
|
|
999
1022
|
} else if (curNode.items) {
|
|
1000
1023
|
parentNode = curNode;
|
|
1001
1024
|
} else {
|
|
1002
|
-
parentNode = this.getParentById(curNode.id);
|
|
1025
|
+
parentNode = this.getParentById(curNode.id, false);
|
|
1003
1026
|
}
|
|
1004
1027
|
if (!parentNode)
|
|
1005
1028
|
throw new Error("\u672A\u627E\u5230\u7236\u5143\u7D20");
|
|
@@ -1029,7 +1052,7 @@ class Editor$1 extends BaseService {
|
|
|
1029
1052
|
const root = this.get("root");
|
|
1030
1053
|
if (!root)
|
|
1031
1054
|
throw new Error("\u6CA1\u6709root");
|
|
1032
|
-
const { parent, node: curNode } = this.getNodeInfo(node.id);
|
|
1055
|
+
const { parent, node: curNode } = this.getNodeInfo(node.id, false);
|
|
1033
1056
|
if (!parent || !curNode)
|
|
1034
1057
|
throw new Error("\u627E\u4E0D\u8981\u5220\u9664\u7684\u8282\u70B9");
|
|
1035
1058
|
const index = getNodeIndex(curNode, parent);
|
|
@@ -1066,7 +1089,7 @@ class Editor$1 extends BaseService {
|
|
|
1066
1089
|
async update(config2) {
|
|
1067
1090
|
if (!config2?.id)
|
|
1068
1091
|
throw new Error("\u6CA1\u6709\u914D\u7F6E\u6216\u8005\u914D\u7F6E\u7F3A\u5C11id\u503C");
|
|
1069
|
-
const info = this.getNodeInfo(config2.id);
|
|
1092
|
+
const info = this.getNodeInfo(config2.id, false);
|
|
1070
1093
|
if (!info.node)
|
|
1071
1094
|
throw new Error(`\u83B7\u53D6\u4E0D\u5230id\u4E3A${config2.id}\u7684\u8282\u70B9`);
|
|
1072
1095
|
const node = cloneDeep(toRaw(info.node));
|
|
@@ -1136,7 +1159,7 @@ class Editor$1 extends BaseService {
|
|
|
1136
1159
|
console.error(e);
|
|
1137
1160
|
return;
|
|
1138
1161
|
}
|
|
1139
|
-
setNewItemId(config, this.get("root"));
|
|
1162
|
+
await propsService.setNewItemId(config, this.get("root"));
|
|
1140
1163
|
if (config.style) {
|
|
1141
1164
|
config.style = {
|
|
1142
1165
|
...config.style,
|
|
@@ -1541,12 +1564,19 @@ const fillConfig = (config = []) => [
|
|
|
1541
1564
|
}
|
|
1542
1565
|
];
|
|
1543
1566
|
const DEFAULT_CONFIG = fillConfig([]);
|
|
1544
|
-
const getDefaultPropsValue = (type) => ({
|
|
1567
|
+
const getDefaultPropsValue = (type, id) => ["page", "container"].includes(type) ? {
|
|
1568
|
+
type,
|
|
1569
|
+
id,
|
|
1570
|
+
layout: "absolute",
|
|
1571
|
+
style: {},
|
|
1572
|
+
name: type,
|
|
1573
|
+
items: []
|
|
1574
|
+
} : {
|
|
1545
1575
|
type,
|
|
1546
|
-
id
|
|
1576
|
+
id,
|
|
1547
1577
|
style: {},
|
|
1548
1578
|
name: type
|
|
1549
|
-
}
|
|
1579
|
+
};
|
|
1550
1580
|
|
|
1551
1581
|
const _sfc_main$i = defineComponent({
|
|
1552
1582
|
components: { Plus },
|
|
@@ -3383,25 +3413,9 @@ const _sfc_main$2 = defineComponent({
|
|
|
3383
3413
|
ViewerMenu,
|
|
3384
3414
|
ScrollViewer
|
|
3385
3415
|
},
|
|
3386
|
-
|
|
3387
|
-
render: {
|
|
3388
|
-
type: Function
|
|
3389
|
-
},
|
|
3390
|
-
runtimeUrl: String,
|
|
3391
|
-
autoScrollIntoView: Boolean,
|
|
3392
|
-
canSelect: {
|
|
3393
|
-
type: Function,
|
|
3394
|
-
default: (el) => Boolean(el.id)
|
|
3395
|
-
},
|
|
3396
|
-
moveableOptions: {
|
|
3397
|
-
type: [Object, Function],
|
|
3398
|
-
default: () => (core) => ({
|
|
3399
|
-
container: core?.renderer?.contentWindow?.document.getElementById("app")
|
|
3400
|
-
})
|
|
3401
|
-
}
|
|
3402
|
-
},
|
|
3403
|
-
setup(props) {
|
|
3416
|
+
setup() {
|
|
3404
3417
|
const services = inject("services");
|
|
3418
|
+
const stageOptions = inject("stageOptions");
|
|
3405
3419
|
const stageWrap = ref();
|
|
3406
3420
|
const stageContainer = ref();
|
|
3407
3421
|
const menu = ref();
|
|
@@ -3413,30 +3427,36 @@ const _sfc_main$2 = defineComponent({
|
|
|
3413
3427
|
const node = computed(() => services?.editorService.get("node"));
|
|
3414
3428
|
let stage = null;
|
|
3415
3429
|
let runtime = null;
|
|
3430
|
+
const getGuideLineKey = (key) => `${key}_${root.value?.id}_${page.value?.id}`;
|
|
3416
3431
|
watchEffect(() => {
|
|
3417
3432
|
if (stage)
|
|
3418
3433
|
return;
|
|
3419
3434
|
if (!stageContainer.value)
|
|
3420
3435
|
return;
|
|
3421
|
-
if (!(
|
|
3436
|
+
if (!(stageOptions?.runtimeUrl || stageOptions?.render) || !root.value)
|
|
3422
3437
|
return;
|
|
3423
3438
|
stage = new StageCore({
|
|
3424
|
-
render:
|
|
3425
|
-
runtimeUrl:
|
|
3439
|
+
render: stageOptions.render,
|
|
3440
|
+
runtimeUrl: stageOptions.runtimeUrl,
|
|
3426
3441
|
zoom: zoom.value,
|
|
3427
|
-
autoScrollIntoView:
|
|
3442
|
+
autoScrollIntoView: stageOptions.autoScrollIntoView,
|
|
3428
3443
|
canSelect: (el, event, stop) => {
|
|
3429
|
-
const elCanSelect =
|
|
3444
|
+
const elCanSelect = stageOptions.canSelect(el);
|
|
3430
3445
|
if (uiSelectMode.value && elCanSelect && event.type === "mousedown") {
|
|
3431
3446
|
document.dispatchEvent(new CustomEvent("ui-select", { detail: el }));
|
|
3432
3447
|
return stop();
|
|
3433
3448
|
}
|
|
3434
3449
|
return elCanSelect;
|
|
3435
3450
|
},
|
|
3436
|
-
moveableOptions:
|
|
3451
|
+
moveableOptions: stageOptions.moveableOptions,
|
|
3452
|
+
updateDragEl: stageOptions.updateDragEl
|
|
3437
3453
|
});
|
|
3438
3454
|
services?.editorService.set("stage", markRaw(stage));
|
|
3439
3455
|
stage?.mount(stageContainer.value);
|
|
3456
|
+
stage.mask.setGuides([
|
|
3457
|
+
getGuideLineFromCache(getGuideLineKey(H_GUIDE_LINE_STORAGE_KEY)),
|
|
3458
|
+
getGuideLineFromCache(getGuideLineKey(V_GUIDE_LINE_STORAGE_KEY))
|
|
3459
|
+
]);
|
|
3440
3460
|
stage?.on("select", (el) => {
|
|
3441
3461
|
services?.editorService.select(el.id);
|
|
3442
3462
|
});
|
|
@@ -3449,14 +3469,22 @@ const _sfc_main$2 = defineComponent({
|
|
|
3449
3469
|
stage?.on("sort", (ev) => {
|
|
3450
3470
|
services?.editorService.sort(ev.src, ev.dist);
|
|
3451
3471
|
});
|
|
3452
|
-
stage?.on("changeGuides", () => {
|
|
3472
|
+
stage?.on("changeGuides", (e2) => {
|
|
3453
3473
|
services?.uiService.set("showGuides", true);
|
|
3474
|
+
if (!root.value || !page.value)
|
|
3475
|
+
return;
|
|
3476
|
+
const storageKey = getGuideLineKey(e2.type === GuidesType.HORIZONTAL ? H_GUIDE_LINE_STORAGE_KEY : V_GUIDE_LINE_STORAGE_KEY);
|
|
3477
|
+
if (e2.guides.length) {
|
|
3478
|
+
globalThis.localStorage.setItem(storageKey, JSON.stringify(e2.guides));
|
|
3479
|
+
} else {
|
|
3480
|
+
globalThis.localStorage.removeItem(storageKey);
|
|
3481
|
+
}
|
|
3454
3482
|
});
|
|
3455
3483
|
if (!node.value?.id)
|
|
3456
3484
|
return;
|
|
3457
3485
|
stage?.on("runtime-ready", (rt) => {
|
|
3458
3486
|
runtime = rt;
|
|
3459
|
-
root.value && runtime?.updateRootConfig(cloneDeep(toRaw(root.value)));
|
|
3487
|
+
root.value && runtime?.updateRootConfig?.(cloneDeep(toRaw(root.value)));
|
|
3460
3488
|
page.value?.id && runtime?.updatePageId?.(page.value.id);
|
|
3461
3489
|
setTimeout(() => {
|
|
3462
3490
|
node.value && stage?.select(toRaw(node.value.id));
|
|
@@ -3470,7 +3498,7 @@ const _sfc_main$2 = defineComponent({
|
|
|
3470
3498
|
});
|
|
3471
3499
|
watch(root, (root2) => {
|
|
3472
3500
|
if (runtime && root2) {
|
|
3473
|
-
runtime.updateRootConfig(cloneDeep(toRaw(root2)));
|
|
3501
|
+
runtime.updateRootConfig?.(cloneDeep(toRaw(root2)));
|
|
3474
3502
|
}
|
|
3475
3503
|
});
|
|
3476
3504
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
@@ -3560,19 +3588,6 @@ const _sfc_main$1 = defineComponent({
|
|
|
3560
3588
|
PageBar,
|
|
3561
3589
|
MagicStage
|
|
3562
3590
|
},
|
|
3563
|
-
props: {
|
|
3564
|
-
runtimeUrl: String,
|
|
3565
|
-
autoScrollIntoView: Boolean,
|
|
3566
|
-
render: {
|
|
3567
|
-
type: Function
|
|
3568
|
-
},
|
|
3569
|
-
moveableOptions: {
|
|
3570
|
-
type: [Object, Function]
|
|
3571
|
-
},
|
|
3572
|
-
canSelect: {
|
|
3573
|
-
type: Function
|
|
3574
|
-
}
|
|
3575
|
-
},
|
|
3576
3591
|
setup() {
|
|
3577
3592
|
const services = inject("services");
|
|
3578
3593
|
const workspace = ref();
|
|
@@ -3683,13 +3698,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3683
3698
|
const _component_page_bar = resolveComponent("page-bar");
|
|
3684
3699
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
3685
3700
|
(openBlock(), createBlock(_component_magic_stage, {
|
|
3686
|
-
key: _ctx.page?.id
|
|
3687
|
-
|
|
3688
|
-
"auto-scroll-into-view": _ctx.autoScrollIntoView,
|
|
3689
|
-
render: _ctx.render,
|
|
3690
|
-
"moveable-options": _ctx.moveableOptions,
|
|
3691
|
-
"can-select": _ctx.canSelect
|
|
3692
|
-
}, null, 8, ["runtime-url", "auto-scroll-into-view", "render", "moveable-options", "can-select"])),
|
|
3701
|
+
key: _ctx.page?.id
|
|
3702
|
+
})),
|
|
3693
3703
|
renderSlot(_ctx.$slots, "workspace-content"),
|
|
3694
3704
|
createVNode(_component_page_bar, null, {
|
|
3695
3705
|
"page-bar-title": withCtx(({ page }) => [
|
|
@@ -3721,7 +3731,9 @@ class ComponentList extends BaseService {
|
|
|
3721
3731
|
var componentListService = new ComponentList();
|
|
3722
3732
|
|
|
3723
3733
|
const DEFAULT_LEFT_COLUMN_WIDTH = 310;
|
|
3734
|
+
const MIN_LEFT_COLUMN_WIDTH = 45;
|
|
3724
3735
|
const DEFAULT_RIGHT_COLUMN_WIDTH = 480;
|
|
3736
|
+
const MIN_RIGHT_COLUMN_WIDTH = 1;
|
|
3725
3737
|
const COLUMN_WIDTH_STORAGE_KEY = "$MagicEditorColumnWidthData";
|
|
3726
3738
|
const defaultColumnWidth = {
|
|
3727
3739
|
left: DEFAULT_LEFT_COLUMN_WIDTH,
|
|
@@ -3797,10 +3809,10 @@ class Ui extends BaseService {
|
|
|
3797
3809
|
...toRaw(this.get("columnWidth"))
|
|
3798
3810
|
};
|
|
3799
3811
|
if (left) {
|
|
3800
|
-
columnWidth.left = left;
|
|
3812
|
+
columnWidth.left = Math.max(left, MIN_LEFT_COLUMN_WIDTH);
|
|
3801
3813
|
}
|
|
3802
3814
|
if (right) {
|
|
3803
|
-
columnWidth.right = right;
|
|
3815
|
+
columnWidth.right = Math.max(right, MIN_RIGHT_COLUMN_WIDTH);
|
|
3804
3816
|
}
|
|
3805
3817
|
if (!center || center === "auto") {
|
|
3806
3818
|
const bodyWidth = globalThis.document.body.clientWidth;
|
|
@@ -3894,7 +3906,8 @@ const _sfc_main = defineComponent({
|
|
|
3894
3906
|
type: [Number, String]
|
|
3895
3907
|
},
|
|
3896
3908
|
canSelect: {
|
|
3897
|
-
type: Function
|
|
3909
|
+
type: Function,
|
|
3910
|
+
default: (el) => Boolean(el.id)
|
|
3898
3911
|
},
|
|
3899
3912
|
stageRect: {
|
|
3900
3913
|
type: [String, Object]
|
|
@@ -3902,6 +3915,9 @@ const _sfc_main = defineComponent({
|
|
|
3902
3915
|
codeOptions: {
|
|
3903
3916
|
type: Object,
|
|
3904
3917
|
default: () => ({})
|
|
3918
|
+
},
|
|
3919
|
+
updateDragEl: {
|
|
3920
|
+
type: Function
|
|
3905
3921
|
}
|
|
3906
3922
|
},
|
|
3907
3923
|
emits: ["props-panel-mounted", "update:modelValue"],
|
|
@@ -3953,6 +3969,14 @@ const _sfc_main = defineComponent({
|
|
|
3953
3969
|
provide("services", services);
|
|
3954
3970
|
provide("layerContentMenu", props.layerContentMenu);
|
|
3955
3971
|
provide("stageContentMenu", props.stageContentMenu);
|
|
3972
|
+
provide("stageOptions", reactive({
|
|
3973
|
+
runtimeUrl: props.runtimeUrl,
|
|
3974
|
+
autoScrollIntoView: props.autoScrollIntoView,
|
|
3975
|
+
render: props.render,
|
|
3976
|
+
moveableOptions: props.moveableOptions,
|
|
3977
|
+
canSelect: props.canSelect,
|
|
3978
|
+
updateDragEl: props.updateDragEl
|
|
3979
|
+
}));
|
|
3956
3980
|
return services;
|
|
3957
3981
|
}
|
|
3958
3982
|
});
|
|
@@ -3975,13 +3999,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3975
3999
|
]),
|
|
3976
4000
|
workspace: withCtx(() => [
|
|
3977
4001
|
renderSlot(_ctx.$slots, "workspace", {}, () => [
|
|
3978
|
-
createVNode(_component_workspace, {
|
|
3979
|
-
"runtime-url": _ctx.runtimeUrl,
|
|
3980
|
-
"auto-scroll-into-view": _ctx.autoScrollIntoView,
|
|
3981
|
-
render: _ctx.render,
|
|
3982
|
-
"moveable-options": _ctx.moveableOptions,
|
|
3983
|
-
"can-select": _ctx.canSelect
|
|
3984
|
-
}, {
|
|
4002
|
+
createVNode(_component_workspace, null, {
|
|
3985
4003
|
"workspace-content": withCtx(() => [
|
|
3986
4004
|
renderSlot(_ctx.$slots, "workspace-content", { editorService: _ctx.editorService })
|
|
3987
4005
|
]),
|
|
@@ -3992,7 +4010,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3992
4010
|
renderSlot(_ctx.$slots, "page-bar-popover", { page })
|
|
3993
4011
|
]),
|
|
3994
4012
|
_: 3
|
|
3995
|
-
}
|
|
4013
|
+
})
|
|
3996
4014
|
])
|
|
3997
4015
|
]),
|
|
3998
4016
|
propsPanel: withCtx(() => [
|
|
@@ -4011,7 +4029,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
4011
4029
|
}
|
|
4012
4030
|
var Editor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
4013
4031
|
|
|
4014
|
-
var index$1 = /* #__PURE__ */ (() => ".m-editor-nav-menu {\n display: flex;\n z-index: 5;\n -webkit-box-pack: justify;\n justify-content: space-between;\n -webkit-box-align: center;\n align-items: center;\n background-color: #ffffff;\n font-size: 19.2px;\n color: #070303;\n font-weight: 400;\n box-sizing: border-box;\n margin: 0px;\n flex: 0 0 35px;\n border-bottom: 1px solid #d8dee8;\n}\n.m-editor-nav-menu > div {\n display: flex;\n height: 100%;\n z-index: 1;\n align-items: center;\n}\n.m-editor-nav-menu .menu-center {\n justify-content: center;\n}\n.m-editor-nav-menu .menu-right {\n justify-content: flex-end;\n}\n.m-editor-nav-menu .menu-item {\n flex-direction: row;\n -webkit-box-align: center;\n align-items: center;\n vertical-align: middle;\n font-size: 14px;\n line-height: 1;\n height: 100%;\n color: rgba(255, 255, 255, 0.7);\n box-sizing: inherit;\n z-index: 1;\n display: flex !important;\n transition: all 0.3s ease 0s;\n border-bottom: 2px solid transparent;\n margin: 0;\n}\n.m-editor-nav-menu .menu-item .is-disabled {\n opacity: 0.5;\n}\n.m-editor-nav-menu .menu-item .is-text {\n padding: 5px;\n}\n.m-editor-nav-menu .menu-item .is-text,\n.m-editor-nav-menu .menu-item i {\n color: #070303;\n}\n.m-editor-nav-menu .menu-item .icon {\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n height: 100%;\n padding: 0px 8px;\n}\n.m-editor-nav-menu .menu-item .menu-item-text {\n color: #070303;\n}\n.m-editor {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n.m-editor-content {\n width: 100%;\n height: calc(100% - 35px);\n display: flex;\n justify-self: space-between;\n}\n.m-editor-framework-center {\n position: relative;\n transform: translateZ(0);\n flex: 1;\n}\n.m-editor-framework-left {\n background-color: #ffffff;\n}\n.m-editor-framework-center .el-scrollbar__view {\n height: 100%;\n min-height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.m-editor-empty-panel {\n display: flex;\n flex: 1;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n height: calc(100% - 32px);\n}\n.m-editor-empty-content {\n display: flex;\n justify-content: space-evenly;\n flex-direction: row;\n width: 100%;\n}\n.m-editor-empty-button {\n border: 3px solid rgba(0, 0, 0, 0.2);\n padding: 10px 40px;\n color: rgba(0, 0, 0, 0.6);\n cursor: pointer;\n}\n.m-editor-empty-button i {\n height: 180px;\n line-height: 180px;\n font-size: 100px;\n}\n.m-editor-empty-button p {\n text-align: center;\n font-size: 20px;\n margin-top: 5px;\n}\n.m-editor-empty-button:hover {\n border-color: #2882e0;\n color: #2882e0;\n}\n.m-editor-sidebar {\n height: 100%;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header {\n background: #2882e0;\n border: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header.is-left {\n width: 40px;\n margin-right: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__nav-wrap {\n margin: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__nav {\n border: 0;\n border-radius: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .tab-label {\n margin-left: 2px;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left {\n line-height: 15px;\n border: 0;\n height: auto;\n padding: 8px;\n color: rgb(255, 255, 255);\n box-sizing: border-box;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left.is-left.is-active {\n background: #ffffff;\n border: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left.is-left.is-active i {\n color: #353140;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left.is-left.is-active .magic-editor-tab-panel-title {\n color: #353140;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left.is-left:first-child {\n border-right: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header i {\n font-size: 25px;\n color: rgba(255, 255, 255, 0.6);\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header i:hover {\n color: rgb(255, 255, 255);\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .magic-editor-tab-panel-title {\n font-size: 12px;\n white-space: normal;\n}\n.m-editor-sidebar .el-scrollbar {\n height: 100%;\n}\n.m-editor-sidebar .el-tree {\n min-height: 100%;\n}\n.m-editor-sidebar .fold-icon {\n position: absolute;\n bottom: 8px;\n left: 0px;\n width: 45px;\n padding-left: 8px;\n color: #fff;\n font-size: 32px;\n opacity: 0.8;\n cursor: pointer;\n}\n.m-editor-sidebar .fold-icon:hover {\n background: rgba(0, 0, 0, 0.2);\n}\n.m-editor-sidebar .el-tabs__content,\n.m-editor-sidebar .el-tab-pane {\n height: 100%;\n}\n.magic-editor-layer-panel {\n background: #ffffff;\n}\n.magic-editor-layer-panel .search-input {\n background: #ffffff;\n color: #bbbbbb;\n padding: 10px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n}\n.magic-editor-layer-panel .search-input .el-input__suffix {\n padding: 10px 5px;\n}\n.magic-editor-layer-panel .node-content {\n flex: 1;\n display: flex;\n width: 100%;\n}\n.magic-editor-layer-panel .node-content > div {\n width: 8px;\n}\n.magic-editor-layer-panel .node-content > span {\n width: calc(100% - 68px);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.magic-editor-layer-panel .node-content > i {\n margin-right: 10px;\n font-size: 20px;\n}\n.magic-editor-layer-panel .node-content > i.lock {\n color: #bbb;\n}\n.magic-editor-layer-panel,\n.magic-editor-layer-panel .el-tree {\n background-color: #ffffff;\n color: #313a40;\n}\n.magic-editor-layer-panel .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {\n background-color: #2882e0;\n color: #fff;\n}\n.magic-editor-layer-panel .cus-tree-node {\n width: 100%;\n overflow: hidden;\n}\n.magic-editor-layer-panel .cus-tree-node-hover {\n background-color: #f3f5f9;\n width: 100%;\n}\n.magic-editor-layer-panel .el-tree-node:focus > .el-tree-node__content {\n background-color: #2882e0;\n color: #fff;\n}\n.ui-tree-tip {\n width: 100%;\n height: 25px;\n margin-left: 10px;\n background: #ffffff;\n font-style: italic;\n color: #555554;\n position: absolute;\n top: 40px;\n left: 0;\n z-index: 1;\n}\n.ui-component-panel {\n height: 100%;\n border-top: 0 !important;\n margin-top: 50px;\n background-color: #ffffff;\n}\n.ui-component-panel .search-input {\n background: #f8fbff;\n color: #bbbbbb;\n padding: 10px;\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n z-index: 1;\n}\n.ui-component-panel .search-input .el-input__prefix {\n padding: 10px;\n}\n.ui-component-panel .search-input .el-input__suffix {\n padding: 10px 5px;\n}\n.ui-component-panel .el-collapse-item > div:first-of-type {\n border-bottom: 1px solid #d9dbdd;\n margin-bottom: 10px;\n}\n.ui-component-panel .el-collapse-item__header {\n background: #ffffff;\n color: #070303;\n height: 25px;\n line-height: 25px;\n padding-left: 10px;\n font-size: 12px;\n}\n.ui-component-panel .el-collapse-item__header i {\n margin-right: 5px;\n font-size: 14px;\n}\n.ui-component-panel .el-collapse-item__wrap {\n background: #ffffff;\n border-bottom: 0;\n}\n.ui-component-panel .el-collapse-item__wrap .el-collapse-item__content {\n padding: 10px;\n display: flex;\n flex-wrap: wrap;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 5px 10px;\n box-sizing: border-box;\n color: #070303;\n flex-direction: column;\n width: 42px;\n cursor: pointer;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item i {\n font-size: 20px;\n background: #fff;\n height: 40px;\n width: 40px;\n line-height: 40px;\n border-radius: 5px;\n color: #909090;\n border: 1px solid #d9dbdd;\n display: flex;\n justify-content: space-evenly;\n align-items: center;\n margin-bottom: 5px;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item i:hover {\n background: #2882e0;\n color: #fff;\n border-color: #4e8be1;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item span {\n font-size: 12px;\n text-align: center;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item .el-tooltip {\n width: 50px;\n height: 30px;\n line-height: 15px;\n display: block;\n white-space: normal;\n margin: 0;\n}\n.m-editor-resizer {\n border-left: 1px solid transparent;\n border-right: 1px solid transparent;\n width: 8px;\n margin: 0 -5px;\n height: 100%;\n opacity: 0.9;\n background: padding-box #d8dee8;\n box-sizing: border-box;\n cursor: col-resize;\n z-index: 1;\n}\n.m-editor-resizer:hover {\n border-color: #d8dee8;\n}\n.m-editor-resizer .icon-container {\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.4s;\n width: 20px;\n height: 120px;\n line-height: 120px;\n text-align: center;\n background: #d8dee8;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n cursor: pointer;\n}\n.m-editor-resizer .icon-container.position-left {\n transform: translate(calc(-100% - 4px), -50%);\n}\n.m-editor-resizer .icon-container.position-right {\n transform: translate(calc(100% + 4px), -50%);\n}\n.m-editor-resizer .icon {\n color: #fff;\n font-size: 18px;\n}\n.magic-editor-resizer:hover .icon-container {\n visibility: visible;\n opacity: 1;\n}\n.m-editor-workspace {\n height: 100%;\n width: 100%;\n user-select: none;\n}\n.m-editor-page-bar {\n position: fixed;\n bottom: 0;\n left: 0;\n display: flex;\n width: 100%;\n height: 32px;\n line-height: 32px;\n color: #070303;\n background-color: #f3f3f3;\n border-top: 1px solid #d9dbdd;\n z-index: 2;\n overflow: hidden;\n}\n.m-editor-page-bar-items {\n display: flex;\n transition: transform 0.3s;\n}\n.m-editor-page-bar-item {\n padding: 0 10px;\n cursor: pointer;\n border-right: 1px solid #d9dbdd;\n display: flex;\n justify-items: center;\n align-items: center;\n background-color: #f3f3f3;\n}\n.m-editor-page-bar-item.active {\n background-color: #fff;\n cursor: text;\n}\n.m-editor-page-bar-item.active .m-editor-page-bar-menu-icon {\n cursor: pointer;\n}\n.m-editor-page-bar-item-icon {\n position: relative;\n z-index: 1;\n}\n.m-editor-page-bar-item-title {\n max-width: 150px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n.page-bar-popover.el-popper.el-popover {\n padding: 10px 0;\n}\n.page-bar-popover .menu-item {\n cursor: pointer;\n transition: all 0.2s ease 0s;\n padding: 5px 14px;\n}\n.page-bar-popover .menu-item .el-button--text,\n.page-bar-popover .menu-item i {\n color: #070303;\n}\n.page-bar-popover .menu-item:hover {\n background-color: #f3f5f9;\n}\n.m-editor-props-panel {\n padding: 0 10px;\n}\n.m-editor-props-panel.small .el-form-item__label {\n font-size: 12px;\n}\n.m-editor-props-panel.small .m-fieldset legend {\n font-size: 12px;\n}\n.m-editor-props-panel.small .el-tabs__item {\n font-size: 12px;\n}\n.m-editor-props-panel .el-input__wrapper {\n border-radius: 0;\n}\n.m-editor-props-panel-popper.small span,\n.m-editor-props-panel-popper.small a,\n.m-editor-props-panel-popper.small p {\n font-size: 12px;\n}\n.magic-editor-content-menu {\n position: fixed;\n font-size: 12px;\n background: #fff;\n box-shadow: 0 2px 8px 2px rgba(68, 73, 77, 0.16);\n z-index: 9999;\n transform-origin: 0% 0%;\n font-weight: 600;\n padding: 4px 0px;\n overflow: auto;\n max-height: 100%;\n}\n.magic-editor-content-menu .menu-item {\n color: #333;\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n cursor: pointer;\n min-width: 140px;\n transition: all 0.2s ease 0s;\n padding: 5px 14px;\n border-left: 2px solid transparent;\n}\n.magic-editor-content-menu .menu-item .el-button {\n width: 100%;\n justify-content: flex-start;\n}\n.magic-editor-content-menu .menu-item .el-button--text,\n.magic-editor-content-menu .menu-item i {\n color: #070303;\n}\n.magic-editor-content-menu .menu-item.divider {\n padding: 0 14px;\n}\n.magic-editor-content-menu .menu-item.divider .el-divider {\n margin: 0;\n}\n.magic-editor-content-menu .menu-item:hover {\n background-color: #f3f5f9;\n}\n.m-editor-stage {\n position: relative;\n width: 100%;\n height: calc(100% - 32px);\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.m-editor-stage-container {\n width: 100%;\n height: 100%;\n z-index: 0;\n position: relative;\n border: 1px solid #d9dbdd;\n transition: transform 0.3s;\n box-sizing: content-box;\n}\n.m-editor-stage-container::-webkit-scrollbar {\n width: 0 !important;\n}\n.magic-code-editor {\n width: 100%;\n}\n.magic-code-editor .margin {\n margin: 0;\n}")();
|
|
4032
|
+
var index$1 = /* #__PURE__ */ (() => ".m-editor-nav-menu {\n display: flex;\n z-index: 5;\n -webkit-box-pack: justify;\n justify-content: space-between;\n -webkit-box-align: center;\n align-items: center;\n background-color: #ffffff;\n font-size: 19.2px;\n color: #070303;\n font-weight: 400;\n box-sizing: border-box;\n margin: 0px;\n flex: 0 0 35px;\n border-bottom: 1px solid #d8dee8;\n}\n.m-editor-nav-menu > div {\n display: flex;\n height: 100%;\n z-index: 1;\n align-items: center;\n}\n.m-editor-nav-menu .menu-center {\n justify-content: center;\n}\n.m-editor-nav-menu .menu-right {\n justify-content: flex-end;\n}\n.m-editor-nav-menu .menu-item {\n flex-direction: row;\n -webkit-box-align: center;\n align-items: center;\n vertical-align: middle;\n font-size: 14px;\n line-height: 1;\n height: 100%;\n color: rgba(255, 255, 255, 0.7);\n box-sizing: inherit;\n z-index: 1;\n display: flex !important;\n transition: all 0.3s ease 0s;\n border-bottom: 2px solid transparent;\n margin: 0;\n}\n.m-editor-nav-menu .menu-item .is-disabled {\n opacity: 0.5;\n}\n.m-editor-nav-menu .menu-item .is-text {\n padding: 5px;\n}\n.m-editor-nav-menu .menu-item .is-text,\n.m-editor-nav-menu .menu-item i {\n color: #070303;\n}\n.m-editor-nav-menu .menu-item .icon {\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n height: 100%;\n padding: 0px 8px;\n}\n.m-editor-nav-menu .menu-item .menu-item-text {\n color: #070303;\n}\n.m-editor {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n.m-editor-content {\n width: 100%;\n height: calc(100% - 35px);\n display: flex;\n justify-self: space-between;\n}\n.m-editor-framework-center {\n position: relative;\n transform: translateZ(0);\n flex: 1;\n}\n.m-editor-framework-left {\n background-color: #ffffff;\n}\n.m-editor-framework-center .el-scrollbar__view {\n height: 100%;\n min-height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.m-editor-empty-panel {\n display: flex;\n flex: 1;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n height: calc(100% - 32px);\n}\n.m-editor-empty-content {\n display: flex;\n justify-content: space-evenly;\n flex-direction: row;\n width: 100%;\n}\n.m-editor-empty-button {\n border: 3px solid rgba(0, 0, 0, 0.2);\n padding: 10px 40px;\n color: rgba(0, 0, 0, 0.6);\n cursor: pointer;\n}\n.m-editor-empty-button i {\n height: 180px;\n line-height: 180px;\n font-size: 100px;\n}\n.m-editor-empty-button p {\n text-align: center;\n font-size: 20px;\n margin-top: 5px;\n}\n.m-editor-empty-button:hover {\n border-color: #2882e0;\n color: #2882e0;\n}\n.m-editor-sidebar {\n height: 100%;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header {\n background: #2882e0;\n border: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header.is-left {\n width: 40px;\n margin-right: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__nav-wrap {\n margin: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__nav {\n border: 0;\n border-radius: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .tab-label {\n margin-left: 2px;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left {\n line-height: 15px;\n border: 0;\n height: auto;\n padding: 8px;\n color: rgb(255, 255, 255);\n box-sizing: border-box;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left.is-left.is-active {\n background: #ffffff;\n border: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left.is-left.is-active i {\n color: #353140;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left.is-left.is-active .magic-editor-tab-panel-title {\n color: #353140;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .el-tabs__item.is-left.is-left:first-child {\n border-right: 0;\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header i {\n font-size: 25px;\n color: rgba(255, 255, 255, 0.6);\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header i:hover {\n color: rgb(255, 255, 255);\n}\n.m-editor-sidebar.el-tabs--left .el-tabs__header .magic-editor-tab-panel-title {\n font-size: 12px;\n white-space: normal;\n}\n.m-editor-sidebar .el-scrollbar {\n height: 100%;\n}\n.m-editor-sidebar .el-tree {\n min-height: 100%;\n}\n.m-editor-sidebar .fold-icon {\n position: absolute;\n bottom: 8px;\n left: 0px;\n width: 45px;\n padding-left: 8px;\n color: #fff;\n font-size: 32px;\n opacity: 0.8;\n cursor: pointer;\n}\n.m-editor-sidebar .fold-icon:hover {\n background: rgba(0, 0, 0, 0.2);\n}\n.m-editor-sidebar .el-tabs__content,\n.m-editor-sidebar .el-tab-pane {\n height: 100%;\n}\n.magic-editor-layer-panel {\n background: #ffffff;\n}\n.magic-editor-layer-panel .search-input {\n background: #ffffff;\n color: #bbbbbb;\n padding: 10px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n}\n.magic-editor-layer-panel .search-input .el-input__suffix {\n padding: 10px 5px;\n}\n.magic-editor-layer-panel .node-content {\n flex: 1;\n display: flex;\n width: 100%;\n}\n.magic-editor-layer-panel .node-content > div {\n width: 8px;\n}\n.magic-editor-layer-panel .node-content > span {\n width: calc(100% - 68px);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.magic-editor-layer-panel .node-content > i {\n margin-right: 10px;\n font-size: 20px;\n}\n.magic-editor-layer-panel .node-content > i.lock {\n color: #bbb;\n}\n.magic-editor-layer-panel,\n.magic-editor-layer-panel .el-tree {\n background-color: #ffffff;\n color: #313a40;\n}\n.magic-editor-layer-panel .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {\n background-color: #2882e0;\n color: #fff;\n}\n.magic-editor-layer-panel .cus-tree-node {\n width: 100%;\n overflow: hidden;\n}\n.magic-editor-layer-panel .cus-tree-node-hover {\n background-color: #f3f5f9;\n width: 100%;\n}\n.magic-editor-layer-panel .el-tree-node:focus > .el-tree-node__content {\n background-color: #2882e0;\n color: #fff;\n}\n.ui-tree-tip {\n width: 100%;\n height: 25px;\n margin-left: 10px;\n background: #ffffff;\n font-style: italic;\n color: #555554;\n position: absolute;\n top: 40px;\n left: 0;\n z-index: 1;\n}\n.ui-component-panel {\n height: 100%;\n border-top: 0 !important;\n margin-top: 50px;\n background-color: #ffffff;\n}\n.ui-component-panel .search-input {\n background: #f8fbff;\n color: #bbbbbb;\n padding: 10px;\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n z-index: 1;\n}\n.ui-component-panel .search-input .el-input__prefix {\n padding: 10px;\n}\n.ui-component-panel .search-input .el-input__suffix {\n padding: 10px 5px;\n}\n.ui-component-panel .el-collapse-item > div:first-of-type {\n border-bottom: 1px solid #d9dbdd;\n margin-bottom: 10px;\n}\n.ui-component-panel .el-collapse-item__header {\n background: #ffffff;\n color: #070303;\n height: 25px;\n line-height: 25px;\n padding-left: 10px;\n font-size: 12px;\n}\n.ui-component-panel .el-collapse-item__header i {\n margin-right: 5px;\n font-size: 14px;\n}\n.ui-component-panel .el-collapse-item__wrap {\n background: #ffffff;\n border-bottom: 0;\n}\n.ui-component-panel .el-collapse-item__wrap .el-collapse-item__content {\n padding: 10px;\n display: flex;\n flex-wrap: wrap;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 5px 10px;\n box-sizing: border-box;\n color: #070303;\n flex-direction: column;\n width: 42px;\n cursor: pointer;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item i {\n font-size: 20px;\n background: #fff;\n height: 40px;\n width: 40px;\n line-height: 40px;\n border-radius: 5px;\n color: #909090;\n border: 1px solid #d9dbdd;\n display: flex;\n justify-content: space-evenly;\n align-items: center;\n margin-bottom: 5px;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item i:hover {\n background: #2882e0;\n color: #fff;\n border-color: #4e8be1;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item span {\n font-size: 12px;\n text-align: center;\n}\n.ui-component-panel .el-collapse-item__wrap .component-item .el-tooltip {\n width: 50px;\n height: 30px;\n line-height: 15px;\n display: block;\n white-space: normal;\n margin: 0;\n}\n.m-editor-resizer {\n border-left: 1px solid transparent;\n border-right: 1px solid transparent;\n width: 8px;\n margin: 0 -5px;\n height: 100%;\n opacity: 0.9;\n background: padding-box #d8dee8;\n box-sizing: border-box;\n cursor: col-resize;\n z-index: 1;\n}\n.m-editor-resizer:hover {\n border-color: #d8dee8;\n}\n.m-editor-resizer .icon-container {\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.4s;\n width: 20px;\n height: 120px;\n line-height: 120px;\n text-align: center;\n background: #d8dee8;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n cursor: pointer;\n}\n.m-editor-resizer .icon-container.position-left {\n transform: translate(calc(-100% - 4px), -50%);\n}\n.m-editor-resizer .icon-container.position-right {\n transform: translate(calc(100% + 4px), -50%);\n}\n.m-editor-resizer .icon {\n color: #fff;\n font-size: 18px;\n}\n.magic-editor-resizer:hover .icon-container {\n visibility: visible;\n opacity: 1;\n}\n.m-editor-workspace {\n height: 100%;\n width: 100%;\n user-select: none;\n}\n.m-editor-workspace:focus-visible {\n outline: 0;\n}\n.m-editor-page-bar {\n position: fixed;\n bottom: 0;\n left: 0;\n display: flex;\n width: 100%;\n height: 32px;\n line-height: 32px;\n color: #070303;\n background-color: #f3f3f3;\n border-top: 1px solid #d9dbdd;\n z-index: 2;\n overflow: hidden;\n}\n.m-editor-page-bar-items {\n display: flex;\n transition: transform 0.3s;\n}\n.m-editor-page-bar-item {\n padding: 0 10px;\n cursor: pointer;\n border-right: 1px solid #d9dbdd;\n display: flex;\n justify-items: center;\n align-items: center;\n background-color: #f3f3f3;\n white-space: nowrap;\n}\n.m-editor-page-bar-item.active {\n background-color: #fff;\n cursor: text;\n}\n.m-editor-page-bar-item.active .m-editor-page-bar-menu-icon {\n cursor: pointer;\n}\n.m-editor-page-bar-item-icon {\n position: relative;\n z-index: 1;\n}\n.m-editor-page-bar-item-title {\n max-width: 150px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n.page-bar-popover.el-popper.el-popover {\n padding: 10px 0;\n}\n.page-bar-popover .menu-item {\n cursor: pointer;\n transition: all 0.2s ease 0s;\n padding: 5px 14px;\n}\n.page-bar-popover .menu-item .el-button--text,\n.page-bar-popover .menu-item i {\n color: #070303;\n}\n.page-bar-popover .menu-item:hover {\n background-color: #f3f5f9;\n}\n.m-editor-props-panel {\n padding: 0 10px;\n}\n.m-editor-props-panel.small .el-form-item__label {\n font-size: 12px;\n}\n.m-editor-props-panel.small .m-fieldset legend {\n font-size: 12px;\n}\n.m-editor-props-panel.small .el-tabs__item {\n font-size: 12px;\n}\n.m-editor-props-panel .el-input__wrapper {\n border-radius: 0;\n}\n.m-editor-props-panel-popper.small span,\n.m-editor-props-panel-popper.small a,\n.m-editor-props-panel-popper.small p {\n font-size: 12px;\n}\n.magic-editor-content-menu {\n position: fixed;\n font-size: 12px;\n background: #fff;\n box-shadow: 0 2px 8px 2px rgba(68, 73, 77, 0.16);\n z-index: 9999;\n transform-origin: 0% 0%;\n font-weight: 600;\n padding: 4px 0px;\n overflow: auto;\n max-height: 100%;\n}\n.magic-editor-content-menu .menu-item {\n color: #333;\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n cursor: pointer;\n min-width: 140px;\n transition: all 0.2s ease 0s;\n padding: 5px 14px;\n border-left: 2px solid transparent;\n}\n.magic-editor-content-menu .menu-item .el-button {\n width: 100%;\n justify-content: flex-start;\n}\n.magic-editor-content-menu .menu-item .el-button--text,\n.magic-editor-content-menu .menu-item i {\n color: #070303;\n}\n.magic-editor-content-menu .menu-item.divider {\n padding: 0 14px;\n}\n.magic-editor-content-menu .menu-item.divider .el-divider {\n margin: 0;\n}\n.magic-editor-content-menu .menu-item:hover {\n background-color: #f3f5f9;\n}\n.m-editor-stage {\n position: relative;\n width: 100%;\n height: calc(100% - 32px);\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.m-editor-stage-container {\n width: 100%;\n height: 100%;\n z-index: 0;\n position: relative;\n border: 1px solid #d9dbdd;\n transition: transform 0.3s;\n box-sizing: content-box;\n}\n.m-editor-stage-container::-webkit-scrollbar {\n width: 0 !important;\n}\n.magic-code-editor {\n width: 100%;\n}\n.magic-code-editor .margin {\n margin: 0;\n}")();
|
|
4015
4033
|
|
|
4016
4034
|
const defaultInstallOpt = {};
|
|
4017
4035
|
var index = {
|
|
@@ -4027,5 +4045,5 @@ var index = {
|
|
|
4027
4045
|
}
|
|
4028
4046
|
};
|
|
4029
4047
|
|
|
4030
|
-
export { COPY_STORAGE_KEY, ComponentListPanel, DEFAULT_CONFIG, Fixed2Other, Keys, LayerOffset, LayerPanel, Layout, PropsPanel, CodeEditor as TMagicCodeEditor, Editor as TMagicEditor, ToolButton, change2Fixed, debug, index as default, editorService, error, eventsService, fillConfig,
|
|
4048
|
+
export { COPY_STORAGE_KEY, ComponentListPanel, DEFAULT_CONFIG, Fixed2Other, H_GUIDE_LINE_STORAGE_KEY, Keys, LayerOffset, LayerPanel, Layout, PropsPanel, CodeEditor as TMagicCodeEditor, Editor as TMagicEditor, ToolButton, V_GUIDE_LINE_STORAGE_KEY, change2Fixed, debug, index as default, editorService, error, eventsService, fillConfig, generatePageName, generatePageNameByApp, getConfig, getDefaultPropsValue, getGuideLineFromCache, getNodeIndex, getPageList, getPageNameList, historyService, info, initPosition, isFixed, log, propsService, setConfig, setLayout, toRelative, uiService, warn };
|
|
4031
4049
|
//# sourceMappingURL=tmagic-editor.es.js.map
|