@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
@@ -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",
@@ -666,10 +666,10 @@ class Props extends BaseService {
666
666
  }
667
667
  return value;
668
668
  }
669
- return cloneDeep({
669
+ return {
670
670
  ...getDefaultPropsValue(type),
671
- ...mergeWith(this.state.propsValueMap[type] || {}, defaultValue)
672
- });
671
+ ...mergeWith(cloneDeep(this.state.propsValueMap[type] || {}), cloneDeep(defaultValue))
672
+ };
673
673
  }
674
674
  }
675
675
  var propsService = new Props();
@@ -754,9 +754,12 @@ const toRelative = (node) => {
754
754
  };
755
755
  const setTop2Middle = (node, parentNode, stage) => {
756
756
  const style = node.style || {};
757
- const height = style.height || 0;
758
- if (!stage || typeof style.top !== "undefined" || !parentNode.style || !isNumber(height))
757
+ let height = style.height || 0;
758
+ if (!stage || typeof style.top !== "undefined" || !parentNode.style)
759
759
  return style;
760
+ if (!isNumber(height)) {
761
+ height = 0;
762
+ }
760
763
  const { height: parentHeight } = parentNode.style;
761
764
  if (isPage(parentNode)) {
762
765
  const { scrollTop = 0, wrapperHeight } = stage.mask;
@@ -1176,9 +1179,9 @@ class Editor$1 extends BaseService {
1176
1179
  const node = this.get("node");
1177
1180
  const brothers = parent?.items || [];
1178
1181
  const index = brothers.findIndex((item) => `${item.id}` === `${node?.id}`);
1179
- if (offset === LayerOffset.BOTTOM) {
1182
+ if (offset === LayerOffset.TOP) {
1180
1183
  brothers.splice(brothers.length - 1, 0, brothers.splice(index, 1)[0]);
1181
- } else if (offset === LayerOffset.TOP) {
1184
+ } else if (offset === LayerOffset.BOTTOM) {
1182
1185
  brothers.splice(0, 0, brothers.splice(index, 1)[0]);
1183
1186
  } else {
1184
1187
  brothers.splice(index + parseInt(`${offset}`, 10), 0, brothers.splice(index, 1)[0]);
@@ -1463,6 +1466,21 @@ const fillConfig = (config = []) => [
1463
1466
  text: "\u7C97\u7EC6"
1464
1467
  }
1465
1468
  ]
1469
+ },
1470
+ {
1471
+ type: "fieldset",
1472
+ legend: "\u53D8\u5F62",
1473
+ name: "transform",
1474
+ items: [
1475
+ {
1476
+ name: "rotate",
1477
+ text: "\u65CB\u8F6C\u89D2\u5EA6"
1478
+ },
1479
+ {
1480
+ name: "scale",
1481
+ text: "\u7F29\u653E"
1482
+ }
1483
+ ]
1466
1484
  }
1467
1485
  ]
1468
1486
  }
@@ -2246,9 +2264,14 @@ const _sfc_main$a = defineComponent({
2246
2264
  menuData: {
2247
2265
  type: Array,
2248
2266
  default: () => []
2267
+ },
2268
+ isSubMenu: {
2269
+ type: Boolean,
2270
+ default: false
2249
2271
  }
2250
2272
  },
2251
- setup() {
2273
+ emits: ["hide", "show"],
2274
+ setup(props, { emit }) {
2252
2275
  const menu = ref();
2253
2276
  const subMenu = ref();
2254
2277
  const visible = ref(false);
@@ -2258,15 +2281,31 @@ const _sfc_main$a = defineComponent({
2258
2281
  top: "0"
2259
2282
  });
2260
2283
  const hide = () => {
2284
+ if (!visible.value)
2285
+ return;
2261
2286
  visible.value = false;
2287
+ subMenu.value?.hide();
2288
+ emit("hide");
2289
+ };
2290
+ const hideHandler = (e) => {
2291
+ const target = e.target;
2292
+ if (!visible.value || !target) {
2293
+ return;
2294
+ }
2295
+ if (menu.value?.contains(target) || subMenu.value?.$el?.contains(target)) {
2296
+ return;
2297
+ }
2298
+ hide();
2262
2299
  };
2263
2300
  onMounted(() => {
2264
- globalThis.addEventListener("mousedown", (e) => {
2265
- if (!visible.value || e.target && menu.value?.contains(e.target)) {
2266
- return;
2267
- }
2268
- hide();
2269
- }, true);
2301
+ if (props.isSubMenu)
2302
+ return;
2303
+ globalThis.addEventListener("mousedown", hideHandler, true);
2304
+ });
2305
+ onUnmounted(() => {
2306
+ if (props.isSubMenu)
2307
+ return;
2308
+ globalThis.removeEventListener("mousedown", hideHandler, true);
2270
2309
  });
2271
2310
  return {
2272
2311
  menu,
@@ -2276,18 +2315,21 @@ const _sfc_main$a = defineComponent({
2276
2315
  subMenuData,
2277
2316
  hide,
2278
2317
  show(e) {
2279
- visible.value = true;
2280
- nextTick(() => {
2281
- const menuHeight = menu.value?.clientHeight || 0;
2282
- let top = e.clientY;
2283
- if (menuHeight + e.clientY > document.body.clientHeight) {
2284
- top = document.body.clientHeight - menuHeight;
2285
- }
2286
- menuStyle.value = {
2287
- top: `${top}px`,
2288
- left: `${e.clientX}px`
2289
- };
2290
- });
2318
+ setTimeout(() => {
2319
+ visible.value = true;
2320
+ nextTick(() => {
2321
+ const menuHeight = menu.value?.clientHeight || 0;
2322
+ let top = e.clientY;
2323
+ if (menuHeight + e.clientY > document.body.clientHeight) {
2324
+ top = document.body.clientHeight - menuHeight;
2325
+ }
2326
+ menuStyle.value = {
2327
+ top: `${top}px`,
2328
+ left: `${e.clientX}px`
2329
+ };
2330
+ emit("show");
2331
+ });
2332
+ }, 300);
2291
2333
  },
2292
2334
  showSubMenu(item) {
2293
2335
  const menuItem = item;
@@ -2329,8 +2371,10 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
2329
2371
  createVNode(_component_content_menu, {
2330
2372
  class: "sub-menu",
2331
2373
  ref: "subMenu",
2332
- "menu-data": _ctx.subMenuData
2333
- }, null, 8, ["menu-data"])
2374
+ "menu-data": _ctx.subMenuData,
2375
+ "is-sub-menu": true,
2376
+ onHide: _ctx.hide
2377
+ }, null, 8, ["menu-data", "onHide"])
2334
2378
  ]))
2335
2379
  ], 4)) : createCommentVNode("", true);
