@easy-editor/core 0.0.15 → 1.0.0

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 (68) hide show
  1. package/README.md +26 -28
  2. package/dist/config.d.ts +131 -0
  3. package/dist/designer/active-tracker.d.ts +17 -0
  4. package/dist/designer/designer.d.ts +31 -13
  5. package/dist/designer/dragon.d.ts +4 -5
  6. package/dist/designer/index.d.ts +0 -1
  7. package/dist/designer/location.d.ts +0 -3
  8. package/dist/designer/scroller.d.ts +34 -0
  9. package/dist/designer/selection.d.ts +1 -1
  10. package/dist/designer/sensor.d.ts +1 -1
  11. package/dist/designer/setting/setting-entry.d.ts +2 -2
  12. package/dist/designer/setting/setting-field.d.ts +2 -2
  13. package/dist/designer/setting/setting-manager.d.ts +2 -2
  14. package/dist/designer/setting/setting-prop-entry.d.ts +4 -4
  15. package/dist/designer/setting/setting-top-entry.d.ts +2 -2
  16. package/dist/document/document.d.ts +2 -4
  17. package/dist/document/node/node-children.d.ts +2 -3
  18. package/dist/document/node/node.d.ts +2 -3
  19. package/dist/document/prop/prop.d.ts +2 -3
  20. package/dist/document/prop/props.d.ts +2 -3
  21. package/dist/engine/editor.d.ts +45 -0
  22. package/dist/engine/engine.d.ts +11 -0
  23. package/dist/engine/index.d.ts +5 -0
  24. package/dist/{cjs/index.development.js → index.cjs} +6113 -5362
  25. package/dist/index.d.ts +4 -3
  26. package/dist/index.js +6089 -5351
  27. package/dist/{designer/component-meta → materials}/component-meta.d.ts +4 -4
  28. package/dist/materials/index.d.ts +2 -0
  29. package/dist/{designer/component-meta/component-meta-manager.d.ts → materials/materials.d.ts} +9 -6
  30. package/dist/plugin/index.d.ts +1 -1
  31. package/dist/plugin/plugin-context.d.ts +10 -10
  32. package/dist/plugin/plugin-extend.d.ts +3 -3
  33. package/dist/plugin/plugin-runtime.d.ts +3 -2
  34. package/dist/plugin/{plugin-manager.d.ts → plugins.d.ts} +4 -2
  35. package/dist/plugin/sequencify.d.ts +3 -3
  36. package/dist/project/project.d.ts +3 -4
  37. package/dist/setters/index.d.ts +1 -0
  38. package/dist/{setter-manager/setter-manager.d.ts → setters/setters.d.ts} +10 -7
  39. package/dist/simulator/simulator-renderer.d.ts +7 -2
  40. package/dist/simulator/simulator.d.ts +15 -14
  41. package/dist/simulator/viewport.d.ts +13 -0
  42. package/dist/types/component.d.ts +28 -0
  43. package/dist/types/data-source.d.ts +27 -0
  44. package/dist/{editor.d.ts → types/editor.d.ts} +35 -54
  45. package/dist/types/index.d.ts +5 -0
  46. package/dist/{designer/component-meta → types}/meta.d.ts +6 -60
  47. package/dist/types/schema.d.ts +5 -0
  48. package/dist/types/setter.d.ts +26 -0
  49. package/dist/utils/event-bus.d.ts +11 -13
  50. package/dist/utils/event.d.ts +39 -0
  51. package/dist/utils/hotkey.d.ts +1 -5
  52. package/dist/utils/index.d.ts +1 -0
  53. package/dist/utils/is.d.ts +16 -0
  54. package/dist/utils/logger.d.ts +37 -17
  55. package/package.json +17 -12
  56. package/dist/cjs/index.development.js.map +0 -1
  57. package/dist/cjs/index.js +0 -11259
  58. package/dist/cjs/index.js.map +0 -1
  59. package/dist/cjs/index.production.js +0 -11259
  60. package/dist/cjs/index.production.js.map +0 -1
  61. package/dist/designer/component-meta/index.d.ts +0 -3
  62. package/dist/esm/index.development.js +0 -11152
  63. package/dist/esm/index.development.js.map +0 -1
  64. package/dist/esm/index.js +0 -11152
  65. package/dist/esm/index.js.map +0 -1
  66. package/dist/esm/index.production.js +0 -11152
  67. package/dist/esm/index.production.js.map +0 -1
  68. package/dist/setter-manager/index.d.ts +0 -1
