@tmagic/editor 1.3.6 → 1.3.8

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/LICENSE +5432 -0
  2. package/dist/style.css +34 -11
  3. package/dist/tmagic-editor.js +1360 -957
  4. package/dist/tmagic-editor.js.map +1 -1
  5. package/dist/tmagic-editor.umd.cjs +1382 -977
  6. package/dist/tmagic-editor.umd.cjs.map +1 -1
  7. package/package.json +17 -17
  8. package/src/Editor.vue +15 -7
  9. package/src/components/CodeBlockEditor.vue +2 -2
  10. package/src/components/ContentMenu.vue +5 -5
  11. package/src/components/ScrollBar.vue +2 -2
  12. package/src/components/ScrollViewer.vue +2 -2
  13. package/src/components/SplitView.vue +2 -2
  14. package/src/components/Tree.vue +1 -1
  15. package/src/components/TreeNode.vue +3 -3
  16. package/src/editorProps.ts +14 -4
  17. package/src/fields/PageFragmentSelect.vue +63 -0
  18. package/src/hooks/use-getso.ts +2 -2
  19. package/src/hooks/use-stage.ts +18 -1
  20. package/src/index.ts +3 -0
  21. package/src/initService.ts +15 -5
  22. package/src/layouts/AddPageBox.vue +16 -4
  23. package/src/layouts/CodeEditor.vue +2 -2
  24. package/src/layouts/Framework.vue +19 -3
  25. package/src/layouts/PropsPanel.vue +9 -7
  26. package/src/layouts/page-bar/AddButton.vue +48 -0
  27. package/src/layouts/page-bar/PageBar.vue +158 -0
  28. package/src/layouts/{workspace → page-bar}/PageBarScrollContainer.vue +61 -35
  29. package/src/layouts/page-bar/SwitchTypeButton.vue +45 -0
  30. package/src/layouts/sidebar/Sidebar.vue +2 -0
  31. package/src/layouts/sidebar/layer/LayerMenu.vue +39 -27
  32. package/src/layouts/sidebar/layer/LayerPanel.vue +7 -1
  33. package/src/layouts/sidebar/layer/use-click.ts +5 -3
  34. package/src/layouts/sidebar/layer/use-keybinding.ts +8 -8
  35. package/src/layouts/sidebar/layer/use-node-status.ts +3 -3
  36. package/src/layouts/workspace/Workspace.vue +6 -7
  37. package/src/layouts/workspace/viewer/NodeListMenu.vue +2 -2
  38. package/src/layouts/workspace/viewer/Stage.vue +12 -5
  39. package/src/layouts/workspace/viewer/ViewerMenu.vue +93 -80
  40. package/src/services/dataSource.ts +17 -0
  41. package/src/services/dep.ts +4 -0
  42. package/src/services/editor.ts +66 -35
  43. package/src/services/history.ts +6 -2
  44. package/src/services/keybinding.ts +48 -13
  45. package/src/theme/code-block.scss +0 -16
  46. package/src/theme/page-bar.scss +18 -1
  47. package/src/theme/page-fragment-select.scss +14 -0
  48. package/src/theme/theme.scss +1 -0
  49. package/src/theme/tree.scss +6 -0
  50. package/src/type.ts +23 -7
  51. package/src/utils/content-menu.ts +2 -2
  52. package/src/utils/editor.ts +22 -15
  53. package/src/utils/operator.ts +4 -4
  54. package/types/components/ToolButton.vue.d.ts +2 -2
  55. package/types/editorProps.d.ts +11 -2
  56. package/types/fields/PageFragmentSelect.vue.d.ts +31 -0
  57. package/types/index.d.ts +1 -0
  58. package/types/layouts/AddPageBox.vue.d.ts +14 -1
  59. package/types/layouts/Framework.vue.d.ts +14 -1
  60. package/types/layouts/PropsPanel.vue.d.ts +19 -10
  61. package/types/layouts/page-bar/AddButton.vue.d.ts +16 -0
  62. package/types/layouts/page-bar/PageBar.vue.d.ts +28 -0
  63. package/types/layouts/page-bar/PageBarScrollContainer.vue.d.ts +24 -0
  64. package/types/layouts/page-bar/SwitchTypeButton.vue.d.ts +20 -0
  65. package/types/layouts/sidebar/Sidebar.vue.d.ts +2 -0
  66. package/types/layouts/sidebar/layer/LayerMenu.vue.d.ts +22 -3
  67. package/types/layouts/sidebar/layer/LayerPanel.vue.d.ts +2 -0
  68. package/types/layouts/sidebar/layer/use-click.d.ts +25 -3
  69. package/types/layouts/sidebar/layer/use-keybinding.d.ts +1 -1
  70. package/types/layouts/workspace/Workspace.vue.d.ts +2 -0
  71. package/types/layouts/workspace/viewer/Stage.vue.d.ts +2 -0
  72. package/types/layouts/workspace/viewer/ViewerMenu.vue.d.ts +8 -0
  73. package/types/services/dataSource.d.ts +2 -0
  74. package/types/services/dep.d.ts +1 -0
  75. package/types/services/editor.d.ts +3 -2
  76. package/types/services/history.d.ts +3 -2
  77. package/types/services/keybinding.d.ts +21 -1
  78. package/types/type.d.ts +26 -12
  79. package/types/utils/editor.d.ts +9 -7
  80. package/src/layouts/workspace/PageBar.vue +0 -87
  81. package/types/layouts/workspace/PageBar.vue.d.ts +0 -15
  82. package/types/layouts/workspace/PageBarScrollContainer.vue.d.ts +0 -9
