@tmagic/editor 1.0.0-rc.4 → 1.0.0-rc.7

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 (75) hide show
  1. package/dist/tmagic-editor.es.js +90 -32
  2. package/dist/tmagic-editor.es.js.map +1 -1
  3. package/dist/tmagic-editor.umd.js +91 -33
  4. package/dist/tmagic-editor.umd.js.map +1 -1
  5. package/dist/types/src/Editor.vue.d.ts +19 -1
  6. package/dist/types/src/fields/Code.vue.d.ts +4 -4
  7. package/dist/types/src/fields/CodeLink.vue.d.ts +1 -3
  8. package/dist/types/src/layouts/PropsPanel.vue.d.ts +2 -4
  9. package/dist/types/src/services/history.d.ts +1 -18
  10. package/package.json +11 -20
  11. package/src/Editor.vue +14 -1
  12. package/src/components/ContentMenu.vue +58 -25
  13. package/src/layouts/sidebar/LayerMenu.vue +3 -0
  14. package/src/layouts/workspace/ViewerMenu.vue +3 -0
  15. package/src/services/editor.ts +3 -4
  16. package/src/services/props.ts +64 -9
  17. package/src/utils/editor.ts +7 -52
  18. package/src/utils/props.ts +17 -3
  19. package/LICENSE +0 -5432
  20. package/coverage/clover.xml +0 -1593
  21. package/coverage/coverage-final.json +0 -36
  22. package/coverage/lcov-report/base.css +0 -224
  23. package/coverage/lcov-report/block-navigation.js +0 -87
  24. package/coverage/lcov-report/favicon.png +0 -0
  25. package/coverage/lcov-report/index.html +0 -206
  26. package/coverage/lcov-report/prettify.css +0 -1
  27. package/coverage/lcov-report/prettify.js +0 -2
  28. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  29. package/coverage/lcov-report/sorter.js +0 -196
  30. package/coverage/lcov-report/src/Editor.vue.html +0 -814
  31. package/coverage/lcov-report/src/components/ContentMenu.vue.html +0 -406
  32. package/coverage/lcov-report/src/components/Icon.vue.html +0 -172
  33. package/coverage/lcov-report/src/components/ScrollViewer.vue.html +0 -283
  34. package/coverage/lcov-report/src/components/ToolButton.vue.html +0 -772
  35. package/coverage/lcov-report/src/components/index.html +0 -161
  36. package/coverage/lcov-report/src/index.html +0 -131
  37. package/coverage/lcov-report/src/layouts/AddPageBox.vue.html +0 -214
  38. package/coverage/lcov-report/src/layouts/Framework.vue.html +0 -343
  39. package/coverage/lcov-report/src/layouts/NavMenu.vue.html +0 -208
  40. package/coverage/lcov-report/src/layouts/PropsPanel.vue.html +0 -319
  41. package/coverage/lcov-report/src/layouts/Resizer.vue.html +0 -268
  42. package/coverage/lcov-report/src/layouts/index.html +0 -176
  43. package/coverage/lcov-report/src/layouts/sidebar/ComponentListPanel.vue.html +0 -358
  44. package/coverage/lcov-report/src/layouts/sidebar/LayerMenu.vue.html +0 -421
  45. package/coverage/lcov-report/src/layouts/sidebar/LayerPanel.vue.html +0 -775
  46. package/coverage/lcov-report/src/layouts/sidebar/Sidebar.vue.html +0 -226
  47. package/coverage/lcov-report/src/layouts/sidebar/TabPane.vue.html +0 -289
  48. package/coverage/lcov-report/src/layouts/sidebar/index.html +0 -176
  49. package/coverage/lcov-report/src/layouts/workspace/PageBar.vue.html +0 -718
  50. package/coverage/lcov-report/src/layouts/workspace/Stage.vue.html +0 -766
  51. package/coverage/lcov-report/src/layouts/workspace/ViewerMenu.vue.html +0 -568
  52. package/coverage/lcov-report/src/layouts/workspace/Workspace.vue.html +0 -649
  53. package/coverage/lcov-report/src/layouts/workspace/index.html +0 -161
  54. package/coverage/lcov-report/src/services/BaseService.ts.html +0 -643
  55. package/coverage/lcov-report/src/services/componentList.ts.html +0 -229
  56. package/coverage/lcov-report/src/services/editor.ts.html +0 -2167
  57. package/coverage/lcov-report/src/services/events.ts.html +0 -331
  58. package/coverage/lcov-report/src/services/history.ts.html +0 -478
  59. package/coverage/lcov-report/src/services/index.html +0 -206
  60. package/coverage/lcov-report/src/services/props.ts.html +0 -415
  61. package/coverage/lcov-report/src/services/ui.ts.html +0 -580
  62. package/coverage/lcov-report/src/type.ts.html +0 -850
  63. package/coverage/lcov-report/src/utils/compose.ts.html +0 -184
  64. package/coverage/lcov-report/src/utils/config.ts.html +0 -172
  65. package/coverage/lcov-report/src/utils/editor.ts.html +0 -838
  66. package/coverage/lcov-report/src/utils/index.html +0 -221
  67. package/coverage/lcov-report/src/utils/index.ts.html +0 -151
  68. package/coverage/lcov-report/src/utils/logger.ts.html +0 -226
  69. package/coverage/lcov-report/src/utils/props.ts.html +0 -796
  70. package/coverage/lcov-report/src/utils/scroll-viewer.ts.html +0 -733
  71. package/coverage/lcov-report/src/utils/undo-redo.ts.html +0 -313
  72. package/coverage/lcov.info +0 -3846
  73. package/dist/types/src/components/ToolButton.vue.d.ts +0 -46
  74. package/dist/types/src/fields/UISelect.vue.d.ts +0 -35
  75. package/dist/types/src/layouts/workspace/PageBar.vue.d.ts +0 -18
