@joker.front/core 1.2.136

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 (58) hide show
  1. package/README.md +91 -0
  2. package/dist/bundle.es.js +3589 -0
  3. package/dist/bundle.js +3643 -0
  4. package/package.json +50 -0
  5. package/types/component.d.ts +216 -0
  6. package/types/components/component.d.ts +13 -0
  7. package/types/components/container.d.ts +15 -0
  8. package/types/components/template.d.ts +7 -0
  9. package/types/docs/build/docs.d.ts +1 -0
  10. package/types/docs/build/markdown-it-demo.d.ts +3 -0
  11. package/types/docs/build/utils.d.ts +3 -0
  12. package/types/docs/common/loading.d.ts +2 -0
  13. package/types/docs/main.d.ts +1 -0
  14. package/types/event-bus.d.ts +15 -0
  15. package/types/eventBus.d.ts +15 -0
  16. package/types/filter.d.ts +13 -0
  17. package/types/global.d.ts +13 -0
  18. package/types/hmr.d.ts +15 -0
  19. package/types/index.d.ts +10 -0
  20. package/types/observer/dep.d.ts +46 -0
  21. package/types/observer/index.d.ts +46 -0
  22. package/types/observer/watcher.d.ts +46 -0
  23. package/types/parser/command/code.d.ts +6 -0
  24. package/types/parser/command/condition.d.ts +22 -0
  25. package/types/parser/command/for.d.ts +23 -0
  26. package/types/parser/command/section.d.ts +8 -0
  27. package/types/parser/comment.d.ts +6 -0
  28. package/types/parser/component.d.ts +23 -0
  29. package/types/parser/element.d.ts +9 -0
  30. package/types/parser/index.d.ts +77 -0
  31. package/types/parser/parser.d.ts +82 -0
  32. package/types/parser/render.d.ts +86 -0
  33. package/types/parser/text.d.ts +6 -0
  34. package/types/parser/vnode.d.ts +180 -0
  35. package/types/props.d.ts +9 -0
  36. package/types/src/component.d.ts +216 -0
  37. package/types/src/event-bus.d.ts +15 -0
  38. package/types/src/filter.d.ts +13 -0
  39. package/types/src/hmr.d.ts +15 -0
  40. package/types/src/index.d.ts +10 -0
  41. package/types/src/observer/dep.d.ts +46 -0
  42. package/types/src/observer/index.d.ts +46 -0
  43. package/types/src/observer/watcher.d.ts +46 -0
  44. package/types/src/parser/command/code.d.ts +6 -0
  45. package/types/src/parser/command/condition.d.ts +22 -0
  46. package/types/src/parser/command/for.d.ts +23 -0
  47. package/types/src/parser/command/section.d.ts +8 -0
  48. package/types/src/parser/comment.d.ts +6 -0
  49. package/types/src/parser/component.d.ts +23 -0
  50. package/types/src/parser/element.d.ts +9 -0
  51. package/types/src/parser/index.d.ts +77 -0
  52. package/types/src/parser/parser.d.ts +82 -0
  53. package/types/src/parser/render.d.ts +86 -0
  54. package/types/src/parser/text.d.ts +6 -0
  55. package/types/src/parser/vnode.d.ts +182 -0
  56. package/types/src/props.d.ts +9 -0
  57. package/types/src/utils/DI.d.ts +15 -0
  58. package/types/utils/DI.d.ts +15 -0