@@ -36,6 +36,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
36
36
  readonly popperClass?: string | undefined;
37
37
  readonly extendState?: ((state: FormState) => Record<string, any> | Promise<Record<string, any>>) | undefined;
38
38
  onChange?: ((...args: any[]) => any) | undefined;
39
+ onError?: ((...args: any[]) => any) | undefined;
39
40
  "onField-input"?: ((...args: any[]) => any) | undefined;
40
41
  "onField-change"?: ((...args: any[]) => any) | undefined;
41
42
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
@@ -59,14 +60,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
59
60
  size: {
60
61
  type: import("vue").PropType<"default" | "small" | "large">;
61
62
  };
63
+ popperClass: {
64
+ type: import("vue").PropType<string>;
65
+ };
62
66
  initValues: {
63
67
  type: import("vue").PropType<Record<string, any>>;
64
68
  required: true;
65
69
  default: () => {};
66
70
  };
67
- popperClass: {
68
- type: import("vue").PropType<string>;
69
- };
70
71
  extendState: {
71
72
  type: import("vue").PropType<(state: FormState) => Record<string, any> | Promise<Record<string, any>>>;
72
73
  };
@@ -100,6 +101,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
100
101
  };
101
102
  }>> & {
102
103
  onChange?: ((...args: any[]) => any) | undefined;
104
+ onError?: ((...args: any[]) => any) | undefined;
103
105
  "onField-input"?: ((...args: any[]) => any) | undefined;
104
106
  "onField-change"?: ((...args: any[]) => any) | undefined;
105
107
  }, "labelWidth" | "disabled" | "height" | "config" | "initValues" | "lastValues" | "isCompare" | "parentValues" | "stepActive" | "inline" | "labelPosition" | "keyProp">;
@@ -114,7 +116,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
114
116
  }>;
115
117
  $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
116
118
  $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
117
- $emit: ((event: "change", ...args: any[]) => void) & ((event: "field-input", ...args: any[]) => void) & ((event: "field-change", ...args: any[]) => void);
119
+ $emit: ((event: "change", ...args: any[]) => void) & ((event: "error", ...args: any[]) => void) & ((event: "field-input", ...args: any[]) => void) & ((event: "field-change", ...args: any[]) => void);
118
120
  $el: any;
119
121
  $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
120
122
  labelWidth: {
@@ -137,14 +139,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
137
139
  size: {
138
140
  type: import("vue").PropType<"default" | "small" | "large">;
139
141
  };
142
+ popperClass: {
143
+ type: import("vue").PropType<string>;
144
+ };
140
145
  initValues: {
141
146
  type: import("vue").PropType<Record<string, any>>;
142
147
  required: true;
143
148
  default: () => {};
144
149
  };
145
- popperClass: {
146
- type: import("vue").PropType<string>;
147
- };
148
150
  extendState: {
149
151
  type: import("vue").PropType<(state: FormState) => Record<string, any> | Promise<Record<string, any>>>;
150
152
  };
@@ -178,6 +180,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
178
180
  };
