@sepveneto/dnde 0.7.5 → 0.8.1

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 (33) hide show
  1. package/dist/{lib/App.vue.d.ts → App.vue.d.ts} +21 -0
  2. package/dist/{lib/Editor.vue.d.ts → Editor.vue.d.ts} +25 -1
  3. package/dist/agents/context.d.ts +14 -0
  4. package/dist/agents/loader.d.ts +36 -0
  5. package/dist/agents/types.d.ts +44 -0
  6. package/dist/{lib/components → components}/NodePlugin.vue.d.ts +4 -1
  7. package/dist/composables/dragCore.d.ts +69 -0
  8. package/dist/composables/useNodeListDrag.d.ts +15 -0
  9. package/dist/editor.js +63027 -65604
  10. package/dist/main.d.ts +33 -0
  11. package/dist/{lib/props.d.ts → props.d.ts} +9 -0
  12. package/dist/{lib/store → store}/editor.d.ts +4 -1
  13. package/dist/{lib/utils.d.ts → utils.d.ts} +9 -0
  14. package/package.json +7 -4
  15. package/dist/lib/main.d.ts +0 -5
  16. /package/dist/{lib/assets → assets}/container.vue.d.ts +0 -0
  17. /package/dist/{lib/assets → assets}/leftArrow.vue.d.ts +0 -0
  18. /package/dist/{lib/assets → assets}/puzzle.vue.d.ts +0 -0
  19. /package/dist/{lib/assets → assets}/widget.vue.d.ts +0 -0
  20. /package/dist/{lib/components → components}/ColorPicker.vue.d.ts +0 -0
  21. /package/dist/{lib/components → components}/ConfigForm.vue.d.ts +0 -0
  22. /package/dist/{lib/components → components}/ConfigItem.vue.d.ts +0 -0
  23. /package/dist/{lib/components → components}/ConfigRender.vue.d.ts +0 -0
  24. /package/dist/{lib/components → components}/NodeContainer.vue.d.ts +0 -0
  25. /package/dist/{lib/components → components}/NodeOperate.vue.d.ts +0 -0
  26. /package/dist/{lib/components → components}/NodeWrap.vue.d.ts +0 -0
  27. /package/dist/{lib/components → components}/StyleNumber.vue.d.ts +0 -0
  28. /package/dist/{lib/layout → layout}/configPanel.vue.d.ts +0 -0
  29. /package/dist/{lib/layout → layout}/treePanel.item.vue.d.ts +0 -0
  30. /package/dist/{lib/layout → layout}/treePanel.vue.d.ts +0 -0
  31. /package/dist/{lib/layout → layout}/widgetsMenu.vue.d.ts +0 -0
  32. /package/dist/{lib/store → store}/app.d.ts +0 -0
  33. /package/dist/{lib/store → store}/index.d.ts +0 -0
package/dist/main.d.ts ADDED
@@ -0,0 +1,33 @@
1
+ import Main from './Editor.vue';
2
+ import type { AgentImporter } from './agents/loader.js';
3
+ import { injectPopperStyles } from './utils.js';
4
+ export type EditorInstance = InstanceType<typeof Main>;
5
+ export { injectPopperStyles };
6
+ export type { AgentImporter } from './agents/loader.js';
7
+ export interface RegisterOptions {
8
+ /**
9
+ * 组件视图的远程地址
10
+ */
11
+ remoteUrl: string;
12
+ /**
13
+ * 是否把 element-plus 主题再挂一份到宿主页面的 `document.head`(默认开启)。
14
+ *
15
+ * 弹层(`ElDialog` / `ElSelect` 下拉 / `ElTooltip` 等)会 teleport 到 `document.body`,
16
+ * 不在 shadow DOM 内,拿不到编辑器内部的样式,需要这份 light DOM 的样式兜底。
17
+ * 关闭后需要宿主自行保证这些弹层的样式。
18
+ */
19
+ injectGlobalStyle?: boolean;
20
+ /**
21
+ * agent(装修助手)的加载方式,可选。
22
+ *
23
+ * agent 是独立的 web component,编辑器不强制依赖它:不注入时编辑器照常工作,
24
+ * 只有业务侧开启了 `<mpd-editor agent>` 时才会在控制台提示安装。需要该能力时在这里
25
+ * 显式注入,交给宿主打包器解析依赖:
26
+ *
27
+ * ```ts
28
+ * register({ remoteUrl, agent: () => import('@sepveneto/dnde-agent/element') })
29
+ * ```
30
+ */
31
+ agent?: AgentImporter;
32
+ }
33
+ export declare function register(options: RegisterOptions): Promise<boolean>;
@@ -13,4 +13,13 @@ export declare const editorProps: {
13
13
  readonly type: PropType<Record<string, any>>;
14
14
  readonly default: () => {};
15
15
  };
16
+ readonly agent: BooleanConstructor;
17
+ readonly capabilities: {
18
+ readonly type: PropType<any[]>;
19
+ readonly default: () => never[];
20
+ };
21
+ readonly workflows: {
22
+ readonly type: PropType<any[]>;
23
+ readonly default: () => never[];
24
+ };
16
25
  };
