@tmagic/editor 1.0.0-beta.9 → 1.0.0-rc.3

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 (120) hide show
  1. package/README.md +1 -0
  2. package/coverage/clover.xml +1556 -0
  3. package/coverage/coverage-final.json +36 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +87 -0
  6. package/coverage/lcov-report/favicon.png +0 -0
  7. package/coverage/lcov-report/index.html +206 -0
  8. package/coverage/lcov-report/prettify.css +1 -0
  9. package/coverage/lcov-report/prettify.js +2 -0
  10. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  11. package/coverage/lcov-report/sorter.js +196 -0
  12. package/coverage/lcov-report/src/Editor.vue.html +814 -0
  13. package/coverage/lcov-report/src/components/ContentMenu.vue.html +406 -0
  14. package/coverage/lcov-report/src/components/Icon.vue.html +172 -0
  15. package/coverage/lcov-report/src/components/ScrollViewer.vue.html +283 -0
  16. package/coverage/lcov-report/src/components/ToolButton.vue.html +772 -0
  17. package/coverage/lcov-report/src/components/index.html +161 -0
  18. package/coverage/lcov-report/src/index.html +131 -0
  19. package/coverage/lcov-report/src/layouts/AddPageBox.vue.html +214 -0
  20. package/coverage/lcov-report/src/layouts/Framework.vue.html +343 -0
  21. package/coverage/lcov-report/src/layouts/NavMenu.vue.html +208 -0
  22. package/coverage/lcov-report/src/layouts/PropsPanel.vue.html +319 -0
  23. package/coverage/lcov-report/src/layouts/Resizer.vue.html +268 -0
  24. package/coverage/lcov-report/src/layouts/index.html +176 -0
  25. package/coverage/lcov-report/src/layouts/sidebar/ComponentListPanel.vue.html +358 -0
  26. package/coverage/lcov-report/src/layouts/sidebar/LayerMenu.vue.html +421 -0
  27. package/coverage/lcov-report/src/layouts/sidebar/LayerPanel.vue.html +775 -0
  28. package/coverage/lcov-report/src/layouts/sidebar/Sidebar.vue.html +226 -0
  29. package/coverage/lcov-report/src/layouts/sidebar/TabPane.vue.html +289 -0
  30. package/coverage/lcov-report/src/layouts/sidebar/index.html +176 -0
  31. package/coverage/lcov-report/src/layouts/workspace/PageBar.vue.html +718 -0
  32. package/coverage/lcov-report/src/layouts/workspace/Stage.vue.html +766 -0
  33. package/coverage/lcov-report/src/layouts/workspace/ViewerMenu.vue.html +532 -0
  34. package/coverage/lcov-report/src/layouts/workspace/Workspace.vue.html +604 -0
  35. package/coverage/lcov-report/src/layouts/workspace/index.html +161 -0
  36. package/coverage/lcov-report/src/services/BaseService.ts.html +643 -0
  37. package/coverage/lcov-report/src/services/componentList.ts.html +229 -0
  38. package/coverage/lcov-report/src/services/editor.ts.html +2077 -0
  39. package/coverage/lcov-report/src/services/events.ts.html +331 -0
  40. package/coverage/lcov-report/src/services/history.ts.html +478 -0
  41. package/coverage/lcov-report/src/services/index.html +206 -0
  42. package/coverage/lcov-report/src/services/props.ts.html +415 -0
  43. package/coverage/lcov-report/src/services/ui.ts.html +580 -0
  44. package/coverage/lcov-report/src/type.ts.html +850 -0
  45. package/coverage/lcov-report/src/utils/compose.ts.html +184 -0
  46. package/coverage/lcov-report/src/utils/config.ts.html +172 -0
  47. package/coverage/lcov-report/src/utils/editor.ts.html +838 -0
  48. package/coverage/lcov-report/src/utils/index.html +221 -0
  49. package/coverage/lcov-report/src/utils/index.ts.html +151 -0
  50. package/coverage/lcov-report/src/utils/logger.ts.html +226 -0
  51. package/coverage/lcov-report/src/utils/props.ts.html +796 -0
  52. package/coverage/lcov-report/src/utils/scroll-viewer.ts.html +733 -0
  53. package/coverage/lcov-report/src/utils/undo-redo.ts.html +313 -0
  54. package/coverage/lcov.info +3747 -0
  55. package/dist/style.css +68 -36
  56. package/dist/tmagic-editor.es.js +1431 -2048
  57. package/dist/tmagic-editor.es.js.map +1 -1
  58. package/dist/tmagic-editor.umd.js +1431 -2048
  59. package/dist/tmagic-editor.umd.js.map +1 -1
  60. package/dist/types/src/Editor.vue.d.ts +15 -1
  61. package/dist/types/src/components/ToolButton.vue.d.ts +12 -1
  62. package/dist/types/src/fields/UISelect.vue.d.ts +4 -1
  63. package/dist/types/src/index.d.ts +1 -0
  64. package/dist/types/src/layouts/CodeEditor.vue.d.ts +13 -4
  65. package/dist/types/src/layouts/Framework.vue.d.ts +15 -3
  66. package/dist/types/src/layouts/PropsPanel.vue.d.ts +2 -1
  67. package/dist/types/src/layouts/sidebar/ComponentListPanel.vue.d.ts +2 -1
  68. package/dist/types/src/layouts/sidebar/Sidebar.vue.d.ts +2 -3
  69. package/dist/types/src/layouts/sidebar/TabPane.vue.d.ts +14 -0
  70. package/dist/types/src/layouts/workspace/PageBar.vue.d.ts +10 -3
  71. package/dist/types/src/layouts/workspace/Workspace.vue.d.ts +9 -8
  72. package/dist/types/src/services/BaseService.d.ts +4 -1
  73. package/dist/types/src/services/editor.d.ts +5 -2
  74. package/dist/types/src/services/history.d.ts +1 -0
  75. package/dist/types/src/services/props.d.ts +2 -2
  76. package/dist/types/src/services/ui.d.ts +2 -0
  77. package/dist/types/src/type.d.ts +15 -9
  78. package/dist/types/src/utils/editor.d.ts +4 -3
  79. package/dist/types/src/utils/polyfills.d.ts +0 -0
  80. package/package.json +44 -12
  81. package/src/Editor.vue +10 -1
  82. package/src/components/ContentMenu.vue +107 -0
  83. package/src/components/ScrollViewer.vue +1 -1
  84. package/src/components/ToolButton.vue +69 -30
  85. package/src/fields/UISelect.vue +14 -6
  86. package/src/index.ts +2 -0
  87. package/src/layouts/CodeEditor.vue +20 -13
  88. package/src/layouts/Framework.vue +20 -7
  89. package/src/layouts/PropsPanel.vue +5 -4
  90. package/src/layouts/sidebar/ComponentListPanel.vue +25 -3
  91. package/src/layouts/sidebar/LayerMenu.vue +91 -96
  92. package/src/layouts/sidebar/LayerPanel.vue +31 -54
  93. package/src/layouts/sidebar/Sidebar.vue +13 -52
  94. package/src/layouts/sidebar/TabPane.vue +68 -0
  95. package/src/layouts/workspace/PageBar.vue +136 -13
  96. package/src/layouts/workspace/Stage.vue +53 -75
  97. package/src/layouts/workspace/ViewerMenu.vue +104 -67
  98. package/src/layouts/workspace/Workspace.vue +111 -22
  99. package/src/services/BaseService.ts +70 -22
  100. package/src/services/editor.ts +148 -39
  101. package/src/services/history.ts +7 -0
  102. package/src/services/props.ts +3 -3
  103. package/src/services/ui.ts +35 -5
  104. package/src/theme/common/var.scss +1 -0
  105. package/src/theme/component-list-panel.scss +2 -0
  106. package/src/theme/content-menu.scss +33 -26
  107. package/src/theme/layer-panel.scss +2 -1
  108. package/src/theme/nav-menu.scss +6 -2
  109. package/src/theme/page-bar.scss +35 -3
  110. package/src/theme/props-panel.scss +19 -17
  111. package/src/type.ts +16 -9
  112. package/src/utils/editor.ts +31 -6
  113. package/src/utils/polyfills.ts +8 -0
  114. package/src/utils/props.ts +20 -1
  115. package/dist/types/src/layouts/sidebar/LayerMenu.vue.d.ts +0 -31
  116. package/dist/types/src/layouts/sidebar/LayerPanel.vue.d.ts +0 -979
  117. package/dist/types/src/layouts/workspace/Stage.vue.d.ts +0 -193
  118. package/dist/types/src/layouts/workspace/ViewerMenu.vue.d.ts +0 -18
  119. package/tsconfig.json +0 -9
  120. package/vite.config.ts +0 -30