179
181
  }>> & {
180
182
  onChange?: ((...args: any[]) => any) | undefined;
183
+ onError?: ((...args: any[]) => any) | undefined;
181
184
  "onField-input"?: ((...args: any[]) => any) | undefined;
182
185
  "onField-change"?: ((...args: any[]) => any) | undefined;
183
186
  }, {
@@ -190,6 +193,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
190
193
  submitForm: (native?: boolean | undefined) => Promise<any>;
191
194
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
192
195
  change: (...args: any[]) => void;
196
+ error: (...args: any[]) => void;
193
197
  "field-input": (...args: any[]) => void;
194
198
  "field-change": (...args: any[]) => void;
195
199
  }, string, {
@@ -246,14 +250,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
246
250
  size: {
247
251
  type: import("vue").PropType<"default" | "small" | "large">;
248
252
  };
253
+ popperClass: {
254
+ type: import("vue").PropType<string>;
255
+ };
249
256
  initValues: {
250
257
  type: import("vue").PropType<Record<string, any>>;
251
258
  required: true;
252
259
  default: () => {};
253
260
  };
254
- popperClass: {
255
- type: import("vue").PropType<string>;
256
- };
257
261
  extendState: {
258
262
  type: import("vue").PropType<(state: FormState) => Record<string, any> | Promise<Record<string, any>>>;
259
263
  };
@@ -287,6 +291,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
287
291
  };
288
292
  }>> & {
289
293
  onChange?: ((...args: any[]) => any) | undefined;
294
+ onError?: ((...args: any[]) => any) | undefined;
290
295
  "onField-input"?: ((...args: any[]) => any) | undefined;
291
296
  "onField-change"?: ((...args: any[]) => any) | undefined;
292
297
  } & import("vue").ShallowUnwrapRef<{
@@ -301,10 +306,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
301
306
  submit: () => Promise<void>;
302
307
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
303
308
  mounted: (...args: any[]) => void;
309
+ "submit-error": (...args: any[]) => void;
310
+ "form-error": (...args: any[]) => void;
304
311
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
305
312
  extendState?: ((state: FormState) => Record<string, any> | Promise<Record<string, any>>) | undefined;
306
313
  }>>> & {
307
314
  onMounted?: ((...args: any[]) => any) | undefined;
315
+ "onSubmit-error"?: ((...args: any[]) => any) | undefined;
316
+ "onForm-error"?: ((...args: any[]) => any) | undefined;
308
317
  }, {}, {}>, Readonly<PropsPanelSlots>>;
309
318
  export default _default;