@@ -1,7 +1,7 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('serialize-javascript'), require('@element-plus/icons'), require('lodash-es'), require('monaco-editor'), require('@tmagic/schema'), require('@tmagic/utils'), require('events'), require('@tmagic/core'), require('gesto'), require('element-plus'), require('keycon'), require('@tmagic/stage')) :
3
3
  typeof define === 'function' && define.amd ? define(['exports', 'vue', 'serialize-javascript', '@element-plus/icons', 'lodash-es', 'monaco-editor', '@tmagic/schema', '@tmagic/utils', 'events', '@tmagic/core', 'gesto', 'element-plus', 'keycon', '@tmagic/stage'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.TMagicEditor = {}, global.vue, global.serialize, global.icons, global.lodashEs, global.monaco, global.schema, global.utils, global.events, global.core, global.Gesto, global.elementPlus, global.KeyController, global.StageCore));
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.TMagicEditor = {}, global.Vue, global.serialize, global.icons, global.lodashEs, global.monaco, global.schema, global.utils, global.events, global.core, global.Gesto, global.ElementPlus, global.KeyController, global.StageCore));
5
5
  })(this, (function (exports, vue, serialize, icons, lodashEs, monaco, schema, utils, events, core, Gesto, elementPlus, KeyController, StageCore) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -139,7 +139,7 @@
139
139
  }
140
140
  var CodeLink = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l]]);
141
141
 
142
- var UISelect_vue_vue_type_style_index_0_lang = '';
142
+ 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}")();
143
143
 
144
144
  const _sfc_main$k = vue.defineComponent({
145
145
  name: "m-fields-ui-select",
@@ -684,10 +684,10 @@
684
684
  }
685
685
  return value;
686
686
  }
687
- return lodashEs.cloneDeep({
687
+ return {
688
688
  ...getDefaultPropsValue(type),
689
- ...lodashEs.mergeWith(this.state.propsValueMap[type] || {}, defaultValue)
690
- });
689
+ ...lodashEs.mergeWith(lodashEs.cloneDeep(this.state.propsValueMap[type] || {}), lodashEs.cloneDeep(defaultValue))
690
+ };
691
691
  }
692
692
  }
693
693
  var propsService = new Props();
@@ -772,9 +772,12 @@
772
772
  };
