@tmagic/editor 1.3.6 → 1.3.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.
- package/LICENSE +5432 -0
- package/dist/style.css +15 -11
- package/dist/tmagic-editor.js +1312 -949
- package/dist/tmagic-editor.js.map +1 -1
- package/dist/tmagic-editor.umd.cjs +1334 -969
- package/dist/tmagic-editor.umd.cjs.map +1 -1
- package/package.json +17 -17
- package/src/Editor.vue +10 -7
- package/src/components/CodeBlockEditor.vue +2 -2
- package/src/components/ContentMenu.vue +5 -5
- package/src/components/ScrollBar.vue +2 -2
- package/src/components/ScrollViewer.vue +2 -2
- package/src/components/SplitView.vue +2 -2
- package/src/components/TreeNode.vue +3 -3
- package/src/editorProps.ts +14 -4
- package/src/fields/PageFragmentSelect.vue +55 -0
- package/src/hooks/use-getso.ts +2 -2
- package/src/hooks/use-stage.ts +18 -1
- package/src/index.ts +3 -0
- package/src/initService.ts +15 -5
- package/src/layouts/AddPageBox.vue +16 -4
- package/src/layouts/CodeEditor.vue +2 -2
- package/src/layouts/Framework.vue +17 -3
- package/src/layouts/PropsPanel.vue +2 -2
- package/src/layouts/page-bar/AddButton.vue +48 -0
- package/src/layouts/page-bar/PageBar.vue +158 -0
- package/src/layouts/{workspace → page-bar}/PageBarScrollContainer.vue +61 -35
- package/src/layouts/page-bar/SwitchTypeButton.vue +45 -0
- package/src/layouts/sidebar/Sidebar.vue +2 -0
- package/src/layouts/sidebar/layer/LayerMenu.vue +39 -27
- package/src/layouts/sidebar/layer/LayerPanel.vue +7 -1
- package/src/layouts/sidebar/layer/use-click.ts +5 -3
- package/src/layouts/sidebar/layer/use-keybinding.ts +8 -8
- package/src/layouts/sidebar/layer/use-node-status.ts +3 -3
- package/src/layouts/workspace/Workspace.vue +6 -7
- package/src/layouts/workspace/viewer/NodeListMenu.vue +2 -2
- package/src/layouts/workspace/viewer/Stage.vue +12 -5
- package/src/layouts/workspace/viewer/ViewerMenu.vue +93 -80
- package/src/services/editor.ts +65 -34
- package/src/services/history.ts +6 -2
- package/src/services/keybinding.ts +48 -13
- package/src/theme/code-block.scss +0 -16
- package/src/theme/page-bar.scss +18 -1
- package/src/type.ts +22 -7
- package/src/utils/content-menu.ts +2 -2
- package/src/utils/editor.ts +22 -15
- package/src/utils/operator.ts +4 -4
- package/types/components/ToolButton.vue.d.ts +2 -2
- package/types/editorProps.d.ts +11 -2
- package/types/fields/PageFragmentSelect.vue.d.ts +31 -0
- package/types/index.d.ts +1 -0
- package/types/layouts/AddPageBox.vue.d.ts +14 -1
- package/types/layouts/Framework.vue.d.ts +14 -1
- package/types/layouts/PropsPanel.vue.d.ts +9 -9
- package/types/layouts/page-bar/AddButton.vue.d.ts +16 -0
- package/types/layouts/page-bar/PageBar.vue.d.ts +28 -0
- package/types/layouts/page-bar/PageBarScrollContainer.vue.d.ts +24 -0
- package/types/layouts/page-bar/SwitchTypeButton.vue.d.ts +20 -0
- package/types/layouts/sidebar/Sidebar.vue.d.ts +2 -0
- package/types/layouts/sidebar/layer/LayerMenu.vue.d.ts +22 -3
- package/types/layouts/sidebar/layer/LayerPanel.vue.d.ts +2 -0
- package/types/layouts/sidebar/layer/use-click.d.ts +25 -3
- package/types/layouts/sidebar/layer/use-keybinding.d.ts +1 -1
- package/types/layouts/workspace/Workspace.vue.d.ts +2 -0
- package/types/layouts/workspace/viewer/Stage.vue.d.ts +2 -0
- package/types/layouts/workspace/viewer/ViewerMenu.vue.d.ts +8 -0
- package/types/services/dataSource.d.ts +1 -0
- package/types/services/editor.d.ts +3 -2
- package/types/services/history.d.ts +3 -2
- package/types/services/keybinding.d.ts +21 -1
- package/types/type.d.ts +25 -12
- package/types/utils/editor.d.ts +9 -7
- package/src/layouts/workspace/PageBar.vue +0 -87
- package/types/layouts/workspace/PageBar.vue.d.ts +0 -15
- package/types/layouts/workspace/PageBarScrollContainer.vue.d.ts +0 -9
|
@@ -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<{
|
|
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
|
-
},
|
|
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, {
|
|
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,
|
|
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;
|
|
@@ -33,6 +33,7 @@ declare class DataSource extends BaseService {
|
|
|
33
33
|
fields: import("@tmagic/schema").DataSchema[];
|
|
34
34
|
methods: import("@tmagic/schema").CodeBlockContent[];
|
|
35
35
|
mocks?: import("@tmagic/schema").MockSchema[] | undefined;
|
|
36
|
+
disabledInitInJsEngine?: string[] | undefined;
|
|
36
37
|
};
|
|
37
38
|
update(config: DataSourceSchema): DataSourceSchema;
|
|
38
39
|
remove(id: string): void;
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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,17 @@ 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;
|
|
33
29
|
'page-bar-title'(props: {
|
|
34
|
-
page: MPage;
|
|
30
|
+
page: MPage | MPageFragment;
|
|
35
31
|
}): any;
|
|
36
32
|
'page-bar-popover'(props: {
|
|
37
|
-
page: MPage;
|
|
33
|
+
page: MPage | MPageFragment;
|
|
38
34
|
}): any;
|
|
39
35
|
}
|
|
36
|
+
export interface WorkspaceSlots {
|
|
37
|
+
stage(props: {}): any;
|
|
38
|
+
'workspace-content'(props: {}): any;
|
|
39
|
+
}
|
|
40
40
|
export interface ComponentListPanelSlots {
|
|
41
41
|
'component-list-panel-header'(props: {}): any;
|
|
42
42
|
'component-list-item'(props: {
|
|
@@ -108,17 +108,22 @@ export interface StageOptions {
|
|
|
108
108
|
isContainer: (el: HTMLElement) => boolean | Promise<boolean>;
|
|
109
109
|
updateDragEl: UpdateDragEl;
|
|
110
110
|
renderType: RenderType;
|
|
111
|
+
guidesOptions: Partial<GuidesOptions>;
|
|
112
|
+
disabledMultiSelect?: boolean;
|
|
111
113
|
}
|
|
112
114
|
export interface StoreState {
|
|
113
115
|
root: MApp | null;
|
|
114
|
-
page: MPage | null;
|
|
116
|
+
page: MPage | MPageFragment | null;
|
|
115
117
|
parent: MContainer | null;
|
|
116
118
|
node: MNode | null;
|
|
117
119
|
highlightNode: MNode | null;
|
|
118
120
|
nodes: MNode[];
|
|
119
121
|
stage: StageCore | null;
|
|
122
|
+
stageLoading: boolean;
|
|
120
123
|
modifiedNodeIds: Map<Id, Id>;
|
|
121
124
|
pageLength: number;
|
|
125
|
+
pageFragmentLength: number;
|
|
126
|
+
disabledMultiSelect: boolean;
|
|
122
127
|
}
|
|
123
128
|
export type StoreStateKey = keyof StoreState;
|
|
124
129
|
export interface PropsState {
|
|
@@ -185,7 +190,7 @@ export interface UiState {
|
|
|
185
190
|
export interface EditorNodeInfo {
|
|
186
191
|
node: MNode | null;
|
|
187
192
|
parent: MContainer | null;
|
|
188
|
-
page: MPage | null;
|
|
193
|
+
page: MPage | MPageFragment | null;
|
|
189
194
|
}
|
|
190
195
|
export interface AddMNode {
|
|
191
196
|
type: string;
|
|
@@ -407,7 +412,7 @@ export interface CodeParamStatement {
|
|
|
407
412
|
[key: string]: any;
|
|
408
413
|
}
|
|
409
414
|
export interface StepValue {
|
|
410
|
-
data: MPage;
|
|
415
|
+
data: MPage | MPageFragment;
|
|
411
416
|
modifiedNodeIds: Map<Id, Id>;
|
|
412
417
|
nodeId: Id;
|
|
413
418
|
}
|
|
@@ -485,7 +490,7 @@ export interface KeyBindingCacheItem {
|
|
|
485
490
|
command: KeyBindingCommand | string;
|
|
486
491
|
keybinding?: string | string[];
|
|
487
492
|
eventType: 'keyup' | 'keydown';
|
|
488
|
-
|
|
493
|
+
bound: boolean;
|
|
489
494
|
}
|
|
490
495
|
export interface CodeSelectColConfig {
|
|
491
496
|
type: 'code-select-col';
|
|
@@ -495,6 +500,14 @@ export interface CodeSelectColConfig {
|
|
|
495
500
|
disabled?: boolean | FilterFunction;
|
|
496
501
|
display?: boolean | FilterFunction;
|
|
497
502
|
}
|
|
503
|
+
export interface PageFragmentSelectConfig {
|
|
504
|
+
type: 'page-fragment-select';
|
|
505
|
+
name: string;
|
|
506
|
+
text: string;
|
|
507
|
+
labelWidth?: number | string;
|
|
508
|
+
disabled?: boolean | FilterFunction;
|
|
509
|
+
display?: boolean | FilterFunction;
|
|
510
|
+
}
|
|
498
511
|
export interface DataSourceMethodSelectConfig {
|
|
499
512
|
type: 'data-source-method-select';
|
|
500
513
|
name: string;
|
package/types/utils/editor.d.ts
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
|
-
import type { Id, MApp, MContainer, MNode, MPage } from '@tmagic/schema';
|
|
1
|
+
import type { Id, MApp, MContainer, MNode, MPage, MPageFragment } from '@tmagic/schema';
|
|
2
|
+
import { NodeType } from '@tmagic/schema';
|
|
2
3
|
import type StageCore from '@tmagic/stage';
|
|
3
4
|
import { Layout } from '../type';
|
|
4
5
|
export declare const COPY_STORAGE_KEY = "$MagicEditorCopyData";
|
|
5
6
|
/**
|
|
6
7
|
* 获取所有页面配置
|
|
7
|
-
* @param
|
|
8
|
+
* @param root DSL跟节点
|
|
8
9
|
* @returns 所有页面配置
|
|
9
10
|
*/
|
|
10
|
-
export declare const getPageList: (
|
|
11
|
+
export declare const getPageList: (root?: MApp | null) => MPage[];
|
|
12
|
+
export declare const getPageFragmentList: (root?: MApp | null) => MPageFragment[];
|
|
11
13
|
/**
|
|
12
14
|
* 获取所有页面名称
|
|
13
15
|
* @param pages 所有页面配置
|
|
14
16
|
* @returns 所有页面名称
|
|
15
17
|
*/
|
|
16
|
-
export declare const getPageNameList: (pages: MPage[]) => string[];
|
|
18
|
+
export declare const getPageNameList: (pages: (MPage | MPageFragment)[]) => string[];
|
|
17
19
|
/**
|
|
18
20
|
* 新增页面时,生成页面名称
|
|
19
21
|
* @param {Object} pageNameList 所有页面名称
|
|
20
22
|
* @returns {string}
|
|
21
23
|
*/
|
|
22
|
-
export declare const generatePageName: (pageNameList: string[]) => string;
|
|
24
|
+
export declare const generatePageName: (pageNameList: string[], type: NodeType.PAGE | NodeType.PAGE_FRAGMENT) => string;
|
|
23
25
|
/**
|
|
24
26
|
* 新增页面时,生成页面名称
|
|
25
27
|
* @param {Object} app 所有页面配置
|
|
26
28
|
* @returns {string}
|
|
27
29
|
*/
|
|
28
|
-
export declare const generatePageNameByApp: (app: MApp) => string;
|
|
30
|
+
export declare const generatePageNameByApp: (app: MApp, type: NodeType.PAGE | NodeType.PAGE_FRAGMENT) => string;
|
|
29
31
|
/**
|
|
30
32
|
* @param {Object} node
|
|
31
33
|
* @returns {boolean}
|
|
@@ -34,7 +36,7 @@ export declare const isFixed: (node: MNode) => boolean;
|
|
|
34
36
|
export declare const getNodeIndex: (id: Id, parent: MContainer | MApp) => number;
|
|
35
37
|
export declare const getRelativeStyle: (style?: Record<string, any>) => Record<string, any>;
|
|
36
38
|
export declare const getInitPositionStyle: (style: Record<string, any> | undefined, layout: Layout) => Record<string, any>;
|
|
37
|
-
export declare const
|
|
39
|
+
export declare const setChildrenLayout: (node: MContainer, layout: Layout) => MContainer;
|
|
38
40
|
export declare const setLayout: (node: MNode, layout: Layout) => import("@tmagic/schema").MComponent | undefined;
|
|
39
41
|
export declare const change2Fixed: (node: MNode, root: MApp) => {
|
|
40
42
|
left: number;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<PageBarScrollContainer>
|
|
3
|
-
<div
|
|
4
|
-
v-for="item in (root && root.items) || []"
|
|
5
|
-
class="m-editor-page-bar-item"
|
|
6
|
-
:key="item.key"
|
|
7
|
-
:class="{ active: page?.id === item.id }"
|
|
8
|
-
@click="switchPage(item)"
|
|
9
|
-
>
|
|
10
|
-
<div class="m-editor-page-bar-title">
|
|
11
|
-
<slot name="page-bar-title" :page="item">
|
|
12
|
-
<TMagicTooltip effect="dark" placement="top-start" :content="item.name">
|
|
13
|
-
<span>{{ item.name || item.id }}</span>
|
|
14
|
-
</TMagicTooltip>
|
|
15
|
-
</slot>
|
|
16
|
-
</div>
|
|
17
|
-
|
|
18
|
-
<TMagicPopover popper-class="page-bar-popover" placement="top" :width="160" trigger="hover">
|
|
19
|
-
<div>
|
|
20
|
-
<slot name="page-bar-popover" :page="item">
|
|
21
|
-
<ToolButton
|
|
22
|
-
:data="{
|
|
23
|
-
type: 'button',
|
|
24
|
-
text: '复制',
|
|
25
|
-
icon: DocumentCopy,
|
|
26
|
-
handler: () => copy(item),
|
|
27
|
-
}"
|
|
28
|
-
></ToolButton>
|
|
29
|
-
<ToolButton
|
|
30
|
-
:data="{
|
|
31
|
-
type: 'button',
|
|
32
|
-
text: '删除',
|
|
33
|
-
icon: Delete,
|
|
34
|
-
handler: () => remove(item),
|
|
35
|
-
}"
|
|
36
|
-
></ToolButton>
|
|
37
|
-
</slot>
|
|
38
|
-
</div>
|
|
39
|
-
<template #reference>
|
|
40
|
-
<TMagicIcon class="m-editor-page-bar-menu-icon">
|
|
41
|
-
<CaretBottom></CaretBottom>
|
|
42
|
-
</TMagicIcon>
|
|
43
|
-
</template>
|
|
44
|
-
</TMagicPopover>
|
|
45
|
-
</div>
|
|
46
|
-
</PageBarScrollContainer>
|
|
47
|
-
</template>
|
|
48
|
-
|
|
49
|
-
<script lang="ts" setup>
|
|
50
|
-
import { computed, inject } from 'vue';
|
|
51
|
-
import { CaretBottom, Delete, DocumentCopy } from '@element-plus/icons-vue';
|
|
52
|
-
|
|
53
|
-
import { TMagicIcon, TMagicPopover, TMagicTooltip } from '@tmagic/design';
|
|
54
|
-
import type { MPage } from '@tmagic/schema';
|
|
55
|
-
|
|
56
|
-
import ToolButton from '@editor/components/ToolButton.vue';
|
|
57
|
-
import type { Services } from '@editor/type';
|
|
58
|
-
|
|
59
|
-
import PageBarScrollContainer from './PageBarScrollContainer.vue';
|
|
60
|
-
|
|
61
|
-
defineOptions({
|
|
62
|
-
name: 'MEditorPageBar',
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
const services = inject<Services>('services');
|
|
66
|
-
const editorService = services?.editorService;
|
|
67
|
-
|
|
68
|
-
const root = computed(() => editorService?.get('root'));
|
|
69
|
-
|
|
70
|
-
const page = computed(() => editorService?.get('page'));
|
|
71
|
-
|
|
72
|
-
const switchPage = (page: MPage) => {
|
|
73
|
-
editorService?.select(page);
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
const copy = (node: MPage) => {
|
|
77
|
-
node && editorService?.copy(node);
|
|
78
|
-
editorService?.paste({
|
|
79
|
-
left: 0,
|
|
80
|
-
top: 0,
|
|
81
|
-
});
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const remove = (node: MPage) => {
|
|
85
|
-
editorService?.remove(node);
|
|
86
|
-
};
|
|
87
|
-
</script>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { MPage } from '@tmagic/schema';
|
|
2
|
-
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
|
|
3
|
-
"page-bar-title"?(_: {
|
|
4
|
-
page: MPage;
|
|
5
|
-
}): any;
|
|
6
|
-
"page-bar-popover"?(_: {
|
|
7
|
-
page: MPage;
|
|
8
|
-
}): any;
|
|
9
|
-
}>;
|
|
10
|
-
export default _default;
|
|
11
|
-
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
12
|
-
new (): {
|
|
13
|
-
$slots: S;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
|
|
2
|
-
default?(_: {}): any;
|
|
3
|
-
}>;
|
|
4
|
-
export default _default;
|
|
5
|
-
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
6
|
-
new (): {
|
|
7
|
-
$slots: S;
|
|
8
|
-
};
|
|
9
|
-
};
|