2336
2380
  }
@@ -2345,6 +2389,7 @@ const _sfc_main$9 = defineComponent({
2345
2389
  const isRoot = computed(() => node.value?.type === NodeType.ROOT);
2346
2390
  const isPage = computed(() => node.value?.type === NodeType.PAGE);
2347
2391
  const componentList = computed(() => services?.componentListService.getList() || []);
2392
+ const layerContentMenu = inject("layerContentMenu", []);
2348
2393
  const createMenuItems = (group) => group.items.map((component) => ({
2349
2394
  text: component.text,
2350
2395
  type: "button",
@@ -2409,7 +2454,8 @@ const _sfc_main$9 = defineComponent({
2409
2454
  handler: () => {
2410
2455
  node.value && services?.editorService.remove(node.value);
2411
2456
  }
2412
- }
2457
+ },
2458
+ ...layerContentMenu
2413
2459
  ]),
2414
2460
  show(e) {
2415
2461
  menu.value?.show(e);
@@ -3200,6 +3246,7 @@ const _sfc_main$3 = defineComponent({
3200
3246
  const node = computed(() => editorService?.get("node"));
3201
3247
  const parent = computed(() => editorService?.get("parent"));
3202
3248
  const isPage = computed(() => node.value?.type === NodeType.PAGE);
3249
+ const stageContentMenu = inject("stageContentMenu", []);
3203
3250
  onMounted(() => {
3204
3251
  const data = globalThis.localStorage.getItem(COPY_STORAGE_KEY);
3205
3252
  canPaste.value = data !== "undefined" && !!data;
@@ -3312,7 +3359,8 @@ const _sfc_main$3 = defineComponent({
3312
3359
  handler: () => {
3313
3360
  editorService?.get("stage").clearGuides();
3314
3361
  }
3315
- }
3362
+ },
3363
+ ...stageContentMenu
3316
3364
  ]),
3317
3365
  show(e) {
3318
3366
  menu.value?.show(e);
@@ -3810,6 +3858,14 @@ const _sfc_main = defineComponent({
3810
3858
  sidebar: {
3811
3859
  type: Object
3812
3860
  },
3861
+ layerContentMenu: {
3862
+ type: Array,
3863
+ default: () => []
3864
+ },
3865
+ stageContentMenu: {
3866
+ type: Array,
3867
+ default: () => []
3868
+ },
3813
3869
  menu: {
3814
3870
  type: Object,
3815
3871
  default: () => ({ left: [], right: [] })
@@ -3895,6 +3951,8 @@ const _sfc_main = defineComponent({
3895
3951
  uiService
3896
3952
  };
3897
3953
  provide("services", services);
3954
+ provide("layerContentMenu", props.layerContentMenu);
3955
+ provide("stageContentMenu", props.stageContentMenu);
3898
3956
  return services;
3899
3957
  }
3900
3958
  });
@@ -3953,7 +4011,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
3953
4011
  }
3954
4012
  var Editor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
3955
4013
 
3956
- var index$1 = '';
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}")();
3957
4015
 
3958
4016
  const defaultInstallOpt = {};
3959
4017
  var index = {