@@ -0,0 +1,182 @@
1
+ import { AST, IComponent } from "@joker.front/ast";
2
+ import { Component as ComponentClass } from "../component";
3
+ import { ObType } from ".";
4
+ import { SectionType } from "../component";
5
+ import { IParser } from "./parser";
6
+ /**
7
+ * 虚拟DOM
8
+ *
9
+ * 该控件分类区别于AST,分类是按照实际输出类型作为划分
10
+ */
11
+ export declare namespace VNode {
12
+ const PARSERKEY: unique symbol;
13
+ /**
14
+ * VNode 基类
15
+ */
16
+ class Node {
17
+ parent?: Node | undefined;
18
+ /**
19
+ * 是否是静态节点,非动态节点。例如:element、text、comment等
20
+ */
21
+ static?: boolean;
22
+ output?: any;
23
+ [PARSERKEY]?: IParser<AST.Node, VNode.Node>;
24
+ childrens?: Node[];
25
+ /**
26
+ * 当前节点是否睡眠
27
+ */
28
+ sleep: boolean;
29
+ constructor(parent?: Node | undefined);
30
+ /**
31
+ * 上一个节点
32
+ */
33
+ get prev(): Node | undefined;
34
+ /**
35
+ * 下一个节点
36
+ */
37
+ get next(): Node | undefined;
38
+ /**
39
+ * 匹配第一个符合要求的祖先元素
40
+ * @param match
41
+ * @param breakWhenVRoot 是否过滤到当前视图根时中断
42
+ * @returns
43
+ */
44
+ closest<T extends VNode.Node = VNode.Node>(filter: (node: VNode.Node) => boolean | void, breakWhenVRoot?: boolean): T | undefined;
45
+ /**
46
+ * 返回所有匹配的子元素
47
+ * @param filter 返回true则记录,返回false则跳过该元素的子集
48
+ * @returns
49
+ */
50
+ find(filter: (node: VNode.Node) => boolean | void, childrens?: Array<VNode.Node>, _out?: Array<VNode.Node>): Array<VNode.Node>;
51
+ /**
52
+ * 是否包含
53
+ * @param filter 返回true则记录,返回false则跳过该元素的子集
54
+ * @returns
55
+ */
56
+ contains(filter: (node: VNode.Node) => boolean | void, childrens?: Array<VNode.Node>): boolean;
57
+ }
58
+ /**
59
+ * 根节点
60
+ */
61
+ class Root<T extends IComponent = IComponent & Record<string, any>> extends Node {
62
+ childrens: Node[];
63
+ component: T;
64
+ constructor();
65
+ }
66
+ /**
67
+ * 文本类型节点
68
+ */
69
+ class Text extends Node {
70
+ text: string;
71
+ static: boolean;
72
+ constructor(text: string, parent: Node);
73
+ }
74
+ /**
75
+ * Html节点
76
+ */
77
+ class Html extends Node {
78
+ html: string;
79
+ static: boolean;
80
+ constructor(html: string, parent: Node);
81
+ }
82
+ /**
83
+ * 注释节点
84
+ */
85
+ class Comment extends Node {
86
+ text: string;
87
+ static: boolean;
88
+ constructor(text: string, parent: Node);
89
+ }
90
+ /**
91
+ * Element节点
92
+ */
93
+ class Element extends Node {
94
+ tagName: string;
95
+ static: boolean;
96
+ attributes: Record<string, any>;
97
+ transitionTimer?: number;
98
+ childrens: Node[];
99
+ events: Array<[string, {
100
+ modifiers?: string[];
101
+ callBack: EventCallBack;
102
+ }]>;
103
+ /**
104
+ * 协助事件存储,用于存储辅助事件,例如outside等事件
105
+ */
106
+ _assistEventCache?: Array<[string, (e: any) => void]>;
107
+ constructor(tagName: string, parent: Node);
108
+ }
109
+ type Event<T = undefined> = {
110
+ /**
111
+ * 事件名称
112
+ */
113
+ eventName: string;
114
+ /**
115
+ * 原生event,对应运行平台
116
+ */
117
+ event?: any;
118
+ /** 触发事件目标元素 */
119
+ target?: Node;
120
+ /** 阻止默认事件 */
121
+ preventDefault(): void;
122
+ /** 阻止事件传播 */
123
+ stopPropagation(): void;
124
+ /** 参数 */
125
+ data: T;
126
+ };
127
+ type EventCallBack<T = any> = (e: Event<T>) => void;
128
+ /**
129
+ * 组件节点
130
+ */
131
+ class Component<T extends IComponent = IComponent & Record<string, any>> extends Node {
132
+ name?: string;
133
+ transitionTimer?: number;
134
+ component: T;
135
+ events: Array<[string, {
136
+ modifiers?: string[];
137
+ callBack: EventCallBack;
138
+ }]>;
139
+ propValues: Record<string, any>;
140
+ keepalive?: boolean;
141
+ /**
142
+ * 当前组件第一个element vnode
143
+ */
144
+ get firstElement(): Element | undefined;
145
+ private findElement;
146
+ }
147
+ /**
148
+ * 条件节点
149
+ */
150
+ class Condition extends Node {
151
+ cmdName: AST.IfCommand["kind"];
152
+ result: boolean;
153
+ childrens: Node[];
154
+ isShow: boolean;
155
+ constructor(cmdName: AST.IfCommand["kind"], parent: Node);
156
+ }
157
+ /**
158
+ * 列表节点,内部包含多组列表项
159
+ */
160
+ class List extends Node {
161
+ childrens: ListItem[];
162
+ }
163
+ /**
164
+ * 循环列表项
165
+ */
166
+ class ListItem extends Node {
167
+ ob: ObType;
168
+ childrens: Node[];
169
+ constructor(ob: ObType, parent: VNode.Node);
170
+ }
171
+ /**
172
+ * 插槽节点
173
+ */
174
+ class RenderSection extends Node {
175
+ id: string;
176
+ params: any[];
177
+ section?: SectionType;
178
+ childrens: Node[];
179
+ ob?: ComponentClass & Record<string, any>;
180
+ constructor(idOrSection: string | SectionType, parent: Node);
181
+ }
182
+ }
@@ -0,0 +1,9 @@
1
+ export type PropValueType = String | ArrayConstructor | Number | Object | Function | Boolean;
2
+ export type PropTypeFullModel = {
3
+ type?: PropValueType | Array<PropValueType>;
4
+ required?: Boolean;
5
+ default?: any;
6
+ validate?: (val: any) => Boolean;
7
+ };
8
+ export type PropType = PropValueType | Array<PropValueType> | PropTypeFullModel;
9
+ export declare function getPropValue(propsData: Readonly<Record<string | symbol, any>>, key: string | symbol, propsType?: Record<string | symbol, any>): any;
@@ -0,0 +1,15 @@
1
+ type Constructor<T = any> = new (...args: any[]) => T;
2
+ /**
3
+ * IOC依赖注入容器
4
+ *
5
+ * IOC依赖注入适用场景:
6
+ * 内部已规划的API、Interface,需要在外部对其进行逻辑注入的场景
7
+ * 区分于plugin,plugin是根据整体声明周期做的切面注入
8
+ */
9
+ export declare namespace IContainer {
10
+ function bind<T>(tagId: symbol | string): {
11
+ to: (target: Constructor<T>) => void;
12
+ };
13
+ function get<T>(tagId: symbol | string, ...params: any[]): T | undefined;
14
+ }
15
+ export {};
@@ -0,0 +1,15 @@
1
+ type Constructor<T = any> = new (...args: any[]) => T;
2
+ /**
3
+ * IOC依赖注入容器
4
+ *
5
+ * IOC依赖注入适用场景:
6
+ * 内部已规划的API、Interface,需要在外部对其进行逻辑注入的场景
7
+ * 区分于plugin,plugin是根据整体声明周期做的切面注入
8
+ */
9
+ export declare namespace IContainer {
10
+ function bind<T>(tagId: symbol | string): {
11
+ to: (target: Constructor<T>) => void;
12
+ };
13
+ function get<T>(tagId: symbol | string, ...params: any[]): T | undefined;
14
+ }
15
+ export {};