@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.
Files changed (75) hide show
  1. package/LICENSE +5432 -0
  2. package/dist/style.css +15 -11
  3. package/dist/tmagic-editor.js +1312 -949
  4. package/dist/tmagic-editor.js.map +1 -1
  5. package/dist/tmagic-editor.umd.cjs +1334 -969
  6. package/dist/tmagic-editor.umd.cjs.map +1 -1
  7. package/package.json +17 -17
  8. package/src/Editor.vue +10 -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/TreeNode.vue +3 -3
  15. package/src/editorProps.ts +14 -4
  16. package/src/fields/PageFragmentSelect.vue +55 -0
  17. package/src/hooks/use-getso.ts +2 -2
  18. package/src/hooks/use-stage.ts +18 -1
  19. package/src/index.ts +3 -0
  20. package/src/initService.ts +15 -5
  21. package/src/layouts/AddPageBox.vue +16 -4
  22. package/src/layouts/CodeEditor.vue +2 -2
  23. package/src/layouts/Framework.vue +17 -3
  24. package/src/layouts/PropsPanel.vue +2 -2
  25. package/src/layouts/page-bar/AddButton.vue +48 -0
  26. package/src/layouts/page-bar/PageBar.vue +158 -0
  27. package/src/layouts/{workspace → page-bar}/PageBarScrollContainer.vue +61 -35
  28. package/src/layouts/page-bar/SwitchTypeButton.vue +45 -0
  29. package/src/layouts/sidebar/Sidebar.vue +2 -0
  30. package/src/layouts/sidebar/layer/LayerMenu.vue +39 -27
  31. package/src/layouts/sidebar/layer/LayerPanel.vue +7 -1
  32. package/src/layouts/sidebar/layer/use-click.ts +5 -3
  33. package/src/layouts/sidebar/layer/use-keybinding.ts +8 -8
  34. package/src/layouts/sidebar/layer/use-node-status.ts +3 -3
  35. package/src/layouts/workspace/Workspace.vue +6 -7
  36. package/src/layouts/workspace/viewer/NodeListMenu.vue +2 -2
  37. package/src/layouts/workspace/viewer/Stage.vue +12 -5
  38. package/src/layouts/workspace/viewer/ViewerMenu.vue +93 -80
  39. package/src/services/editor.ts +65 -34
  40. package/src/services/history.ts +6 -2
  41. package/src/services/keybinding.ts +48 -13
  42. package/src/theme/code-block.scss +0 -16
  43. package/src/theme/page-bar.scss +18 -1
  44. package/src/type.ts +22 -7
  45. package/src/utils/content-menu.ts +2 -2
  46. package/src/utils/editor.ts +22 -15
  47. package/src/utils/operator.ts +4 -4
  48. package/types/components/ToolButton.vue.d.ts +2 -2
  49. package/types/editorProps.d.ts +11 -2
  50. package/types/fields/PageFragmentSelect.vue.d.ts +31 -0
  51. package/types/index.d.ts +1 -0
  52. package/types/layouts/AddPageBox.vue.d.ts +14 -1
  53. package/types/layouts/Framework.vue.d.ts +14 -1
  54. package/types/layouts/PropsPanel.vue.d.ts +9 -9
  55. package/types/layouts/page-bar/AddButton.vue.d.ts +16 -0
  56. package/types/layouts/page-bar/PageBar.vue.d.ts +28 -0
  57. package/types/layouts/page-bar/PageBarScrollContainer.vue.d.ts +24 -0
  58. package/types/layouts/page-bar/SwitchTypeButton.vue.d.ts +20 -0
  59. package/types/layouts/sidebar/Sidebar.vue.d.ts +2 -0
  60. package/types/layouts/sidebar/layer/LayerMenu.vue.d.ts +22 -3
  61. package/types/layouts/sidebar/layer/LayerPanel.vue.d.ts +2 -0
  62. package/types/layouts/sidebar/layer/use-click.d.ts +25 -3
  63. package/types/layouts/sidebar/layer/use-keybinding.d.ts +1 -1
  64. package/types/layouts/workspace/Workspace.vue.d.ts +2 -0
  65. package/types/layouts/workspace/viewer/Stage.vue.d.ts +2 -0
  66. package/types/layouts/workspace/viewer/ViewerMenu.vue.d.ts +8 -0
  67. package/types/services/dataSource.d.ts +1 -0
  68. package/types/services/editor.d.ts +3 -2
  69. package/types/services/history.d.ts +3 -2
  70. package/types/services/keybinding.d.ts +21 -1
  71. package/types/type.d.ts +25 -12
  72. package/types/utils/editor.d.ts +9 -7
  73. package/src/layouts/workspace/PageBar.vue +0 -87
  74. package/types/layouts/workspace/PageBar.vue.d.ts +0 -15
  75. 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<{}> & 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;
@@ -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
- 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,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
- binded: boolean;
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;
@@ -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 app DSL跟节点
8
+ * @param root DSL跟节点
8
9
  * @returns 所有页面配置
9
10
  */
10
- export declare const getPageList: (app: MApp) => MPage[];
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 setChilrenLayout: (node: MContainer, layout: Layout) => MContainer;
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
- };