@vtj/core 0.1.1 → 0.7.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.
package/package.json CHANGED
@@ -1,26 +1,37 @@
1
- {
2
- "name": "@vtj/core",
3
- "version": "0.1.1",
4
- "description": "天匠(Tj)可视化低代码平台核心库",
5
- "author": {
6
- "name": "chenhuachun",
7
- "email": "samchen08@163.com"
8
- },
9
- "main": "index.cjs.js",
10
- "module": "index.es.js",
11
- "types": "types.d.ts",
12
- "dependencies": {
13
- "hash-sum": "^2.0.0",
14
- "lodash-es": "^4.17.21",
15
- "prettier": "^2.6.1",
16
- "systemjs": "^6.12.1",
17
- "systemjs-babel": "^0.3.1"
18
- },
19
- "files": ["index.cjs.js", "index.es.js", "types.d.ts"],
20
- "repository": {
21
- "type": "git",
22
- "url": "https://gitee.com/vtj/core.git"
23
- },
24
- "homepage": "http://newgateway.gitee.io/my/",
25
- "license": "MIT"
26
- }
1
+ {
2
+ "name": "@vtj/core",
3
+ "private": false,
4
+ "version": "0.7.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "build": "vue-tsc && vite build",
8
+ "test": "vitest run",
9
+ "vitest": "vitest",
10
+ "coverage": "vitest run --coverage"
11
+ },
12
+ "dependencies": {
13
+ "@vtj/base": "^0.7.0",
14
+ "mitt": "~3.0.1"
15
+ },
16
+ "devDependencies": {
17
+ "@vtj/cli": "^0.7.0"
18
+ },
19
+ "exports": {
20
+ ".": {
21
+ "types": "./types/index.d.ts",
22
+ "import": "./dist/index.mjs",
23
+ "require": "./dist/index.cjs"
24
+ }
25
+ },
26
+ "main": "./dist/index.cjs",
27
+ "module": "./dist/index.mjs",
28
+ "types": "./types/index.d.ts",
29
+ "files": [
30
+ "dist",
31
+ "types"
32
+ ],
33
+ "gitHead": "b65d1b19322cbd0721173d094db1b5ece018d980",
34
+ "publishConfig": {
35
+ "access": "public"
36
+ }
37
+ }
@@ -0,0 +1,4 @@
1
+ export { version as VTJ_CORE_VERSION } from './version';
2
+ export * from './protocols';
3
+ export * from './tools';
4
+ export * from './models';
@@ -0,0 +1,7 @@
1
+ export declare class Base {
2
+ protected listeners: Array<() => void>;
3
+ protected isReady: boolean;
4
+ protected triggerReady(): void;
5
+ ready(callback: () => void): void;
6
+ resetReady(): void;
7
+ }
@@ -0,0 +1,195 @@
1
+ import type { BlockSchema, BlockInject, BlockState, JSFunction, JSONValue, JSExpression, BlockWatch, BlockProp, DataSourceSchema } from '../protocols';
2
+ import { NodeModel } from './node';
3
+ /**
4
+ * 节点放置位置
5
+ */
6
+ export type DropPosition = 'left' | 'right' | 'top' | 'bottom' | 'inner';
7
+ /**
8
+ * 区块发生改变时触发的事件名称
9
+ */
10
+ export declare const EVENT_BLOCK_CHANGE = "EVENT_BLOCK_CHANGE";
11
+ export declare class BlockModel {
12
+ readonly __VTJ_BLOCK__: boolean;
13
+ readonly id: string;
14
+ name: string;
15
+ inject: BlockInject[];
16
+ state: BlockState;
17
+ lifeCycles: Record<string, JSFunction>;
18
+ methods: Record<string, JSFunction>;
19
+ computed: Record<string, JSFunction>;
20
+ watch: BlockWatch[];
21
+ css: string;
22
+ props: Array<string | BlockProp>;
23
+ emits: string[];
24
+ slots: string[];
25
+ dataSources: Record<string, DataSourceSchema>;
26
+ nodes: NodeModel[];
27
+ locked: boolean;
28
+ disposed: boolean;
29
+ static normalAttrs: string[];
30
+ constructor(schema: BlockSchema);
31
+ update(schema: BlockSchema, silent?: boolean): void;
32
+ /**
33
+ * 获取DSL
34
+ * @returns
35
+ */
36
+ toDsl(): BlockSchema;
37
+ /**
38
+ * 销毁
39
+ */
40
+ dispose(): void;
41
+ /**
42
+ * 设置通用函数属性
43
+ * @param type
44
+ * @param name
45
+ * @param value
46
+ * @param silent
47
+ */
48
+ setFunction(type: 'methods' | 'computed' | 'lifeCycles', name: string, value: JSFunction, silent?: boolean): void;
49
+ /**
50
+ * 删除通用函数属性
51
+ * @param type
52
+ * @param name
53
+ * @param silent
54
+ */
55
+ removeFunction(type: 'methods' | 'computed' | 'lifeCycles', name: string, silent?: boolean): void;
56
+ /**
57
+ * 设置状态
58
+ * @param name
59
+ * @param value
60
+ * @param silent
61
+ */
62
+ setState(name: string, value: JSONValue | JSExpression | JSFunction, silent?: boolean): void;
63
+ /**
64
+ * 删除状态
65
+ * @param name
66
+ * @param silent
67
+ */
68
+ removeState(name: string, silent?: boolean): void;
69
+ /**
70
+ * 更新CSS
71
+ * @param content
72
+ * @param silent
73
+ */
74
+ setCss(content: string, silent?: boolean): void;
75
+ /**
76
+ * 新增或更新 watch
77
+ * @param watch
78
+ * @param silent
79
+ */
80
+ setWatch(watch: BlockWatch, silent?: boolean): void;
81
+ /**
82
+ * 删除 watch
83
+ * @param watch
84
+ * @param silent
85
+ */
86
+ removeWatch(watch: BlockWatch, silent?: boolean): void;
87
+ /**
88
+ * 定义属性参数
89
+ * @param prop
90
+ * @param silent
91
+ */
92
+ setProp(prop: BlockProp, silent?: boolean): void;
93
+ /**
94
+ * 删除属性
95
+ * @param prop
96
+ * @param silent
97
+ */
98
+ removeProp(prop: BlockProp, silent?: boolean): void;
99
+ /**
100
+ * 设置事件
101
+ * @param emit
102
+ * @param silent
103
+ */
104
+ setEmit(emit: string, silent?: boolean): void;
105
+ /**
106
+ * 删除事件
107
+ * @param emit
108
+ * @param silent
109
+ */
110
+ removeEmit(emit: string, silent?: boolean): void;
111
+ /**
112
+ * 设置插槽
113
+ * @param emit
114
+ * @param silent
115
+ */
116
+ setSlot(slot: string, silent?: boolean): void;
117
+ /**
118
+ * 删除插槽
119
+ * @param emit
120
+ * @param silent
121
+ */
122
+ removeSlot(slot: string, silent?: boolean): void;
123
+ /**
124
+ * 设置注入
125
+ * @param inject
126
+ * @param silent
127
+ */
128
+ setInject(inject: BlockInject, silent?: boolean): void;
129
+ /**
130
+ * 删除注入
131
+ * @param inject
132
+ * @param silent
133
+ */
134
+ removeInject(inject: BlockInject, silent?: boolean): void;
135
+ /**
136
+ * 设置数据源
137
+ * @param source
138
+ * @param silent
139
+ */
140
+ setDataSource(source: DataSourceSchema, silent?: boolean): void;
141
+ /**
142
+ * 删除数据源
143
+ * @param name
144
+ * @param silent
145
+ */
146
+ removeDataSource(name: string, silent?: boolean): void;
147
+ private insertAfter;
148
+ private insertBefore;
149
+ private appendNode;
150
+ /**
151
+ * 添加节点
152
+ * @param node
153
+ * @param target
154
+ * @param position
155
+ * @param silent
156
+ */
157
+ addNode(node: NodeModel, target?: NodeModel, position?: DropPosition, silent?: boolean): void;
158
+ private __removeNode;
159
+ /**
160
+ * 删除节点
161
+ * @param node
162
+ * @param silent
163
+ */
164
+ removeNode(node: NodeModel, silent?: boolean): void;
165
+ /**
166
+ * 移动节点
167
+ * @param node
168
+ * @param target
169
+ * @param position
170
+ * @param silent
171
+ */
172
+ move(node: NodeModel, target?: NodeModel, position?: DropPosition, silent?: boolean): void;
173
+ /**
174
+ * 向前交换节点
175
+ * @param node
176
+ * @param silent
177
+ */
178
+ movePrev(node: NodeModel, silent?: boolean): void;
179
+ /**
180
+ * 向后交换节点
181
+ * @param node
182
+ * @param silent
183
+ */
184
+ moveNext(node: NodeModel, silent?: boolean): void;
185
+ /**
186
+ * 克隆节点
187
+ * @param target
188
+ * @param silent
189
+ * @returns
190
+ */
191
+ cloneNode(target: NodeModel, silent?: boolean): NodeModel;
192
+ lock(silent?: boolean): void;
193
+ unlock(silent?: boolean): void;
194
+ isChild(node: NodeModel): boolean;
195
+ }
@@ -0,0 +1,32 @@
1
+ import type { NodeDirective, JSExpression, NodeModifiers, NodeDirectiveIterator } from '../protocols';
2
+ export declare class DirectiveModel {
3
+ private schema;
4
+ /**
5
+ * 标识
6
+ */
7
+ readonly id: string;
8
+ /**
9
+ * 指令名称
10
+ */
11
+ name: string;
12
+ /**
13
+ * 参数
14
+ */
15
+ arg?: string | JSExpression;
16
+ /**
17
+ * 修饰符
18
+ */
19
+ modifiers?: NodeModifiers;
20
+ /**
21
+ * 指令值
22
+ */
23
+ value?: JSExpression;
24
+ /**
25
+ * v-for 迭代器
26
+ */
27
+ iterator?: NodeDirectiveIterator;
28
+ constructor(schema: NodeDirective);
29
+ update(schema: NodeDirective): void;
30
+ static parse(directives?: NodeDirective[]): DirectiveModel[];
31
+ static toDsl(directives?: DirectiveModel[]): NodeDirective[];
32
+ }
@@ -0,0 +1,11 @@
1
+ import type { NodeEvents, NodeEvent, NodeModifiers, JSFunction } from '../protocols';
2
+ export declare class EventModel {
3
+ private schema;
4
+ readonly name: string;
5
+ handler: JSFunction;
6
+ modifiers: NodeModifiers;
7
+ constructor(schema: NodeEvent);
8
+ update(schema: Partial<NodeEvent>): void;
9
+ static toDsl(events: Record<string, EventModel>): NodeEvents;
10
+ static parse(events?: NodeEvents): Record<string, EventModel>;
11
+ }
@@ -0,0 +1,42 @@
1
+ import type { HistorySchema, HistoryItem, BlockSchema } from '../protocols';
2
+ import { type ModelEventType } from '../tools';
3
+ export interface HistoryModelOptions {
4
+ max: number;
5
+ }
6
+ export declare const EVENT_HISTORY_CHANGE = "EVENT_HISTORY_CHANGE";
7
+ export declare const EVENT_HISTORY_LOAD = "EVENT_HISTORY_LOAD";
8
+ export interface HistoryModelEvent {
9
+ model: HistoryModel;
10
+ type: ModelEventType;
11
+ data: any;
12
+ }
13
+ export declare class HistoryModel {
14
+ private options;
15
+ index: number;
16
+ id: string;
17
+ items: HistoryItem[];
18
+ constructor(schema: HistorySchema, options?: Partial<HistoryModelOptions>);
19
+ toDsl(): HistorySchema;
20
+ /**
21
+ * 获取历史项
22
+ * @param id
23
+ * @returns
24
+ */
25
+ get(id: string): HistoryItem | undefined;
26
+ /**
27
+ * 增加历史记录
28
+ * @param dsl
29
+ * @param silent
30
+ */
31
+ add(dsl: BlockSchema, silent?: boolean): void;
32
+ /**
33
+ * 删除历史记录
34
+ * @param id
35
+ * @param silent
36
+ */
37
+ remove(id: string, silent?: boolean): void;
38
+ forward(silent?: boolean): void;
39
+ backward(silent?: boolean): void;
40
+ load(id: string, silent?: boolean): void;
41
+ clear(silent?: boolean): void;
42
+ }
@@ -0,0 +1,8 @@
1
+ export * from './base';
2
+ export * from './prop';
3
+ export * from './event';
4
+ export * from './directive';
5
+ export * from './node';
6
+ export * from './block';
7
+ export * from './project';
8
+ export * from './history';
@@ -0,0 +1,174 @@
1
+ import type { NodeSchema, NodeFrom, NodeSlot, JSExpression, JSONValue, JSFunction, NodeEvent, NodeDirective } from '../protocols';
2
+ import { PropModel } from './prop';
3
+ import { EventModel } from './event';
4
+ import { DirectiveModel } from './directive';
5
+ /**
6
+ * 节点发生改变时触发的事件名称
7
+ */
8
+ export declare const EVENT_NODE_CHANGE = "EVENT_NODE_CHANGE";
9
+ /**
10
+ * 节点模型
11
+ */
12
+ export declare class NodeModel {
13
+ parent: NodeModel | null;
14
+ /**
15
+ * 标记
16
+ */
17
+ readonly __VTJ_NODE__: boolean;
18
+ /**
19
+ * 锁定
20
+ */
21
+ locked: boolean;
22
+ /**
23
+ * 记录所有节点的实例
24
+ */
25
+ static nodes: Record<string, NodeModel>;
26
+ /**
27
+ * 节点唯一标识
28
+ */
29
+ readonly id: string;
30
+ /**
31
+ * 名称,即组件的名称或html的标签名
32
+ */
33
+ readonly name: string;
34
+ /**
35
+ * 组件来源
36
+ */
37
+ readonly from: NodeFrom;
38
+ /**
39
+ * 是否不可见
40
+ */
41
+ invisible: boolean;
42
+ /**
43
+ * 子节点
44
+ */
45
+ children: NodeModel[] | string | JSExpression;
46
+ /**
47
+ * 放置在父组件的插槽
48
+ */
49
+ slot?: NodeSlot;
50
+ /**
51
+ * 节点属性
52
+ */
53
+ props: Record<string, PropModel>;
54
+ /**
55
+ * 节点事件
56
+ */
57
+ events: Record<string, EventModel>;
58
+ /**
59
+ * 指令
60
+ */
61
+ directives: DirectiveModel[];
62
+ /**
63
+ * 销毁标识
64
+ */
65
+ disposed: boolean;
66
+ constructor(schema: NodeSchema, parent?: NodeModel | null);
67
+ /**
68
+ * 更新节点属性
69
+ * @param schema
70
+ * @param silent 是否静默,静默更新即不触发事件
71
+ */
72
+ update(schema: Partial<NodeSchema>, silent?: boolean): void;
73
+ /**
74
+ * 设置子节点
75
+ * @param children
76
+ * @param silent
77
+ */
78
+ setChildren(children?: NodeSchema[] | string | JSExpression, silent?: boolean): void;
79
+ /**
80
+ * 设置节点放置的插槽
81
+ * @param slot
82
+ * @param silent
83
+ */
84
+ setSlot(slot?: string | NodeSlot, silent?: boolean): void;
85
+ /**
86
+ * 新增或更新属性
87
+ * @param name
88
+ * @param value
89
+ * @param defaultValue
90
+ * @param silent
91
+ */
92
+ setProp(name: string, value: JSONValue | JSExpression | JSFunction, defaultValue?: JSONValue | JSExpression | JSFunction, silent?: boolean): void;
93
+ /**
94
+ * 删除属性
95
+ * @param name
96
+ * @param silent
97
+ */
98
+ removeProp(name: string, silent?: boolean): void;
99
+ /**
100
+ * 获取属性值
101
+ * @param name
102
+ * @returns
103
+ */
104
+ getPropValue(name: string): JSONValue | JSExpression | JSFunction;
105
+ /**
106
+ * 新增或更新事件
107
+ * @param scheam
108
+ * @param silent
109
+ */
110
+ setEvent(scheam: NodeEvent, silent?: boolean): void;
111
+ /**
112
+ * 删除事件
113
+ * @param name
114
+ * @param silent
115
+ */
116
+ removeEvent(name: string, silent?: boolean): void;
117
+ /**
118
+ * 新增或更新指令
119
+ * @param scheam
120
+ * @param silent
121
+ */
122
+ setDirective(scheam: NodeDirective, silent?: boolean): void;
123
+ /**
124
+ * 删除指令
125
+ * @param dirctive
126
+ * @param silent
127
+ */
128
+ removeDirective(dirctive: DirectiveModel, silent?: boolean): void;
129
+ /**
130
+ * 删除子节点
131
+ * @param node
132
+ * @param silent
133
+ * @returns
134
+ */
135
+ removeChild(node: NodeModel, silent?: boolean): void;
136
+ /**
137
+ * 追加子节点
138
+ * @param node
139
+ * @param silent
140
+ * @returns
141
+ */
142
+ appendChild(node: NodeModel, silent?: boolean): void;
143
+ /**
144
+ * 在当前节点的后面插入节点
145
+ * @param node
146
+ * @param silent
147
+ * @returns
148
+ */
149
+ insertAfter(node: NodeModel, silent?: boolean): void;
150
+ /**
151
+ * 在当前节点的前面插入节点
152
+ * @param node
153
+ * @param silent
154
+ * @returns
155
+ */
156
+ insertBefore(node: NodeModel, silent?: boolean): void;
157
+ movePrev(silent?: boolean): void;
158
+ moveNext(silent?: boolean): void;
159
+ /**
160
+ * 获取DSL
161
+ * @returns
162
+ */
163
+ toDsl(): NodeSchema;
164
+ /**
165
+ * 销毁
166
+ * @param silent
167
+ * @returns
168
+ */
169
+ dispose(silent?: boolean): void;
170
+ lock(silent?: boolean): void;
171
+ unlock(silent?: boolean): void;
172
+ setVisible(visible: boolean, silent?: boolean): void;
173
+ isChild(node: NodeModel): boolean;
174
+ }