773
773
  const setTop2Middle = (node, parentNode, stage) => {
774
774
  const style = node.style || {};
775
- const height = style.height || 0;
776
- if (!stage || typeof style.top !== "undefined" || !parentNode.style || !utils.isNumber(height))
775
+ let height = style.height || 0;
776
+ if (!stage || typeof style.top !== "undefined" || !parentNode.style)
777
777
  return style;
778
+ if (!utils.isNumber(height)) {
779
+ height = 0;
780
+ }
778
781
  const { height: parentHeight } = parentNode.style;
779
782
  if (utils.isPage(parentNode)) {
780
783
  const { scrollTop = 0, wrapperHeight } = stage.mask;
@@ -1194,9 +1197,9 @@
1194
1197
  const node = this.get("node");
1195
1198
  const brothers = parent?.items || [];
1196
1199
  const index = brothers.findIndex((item) => `${item.id}` === `${node?.id}`);
1197
- if (offset === LayerOffset.BOTTOM) {
1200
+ if (offset === LayerOffset.TOP) {
1198
1201
  brothers.splice(brothers.length - 1, 0, brothers.splice(index, 1)[0]);
1199
- } else if (offset === LayerOffset.TOP) {
1202
+ } else if (offset === LayerOffset.BOTTOM) {
1200
1203
  brothers.splice(0, 0, brothers.splice(index, 1)[0]);
1201
1204
  } else {
1202
1205
  brothers.splice(index + parseInt(`${offset}`, 10), 0, brothers.splice(index, 1)[0]);
@@ -1481,6 +1484,21 @@
1481
1484
  text: "\u7C97\u7EC6"
1482
1485
  }
1483
1486
  ]
1487
+ },
1488
+ {
1489
+ type: "fieldset",
1490
+ legend: "\u53D8\u5F62",
1491
+ name: "transform",
1492
+ items: [
1493
+ {
1494
+ name: "rotate",
1495
+ text: "\u65CB\u8F6C\u89D2\u5EA6"
1496
+ },
1497
+ {
1498
+ name: "scale",
1499
+ text: "\u7F29\u653E"
1500
+ }
1501
+ ]
1484
1502
  }
1485
1503
  ]
1486
1504
  }
@@ -2264,9 +2282,14 @@
2264
2282
  menuData: {
2265
2283
  type: Array,
2266
2284
  default: () => []
2285
+ },
2286
+ isSubMenu: {
2287
+ type: Boolean,
2288
+ default: false
2267
2289
  }
2268
2290
  },
2269
- setup() {
2291
+ emits: ["hide", "show"],
2292
+ setup(props, { emit }) {
2270
2293
  const menu = vue.ref();
2271
2294
  const subMenu = vue.ref();
2272
2295
  const visible = vue.ref(false);
@@ -2276,15 +2299,31 @@
2276
2299
  top: "0"
2277
2300
  });
2278
2301
  const hide = () => {
2302
+ if (!visible.value)
2303
+ return;
2279
2304
  visible.value = false;
2305
+ subMenu.value?.hide();
2306
+ emit("hide");
2307
+ };
2308
+ const hideHandler = (e) => {
2309
+ const target = e.target;
2310
+ if (!visible.value || !target) {
2311
+ return;
2312
+ }
2313
+ if (menu.value?.contains(target) || subMenu.value?.$el?.contains(target)) {
2314
+ return;
2315
+ }
2316
+ hide();
2280
2317
  };
2281
2318
  vue.onMounted(() => {
2282
- globalThis.addEventListener("mousedown", (e) => {
2283
- if (!visible.value || e.target && menu.value?.contains(e.target)) {
2284
- return;
2285
- }
2286
- hide();
2287
- }, true);
2319
+ if (props.isSubMenu)
2320
+ return;
2321
+ globalThis.addEventListener("mousedown", hideHandler, true);
2322
+ });
2323
+ vue.onUnmounted(() => {
2324
+ if (props.isSubMenu)
2325
+ return;
2326
+ globalThis.removeEventListener("mousedown", hideHandler, true);
2288
2327
  });