310
319
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -0,0 +1,16 @@
1
+ import { NodeType } from '@tmagic/schema';
2
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
3
+ type: NodeType.PAGE | NodeType.PAGE_FRAGMENT;
4
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
5
+ type: NodeType.PAGE | NodeType.PAGE_FRAGMENT;
6
+ }>>>, {}, {}>;
7
+ export default _default;
8
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
+ type __VLS_TypePropsToRuntimeProps<T> = {
10
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
11
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
12
+ } : {
13
+ type: import('vue').PropType<T[K]>;
14
+ required: true;
15
+ };
16
+ };
@@ -0,0 +1,28 @@
1
+ import { type MPage, type MPageFragment } from '@tmagic/schema';
2
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
3
+ disabledPageFragment: boolean;
4
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
5
+ disabledPageFragment: boolean;
6
+ }>>>, {}, {}>, {
7
+ "page-bar-title"?(_: {
8
+ page: MPage | MPageFragment;
9
+ }): any;
10
+ "page-bar-popover"?(_: {
11
+ page: MPage | MPageFragment;
12
+ }): any;
13
+ }>;
14
+ export default _default;
15
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
16
+ type __VLS_TypePropsToRuntimeProps<T> = {
17
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
18
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
19
+ } : {
20
+ type: import('vue').PropType<T[K]>;
21
+ required: true;
22
+ };
23
+ };
24
+ type __VLS_WithTemplateSlots<T, S> = T & {
25
+ new (): {
26
+ $slots: S;
27
+ };
28
+ };
@@ -0,0 +1,24 @@
1
+ import { NodeType } from '@tmagic/schema';
2
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
3
+ type: NodeType.PAGE | NodeType.PAGE_FRAGMENT;
4
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
5
+ type: NodeType.PAGE | NodeType.PAGE_FRAGMENT;
6
+ }>>>, {}, {}>, {
7
+ prepend?(_: {}): any;
8
+ default?(_: {}): any;
9
+ }>;
10
+ export default _default;
11
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
12
+ type __VLS_TypePropsToRuntimeProps<T> = {
13
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
14
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
15
+ } : {
16
+ type: import('vue').PropType<T[K]>;
17
+ required: true;
18
+ };
19
+ };
20
+ type __VLS_WithTemplateSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -0,0 +1,20 @@
1
+ import { NodeType } from '@tmagic/schema';
2
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
3
+ modelValue: NodeType.PAGE | NodeType.PAGE_FRAGMENT;
4
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
+ "update:modelValue": (value: NodeType.PAGE | NodeType.PAGE_FRAGMENT) => void;
6
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
7
+ modelValue: NodeType.PAGE | NodeType.PAGE_FRAGMENT;
8
+ }>>> & {
9
+ "onUpdate:modelValue"?: ((value: NodeType.PAGE | NodeType.PAGE_FRAGMENT) => any) | undefined;
10
+ }, {}, {}>;
11
+ export default _default;
12
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
13
+ type __VLS_TypePropsToRuntimeProps<T> = {
14
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
15
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
16
+ } : {
17
+ type: import('vue').PropType<T[K]>;
18
+ required: true;
19
+ };
20
+ };
@@ -2,6 +2,7 @@ import type { MenuButton, MenuComponent, SideBarData } from '../../type';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
3
3
  data: SideBarData;
4
4
  layerContentMenu: (MenuButton | MenuComponent)[];
5
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
5
6
  }>, {
6
7
  data: () => {
7
8
  type: string;
@@ -13,6 +14,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
13
14
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
14
15
  data: SideBarData;
15
16
  layerContentMenu: (MenuButton | MenuComponent)[];
17
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
16
18
  }>, {
17
19
  data: () => {
18
20
  type: string;
@@ -1,15 +1,26 @@
1
1
  import type { MenuButton, MenuComponent } from '../../../type';
2
- declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
2
+ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
3
3
  layerContentMenu: (MenuButton | MenuComponent)[];
4
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
5
+ }>, {
6
+ layerContentMenu: () => never[];
7
+ customContentMenu: (menus: (MenuButton | MenuComponent)[]) => (MenuButton | MenuComponent)[];
4
8
  }>, {
5
9
  show: (e: MouseEvent) => void;
6
10
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
11
  "collapse-all": () => void;
8
- }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
12
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
9
13
  layerContentMenu: (MenuButton | MenuComponent)[];
14
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
15
+ }>, {
16
+ layerContentMenu: () => never[];
17
+ customContentMenu: (menus: (MenuButton | MenuComponent)[]) => (MenuButton | MenuComponent)[];
10
18
  }>>> & {
11
19
  "onCollapse-all"?: (() => any) | undefined;
12
- }, {}, {}>;
20
+ }, {
21
+ layerContentMenu: (MenuButton | MenuComponent)[];
22
+ customContentMenu: (menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[];
23
+ }, {}>;
13
24
  export default _default;
14
25
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
15
26
  type __VLS_TypePropsToRuntimeProps<T> = {
@@ -20,3 +31,11 @@ type __VLS_TypePropsToRuntimeProps<T> = {
20
31
  required: true;
21
32
  };
22
33
  };
34
+ type __VLS_WithDefaults<P, D> = {
35
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
36
+ default: D[K];
37
+ }> : P[K];
38
+ };
39
+ type __VLS_Prettify<T> = {
40
+ [K in keyof T]: T[K];
41
+ } & {};
@@ -1,8 +1,10 @@
1
1
  import { LayerPanelSlots, MenuButton, MenuComponent } from '../../../type';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
3
3
  layerContentMenu: (MenuButton | MenuComponent)[];
