@joker.front/core 1.2.157 → 1.2.237
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/dist/bundle.es.js +1 -3618
- package/dist/bundle.js +1 -3672
- package/package.json +8 -6
- package/types/component.d.ts +11 -5
- package/types/event-bus.d.ts +29 -4
- package/types/export.d.ts +11 -0
- package/types/index.d.ts +5 -3
- package/types/observer/dep.d.ts +1 -1
- package/types/observer/index.d.ts +3 -0
- package/types/observer/watcher.d.ts +2 -0
- package/types/parser/command/code.d.ts +1 -0
- package/types/parser/command/for.d.ts +1 -0
- package/types/parser/component.d.ts +3 -4
- package/types/parser/index.d.ts +2 -0
- package/types/parser/parser.d.ts +1 -0
- package/types/parser/render.d.ts +2 -2
- package/types/parser/vnode.d.ts +13 -8
- package/types/utils/index.d.ts +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joker.front/core",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.237",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/bundle.js",
|
|
6
6
|
"module": "./dist/bundle.es.js",
|
|
@@ -20,10 +20,11 @@
|
|
|
20
20
|
],
|
|
21
21
|
"scripts": {
|
|
22
22
|
"test": "jest",
|
|
23
|
-
"test:temp": "jest test/other/
|
|
23
|
+
"test:temp": "jest test/other/function-this.spec.ts",
|
|
24
24
|
"build": "joker_build_library --sourcemap=false",
|
|
25
|
+
"build:prod": "joker_build_library --sourcemap=false --terser",
|
|
25
26
|
"release": "npm run test && npm run build && joker_release_library",
|
|
26
|
-
"release:prod": "npm run test && npm run build && npm publish --access public --registry https://registry.npmjs.org/"
|
|
27
|
+
"release:prod": "npm run test && npm run build:prod && npm publish --access public --registry https://registry.npmjs.org/"
|
|
27
28
|
},
|
|
28
29
|
"author": "Zohar",
|
|
29
30
|
"license": "MIT",
|
|
@@ -31,16 +32,17 @@
|
|
|
31
32
|
"type": "git"
|
|
32
33
|
},
|
|
33
34
|
"keywords": [
|
|
34
|
-
"joker"
|
|
35
|
+
"joker",
|
|
36
|
+
"front"
|
|
35
37
|
],
|
|
36
38
|
"homepage": "jokers.pub",
|
|
37
39
|
"dependencies": {
|
|
38
40
|
"@joker.front/ast": "^1.3.22"
|
|
39
41
|
},
|
|
40
42
|
"devDependencies": {
|
|
41
|
-
"@joker.front/library-cli": "^1.2.
|
|
43
|
+
"@joker.front/library-cli": "^1.2.13",
|
|
42
44
|
"@joker.front/sfc": "^1.1.5",
|
|
43
|
-
"@joker.front/shared": "^1.5.
|
|
45
|
+
"@joker.front/shared": "^1.5.25",
|
|
44
46
|
"@types/jest": "^27.5.2",
|
|
45
47
|
"@types/node": "^20.5.7",
|
|
46
48
|
"@typescript-eslint/parser": "^5.58.0",
|
package/types/component.d.ts
CHANGED
|
@@ -6,10 +6,12 @@ declare const PROPS_DATA_KEY: unique symbol;
|
|
|
6
6
|
declare const PROPS_DATA_PROXY: unique symbol;
|
|
7
7
|
declare const PRIVATE_WATCHERS: unique symbol;
|
|
8
8
|
declare const EVENT_DATA_KEY: unique symbol;
|
|
9
|
-
declare const
|
|
9
|
+
declare const IS_DESTROY: unique symbol;
|
|
10
|
+
export declare const PARSER_TEMPLATE_TARGET: unique symbol;
|
|
10
11
|
export type TemplateType = Array<AST.Node> | ((h: typeof RENDER_HANDLER) => Array<AST.Node>);
|
|
11
12
|
export declare const SCOPE_ID: unique symbol;
|
|
12
13
|
export declare const JOKER_COMPONENT_TAG: unique symbol;
|
|
14
|
+
declare const TRANSFORM_FUNCTION_FLAG: unique symbol;
|
|
13
15
|
export type ComponentConstructor = typeof Component<any>;
|
|
14
16
|
export type ImportComponentConstructor = () => Promise<{
|
|
15
17
|
default: ComponentConstructor;
|
|
@@ -63,6 +65,8 @@ export declare class Component<T extends DefaultKeyVal = {}> implements ICompone
|
|
|
63
65
|
private [PROPS_DATA_PROXY]?;
|
|
64
66
|
private [PRIVATE_WATCHERS];
|
|
65
67
|
private [EVENT_DATA_KEY];
|
|
68
|
+
private [IS_DESTROY];
|
|
69
|
+
private [TRANSFORM_FUNCTION_FLAG];
|
|
66
70
|
/**
|
|
67
71
|
* @param propData prop参数
|
|
68
72
|
* @param sections 渲染部分区域
|
|
@@ -73,12 +77,12 @@ export declare class Component<T extends DefaultKeyVal = {}> implements ICompone
|
|
|
73
77
|
* 主动声明接受的参数
|
|
74
78
|
* @returns
|
|
75
79
|
*/
|
|
76
|
-
get props(): Readonly<
|
|
80
|
+
get props(): Readonly<T>;
|
|
77
81
|
/**
|
|
78
82
|
* 挂载
|
|
79
83
|
* @param root
|
|
80
84
|
*/
|
|
81
|
-
$mount(root: any | VNode.Component
|
|
85
|
+
$mount(root: any | VNode.Component): this;
|
|
82
86
|
/**
|
|
83
87
|
* 节点动画,仅支持 element及组件节点
|
|
84
88
|
*/
|
|
@@ -125,9 +129,9 @@ export declare class Component<T extends DefaultKeyVal = {}> implements ICompone
|
|
|
125
129
|
* @param express
|
|
126
130
|
* @param callBack
|
|
127
131
|
* @param forceCallBack 即使值相同也要强制触发callback
|
|
128
|
-
* @returns 销毁watcher
|
|
132
|
+
* @returns [wathcer值, 销毁watcher]
|
|
129
133
|
*/
|
|
130
|
-
$watch(express: () => any, callBack: (nv?: any, ov?: any) => void, forceCallBack?: boolean): () => void;
|
|
134
|
+
$watch(express: () => any, callBack: (nv?: any, ov?: any) => void, forceCallBack?: boolean): [any, () => void];
|
|
131
135
|
/**
|
|
132
136
|
* 事件注册
|
|
133
137
|
* @param eventName
|
|
@@ -205,6 +209,8 @@ export declare class ComponentContainer extends Component<{
|
|
|
205
209
|
mounted(): void;
|
|
206
210
|
private propsVaule;
|
|
207
211
|
created(): void;
|
|
212
|
+
initProps(): void;
|
|
213
|
+
filterProps(p: string): false | undefined;
|
|
208
214
|
loadComponent(componentName?: string): Promise<void>;
|
|
209
215
|
beforeDestroy(): void;
|
|
210
216
|
removeCache(componentName?: string): void;
|
package/types/event-bus.d.ts
CHANGED
|
@@ -3,13 +3,38 @@ export type EventCallBackItem<T> = {
|
|
|
3
3
|
once?: Boolean;
|
|
4
4
|
};
|
|
5
5
|
export type EventCallBackType<T> = (e: {
|
|
6
|
+
eventName: string | number | Symbol;
|
|
6
7
|
stopPropagation: Function;
|
|
7
8
|
callTimes: Number;
|
|
8
|
-
}, params: T) => boolean | void
|
|
9
|
+
}, params: T) => boolean | void | Promise<boolean | void>;
|
|
9
10
|
export declare class EventBus<T extends Record<string, any>> {
|
|
10
11
|
private eventDatas;
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* 注册事件
|
|
14
|
+
* @param eventName
|
|
15
|
+
* @param callBack
|
|
16
|
+
* @returns 事件销毁
|
|
17
|
+
*/
|
|
18
|
+
on<K extends keyof T>(eventName: K | "*", callBack: EventCallBackType<T[K]>): () => void;
|
|
19
|
+
/**
|
|
20
|
+
* 注册一次性事件(指触发一次)
|
|
21
|
+
* @param eventName
|
|
22
|
+
* @param callBack
|
|
23
|
+
* @returns 事件销毁
|
|
24
|
+
*/
|
|
25
|
+
once<K extends keyof T>(eventName: K, callBack: EventCallBackType<T[K]>): () => void;
|
|
26
|
+
/**
|
|
27
|
+
* 销毁事件
|
|
28
|
+
* @param eventName
|
|
29
|
+
* @param callBack
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
13
32
|
off<K extends keyof T>(eventName?: K, callBack?: EventCallBackType<T[K]>): void;
|
|
14
|
-
|
|
33
|
+
/**
|
|
34
|
+
* 触发事件
|
|
35
|
+
* @param eventName
|
|
36
|
+
* @param param
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
trigger<K extends keyof T>(eventName: K, param?: T[K]): Promise<false | undefined>;
|
|
15
40
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { AST, RENDER_HANDLER, EXPRESSHANDLERTAG, createCodeFunction, createCommand, createComment, createElement, createFuntionBody, createText, createComponent } from "@joker.front/ast";
|
|
2
|
+
export * from "./component";
|
|
3
|
+
export * from "./parser/vnode";
|
|
4
|
+
export { ParserTemplate, NodeChangeType } from "./parser/index";
|
|
5
|
+
export * from "./observer/watcher";
|
|
6
|
+
export { Dep } from "./observer/dep";
|
|
7
|
+
export * from "./observer/index";
|
|
8
|
+
export * from "./utils/DI";
|
|
9
|
+
export * from "./event-bus";
|
|
10
|
+
export { registerGlobalFunction } from "./global";
|
|
11
|
+
export { Render } from "./parser/render";
|
package/types/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from "./hmr";
|
|
2
|
+
export { AST, RENDER_HANDLER, EXPRESSHANDLERTAG, createCodeFunction, createCommand, createComment, createElement, createFuntionBody, createText, createComponent } from "@joker.front/ast";
|
|
2
3
|
export * from "./component";
|
|
3
4
|
export * from "./parser/vnode";
|
|
4
5
|
export { ParserTemplate, NodeChangeType } from "./parser/index";
|
|
5
6
|
export * from "./observer/watcher";
|
|
7
|
+
export { Dep } from "./observer/dep";
|
|
6
8
|
export * from "./observer/index";
|
|
7
9
|
export * from "./utils/DI";
|
|
8
|
-
export * from "./hmr";
|
|
9
10
|
export * from "./event-bus";
|
|
10
|
-
export { registerGlobalFunction } from "./global";
|
|
11
|
+
export { registerGlobalFunction, __GLONAL_FUNTIONS__ } from "./global";
|
|
12
|
+
export { Render } from "./parser/render";
|
package/types/observer/dep.d.ts
CHANGED
|
@@ -18,12 +18,14 @@ export declare function observer<T extends Object>(data: T, clone?: boolean): T;
|
|
|
18
18
|
* @param value
|
|
19
19
|
*/
|
|
20
20
|
export declare function defineObserverProperty(target: any, key: string | symbol, value: any): void;
|
|
21
|
+
declare const JOKER_SHALLOW_OBSERVER_TAG: unique symbol;
|
|
21
22
|
/**
|
|
22
23
|
* 浅劫持监听,不污染数据源,只对根值监听,不对属性监听
|
|
23
24
|
* @returns
|
|
24
25
|
*/
|
|
25
26
|
export declare class ShallowObserver<T> {
|
|
26
27
|
private data;
|
|
28
|
+
[JOKER_SHALLOW_OBSERVER_TAG]: boolean;
|
|
27
29
|
private dep;
|
|
28
30
|
constructor(data: T);
|
|
29
31
|
/**
|
|
@@ -44,3 +46,4 @@ export declare function combinedReply(func: Function): void;
|
|
|
44
46
|
* 判断一个值是否是已被数据代理劫持
|
|
45
47
|
*/
|
|
46
48
|
export declare function isObserverData(data: any): boolean;
|
|
49
|
+
export {};
|
|
@@ -17,6 +17,7 @@ export declare class ParserList extends IParser<AST.ForCommand, VNode.List> {
|
|
|
17
17
|
* @param index
|
|
18
18
|
*/
|
|
19
19
|
private destroyOldChildrens;
|
|
20
|
+
private checkObEqual;
|
|
20
21
|
}
|
|
21
22
|
export declare class ParserListeItem extends IParser<AST.ForCommand, VNode.ListItem> {
|
|
22
23
|
parser(): void;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { AST
|
|
1
|
+
import { AST } from "@joker.front/ast";
|
|
2
2
|
import { IParser } from "./parser";
|
|
3
3
|
import { Component } from "../component";
|
|
4
4
|
import { VNode } from "./vnode";
|
|
5
5
|
export declare function checkIsComponent(tagName: string, ob: Component): boolean;
|
|
6
6
|
export declare class ParserComponent extends IParser<(AST.Element | AST.Component) & {
|
|
7
|
-
node?: VNode.Component
|
|
8
|
-
}, VNode.Component
|
|
7
|
+
node?: VNode.Component;
|
|
8
|
+
}, VNode.Component> {
|
|
9
9
|
parser(): void;
|
|
10
10
|
/**
|
|
11
11
|
* 是否允许重载
|
|
@@ -19,5 +19,4 @@ export declare class ParserComponent extends IParser<(AST.Element | AST.Componen
|
|
|
19
19
|
private renderChildren;
|
|
20
20
|
private getSections;
|
|
21
21
|
protected beforeDestroy(keepalive?: boolean): void;
|
|
22
|
-
private transformPropValue;
|
|
23
22
|
}
|
package/types/parser/index.d.ts
CHANGED
|
@@ -67,6 +67,8 @@ export declare class ParserTemplate {
|
|
|
67
67
|
* 销毁
|
|
68
68
|
*/
|
|
69
69
|
destroy(keepalive?: boolean): void;
|
|
70
|
+
/** 清除所有监听,用于优化嵌套组件销毁时 自定义销毁事件再次触发watcher问题 */
|
|
71
|
+
destroyWathcers(): void;
|
|
70
72
|
reSetAsts(asts: AST.Node[], keepalive?: boolean): void;
|
|
71
73
|
nodeTransition(node: VNode.Node | undefined, mode: "enter" | "leave", name?: string, callBack?: Function, type?: "transition" | "animation"): boolean;
|
|
72
74
|
}
|
package/types/parser/parser.d.ts
CHANGED
package/types/parser/render.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { VNode } from "./vnode";
|
|
2
|
-
import { IComponent } from "@joker.front/ast";
|
|
3
2
|
type TransitionType = "transition" | "animation";
|
|
4
3
|
export declare namespace Render {
|
|
5
4
|
/**
|
|
6
5
|
* 注入TagId
|
|
7
6
|
*/
|
|
8
7
|
const IRENDERIOCTAGID: unique symbol;
|
|
8
|
+
let ROOT_CONTAINER: string;
|
|
9
9
|
/**
|
|
10
10
|
* 备注:在渲染时执行appendNode,最终执行一次mount挂载
|
|
11
11
|
* 不会出现根目录append的场景,因为指令group会优先占位
|
|
@@ -72,7 +72,7 @@ export declare namespace Render {
|
|
|
72
72
|
destroy(): void;
|
|
73
73
|
elementToEnter(node: VNode.Element, name: string, type?: TransitionType, callBack?: Function): void;
|
|
74
74
|
elementToLeave(node: VNode.Element, name: string, type?: TransitionType, callBack?: Function): void;
|
|
75
|
-
triggerEvent(node: VNode.Component
|
|
75
|
+
triggerEvent(node: VNode.Component, _eventName: string, _e: VNode.Event): void | false;
|
|
76
76
|
private transitionFrame;
|
|
77
77
|
private renderNode;
|
|
78
78
|
private initElementEvents;
|
package/types/parser/vnode.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Component as ComponentClass } from "../component";
|
|
|
3
3
|
import { ObType } from ".";
|
|
4
4
|
import { SectionType } from "../component";
|
|
5
5
|
import { IParser } from "./parser";
|
|
6
|
+
export declare const JOKER_VNODE_TAG: unique symbol;
|
|
6
7
|
/**
|
|
7
8
|
* 虚拟DOM
|
|
8
9
|
*
|
|
@@ -15,6 +16,7 @@ export declare namespace VNode {
|
|
|
15
16
|
*/
|
|
16
17
|
class Node {
|
|
17
18
|
parent?: Node | undefined;
|
|
19
|
+
[JOKER_VNODE_TAG]: boolean;
|
|
18
20
|
/**
|
|
19
21
|
* 是否是静态节点,非动态节点。例如:element、text、comment等
|
|
20
22
|
*/
|
|
@@ -41,19 +43,20 @@ export declare namespace VNode {
|
|
|
41
43
|
* @param breakWhenVRoot 是否过滤到当前视图根时中断
|
|
42
44
|
* @returns
|
|
43
45
|
*/
|
|
44
|
-
closest<T extends VNode.Node = VNode.
|
|
46
|
+
closest<T extends VNode.Node = VNode.Element & VNode.Component>(filter: (node: VNode.Node) => any | any, breakWhenVRoot?: boolean): T | undefined;
|
|
45
47
|
/**
|
|
46
48
|
* 返回所有匹配的子元素
|
|
47
49
|
* @param filter 返回true则记录,返回false则跳过该元素的子集
|
|
48
50
|
* @returns
|
|
49
51
|
*/
|
|
50
|
-
find(filter: (node: VNode.Node) =>
|
|
52
|
+
find<T extends VNode.Node = VNode.Element & VNode.Component>(filter: (node: VNode.Node) => true | any, childrens?: Array<VNode.Node>, _out?: Array<VNode.Node>): Array<T>;
|
|
51
53
|
/**
|
|
52
54
|
* 是否包含
|
|
53
55
|
* @param filter 返回true则记录,返回false则跳过该元素的子集
|
|
54
56
|
* @returns
|
|
55
57
|
*/
|
|
56
|
-
contains(filter: (node: VNode.Node) =>
|
|
58
|
+
contains(filter: (node: VNode.Node) => true | any, childrens?: Array<VNode.Node>): boolean;
|
|
59
|
+
first<T extends VNode.Node = VNode.Element & VNode.Component>(filter: (node: VNode.Node) => true | any, childrens?: Array<VNode.Node>): T | undefined;
|
|
57
60
|
}
|
|
58
61
|
/**
|
|
59
62
|
* 根节点
|
|
@@ -76,8 +79,9 @@ export declare namespace VNode {
|
|
|
76
79
|
*/
|
|
77
80
|
class Html extends Node {
|
|
78
81
|
html: string;
|
|
82
|
+
notShadow?: boolean | undefined;
|
|
79
83
|
static: boolean;
|
|
80
|
-
constructor(html: string, parent: Node);
|
|
84
|
+
constructor(html: string, parent: Node, notShadow?: boolean | undefined);
|
|
81
85
|
}
|
|
82
86
|
/**
|
|
83
87
|
* 注释节点
|
|
@@ -105,7 +109,7 @@ export declare namespace VNode {
|
|
|
105
109
|
_assistEventCache?: Array<[string, (e: any) => void]>;
|
|
106
110
|
constructor(tagName: string, parent: Node);
|
|
107
111
|
}
|
|
108
|
-
type Event<T = undefined> = {
|
|
112
|
+
type Event<T = undefined, N extends VNode.Node = VNode.Element | VNode.Component | VNode.Root> = {
|
|
109
113
|
/**
|
|
110
114
|
* 事件名称
|
|
111
115
|
*/
|
|
@@ -115,7 +119,7 @@ export declare namespace VNode {
|
|
|
115
119
|
*/
|
|
116
120
|
event?: any;
|
|
117
121
|
/** 触发事件目标元素 */
|
|
118
|
-
target?:
|
|
122
|
+
target?: N;
|
|
119
123
|
/** 阻止默认事件 */
|
|
120
124
|
preventDefault(): void;
|
|
121
125
|
/** 阻止事件传播 */
|
|
@@ -127,7 +131,7 @@ export declare namespace VNode {
|
|
|
127
131
|
/**
|
|
128
132
|
* 组件节点
|
|
129
133
|
*/
|
|
130
|
-
class Component<T extends
|
|
134
|
+
class Component<T extends ComponentClass = ComponentClass<any> & Record<string, any>> extends Node {
|
|
131
135
|
/** 组件名(template标签名) */
|
|
132
136
|
name?: string;
|
|
133
137
|
/** 组件实例 */
|
|
@@ -145,7 +149,8 @@ export declare namespace VNode {
|
|
|
145
149
|
* 当前组件第一个element vnode
|
|
146
150
|
*/
|
|
147
151
|
get firstElement(): Element | undefined;
|
|
148
|
-
|
|
152
|
+
/** 获取根element 节点 */
|
|
153
|
+
get rootElements(): Element[];
|
|
149
154
|
}
|
|
150
155
|
/**
|
|
151
156
|
* 条件节点
|
package/types/utils/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function
|
|
2
|
-
export declare function
|
|
1
|
+
export declare function resolveDeepPromisesInPlace(obj: any, deep?: boolean): Promise<any> | undefined;
|
|
2
|
+
export declare function isGetterProperty(obj: object, prop: string): false | (() => any) | undefined;
|