2289
2328
  return {
2290
2329
  menu,
@@ -2294,18 +2333,21 @@
2294
2333
  subMenuData,
2295
2334
  hide,
2296
2335
  show(e) {
2297
- visible.value = true;
2298
- vue.nextTick(() => {
2299
- const menuHeight = menu.value?.clientHeight || 0;
2300
- let top = e.clientY;
2301
- if (menuHeight + e.clientY > document.body.clientHeight) {
2302
- top = document.body.clientHeight - menuHeight;
2303
- }
2304
- menuStyle.value = {
2305
- top: `${top}px`,
2306
- left: `${e.clientX}px`
2307
- };
2308
- });
2336
+ setTimeout(() => {
2337
+ visible.value = true;
2338
+ vue.nextTick(() => {
2339
+ const menuHeight = menu.value?.clientHeight || 0;
2340
+ let top = e.clientY;
2341
+ if (menuHeight + e.clientY > document.body.clientHeight) {
2342
+ top = document.body.clientHeight - menuHeight;
2343
+ }
2344
+ menuStyle.value = {
2345
+ top: `${top}px`,
2346
+ left: `${e.clientX}px`
2347
+ };
2348
+ emit("show");
2349
+ });
2350
+ }, 300);
2309
2351
  },
2310
2352
  showSubMenu(item) {
2311
2353
  const menuItem = item;
@@ -2347,8 +2389,10 @@
2347
2389
  vue.createVNode(_component_content_menu, {
2348
2390
  class: "sub-menu",
2349
2391
  ref: "subMenu",
2350
- "menu-data": _ctx.subMenuData
2351
- }, null, 8, ["menu-data"])
2392
+ "menu-data": _ctx.subMenuData,
2393
+ "is-sub-menu": true,
2394
+ onHide: _ctx.hide
2395
+ }, null, 8, ["menu-data", "onHide"])
2352
2396
  ]))
2353
2397
  ], 4)) : vue.createCommentVNode("", true);
2354
2398
  }
@@ -2363,6 +2407,7 @@
2363
2407
  const isRoot = vue.computed(() => node.value?.type === schema.NodeType.ROOT);
2364
2408
  const isPage = vue.computed(() => node.value?.type === schema.NodeType.PAGE);
2365
2409
  const componentList = vue.computed(() => services?.componentListService.getList() || []);
2410
+ const layerContentMenu = vue.inject("layerContentMenu", []);
2366
2411
  const createMenuItems = (group) => group.items.map((component) => ({
2367
2412
  text: component.text,
2368
2413
  type: "button",
@@ -2427,7 +2472,8 @@
2427
2472
  handler: () => {
2428
2473
  node.value && services?.editorService.remove(node.value);
2429
2474
  }
2430
- }
2475
+ },
2476
+ ...layerContentMenu
2431
2477
  ]),
2432
2478
  show(e) {
2433
2479
  menu.value?.show(e);
@@ -3218,6 +3264,7 @@
3218
3264
  const node = vue.computed(() => editorService?.get("node"));
3219
3265
  const parent = vue.computed(() => editorService?.get("parent"));
3220
3266
  const isPage = vue.computed(() => node.value?.type === schema.NodeType.PAGE);
3267
+ const stageContentMenu = vue.inject("stageContentMenu", []);
3221
3268
  vue.onMounted(() => {
3222
3269
  const data = globalThis.localStorage.getItem(COPY_STORAGE_KEY);
3223
3270
  canPaste.value = data !== "undefined" && !!data;
@@ -3330,7 +3377,8 @@
3330
3377
  handler: () => {
3331
3378
  editorService?.get("stage").clearGuides();
3332
3379
  }
3333
- }
3380
+ },
3381
+ ...stageContentMenu
3334
3382
  ]),
3335
3383
  show(e) {
3336
3384
  menu.value?.show(e);
@@ -3828,6 +3876,14 @@
3828
3876
  sidebar: {
3829
3877
  type: Object
3830
3878
  },
3879
+ layerContentMenu: {
3880
+ type: Array,
3881
+ default: () => []
3882
+ },
3883
+ stageContentMenu: {
3884
+ type: Array,
3885
+ default: () => []
3886
+ },
3831
3887
  menu: {
3832
3888
  type: Object,
3833
3889
  default: () => ({ left: [], right: [] })
@@ -3913,6 +3969,8 @@
3913
3969
  uiService
3914
3970
  };
3915
3971
  vue.provide("services", services);
3972
+ vue.provide("layerContentMenu", props.layerContentMenu);
3973
+ vue.provide("stageContentMenu", props.stageContentMenu);
3916
3974
  return services;
3917
3975
  }
3918
3976
  });
@@ -3971,7 +4029,7 @@
3971
4029
  }
3972
4030
  var Editor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
3973
4031
 
3974
- var index$1 = '';
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-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}")();
3975
4033
 
3976
4034
  const defaultInstallOpt = {};
3977
4035
  var index = {