@@ -0,0 +1,26 @@
1
+ import type { SettingField, SettingPropEntry } from '../designer';
2
+ import type { Component } from './component';
3
+ export type SetterType = SetterConfig | string;
4
+ export type DynamicSetterProps = (target: SettingField) => Record<string, unknown>;
5
+ export interface SetterConfig {
6
+ /**
7
+ * the name of the setter
8
+ */
9
+ componentName: string;
10
+ /**
11
+ * the props pass to Setter Component
12
+ */
13
+ props?: Record<string, unknown> | DynamicSetterProps;
14
+ /**
15
+ * is required
16
+ */
17
+ isRequired?: boolean;
18
+ /**
19
+ * Setter initial value
20
+ */
21
+ /**
22
+ * Setter default value
23
+ */
24
+ defaultValue?: any;
25
+ }
26
+ export type DynamicSetter = (target: SettingPropEntry) => string | SetterConfig | Component;
@@ -1,28 +1,22 @@
1
- type EventType = string | symbol;
2
- type Events = Record<EventType, unknown>;
3
- type Handler = (event: Events[keyof Events]) => void;
4
- declare class EventEmitter {
5
- all: Map<EventType, Handler[]>;
6
- on<Key extends keyof Events>(type: Key, handler: Handler): void;
7
- off<Key extends keyof Events>(type: Key, handler?: Handler): void;
8
- emit<Key extends keyof Events>(type: Key, evt?: Events[Key]): void;
9
- }
1
+ import EventEmitter from 'events';
2
+ import type { Disposable } from './hotkey';
10
3
  export declare class EventBus {
11
4
  private readonly eventEmitter;
12
5
  private readonly name?;
13
- private logger;
14
6
  /**
15
7
  * 内核触发的事件名
16
8
  */
17
9
  readonly names: never[];
18
10
  constructor(emitter: EventEmitter, name?: string);
19
11
  private getMsgPrefix;
12
+ private getLogger;
20
13
  /**
21
14
  * 监听事件
22
15
  * @param event 事件名称
23
16
  * @param listener 事件回调
24
17
  */
25
- on(event: string, listener: (...args: any[]) => void): () => void;
18
+ on(event: string, listener: (...args: any[]) => void): Disposable;
19
+ prependListener(event: string, listener: (...args: any[]) => void): () => void;
26
20
  /**
27
21
  * 取消监听事件
28
22
  * @param event 事件名称
@@ -36,10 +30,14 @@ export declare class EventBus {
36
30
  * @returns
37
31
  */
38
32
  emit(event: string, ...args: any[]): void;
33
+ removeListener(event: string | symbol, listener: (...args: any[]) => void): EventEmitter<[never]>;
34
+ addListener(event: string | symbol, listener: (...args: any[]) => void): EventEmitter<[never]>;
35
+ setMaxListeners(n: number): EventEmitter<[never]>;
36
+ removeAllListeners(event?: string | symbol): EventEmitter<[never]>;
39
37
  }
40
38
  /**
41
39
  * 创建一个独立模块事件总线
42
40
  * @param name 模块名称
43
41
  */
44
- export declare const createEventBus: (name: string) => EventBus;
45
- export {};
42
+ export declare const createEventBus: (name: string, maxListeners?: number) => EventBus;
43
+ export declare const commonEvent: EventBus;
@@ -0,0 +1,39 @@
1
+ import type { Editor } from '../types';
2
+ import type { EventBus } from './event-bus';
3
+ import type { Disposable } from './hotkey';
4
+ interface EventOptions {
5
+ prefix: string;
6
+ }
7
+ export declare class Event {
8
+ readonly eventBus: EventBus;
9
+ workspaceMode: boolean;
10
+ private readonly options;
11
+ constructor(eventBus: EventBus, options: EventOptions, workspaceMode?: boolean);
12
+ /**
13
+ * 监听事件
14
+ * @param event 事件名称
15
+ * @param listener 事件回调
16
+ */
17
+ on(event: string, listener: (...args: any[]) => void): Disposable;
18
+ /**
19
+ * 监听事件,会在其他回调函数之前执行
20
+ * @param event 事件名称
21
+ * @param listener 事件回调
22
+ */
23
+ prependListener(event: string, listener: (...args: any[]) => void): Disposable;
24
+ /**
25
+ * 取消监听事件
26
+ * @param event 事件名称
27
+ * @param listener 事件回调
28
+ */
29
+ off(event: string, listener: (...args: any[]) => void): void;
30
+ /**
31
+ * 触发事件
32
+ * @param event 事件名称
33
+ * @param args 事件参数
34
+ * @returns
35
+ */
36
+ emit(event: string, ...args: any[]): void;
37
+ }
38
+ export declare const getEvent: (editor: Editor, options?: any) => Event;
39
+ export {};
@@ -35,11 +35,7 @@ export interface HotkeyConfig {
35
35
  }
