@tmagic/editor 1.0.0-rc.6 → 1.0.0-rc.9

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 (82) hide show
  1. package/dist/style.css +3 -0
  2. package/dist/tmagic-editor.es.js +93 -91
  3. package/dist/tmagic-editor.es.js.map +1 -1
  4. package/dist/tmagic-editor.umd.js +92 -92
  5. package/dist/tmagic-editor.umd.js.map +1 -1
  6. package/dist/types/src/Editor.vue.d.ts +17 -1
  7. package/dist/types/src/fields/Code.vue.d.ts +4 -4
  8. package/dist/types/src/fields/CodeLink.vue.d.ts +1 -3
  9. package/dist/types/src/layouts/PropsPanel.vue.d.ts +2 -4
  10. package/dist/types/src/layouts/workspace/Workspace.vue.d.ts +3 -31
  11. package/dist/types/src/services/history.d.ts +1 -18
  12. package/dist/types/src/services/props.d.ts +8 -2
  13. package/dist/types/src/type.d.ts +9 -0
  14. package/dist/types/src/utils/editor.d.ts +0 -6
  15. package/dist/types/src/utils/props.d.ts +8 -1
  16. package/package.json +11 -20
  17. package/src/Editor.vue +21 -8
  18. package/src/layouts/workspace/Stage.vue +11 -31
  19. package/src/layouts/workspace/Workspace.vue +2 -28
  20. package/src/services/editor.ts +1 -2
  21. package/src/services/props.ts +62 -7
  22. package/src/theme/workspace.scss +4 -0
  23. package/src/type.ts +10 -0
  24. package/src/utils/editor.ts +1 -50
  25. package/src/utils/props.ts +30 -7
  26. package/LICENSE +0 -5432
  27. package/coverage/clover.xml +0 -1615
  28. package/coverage/coverage-final.json +0 -36
  29. package/coverage/lcov-report/base.css +0 -224
  30. package/coverage/lcov-report/block-navigation.js +0 -87
  31. package/coverage/lcov-report/favicon.png +0 -0
  32. package/coverage/lcov-report/index.html +0 -206
  33. package/coverage/lcov-report/prettify.css +0 -1
  34. package/coverage/lcov-report/prettify.js +0 -2
  35. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  36. package/coverage/lcov-report/sorter.js +0 -196
  37. package/coverage/lcov-report/src/Editor.vue.html +0 -853
  38. package/coverage/lcov-report/src/components/ContentMenu.vue.html +0 -505
  39. package/coverage/lcov-report/src/components/Icon.vue.html +0 -172
  40. package/coverage/lcov-report/src/components/ScrollViewer.vue.html +0 -283
  41. package/coverage/lcov-report/src/components/ToolButton.vue.html +0 -772
  42. package/coverage/lcov-report/src/components/index.html +0 -161
  43. package/coverage/lcov-report/src/index.html +0 -131
  44. package/coverage/lcov-report/src/layouts/AddPageBox.vue.html +0 -214
  45. package/coverage/lcov-report/src/layouts/Framework.vue.html +0 -343
  46. package/coverage/lcov-report/src/layouts/NavMenu.vue.html +0 -208
  47. package/coverage/lcov-report/src/layouts/PropsPanel.vue.html +0 -319
  48. package/coverage/lcov-report/src/layouts/Resizer.vue.html +0 -268
  49. package/coverage/lcov-report/src/layouts/index.html +0 -176
  50. package/coverage/lcov-report/src/layouts/sidebar/ComponentListPanel.vue.html +0 -358
  51. package/coverage/lcov-report/src/layouts/sidebar/LayerMenu.vue.html +0 -430
  52. package/coverage/lcov-report/src/layouts/sidebar/LayerPanel.vue.html +0 -775
  53. package/coverage/lcov-report/src/layouts/sidebar/Sidebar.vue.html +0 -226
  54. package/coverage/lcov-report/src/layouts/sidebar/TabPane.vue.html +0 -289
  55. package/coverage/lcov-report/src/layouts/sidebar/index.html +0 -176
  56. package/coverage/lcov-report/src/layouts/workspace/PageBar.vue.html +0 -718
  57. package/coverage/lcov-report/src/layouts/workspace/Stage.vue.html +0 -766
  58. package/coverage/lcov-report/src/layouts/workspace/ViewerMenu.vue.html +0 -577
  59. package/coverage/lcov-report/src/layouts/workspace/Workspace.vue.html +0 -649
  60. package/coverage/lcov-report/src/layouts/workspace/index.html +0 -161
  61. package/coverage/lcov-report/src/services/BaseService.ts.html +0 -643
  62. package/coverage/lcov-report/src/services/componentList.ts.html +0 -229
  63. package/coverage/lcov-report/src/services/editor.ts.html +0 -2167
  64. package/coverage/lcov-report/src/services/events.ts.html +0 -331
  65. package/coverage/lcov-report/src/services/history.ts.html +0 -478
  66. package/coverage/lcov-report/src/services/index.html +0 -206
  67. package/coverage/lcov-report/src/services/props.ts.html +0 -415
  68. package/coverage/lcov-report/src/services/ui.ts.html +0 -580
  69. package/coverage/lcov-report/src/type.ts.html +0 -850
  70. package/coverage/lcov-report/src/utils/compose.ts.html +0 -184
  71. package/coverage/lcov-report/src/utils/config.ts.html +0 -172
  72. package/coverage/lcov-report/src/utils/editor.ts.html +0 -850
  73. package/coverage/lcov-report/src/utils/index.html +0 -221
  74. package/coverage/lcov-report/src/utils/index.ts.html +0 -151
  75. package/coverage/lcov-report/src/utils/logger.ts.html +0 -226
  76. package/coverage/lcov-report/src/utils/props.ts.html +0 -796
  77. package/coverage/lcov-report/src/utils/scroll-viewer.ts.html +0 -733
  78. package/coverage/lcov-report/src/utils/undo-redo.ts.html +0 -313
  79. package/coverage/lcov.info +0 -3893
  80. package/dist/types/src/components/ToolButton.vue.d.ts +0 -46
  81. package/dist/types/src/fields/UISelect.vue.d.ts +0 -35
  82. package/dist/types/src/layouts/workspace/PageBar.vue.d.ts +0 -18
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;
@@ -121,7 +121,7 @@ function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
121
121
  }