4
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
4
5
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
5
6
  layerContentMenu: (MenuButton | MenuComponent)[];
7
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
6
8
  }>>>, {}, {}>, Readonly<LayerPanelSlots>>;
7
9
  export default _default;
8
10
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -5,17 +5,26 @@ export declare const useClick: (services: Services | undefined, isCtrlKeyDown: R
5
5
  menu: Ref<({
6
6
  $: import("vue").ComponentInternalInstance;
7
7
  $data: {};
8
- $props: Partial<{}> & Omit<{
8
+ $props: Partial<{
9
+ layerContentMenu: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[];
10
+ customContentMenu: (menus: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[], type: string) => (import("../../../type").MenuButton | import("../../../type").MenuComponent)[];
11
+ }> & Omit<{
9
12
  readonly layerContentMenu: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[];
13
+ readonly customContentMenu: (menus: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[], type: string) => (import("../../../type").MenuButton | import("../../../type").MenuComponent)[];
10
14
  "onCollapse-all"?: (() => any) | undefined;
11
15
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
12
16
  layerContentMenu: {
13
17
  type: import("vue").PropType<(import("../../../type").MenuButton | import("../../../type").MenuComponent)[]>;
14
18
  required: true;
19
+ default: () => never[];
20
+ };
21
+ customContentMenu: {
22
+ type: import("vue").PropType<(menus: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[], type: string) => (import("../../../type").MenuButton | import("../../../type").MenuComponent)[]>;
23
+ default: (menus: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[]) => (import("../../../type").MenuButton | import("../../../type").MenuComponent)[];
15
24
  };
16
25
  }>> & {
17
26
  "onCollapse-all"?: (() => any) | undefined;
18
- }, never>;
27
+ }, "layerContentMenu" | "customContentMenu">;
19
28
  $attrs: {
20
29
  [x: string]: unknown;
21
30
  };
@@ -33,6 +42,11 @@ export declare const useClick: (services: Services | undefined, isCtrlKeyDown: R
33
42
  layerContentMenu: {
34
43
  type: import("vue").PropType<(import("../../../type").MenuButton | import("../../../type").MenuComponent)[]>;
35
44
  required: true;
45
+ default: () => never[];
46
+ };
47
+ customContentMenu: {
48
+ type: import("vue").PropType<(menus: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[], type: string) => (import("../../../type").MenuButton | import("../../../type").MenuComponent)[]>;
49
+ default: (menus: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[]) => (import("../../../type").MenuButton | import("../../../type").MenuComponent)[];
36
50
  };
37
51
  }>> & {
38
52
  "onCollapse-all"?: (() => any) | undefined;
@@ -40,7 +54,10 @@ export declare const useClick: (services: Services | undefined, isCtrlKeyDown: R
40
54
  show: (e: MouseEvent) => void;
41
55
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
42
56
  "collapse-all": () => void;
43
- }, string, {}, {}, string, {}> & {
57
+ }, string, {
58
+ layerContentMenu: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[];
59
+ customContentMenu: (menus: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[], type: string) => (import("../../../type").MenuButton | import("../../../type").MenuComponent)[];
60
+ }, {}, string, {}> & {
44
61
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
45
62
  created?: ((() => void) | (() => void)[]) | undefined;
46
63
  beforeMount?: ((() => void) | (() => void)[]) | undefined;
@@ -64,6 +81,11 @@ export declare const useClick: (services: Services | undefined, isCtrlKeyDown: R
64
81
  layerContentMenu: {
65
82
  type: import("vue").PropType<(import("../../../type").MenuButton | import("../../../type").MenuComponent)[]>;
66
83
  required: true;
84
+ default: () => never[];
85
+ };
86
+ customContentMenu: {
87
+ type: import("vue").PropType<(menus: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[], type: string) => (import("../../../type").MenuButton | import("../../../type").MenuComponent)[]>;
88
+ default: (menus: (import("../../../type").MenuButton | import("../../../type").MenuComponent)[]) => (import("../../../type").MenuButton | import("../../../type").MenuComponent)[];
67
89
  };
68
90
  }>> & {
69
91
  "onCollapse-all"?: (() => any) | undefined;
@@ -1,6 +1,6 @@
1
1
  import { type Ref } from 'vue';
2
2
  import Tree from '../../../components/Tree.vue';
3
3
  import type { Services } from '../../../type';
4
- export declare const useKeybinding: (services: Services | undefined, contianer: Ref<InstanceType<typeof Tree> | undefined>) => {
4
+ export declare const useKeybinding: (services: Services | undefined, container: Ref<InstanceType<typeof Tree> | undefined>) => {
5
5
  isCtrlKeyDown: Ref<boolean>;
6
6
  };
@@ -1,8 +1,10 @@
1
1
  import type { MenuButton, MenuComponent, WorkspaceSlots } from '../../type';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
3
3
  stageContentMenu: (MenuButton | MenuComponent)[];
4
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
4
5
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
5
6
  stageContentMenu: (MenuButton | MenuComponent)[];
7
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
6
8
  }>>>, {}, {}>, Readonly<WorkspaceSlots>>;
7
9
  export default _default;
8
10
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -1,8 +1,10 @@
1
1
  import { type MenuButton, type MenuComponent } from '../../../type';
2
2
  declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
3
3
  stageContentMenu: (MenuButton | MenuComponent)[];
4
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
4
5
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
5
6
  stageContentMenu: (MenuButton | MenuComponent)[];
7
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
6
8
  }>>>, {}, {}>;
7
9
  export default _default;
8
10
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -2,17 +2,25 @@ import { MenuButton, MenuComponent } from '../../../type';
2
2
  declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
3
3
  isMultiSelect?: boolean | undefined;
4
4
  stageContentMenu: (MenuButton | MenuComponent)[];
5
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
5
6
  }>, {
6
7
  isMultiSelect: boolean;
8
+ stageContentMenu: () => never[];
9
+ customContentMenu: (menus: (MenuButton | MenuComponent)[]) => (MenuButton | MenuComponent)[];
7
10
  }>, {
8
11
  show: (e: MouseEvent) => void;
9
12
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
10
13
  isMultiSelect?: boolean | undefined;
11
14
  stageContentMenu: (MenuButton | MenuComponent)[];
15
+ customContentMenu?: ((menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[]) | undefined;
12
16
  }>, {
13
17
  isMultiSelect: boolean;
18
+ stageContentMenu: () => never[];
19
+ customContentMenu: (menus: (MenuButton | MenuComponent)[]) => (MenuButton | MenuComponent)[];
14
20
  }>>>, {
21
+ customContentMenu: (menus: (MenuButton | MenuComponent)[], type: string) => (MenuButton | MenuComponent)[];
15
22
  isMultiSelect: boolean;
23
+ stageContentMenu: (MenuButton | MenuComponent)[];
16
24
  }, {}>;
17
25
  export default _default;
18
26
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -15,6 +15,7 @@ interface State {
15
15
  type StateKey = keyof State;
16
16
  declare class DataSource extends BaseService {
17
17
  private state;
18
+ constructor();
18
19
  set<K extends StateKey, T extends State[K]>(name: K, value: T): void;
19
20
  get<K extends StateKey>(name: K): State[K];
20
21
  getFormConfig(type?: string): FormConfig;
@@ -33,6 +34,7 @@ declare class DataSource extends BaseService {
33
34
  fields: import("@tmagic/schema").DataSchema[];
34
35
  methods: import("@tmagic/schema").CodeBlockContent[];
35
36
  mocks?: import("@tmagic/schema").MockSchema[] | undefined;
37
+ disabledInitInJsEngine?: string[] | undefined;
36
38
  };
37
39
  update(config: DataSourceSchema): DataSourceSchema;
38
40
  remove(id: string): void;
@@ -14,6 +14,7 @@ declare class Dep extends BaseService {
14
14
  clearTargets(): void;
15
15
  collect(nodes: MNode[], deep?: boolean, type?: DepTargetType): void;
16
16
  clear(nodes?: MNode[]): void;
17
+ clearByType(type: DepTargetType, nodes?: MNode[]): void;
17
18
  hasTarget(id: Id, type?: string): boolean;
18
19
  hasSpecifiedTypeTarget(type?: string): boolean;
19
20
  }
@@ -8,13 +8,13 @@ declare class Editor extends BaseService {
8
8
  constructor();
9
9
  /**
10
10
  * 设置当前指点节点配置
11
- * @param name 'root' | 'page' | 'parent' | 'node' | 'highlightNode' | 'nodes' | 'stage' | 'modifiedNodeIds' | 'pageLength'
11
+ * @param name 'root' | 'page' | 'parent' | 'node' | 'highlightNode' | 'nodes' | 'stage' | 'modifiedNodeIds' | 'pageLength' | 'pageFragmentLength
12
12
  * @param value MNode
13
13
  */
14
14
  set<K extends StoreStateKey, T extends StoreState[K]>(name: K, value: T): void;
15
15
  /**
16
16
  * 获取当前指点节点配置
17
- * @param name 'root' | 'page' | 'parent' | 'node' | 'highlightNode' | 'nodes' | 'stage' | 'modifiedNodeIds' | 'pageLength'
17
+ * @param name 'root' | 'page' | 'parent' | 'node' | 'highlightNode' | 'nodes' | 'stage' | 'modifiedNodeIds' | 'pageLength' | 'pageFragmentLength'
18
18
  * @returns MNode
19
19
  */
20
20
  get<K extends StoreStateKey>(name: K): StoreState[K];
@@ -63,6 +63,7 @@ declare class Editor extends BaseService {
63
63
  * @returns 加入多选的节点配置
64
64
  */
65
65
  multiSelect(ids: Id[]): void;
66
+ selectRoot(): void;
66
67
  doAdd(node: MNode, parent: MContainer): Promise<MNode>;
67
68
  /**
68
69
  * 向指点容器添加组件节点
@@ -1,4 +1,4 @@
1
- import type { MPage } from '@tmagic/schema';
1
+ import type { MPage, MPageFragment } from '@tmagic/schema';
2
2
  import type { StepValue } from '../type';
3
3
  import { UndoRedo } from '../utils/undo-redo';
4
4
  import BaseService from './BaseService';
@@ -11,7 +11,8 @@ declare class History extends BaseService {
11
11
  };
12
12
  constructor();
13
13
  reset(): void;
14
- changePage(page: MPage): void;
14
+ resetPage(): void;
15
+ changePage(page: MPage | MPageFragment): void;
15
16
  resetState(): void;
16
17
  push(state: StepValue): StepValue | null;
17
18
  undo(): StepValue | null;
@@ -5,11 +5,31 @@ declare class Keybinding extends BaseService {
5
5
  private controllers;
6
6
  private bindingList;
7
7
  private commands;
8
+ registerCommand(command: string, handler: (e: KeyboardEvent) => void | Promise<void>): void;
9
+ /**
10
+ * @deprecated
11
+ */
8
12
  registeCommand(command: string, handler: (e: KeyboardEvent) => void | Promise<void>): void;
13
+ unregisterCommand(command: string): void;
14
+ /**
15
+ * @deprecated
16
+ */
9
17
  unregisteCommand(command: string): void;
18
+ registerEl(name: string, el?: HTMLElement): void;
19
+ /**
20
+ * @deprecated
21
+ */
10
22
  registeEl(name: string, el?: HTMLElement): void;
23
+ unregisterEl(name: string): void;
24
+ /**
25
+ * @deprecated
26
+ */
11
27
  unregisteEl(name: string): void;
12
- registe(maps: KeyBindingItem[]): void;
28
+ register(maps: KeyBindingItem[]): void;
29
+ /**
30
+ * @deprecated
31
+ */
32
+ registe(map: KeyBindingItem[]): void;
13
33
  reset(): void;
14
34
  destroy(): void;
15
35
  private bind;
package/types/type.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import type { Component } from 'vue';
2
2
  import type { ColumnConfig, FilterFunction, FormConfig, FormItem } from '@tmagic/form';
3
- import type { CodeBlockContent, CodeBlockDSL, Id, MApp, MContainer, MNode, MPage } from '@tmagic/schema';
3
+ import type { CodeBlockContent, CodeBlockDSL, Id, MApp, MContainer, MNode, MPage, MPageFragment } from '@tmagic/schema';
4
4
  import type StageCore from '@tmagic/stage';
5
- import type { ContainerHighlightType, CustomizeMoveableOptionsCallbackConfig, MoveableOptions, RenderType, UpdateDragEl } from '@tmagic/stage';
5
+ import type { ContainerHighlightType, CustomizeMoveableOptionsCallbackConfig, GuidesOptions, MoveableOptions, RenderType, UpdateDragEl } from '@tmagic/stage';
6
6
  import type { CodeBlockService } from './services/codeBlock';
7
7
  import type { ComponentListService } from './services/componentList';
8
8
  import type { DataSourceService } from './services/dataSource';
@@ -26,17 +26,18 @@ export interface FrameworkSlots {
26
26
  workspace(props: {}): any;
27
27
  'props-panel'(props: {}): any;
28
28
  'footer'(props: {}): any;
29
- }
30
- export interface WorkspaceSlots {
31
- stage(props: {}): any;
32
- 'workspace-content'(props: {}): any;
29
+ 'page-bar'(props: {}): any;
33
30
  'page-bar-title'(props: {
34
- page: MPage;
31
+ page: MPage | MPageFragment;
35
32
  }): any;
36
33
  'page-bar-popover'(props: {
37
- page: MPage;
34
+ page: MPage | MPageFragment;
38
35
  }): any;
39
36
  }
37
+ export interface WorkspaceSlots {
38
+ stage(props: {}): any;
39
+ 'workspace-content'(props: {}): any;
40
+ }
40
41
  export interface ComponentListPanelSlots {
41
42
  'component-list-panel-header'(props: {}): any;
42
43
  'component-list-item'(props: {
@@ -108,17 +109,22 @@ export interface StageOptions {
108
109
  isContainer: (el: HTMLElement) => boolean | Promise<boolean>;
109
110
  updateDragEl: UpdateDragEl;
110
111
  renderType: RenderType;
112
+ guidesOptions: Partial<GuidesOptions>;
113
+ disabledMultiSelect?: boolean;
111
114
  }
112
115
  export interface StoreState {
113
116
  root: MApp | null;
114
- page: MPage | null;
117
+ page: MPage | MPageFragment | null;
115
118
  parent: MContainer | null;
116
119
  node: MNode | null;
117
120
  highlightNode: MNode | null;
118
121
  nodes: MNode[];
119
122
  stage: StageCore | null;
123
+ stageLoading: boolean;
120
124
  modifiedNodeIds: Map<Id, Id>;
121
125
  pageLength: number;
126
+ pageFragmentLength: number;
127
+ disabledMultiSelect: boolean;
122
128
  }
123
129
  export type StoreStateKey = keyof StoreState;
124
130
  export interface PropsState {
@@ -185,7 +191,7 @@ export interface UiState {
185
191
  export interface EditorNodeInfo {
186
192
  node: MNode | null;
187
193
  parent: MContainer | null;
188
- page: MPage | null;
194
+ page: MPage | MPageFragment | null;
189
195
  }
190
196
  export interface AddMNode {
191
197
  type: string;
@@ -407,7 +413,7 @@ export interface CodeParamStatement {
407
413
  [key: string]: any;
408
414
  }
409
415
  export interface StepValue {
410
- data: MPage;
416
+ data: MPage | MPageFragment;
411
417
  modifiedNodeIds: Map<Id, Id>;
412
418
  nodeId: Id;
413
419
  }
@@ -485,7 +491,7 @@ export interface KeyBindingCacheItem {
485
491
  command: KeyBindingCommand | string;
486
492
  keybinding?: string | string[];
487
493
  eventType: 'keyup' | 'keydown';
488
- binded: boolean;
494
+ bound: boolean;
489
495
  }
490
496
  export interface CodeSelectColConfig {
491
497
  type: 'code-select-col';
@@ -495,6 +501,14 @@ export interface CodeSelectColConfig {
495
501
  disabled?: boolean | FilterFunction;
496
502
  display?: boolean | FilterFunction;
497
503
  }
504
+ export interface PageFragmentSelectConfig {
505
+ type: 'page-fragment-select';
506
+ name: string;
507
+ text: string;
508
+ labelWidth?: number | string;
509
+ disabled?: boolean | FilterFunction;
510
+ display?: boolean | FilterFunction;
511
+ }
498
512
  export interface DataSourceMethodSelectConfig {
499
513
  type: 'data-source-method-select';
500
514
  name: string;