36
36
  export declare class Hotkey {
37
37
  readonly viewName: string;
38
- logger: {
39
- log: (message?: any, ...optionalParams: any[]) => void;
40
- error: (message?: any, ...optionalParams: any[]) => void;
41
- warn: (message?: any, ...optionalParams: any[]) => void;
42
- };
38
+ logger: import("./logger").Logger;
43
39
  /**
44
40
  * 当前快捷键配置
45
41
  */
@@ -1,4 +1,5 @@
1
1
  export * from './common';
2
+ export * from './event';
2
3
  export * from './event-bus';
3
4
  export * from './hotkey';
4
5
  export * from './is';
@@ -1,2 +1,18 @@
1
+ import type { Viewport } from '../simulator/viewport';
2
+ import type { ComponentMap, LowCodeComponent, ProCodeComponent, SetterConfig } from '../types';
1
3
  export declare const isObject: (value: any) => value is Record<string, unknown>;
2
4
  export declare const isPlainObject: (value: any) => value is any;
5
+ export declare const isTextNode: (node: any) => node is Text;
6
+ export declare const isElementNode: (node: any) => node is Element;
7
+ export declare const isDocumentNode: (node: any) => node is Document;
8
+ /**
9
+ * 判断节点是否在 viewport 内,判断依据:只要节点有一部分在 viewport 内,都算 true,其余情况 false
10
+ * @param domNode 待检测的节点
11
+ * @param viewport 画布 viewport
12
+ * @returns 是否在 viewport 内
13
+ */
14
+ export declare function isDOMNodeVisible(domNode: Element, viewport: Viewport): boolean;
15
+ export declare const isProCodeComponentType: (desc: ComponentMap) => desc is ProCodeComponent;
16
+ export declare const isLowCodeComponentType: (desc: ComponentMap) => desc is LowCodeComponent;
17
+ export declare const isSetterConfig: (obj: any) => obj is SetterConfig;
18
+ export declare const isPluginEventName: (eventName: string) => boolean;
@@ -1,18 +1,38 @@
1
- export interface Logger {
2
- log: (...args: Parameters<(typeof console)['log']>) => void;
3
- error: (...args: Parameters<(typeof console)['error']>) => void;
4
- warn: (...args: Parameters<(typeof console)['warn']>) => void;
1
+ export type Level = 'debug' | 'log' | 'info' | 'warn' | 'error';
2
+ interface Options {
3
+ /**
4
+ * 日志级别
5
+ * @default 'warn'
6
+ */
7
+ level: Level;
8
+ /**
9
+ * 业务名称
10
+ * @default '*'
11
+ */
12
+ bizName: string;
5
13
  }
6
- export declare const createLogger: (title: string) => {
7
- log: (message?: any, ...optionalParams: any[]) => void;
8
- error: (message?: any, ...optionalParams: any[]) => void;
9
- warn: (message?: any, ...optionalParams: any[]) => void;
10
- };
11
- /**
12
- * internal global logger
13
- */
14
- export declare const logger: {
15
- log: (message?: any, ...optionalParams: any[]) => void;
16
- error: (message?: any, ...optionalParams: any[]) => void;
17
- warn: (message?: any, ...optionalParams: any[]) => void;
18
- };
14
+ export declare class Logger {
15
+ /**
16
+ * 业务名称
17
+ */
18
+ bizName: string;
19
+ /**
20
+ * 目标日志的bizName
21
+ */
22
+ targetBizName: string;
23
+ /**
24
+ * 目标日志的level
25
+ */
26
+ targetLevel: string;
27
+ constructor(_options: Partial<Options>);
28
+ debug(...args: any[]): any;
29
+ log(...args: any[]): any;
30
+ info(...args: any[]): any;
31
+ warn(...args: any[]): any;
32
+ error(...args: any[]): any;
33
+ }
34
+ export declare const createLogger: (config: string | {
35
+ level: Level;
36
+ bizName: string;
37
+ }) => Logger;
38
+ export {};
package/package.json CHANGED
@@ -1,11 +1,20 @@
1
1
  {
2
2
  "name": "@easy-editor/core",
3
- "version": "0.0.15",
4
- "description": "A cross-framework low-code engine with scale-out design.",
3
+ "version": "1.0.0",
4
+ "description": "A cross-framework low-code engine with scale-out design",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "require": "./dist/index.cjs"
13
+ }
14
+ },
7
15
  "files": [
8
16
  "dist",
17
+ "engine/dist",
9
18
  "LICENSE",
10
19
  "README.md"
11
20
  ],
@@ -40,27 +49,23 @@
40
49
  "mobx": "^6.13.5"
41
50
  },
42
51
  "dependencies": {
52
+ "events": "^3.3.0",
43
53
  "nanoid": "^5.0.7"
44
54
  },
55
+ "devDependencies": {
56
+ "@rollup/plugin-alias": "^5.1.1"
57
+ },
45
58
  "scripts": {
46
59
  "dev": "deno run --watch ./src/index.ts",
47
60
  "format": "biome format --write .",
48
61
  "lint": "biome check .",
49
62
  "build": "npm-run-all -nl build:*",
50
- "build:clean": "rimraf dist/",
63
+ "build:clean": "rimraf dist/ engine/dist/",
51
64
  "build:js": "rollup -c",
52
65
  "types": "npm-run-all -nl types:*",
53
66
  "types:src": "tsc --project tsconfig.build.json",
54
67
  "test-types": "tsc --project tsconfig.test.json"
55
68
  },
56
- "types": "dist/index.d.ts",
57
- "typings": "dist/index.d.ts",
58
69
  "module": "dist/index.js",
59
- "exports": {
60
- ".": {
61
- "import": "./dist/index.js",
62
- "require": "./dist/cjs/index.js",
63
- "default": "./dist/index.js"
64
- }
65
- }
70
+ "unpkg": "dist/index.js"
66
71
  }