122
122
  var CodeLink = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l]]);
123
123
 
124
- var UISelect_vue_vue_type_style_index_0_lang = '';
124
+ var UISelect_vue_vue_type_style_index_0_lang = /* #__PURE__ */ (() => ".m-fields-ui-select {\n cursor: pointer;\n}\n.m-fields-ui-select i {\n margin-right: 3px;\n}\n.m-fields-ui-select span {\n color: #2882e0;\n}")();
125
125
 
126
126
  const _sfc_main$k = defineComponent({
127
127
  name: "m-fields-ui-select",
@@ -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] || {}), cloneDeep(defaultValue))
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) => {
@@ -692,7 +724,6 @@ var Keys = /* @__PURE__ */ ((Keys2) => {
692
724
  })(Keys || {});
693
725
 
694
726
  const COPY_STORAGE_KEY = "$MagicEditorCopyData";
695
- const generateId = (type) => `${type}_${random(1e4, false)}`;
696
727
  const getPageList = (app) => {
697
728
  if (app.items && Array.isArray(app.items)) {
698
729
  return app.items.filter((item) => item.type === NodeType.PAGE);
@@ -712,32 +743,6 @@ const generatePageName = (pageNameList) => {
712
743
  return pageName;
713
744
  };
714
745
  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
746
  const isFixed = (node) => node.style?.position === "fixed";
742
747
  const getNodeIndex = (node, parent) => {
743
748
  const items = parent?.items || [];
@@ -1136,7 +1141,7 @@ class Editor$1 extends BaseService {
1136
1141
  console.error(e);
1137
1142
  return;
1138
1143
  }
1139
- setNewItemId(config, this.get("root"));
1144
+ await propsService.setNewItemId(config, this.get("root"));
1140
1145
  if (config.style) {
1141
1146
  config.style = {
1142
1147
  ...config.style,
@@ -1466,6 +1471,21 @@ const fillConfig = (config = []) => [
1466
1471
  text: "\u7C97\u7EC6"
1467
1472
  }
1468
1473
  ]
1474
+ },
1475
+ {
1476
+ type: "fieldset",
1477
+ legend: "\u53D8\u5F62",
1478
+ name: "transform",
1479
+ items: [
1480
+ {
1481
+ name: "rotate",
1482
+ text: "\u65CB\u8F6C\u89D2\u5EA6"
1483
+ },
1484
+ {
1485
+ name: "scale",
1486
+ text: "\u7F29\u653E"
1487
+ }
1488
+ ]
1469
1489
  }
1470
1490
  ]
1471
1491
  }
@@ -1526,12 +1546,18 @@ const fillConfig = (config = []) => [
1526
1546
  }
1527
1547
  ];
1528
1548
  const DEFAULT_CONFIG = fillConfig([]);
1529
- const getDefaultPropsValue = (type) => ({
1549
+ const getDefaultPropsValue = (type, id) => ["page", "container"].includes(type) ? {
1530
1550
  type,
1531
- id: generateId(type),
1551
+ id,
1552
+ style: {},
1553
+ name: type,
1554
+ items: []
1555
+ } : {
1556
+ type,
1557
+ id,
1532
1558
  style: {},
1533
1559
  name: type
1534
- });
1560
+ };
1535
1561
 
1536
1562
  const _sfc_main$i = defineComponent({
1537
1563
  components: { Plus },
@@ -3368,25 +3394,9 @@ const _sfc_main$2 = defineComponent({
3368
3394
  ViewerMenu,
3369
3395
  ScrollViewer
3370
3396
  },
3371
- props: {
3372
- render: {
3373
- type: Function
3374
- },
3375
- runtimeUrl: String,
3376
- autoScrollIntoView: Boolean,
3377
- canSelect: {
3378
- type: Function,
3379
- default: (el) => Boolean(el.id)
3380
- },
3381
- moveableOptions: {
3382
- type: [Object, Function],
3383
- default: () => (core) => ({
3384
- container: core?.renderer?.contentWindow?.document.getElementById("app")
3385
- })
3386
- }
3387
- },
3388
- setup(props) {
3397
+ setup() {
3389
3398
  const services = inject("services");
3399
+ const stageOptions = inject("stageOptions");
3390
3400
  const stageWrap = ref();
3391
3401
  const stageContainer = ref();
3392
3402
  const menu = ref();
@@ -3403,22 +3413,23 @@ const _sfc_main$2 = defineComponent({
3403
3413
  return;
3404
3414
  if (!stageContainer.value)
3405
3415
  return;
3406
- if (!(props.runtimeUrl || props.render) || !root.value)
3416
+ if (!(stageOptions?.runtimeUrl || stageOptions?.render) || !root.value)
3407
3417
  return;
3408
3418
  stage = new StageCore({
3409
- render: props.render,
3410
- runtimeUrl: props.runtimeUrl,
3419
+ render: stageOptions.render,
3420
+ runtimeUrl: stageOptions.runtimeUrl,
3411
3421
  zoom: zoom.value,
3412
- autoScrollIntoView: props.autoScrollIntoView,
3422
+ autoScrollIntoView: stageOptions.autoScrollIntoView,
3413
3423
  canSelect: (el, event, stop) => {
3414
- const elCanSelect = props.canSelect(el);
3424
+ const elCanSelect = stageOptions.canSelect(el);
3415
3425
  if (uiSelectMode.value && elCanSelect && event.type === "mousedown") {
3416
3426
  document.dispatchEvent(new CustomEvent("ui-select", { detail: el }));
3417
3427
  return stop();
3418
3428
  }
3419
3429
  return elCanSelect;
3420
3430
  },
3421
- moveableOptions: props.moveableOptions
3431
+ moveableOptions: stageOptions.moveableOptions,
3432
+ updateDragEl: stageOptions.updateDragEl
3422
3433
  });
3423
3434
  services?.editorService.set("stage", markRaw(stage));
3424
3435
  stage?.mount(stageContainer.value);
@@ -3545,19 +3556,6 @@ const _sfc_main$1 = defineComponent({
3545
3556
  PageBar,
3546
3557
  MagicStage
3547
3558
  },
3548
- props: {
3549
- runtimeUrl: String,
3550
- autoScrollIntoView: Boolean,
3551
- render: {
3552
- type: Function
3553
- },
3554
- moveableOptions: {
3555
- type: [Object, Function]
3556
- },
3557
- canSelect: {
3558
- type: Function
3559
- }
3560
- },
3561
3559
  setup() {
3562
3560
  const services = inject("services");
3563
3561
  const workspace = ref();
@@ -3668,13 +3666,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
3668
3666
  const _component_page_bar = resolveComponent("page-bar");
3669
3667
  return openBlock(), createElementBlock("div", _hoisted_1, [
3670
3668
  (openBlock(), createBlock(_component_magic_stage, {
3671
- key: _ctx.page?.id,
3672
- "runtime-url": _ctx.runtimeUrl,
3673
- "auto-scroll-into-view": _ctx.autoScrollIntoView,
3674
- render: _ctx.render,
3675
- "moveable-options": _ctx.moveableOptions,
3676
- "can-select": _ctx.canSelect
3677
- }, null, 8, ["runtime-url", "auto-scroll-into-view", "render", "moveable-options", "can-select"])),
3669
+ key: _ctx.page?.id
3670
+ })),
3678
3671
  renderSlot(_ctx.$slots, "workspace-content"),
3679
3672
  createVNode(_component_page_bar, null, {
3680
3673
  "page-bar-title": withCtx(({ page }) => [
@@ -3873,13 +3866,17 @@ const _sfc_main = defineComponent({
3873
3866
  default: () => ({})
3874
3867
  },
3875
3868
  moveableOptions: {
3876
- type: [Object, Function]
3869
+ type: [Object, Function],
3870
+ default: () => (core) => ({
3871
+ container: core?.renderer?.contentWindow?.document.getElementById("app")
3872
+ })
3877
3873
  },
3878
3874
  defaultSelected: {
3879
3875
  type: [Number, String]
3880
3876
  },
3881
3877
  canSelect: {
3882
- type: Function
3878
+ type: Function,
3879
+ default: (el) => Boolean(el.id)
3883
3880
  },
3884
3881
  stageRect: {
3885
3882
  type: [String, Object]
@@ -3887,6 +3884,9 @@ const _sfc_main = defineComponent({
3887
3884
  codeOptions: {
3888
3885
  type: Object,
3889
3886
  default: () => ({})
3887
+ },
3888
+ updateDragEl: {
3889
+ type: Function
3890
3890
  }
3891
3891
  },
3892
3892
  emits: ["props-panel-mounted", "update:modelValue"],
@@ -3938,6 +3938,14 @@ const _sfc_main = defineComponent({
3938
3938
  provide("services", services);
3939
3939
  provide("layerContentMenu", props.layerContentMenu);
3940
3940
  provide("stageContentMenu", props.stageContentMenu);
3941
+ provide("stageOptions", reactive({
3942
+ runtimeUrl: props.runtimeUrl,
3943
+ autoScrollIntoView: props.autoScrollIntoView,
3944
+ render: props.render,
3945
+ moveableOptions: props.moveableOptions,
3946
+ canSelect: props.canSelect,
3947
+ updateDragEl: props.updateDragEl
3948
+ }));
3941
3949
  return services;
3942
3950
  }
3943
3951
  });
@@ -3960,13 +3968,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
3960
3968
  ]),
3961
3969
  workspace: withCtx(() => [
3962
3970
  renderSlot(_ctx.$slots, "workspace", {}, () => [
3963
- createVNode(_component_workspace, {
3964
- "runtime-url": _ctx.runtimeUrl,
3965
- "auto-scroll-into-view": _ctx.autoScrollIntoView,
3966
- render: _ctx.render,
3967
- "moveable-options": _ctx.moveableOptions,
3968
- "can-select": _ctx.canSelect
3969
- }, {
3971
+ createVNode(_component_workspace, null, {
3970
3972
  "workspace-content": withCtx(() => [
3971
3973
  renderSlot(_ctx.$slots, "workspace-content", { editorService: _ctx.editorService })
3972
3974
  ]),
@@ -3977,7 +3979,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
3977
3979
  renderSlot(_ctx.$slots, "page-bar-popover", { page })
3978
3980
  ]),
3979
3981
  _: 3
3980
- }, 8, ["runtime-url", "auto-scroll-into-view", "render", "moveable-options", "can-select"])
3982
+ })
3981
3983
  ])
3982
3984
  ]),
3983
3985
  propsPanel: withCtx(() => [
@@ -3996,7 +3998,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
3996
3998
  }
3997
3999
  var Editor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
3998
4000
 
3999
- var index$1 = '';
4001
+ 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}\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}")();
4000
4002
 
4001
4003
  const defaultInstallOpt = {};
4002
4004
  var index = {
@@ -4012,5 +4014,5 @@ var index = {
4012
4014
  }
4013
4015
  };
4014
4016
 
4015
- 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, generateId, generatePageName, generatePageNameByApp, getConfig, getDefaultPropsValue, getNodeIndex, getPageList, getPageNameList, historyService, info, initPosition, isFixed, log, propsService, setConfig, setLayout, setNewItemId, toRelative, uiService, warn };
4017
+ 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, generatePageName, generatePageNameByApp, getConfig, getDefaultPropsValue, getNodeIndex, getPageList, getPageNameList, historyService, info, initPosition, isFixed, log, propsService, setConfig, setLayout, toRelative, uiService, warn };
4016
4018
  //# sourceMappingURL=tmagic-editor.es.js.map