@@ -34,6 +34,8 @@ declare const _default: DefineComponent<{
34
34
  };
35
35
  /** 中间工作区域中画布通过iframe渲染时的页面url */
36
36
  runtimeUrl: StringConstructor;
37
+ /** 选中时是否自动滚动到可视区域 */
38
+ autoScrollIntoView: BooleanConstructor;
37
39
  /** 组件的属性配置表单的dsl */
38
40
  propsConfigs: {
39
41
  type: PropType<Record<string, FormConfig>>;
@@ -63,6 +65,10 @@ declare const _default: DefineComponent<{
63
65
  stageRect: {
64
66
  type: PropType<StageRect>;
65
67
  };
68
+ codeOptions: {
69
+ type: ObjectConstructor;
70
+ default: () => {};
71
+ };
66
72
  }, Services, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("props-panel-mounted" | "update:modelValue")[], "props-panel-mounted" | "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
67
73
  /** 页面初始值 */
68
74
  modelValue: {
@@ -93,6 +99,8 @@ declare const _default: DefineComponent<{
93
99
  };
94
100
  /** 中间工作区域中画布通过iframe渲染时的页面url */
95
101
  runtimeUrl: StringConstructor;
102
+ /** 选中时是否自动滚动到可视区域 */
103
+ autoScrollIntoView: BooleanConstructor;
96
104
  /** 组件的属性配置表单的dsl */
97
105
  propsConfigs: {
98
106
  type: PropType<Record<string, FormConfig>>;
@@ -122,13 +130,19 @@ declare const _default: DefineComponent<{
122
130
  stageRect: {
123
131
  type: PropType<StageRect>;
124
132
  };
133
+ codeOptions: {
134
+ type: ObjectConstructor;
135
+ default: () => {};
136
+ };
125
137
  }>> & {
126
138
  "onProps-panel-mounted"?: ((...args: any[]) => any) | undefined;
127
139
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
128
140
  }, {
129
- componentGroupList: ComponentGroup[];
130
141
  menu: MenuBarData;
142
+ autoScrollIntoView: boolean;
143
+ codeOptions: Record<string, any>;
131
144
  modelValue: MApp;
145
+ componentGroupList: ComponentGroup[];
132
146
  propsConfigs: Record<string, FormConfig>;
133
147
  propsValues: Record<string, MNode>;
134
148
  eventMethodList: Record<string, any>;
@@ -9,6 +9,10 @@ declare const _default: DefineComponent<{
9
9
  display: boolean;
10
10
  };
11
11
  };
12
+ eventType: {
13
+ type: PropType<"mousedown" | "mouseup" | "click">;
14
+ default: string;
15
+ };
12
16
  }, {
13
17
  ZoomIn: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{}>, {}>;
14
18
  ZoomOut: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{}>, {}>;
@@ -19,7 +23,9 @@ declare const _default: DefineComponent<{
19
23
  zoomInHandler: () => void | undefined;
20
24
  zoomOutHandler: () => void | undefined;
21
25
  dropdownHandler(command: any): void;
22
- buttonHandler(item: MenuButton | MenuComponent): void;
26
+ clickHandler(item: MenuButton | MenuComponent, event: MouseEvent): void;
27
+ mousedownHandler(item: MenuButton | MenuComponent, event: MouseEvent): void;
28
+ mouseupHandler(item: MenuButton | MenuComponent, event: MouseEvent): void;
23
29
  }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
24
30
  data: {
25
31
  type: PropType<string | MenuButton | MenuComponent>;
@@ -29,7 +35,12 @@ declare const _default: DefineComponent<{
29
35
  display: boolean;
30
36
  };
31
37
  };
38
+ eventType: {
39
+ type: PropType<"mousedown" | "mouseup" | "click">;
40
+ default: string;
41
+ };
32
42
  }>>, {
33
43
  data: string | MenuButton | MenuComponent;
44
+ eventType: "mousedown" | "mouseup" | "click";
34
45
  }>;
35
46
  export default _default;
@@ -1,4 +1,4 @@
1
- import type { DefineComponent, ComputedRef, Ref, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from 'vue';
1
+ import type { DefineComponent, ComponentOptionsMixin, EmitsOptions, VNodeProps, AllowedComponentProps, ComponentCustomProps, ComputedRef, Ref, ExtractPropTypes } from 'vue';
2
2
  declare const _default: DefineComponent<{
3
3
  labelWidth: StringConstructor;
4
4
  config: ObjectConstructor;
@@ -9,6 +9,9 @@ declare const _default: DefineComponent<{
9
9
  };
10
10
  name: StringConstructor;
11
11
  }, {
12
+ Delete: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{}>, {}>;
13
+ Pointer: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{}>, {}>;
14
+ Close: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{}>, {}>;
12
15
  val: ComputedRef<any>;
13
16
  uiSelectMode: Ref<boolean>;
14
17
  toName: ComputedRef<string>;
@@ -13,6 +13,7 @@ export { default as uiService } from './services/ui';
13
13
  export { default as ComponentListPanel } from './layouts/sidebar/ComponentListPanel.vue';
14
14
  export { default as LayerPanel } from './layouts/sidebar/LayerPanel.vue';
15
15
  export { default as PropsPanel } from './layouts/PropsPanel.vue';
16
+ export { default as ToolButton } from './components/ToolButton.vue';
16
17
  declare const _default: {
17
18
  install: (app: App, opt?: InstallOptions | undefined) => void;
18
19
  };
@@ -8,13 +8,17 @@ declare const _default: DefineComponent<{
8
8
  type: (StringConstructor | ObjectConstructor)[];
9
9
  };
10
10
  type: {
11
- type: StringConstructor[];
11
+ type: StringConstructor;
12
12
  default: () => string;
13
13
  };
14
14
  language: {
15
- type: StringConstructor[];
15
+ type: StringConstructor;
16
16
  default: () => string;
17
17
  };
18
+ options: {
19
+ type: ObjectConstructor;
20
+ default: () => {};
21
+ };
18
22
  }, {
19
23
  values: Ref<string>;
20
24
  loading: Ref<boolean>;
@@ -30,18 +34,23 @@ declare const _default: DefineComponent<{
30
34
  type: (StringConstructor | ObjectConstructor)[];
31
35
  };
32
36
  type: {
33
- type: StringConstructor[];
37
+ type: StringConstructor;
34
38
  default: () => string;
35
39
  };
36
40
  language: {
37
- type: StringConstructor[];
41
+ type: StringConstructor;
38
42
  default: () => string;
39
43
  };
44
+ options: {
45
+ type: ObjectConstructor;
46
+ default: () => {};
47
+ };
40
48
  }>> & {
41
49
  onInitd?: ((...args: any[]) => any) | undefined;
42
50
  onSave?: ((...args: any[]) => any) | undefined;
43
51
  }, {
44
52
  type: string;
45
53
  language: string;
54
+ options: Record<string, any>;
46
55
  }>;
47
56
  export default _default;
@@ -1,11 +1,23 @@
1
- import type { DefineComponent, ComputedRef, ComponentOptionsMixin, EmitsOptions, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from 'vue';
1
+ import type { DefineComponent, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from 'vue';
2
2
  import type { MApp } from '@tmagic/schema';
3
3
  import { GetColumnWidth } from '../type';
4
- declare const _default: DefineComponent<{}, {
4
+ declare const _default: DefineComponent<{
5
+ codeOptions: {
6
+ type: ObjectConstructor;
7
+ default: () => {};
8
+ };
9
+ }, {
5
10
  root: ComputedRef<MApp | undefined>;
6
11
  pageLength: ComputedRef<number>;
7
12
  showSrc: ComputedRef<boolean | undefined>;
8
13
  columnWidth: ComputedRef<GetColumnWidth | undefined>;
9
14
  saveCode(value: string): void;
10
- }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>>, {}>;
15
+ }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
16
+ codeOptions: {
17
+ type: ObjectConstructor;
18
+ default: () => {};
19
+ };
20
+ }>>, {
21
+ codeOptions: Record<string, any>;
22
+ }>;
11
23
  export default _default;
@@ -1,4 +1,4 @@
1
- import type { DefineComponent, Ref, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from 'vue';
1
+ import type { DefineComponent, Ref, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from 'vue';
2
2
  declare const _default: DefineComponent<{}, {
3
3
  values: Ref<{
4
4
  [x: string]: any;
@@ -6,6 +6,7 @@ declare const _default: DefineComponent<{}, {
6
6
  }>;
7
7
  configForm: Ref<any>;
8
8
  curFormConfig: any;
9
+ propsPanelSize: ComputedRef<unknown>;
9
10
  submit(): Promise<void>;
10
11
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "mounted"[], "mounted", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>> & {
11
12
  onMounted?: ((...args: any[]) => any) | undefined;
@@ -7,6 +7,7 @@ declare const _default: DefineComponent<{}, {
7
7
  items: ComponentItem[];
8
8
  title: string;
9
9
  }[] | undefined>;
10
- appendComponent({ text, type, ...config }: ComponentItem): void;
10
+ appendComponent({ text, type, data }: ComponentItem): void;
11
+ dragstartHandler({ text, type, data }: ComponentItem, e: DragEvent): void;
11
12
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>>, {}>;
12
13
  export default _default;
@@ -1,5 +1,5 @@
1
- import type { DefineComponent, Ref, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType } from 'vue';
2
- import { SideBarData, SideComponent } from '../../type';
1
+ import type { DefineComponent, Ref, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType } from 'vue';
2
+ import { SideBarData } from '../../type';
3
3
  declare const _default: DefineComponent<{
4
4
  data: {
5
5
  type: PropType<SideBarData>;
@@ -11,7 +11,6 @@ declare const _default: DefineComponent<{
11
11
  };
12
12
  }, {
13
13
  activeTabName: Ref<string>;
14
- items: ComputedRef<SideComponent[] | Record<string, any>[]>;
15
14
  }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
16
15
  data: {
17
16
  type: PropType<SideBarData>;
@@ -0,0 +1,14 @@
1
+ import type { DefineComponent, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType } from 'vue';
2
+ import { SideComponent, SideItem } from '../../type';
3
+ declare const _default: DefineComponent<{
4
+ data: {
5
+ type: PropType<SideItem>;
6
+ };
7
+ }, {
8
+ config: ComputedRef<SideComponent | undefined>;
9
+ }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
10
+ data: {
11
+ type: PropType<SideItem>;
12
+ };
13
+ }>>, {}>;
14
+ export default _default;
@@ -1,11 +1,18 @@
1
- import type { DefineComponent, ComputedRef, ComponentOptionsMixin, EmitsOptions, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from 'vue';
2
- import type { MNode, MPage } from '@tmagic/schema';
1
+ import type { DefineComponent, Ref, ComponentOptionsMixin, EmitsOptions, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, ComputedRef } from 'vue';
2
+ import type { MNode, MApp, MPage } from '@tmagic/schema';
3
3
  declare const _default: DefineComponent<{}, {
4
- root: ComputedRef<MNode | undefined>;
4
+ root: ComputedRef<MApp | undefined>;
5
5
  page: ComputedRef<MNode | undefined>;
6
6
  switchPage(page: MPage): void;
7
7
  addPage(): void;
8
8
  copy(node: MPage): void;
9
9
  remove(node: MPage): void;
10
+ pageBar: Ref<HTMLDivElement | undefined>;
11
+ itemsContainer: Ref<HTMLDivElement | undefined>;
12
+ canScroll: Ref<boolean>;
13
+ itemsContainerWidth: ComputedRef<number>;
14
+ scroll: (type: "left" | "right" | "start" | "end") => void;
15
+ Delete: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{}>, {}>;
16
+ DocumentCopy: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{}>, {}>;
10
17
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>>, {}>;
11
18
  export default _default;
@@ -1,9 +1,10 @@
1
- import type { DefineComponent, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType } from 'vue';
2
- import type { MComponent, MContainer, MPage } from '@tmagic/schema';
3
- import type { MoveableOptions, SortEventData } from '@tmagic/stage';
1
+ import type { DefineComponent, Ref, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType } from 'vue';
2
+ import type { MPage } from '@tmagic/schema';
3
+ import type { MoveableOptions } from '@tmagic/stage';
4
4
  import StageCore from '@tmagic/stage';
5
5
  declare const _default: DefineComponent<{
6
6
  runtimeUrl: StringConstructor;
7
+ autoScrollIntoView: BooleanConstructor;
7
8
  render: {
8
9
  type: PropType<() => HTMLDivElement>;
9
10
  };
@@ -14,13 +15,11 @@ declare const _default: DefineComponent<{
14
15
  type: PropType<(el: HTMLElement) => boolean | Promise<boolean>>;
15
16
  };
16
17
  }, {
18
+ workspace: Ref<HTMLDivElement | undefined>;
17
19
  page: ComputedRef<MPage | undefined>;
18
- selectHandler(el: HTMLElement): void;
19
- updateNodeHandler(node: MComponent | MContainer | MPage): void;
20
- sortNodeHandler(ev: SortEventData): void;
21
- highlightHandler(el: HTMLElement): void;
22
20
  }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
23
21
  runtimeUrl: StringConstructor;
22
+ autoScrollIntoView: BooleanConstructor;
24
23
  render: {
25
24
  type: PropType<() => HTMLDivElement>;
26
25
  };
@@ -30,5 +29,7 @@ declare const _default: DefineComponent<{
30
29
  canSelect: {
31
30
  type: PropType<(el: HTMLElement) => boolean | Promise<boolean>>;
32
31
  };
33
- }>>, {}>;
32
+ }>>, {
33
+ autoScrollIntoView: boolean;
34
+ }>;
34
35
  export default _default;
@@ -50,7 +50,10 @@ import { EventEmitter } from 'events';
50
50
  export default class extends EventEmitter {
51
51
  private pluginOptionsList;
52
52
  private middleware;
53
- constructor(methods: string[]);
53
+ private taskList;
54
+ private doingTask;
55
+ constructor(methods?: string[], serialMethods?: string[]);
54
56
  use(options: Record<string, Function>): void;
55
57
  usePlugin(options: Record<string, Function>): void;
58
+ private doTask;
56
59
  }
@@ -41,13 +41,15 @@ declare class Editor extends BaseService {
41
41
  /**
42
42
  * 只有容器拥有布局
43
43
  */
44
- getLayout(node: MNode): Promise<Layout>;
44
+ getLayout(parent: MNode, node?: MNode): Promise<Layout>;
45
45
  /**
46
46
  * 选中指定节点(将指定节点设置成当前选中状态)
47
47
  * @param config 指定节点配置或者ID
48
48
  * @returns 当前选中的节点配置
49
49
  */
50
50
  select(config: MNode | Id): Promise<MNode> | never;
51
+ selectNextNode(): Promise<MNode> | never;
52
+ selectNextPage(): Promise<MNode> | never;
51
53
  /**
52
54
  * 高亮指定节点
53
55
  * @param config 指定节点配置或者ID
@@ -60,7 +62,7 @@ declare class Editor extends BaseService {
60
62
  * @param parent 要添加到的容器组件节点配置,如果不设置,默认为当前选中的组件的父节点
61
63
  * @returns 添加后的节点
62
64
  */
63
- add({ type, ...config }: AddMNode, parent?: MContainer | null): Promise<MNode>;
65
+ add(addNode: AddMNode, parent?: MContainer | null): Promise<MNode>;
64
66
  /**
65
67
  * 删除组件
66
68
  * @param {Object} node
@@ -116,6 +118,7 @@ declare class Editor extends BaseService {
116
118
  * @returns 下一步数据
117
119
  */
118
120
  redo(): Promise<StepValue | null>;
121
+ move(left: number, top: number): Promise<void>;
119
122
  destroy(): void;
120
123
  resetModifiedNodeId(): void;
121
124
  private addModifiedNodeId;
@@ -37,6 +37,7 @@ declare class History extends BaseService {
37
37
  canUndo: boolean;
38
38
  };
39
39
  constructor();
40
+ reset(): void;
40
41
  changePage(page: MPage): void;
41
42
  empty(): void;
42
43
  push(state: StepValue): StepValue | null;
@@ -1,5 +1,5 @@
1
1
  import type { FormConfig } from '@tmagic/form';
2
- import type { MComponent, MNode } from '@tmagic/schema';
2
+ import type { MNode } from '@tmagic/schema';
3
3
  import BaseService from './BaseService';
4
4
  declare class Props extends BaseService {
5
5
  private state;
@@ -29,7 +29,7 @@ declare class Props extends BaseService {
29
29
  * @param type 组件类型
30
30
  * @returns 组件初始值
31
31
  */
32
- getPropsValue(type: string): Promise<MComponent>;
32
+ getPropsValue(type: string, defaultValue?: {}): Promise<any>;
33
33
  }
34
34
  export declare type PropsService = Props;
35
35
  declare const _default: Props;
@@ -19,11 +19,13 @@ declare const state: {
19
19
  };
20
20
  showGuides: boolean;
21
21
  showRule: boolean;
22
+ propsPanelSize: "small" | "default" | "large";
22
23
  };
23
24
  declare class Ui extends BaseService {
24
25
  constructor();
25
26
  set<T = any>(name: keyof UiState, value: T): void;
26
27
  get<T>(name: keyof typeof state): T;
28
+ zoom(zoom: number): void;
27
29
  private setColumnWidth;
28
30
  private setStageRect;
29
31
  private calcZoom;
@@ -29,6 +29,7 @@ export interface StoreState {
29
29
  highlightNode: MNode | null;
30
30
  stage: StageCore | null;
31
31
  modifiedNodeIds: Map<Id, Id>;
32
+ pageLength: number;
32
33
  }
33
34
  export interface PropsState {
34
35
  propsConfigMap: Record<string, FormConfig>;
@@ -68,6 +69,8 @@ export interface UiState {
68
69
  showGuides: boolean;
69
70
  /** 是否显示标尺,true: 显示,false: 不显示,默认为true */
70
71
  showRule: boolean;
72
+ /** 用于控制该属性配置表单内组件的尺寸 */
73
+ propsPanelSize: 'large' | 'default' | 'small';
71
74
  }
72
75
  export interface EditorNodeInfo {
73
76
  node?: MNode;
@@ -92,6 +95,8 @@ export interface MenuButton {
92
95
  * zoom: 放大缩小
93
96
  */
94
97
  type: 'button' | 'dropdown' | 'text' | 'divider' | 'zoom';
98
+ /** 当type为divider时有效,分割线方向, 默认vertical */
99
+ direction?: 'horizontal' | 'vertical';
95
100
  /** 展示的文案 */
96
101
  text?: string;
97
102
  /** 鼠标悬浮是显示的气泡中的文案 */
@@ -103,14 +108,9 @@ export interface MenuButton {
103
108
  /** 是否显示,默认为true */
104
109
  display?: boolean | ((data?: Services) => boolean);
105
110
  /** type为button/dropdown时点击运行的方法 */
106
- handler?: (data?: Services) => Promise<any> | any;
107
- /** type为dropdown时,下拉的菜单列表 */
108
- items?: {
109
- /** 展示的文案 */
110
- text: string;
111
- /** 点击运行的方法 */
112
- handler(data: Services): any;
113
- }[];
111
+ handler?: (data: Services, event: MouseEvent) => Promise<any> | any;
112
+ /** type为dropdown时,下拉的菜单列表, 或者有子菜单时 */
113
+ items?: MenuButton[];
114
114
  }
115
115
  export interface MenuComponent {
116
116
  type: 'component';
@@ -169,7 +169,9 @@ export interface ComponentItem {
169
169
  type: string;
170
170
  /** element-plus icon class */
171
171
  icon?: string | Component;
172
- [key: string]: any;
172
+ data?: {
173
+ [key: string]: any;
174
+ };
173
175
  }
174
176
  export interface ComponentGroup {
175
177
  /** 显示文案 */
@@ -177,6 +179,10 @@ export interface ComponentGroup {
177
179
  /** 组内列表 */
178
180
  items: ComponentItem[];
179
181
  }
182
+ export interface UpdateData {
183
+ id: Id;
184
+ [key: string]: any;
185
+ }
180
186
  export declare enum LayerOffset {
181
187
  TOP = "top",
182
188
  BOTTOM = "bottom"
@@ -1,4 +1,5 @@
1
1
  import type { MApp, MContainer, MNode, MPage } from '@tmagic/schema';
2
+ import type StageCore from '@tmagic/stage';
2
3
  import { Layout } from '../type';
3
4
  export declare const COPY_STORAGE_KEY = "$MagicEditorCopyData";
4
5
  export declare const generateId: (type: string | number) => string;
@@ -36,9 +37,9 @@ export declare const setNewItemId: (config: MNode, parent?: MPage | undefined) =
36
37
  * @returns {boolean}
37
38
  */
38
39
  export declare const isFixed: (node: MNode) => boolean;
39
- export declare const getNodeIndex: (node: MNode, parent: MContainer) => number;
40
+ export declare const getNodeIndex: (node: MNode, parent: MContainer | MApp) => number;
40
41
  export declare const toRelative: (node: MNode) => MNode;
41
- export declare const initPosition: (node: MNode, layout: Layout) => MNode;
42
+ export declare const initPosition: (node: MNode, layout: Layout, parentNode: MNode, stage: StageCore) => MNode;
42
43
  export declare const setLayout: (node: MNode, layout: Layout) => MNode;
43
44
  export declare const change2Fixed: (node: MNode, root: MApp) => MNode;
44
- export declare const Fixed2Other: (node: MNode, root: MApp, getLayout: (node: MNode) => Promise<Layout>) => Promise<MNode>;
45
+ export declare const Fixed2Other: (node: MNode, root: MApp, getLayout: (parent: MNode, node?: MNode | undefined) => Promise<Layout>) => Promise<MNode>;
File without changes
package/package.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
- "version": "1.0.0-beta.9",
2
+ "version": "1.0.0-rc.3",
3
3
  "name": "@tmagic/editor",
4
- "sideEffects": false,
4
+ "sideEffects": [
5
+ "dist/*",
6
+ "src/theme/*"
7
+ ],
5
8
  "main": "dist/tmagic-editor.umd.js",
6
9
  "module": "dist/tmagic-editor.es.js",
7
10
  "style": "dist/style.css",
@@ -14,10 +17,14 @@
14
17
  "./dist/style.css": {
15
18
  "import": "./dist/style.css",
16
19
  "require": "./dist/style.css"
17
- }
20
+ },
21
+ "./*": "./*"
18
22
  },
23
+ "license": "Apache-2.0",
19
24
  "scripts": {
20
- "build": "vite build"
25
+ "build": "vite build",
26
+ "test": "jest --maxWorkers=8",
27
+ "test:coverage": "jest --maxWorkers=16 --coverage"
21
28
  },
22
29
  "engines": {
23
30
  "node": ">=14"
@@ -26,35 +33,60 @@
26
33
  "type": "git",
27
34
  "url": "https://github.com/Tencent/tmagic-editor.git"
28
35
  },
36
+ "homepage": "https://tencent.github.io/tmagic-editor/docs/",
37
+ "keywords": [
38
+ "editor",
39
+ "drag",
40
+ "resize",
41
+ "vue",
42
+ "vue3",
43
+ "typescript"
44
+ ],
29
45
  "dependencies": {
46
+ "@babel/core": "^7.18.0",
30
47
  "@element-plus/icons": "0.0.11",
31
- "@tmagic/core": "^1.0.0-beta.9",
32
- "@tmagic/form": "^1.0.0-beta.8",
33
- "@tmagic/schema": "^1.0.0-beta.9",
34
- "@tmagic/stage": "^1.0.0-beta.9",
35
- "@tmagic/utils": "^1.0.0-beta.8",
48
+ "@tmagic/core": "^1.0.0-rc.3",
49
+ "@tmagic/form": "^1.0.0-rc.3",
50
+ "@tmagic/schema": "^1.0.0-rc.3",
51
+ "@tmagic/stage": "^1.0.0-rc.3",
52
+ "@tmagic/utils": "^1.0.0-rc.3",
53
+ "buffer": "^6.0.3",
36
54
  "color": "^3.1.3",
37
- "element-plus": "^2.1.7",
55
+ "element-plus": "^2.2.0",
38
56
  "events": "^3.3.0",
57
+ "gesto": "^1.7.0",
58
+ "keycon": "^1.1.2",
39
59
  "lodash-es": "^4.17.21",
40
60
  "monaco-editor": "^0.32.1",
41
61
  "serialize-javascript": "^6.0.0",
42
62
  "vue": "^3.2.0"
43
63
  },
64
+ "peerDependencies": {
65
+ "@tmagic/form": "^1.0.0-rc.1",
66
+ "element-plus": "^2.2.0",
67
+ "vue": "^3.2.0"
68
+ },
44
69
  "devDependencies": {
45
70
  "@types/events": "^3.0.0",
71
+ "@types/jest": "^27.5.1",
46
72
  "@types/lodash-es": "^4.17.4",
47
73
  "@types/node": "^15.12.4",
48
74
  "@types/serialize-javascript": "^5.0.1",
49
75
  "@vitejs/plugin-vue": "^1.2.3",
50
76
  "@vitejs/plugin-vue-jsx": "^1.1.6",
51
77
  "@vue/compiler-sfc": "^3.2.0",
52
- "@vue/test-utils": "^2.0.0-rc.12",
78
+ "@vue/test-utils": "^2.0.0-rc.20",
79
+ "@vue/vue3-jest": "^27.0.0-alpha.4",
80
+ "babel-jest": "^27.0.6",
81
+ "jest": "^27.5.1",
82
+ "jest-serializer-vue": "^2.0.2",
83
+ "jest-transform-stub": "^2.0.0",
53
84
  "sass": "^1.35.1",
85
+ "ts-jest": "^27.1.4",
54
86
  "typescript": "^4.3.4",
55
87
  "vite": "^2.3.7",
56
88
  "vite-plugin-dts": "^0.9.6",
57
89
  "vue-tsc": "^0.0.24"
58
90
  },
59
- "gitHead": "6314078c100ddcf513eb5581b38e2292f9b93eb9"
91
+ "gitHead": "d9f6ca25a0a6efba35d183e643a306e164b74af7"
60
92
  }
package/src/Editor.vue CHANGED
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <framework>
2
+ <framework :code-options="codeOptions">
3
3
  <template #nav>
4
4
  <slot name="nav" :editorService="editorService"><nav-menu :data="menu"></nav-menu></slot>
5
5
  </template>
@@ -14,6 +14,7 @@
14
14
  <slot name="workspace">
15
15
  <workspace
16
16
  :runtime-url="runtimeUrl"
17
+ :auto-scroll-into-view="autoScrollIntoView"
17
18
  :render="render"
18
19
  :moveable-options="moveableOptions"
19
20
  :can-select="canSelect"
@@ -101,6 +102,9 @@ export default defineComponent({
101
102
  /** 中间工作区域中画布通过iframe渲染时的页面url */
102
103
  runtimeUrl: String,
103
104
 
105
+ /** 选中时是否自动滚动到可视区域 */
106
+ autoScrollIntoView: Boolean,
107
+
104
108
  /** 组件的属性配置表单的dsl */
105
109
  propsConfigs: {
106
110
  type: Object as PropType<Record<string, FormConfig>>,
@@ -136,6 +140,11 @@ export default defineComponent({
136
140
  stageRect: {
137
141
  type: [String, Object] as PropType<StageRect>,
138
142
  },
143
+
144
+ codeOptions: {
145
+ type: Object,
146
+ default: () => ({}),
147
+ },
139
148
  },
140
149
 
141
150
  emits: ['props-panel-mounted', 'update:modelValue'],