@@ -42,6 +42,7 @@ export declare const useEditor: import("pinia").StoreDefinition<"editor", Pick<{
42
42
  selectedNodeOperates: import("vue").ComputedRef<HelperAction[]>;
43
43
  addNode: (node: Node, pNode?: Node, manual?: boolean) => void;
44
44
  delNode: (wid: string) => void;
45
+ setRoot: (node: Node) => void;
45
46
  isPreview: import("vue").Ref<boolean, boolean>;
46
47
  dragging: import("vue").Ref<Node | null, Node | null>;
47
48
  plugins: {
@@ -66,6 +67,7 @@ export declare const useEditor: import("pinia").StoreDefinition<"editor", Pick<{
66
67
  selectedNodeOperates: import("vue").ComputedRef<HelperAction[]>;
67
68
  addNode: (node: Node, pNode?: Node, manual?: boolean) => void;
68
69
  delNode: (wid: string) => void;
70
+ setRoot: (node: Node) => void;
69
71
  isPreview: import("vue").Ref<boolean, boolean>;
70
72
  dragging: import("vue").Ref<Node | null, Node | null>;
71
73
  plugins: {
@@ -90,6 +92,7 @@ export declare const useEditor: import("pinia").StoreDefinition<"editor", Pick<{
90
92
  selectedNodeOperates: import("vue").ComputedRef<HelperAction[]>;
91
93
  addNode: (node: Node, pNode?: Node, manual?: boolean) => void;
92
94
  delNode: (wid: string) => void;
95
+ setRoot: (node: Node) => void;
93
96
  isPreview: import("vue").Ref<boolean, boolean>;
94
97
  dragging: import("vue").Ref<Node | null, Node | null>;
95
98
  plugins: {
@@ -101,5 +104,5 @@ export declare const useEditor: import("pinia").StoreDefinition<"editor", Pick<{
101
104
  getData: () => Record<string, any>;
102
105
  setData: (data: any) => void;
103
106
  setSchema: (schema: IWidget["schema"]) => void;
104
- }, "selectNode" | "addNode" | "delNode" | "getData" | "setData" | "setSchema">>;
107
+ }, "selectNode" | "addNode" | "delNode" | "setRoot" | "getData" | "setData" | "setSchema">>;
105
108
  export {};
@@ -2,6 +2,15 @@ import type { ModuleFederation } from '@module-federation/enhanced/runtime';
2
2
  import type { AppContext, CSSProperties, InjectionKey, Ref, VNode } from 'vue';
3
3
  import debug from 'debug';
4
4
  import * as Vue from 'vue';
5
+ /**
6
+ * 把 element-plus 主题(mpd 命名空间)再投放到 light DOM。
7
+ *
8
+ * 弹层(ElDialog / ElSelect / ElTooltip / ElPopover ...)默认 teleport 到 document.body,
9
+ * 不在 shadow DOM 里,拿不到编辑器注入到 shadow root 的样式;而它们的类名带的是编辑器自己的
10
+ * `mpd-` 前缀,宿主页面里的 element-plus 全局样式(`el-`)也匹配不到。
11
+ * 这里补一份同样命名空间的主题样式放在 document.head,专门兜住这部分弹层。
12
+ */
13
+ export declare function injectPopperStyles(): void;
5
14
  export declare function initMf(url: string): ModuleFederation;
6
15
  export declare function loadFromRemote(scope: string, module: string): new () => Vue.ComponentPublicInstance;
7
16
  type RemovePopperFn = (() => void) & {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sepveneto/dnde",
3
3
  "type": "module",
4
- "version": "0.7.5",
4
+ "version": "0.8.1",
5
5
  "description": "",
6
6
  "author": "",
7
7
  "license": "GPL",
@@ -19,13 +19,13 @@
19
19
  },
20
20
  "./core": {
21
21
  "types": "./dist/main.d.ts",
22
- "imports": "./dist/editor.js",
22
+ "import": "./dist/editor.js",
23
23
  "require": "./dist/editor.js",
24
24
  "default": "./dist/editor.js"
25
25
  },
26
26
  ".": {
27
27
  "types": "./dist/main.d.ts",
28
- "imports": "./dist/editor.js",
28
+ "import": "./dist/editor.js",
29
29
  "require": "./dist/editor.js",
30
30
  "default": "./dist/editor.js"
31
31
  }
@@ -36,6 +36,9 @@
36
36
  "dist",
37
37
  "global.d.ts"
38
38
  ],
39
+ "optionalDependencies": {
40
+ "@sepveneto/dnde-agent": " *"
41
+ },
39
42
  "dependencies": {
40
43
  "@element-plus/icons-vue": "^2.3.2",
41
44
  "@module-federation/enhanced": "^2.8.1",
@@ -70,6 +73,6 @@
70
73
  "build:dev": "vite build",
71
74
  "build": "vite build && pnpm run gen",
72
75
  "gen": "vue-tsc -p tsconfig.build.json",
73
- "test": "echo \"Error: no test specified\" && exit 1"
76
+ "test": "node --test \"tests/**/*.test.ts\""
74
77
  }
75
78
  }
@@ -1,5 +0,0 @@
1
- import Main from './Editor.vue';
2
- export type EditorInstance = InstanceType<typeof Main>;
3
- export declare function register(options: {
4
- remoteUrl: string;
5
- }): Promise<boolean | undefined>;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes