j-templates 6.1.12 → 7.0.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.
- package/DOM/createAssignment.js +4 -5
- package/DOM/createAttributeAssignment.d.ts +1 -0
- package/DOM/createAttributeAssignment.js +16 -0
- package/DOM/createPropertyAssignment.d.ts +1 -0
- package/DOM/createPropertyAssignment.js +7 -0
- package/DOM/domNodeConfig.js +40 -0
- package/DOM/elements.d.ts +80 -26
- package/DOM/elements.js +12 -101
- package/DOM/index.d.ts +0 -1
- package/DOM/index.js +0 -1
- package/DOM/svgElements.d.ts +0 -4
- package/DOM/svgElements.js +0 -16
- package/Node/component.d.ts +19 -16
- package/Node/component.js +25 -31
- package/Node/component.types.d.ts +5 -0
- package/Node/nodeConfig.d.ts +7 -0
- package/Node/vNode.d.ts +20 -0
- package/Node/vNode.js +296 -0
- package/Node/vNode.types.d.ts +45 -0
- package/Store/Tree/observableNode.js +1 -2
- package/Store/Tree/observableScope.d.ts +2 -0
- package/Store/Tree/observableScope.js +29 -8
- package/Utils/avlTree.js +5 -6
- package/Utils/decorators.d.ts +4 -25
- package/Utils/decorators.js +3 -61
- package/Utils/distinctArray.d.ts +1 -1
- package/Utils/distinctArray.js +2 -2
- package/Utils/list.js +4 -37
- package/index.d.ts +1 -2
- package/package.json +1 -1
- package/Node/boundNode.d.ts +0 -4
- package/Node/boundNode.js +0 -115
- package/Node/boundNode.types.d.ts +0 -57
- package/Node/componentNode.d.ts +0 -7
- package/Node/componentNode.js +0 -123
- package/Node/componentNode.types.d.ts +0 -37
- package/Node/elementNode.d.ts +0 -5
- package/Node/elementNode.js +0 -176
- package/Node/elementNode.types.d.ts +0 -40
- package/Node/elementNode.types.js +0 -2
- package/Node/nodeRef.d.ts +0 -26
- package/Node/nodeRef.js +0 -253
- package/Node/nodeRef.types.d.ts +0 -21
- package/Node/nodeRef.types.js +0 -2
- package/Node/textNode.types.d.ts +0 -7
- package/Node/textNode.types.js +0 -2
- /package/Node/{boundNode.types.js → component.types.js} +0 -0
- /package/Node/{componentNode.types.js → vNode.types.js} +0 -0
package/DOM/createAssignment.js
CHANGED
|
@@ -3,19 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CreateAssignment = CreateAssignment;
|
|
4
4
|
function CreateAssignment(target, createAssignment) {
|
|
5
5
|
let last;
|
|
6
|
-
let writeTo;
|
|
6
|
+
let writeTo = {};
|
|
7
7
|
return function AssignNext(next) {
|
|
8
8
|
if (next === last)
|
|
9
9
|
return;
|
|
10
10
|
last = next;
|
|
11
|
-
writeTo ??= {};
|
|
12
11
|
const nextKeys = next && Object.keys(next);
|
|
13
12
|
for (let x = 0; nextKeys && x < nextKeys.length; x++) {
|
|
14
13
|
const key = nextKeys[x];
|
|
15
14
|
writeTo[key] ??= createAssignment(target, key);
|
|
16
15
|
}
|
|
17
|
-
const
|
|
18
|
-
for (let x = 0; x <
|
|
19
|
-
|
|
16
|
+
const writeFunctions = Object.values(writeTo);
|
|
17
|
+
for (let x = 0; x < writeFunctions.length; x++)
|
|
18
|
+
writeFunctions[x](next);
|
|
20
19
|
};
|
|
21
20
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function CreateAttributeAssignment(target: HTMLElement, attribute: string): (next: any) => void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateAttributeAssignment = CreateAttributeAssignment;
|
|
4
|
+
function CreateAttributeAssignment(target, attribute) {
|
|
5
|
+
let lastValue;
|
|
6
|
+
return function (next) {
|
|
7
|
+
const nextValue = next && next[attribute];
|
|
8
|
+
if (nextValue === lastValue)
|
|
9
|
+
return;
|
|
10
|
+
if (nextValue === undefined)
|
|
11
|
+
target.removeAttribute(attribute);
|
|
12
|
+
else
|
|
13
|
+
target.setAttribute(attribute, nextValue);
|
|
14
|
+
lastValue = nextValue;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CreateNodeValueAssignment = CreateNodeValueAssignment;
|
|
4
4
|
exports.CreatePropertyAssignment = CreatePropertyAssignment;
|
|
5
|
+
exports.AssignProperties = AssignProperties;
|
|
5
6
|
const json_1 = require("../Utils/json");
|
|
6
7
|
function CreateNodeValueAssignment(target) {
|
|
7
8
|
let lastValue = target.nodeValue;
|
|
@@ -77,3 +78,9 @@ function CreatePropertyAssignment(target) {
|
|
|
77
78
|
last.splice(endIndex);
|
|
78
79
|
};
|
|
79
80
|
}
|
|
81
|
+
function AssignProperties(target, next) {
|
|
82
|
+
WalkValue(next, function (path, value) {
|
|
83
|
+
const assignment = GetAssignmentFunction(path);
|
|
84
|
+
assignment(target, value);
|
|
85
|
+
});
|
|
86
|
+
}
|
package/DOM/domNodeConfig.js
CHANGED
|
@@ -7,6 +7,7 @@ const createPropertyAssignment_1 = require("./createPropertyAssignment");
|
|
|
7
7
|
const createEventAssignment_1 = require("./createEventAssignment");
|
|
8
8
|
const createAssignment_1 = require("./createAssignment");
|
|
9
9
|
const createPropertyAssignment_2 = require("./createPropertyAssignment");
|
|
10
|
+
const createAttributeAssignment_1 = require("./createAttributeAssignment");
|
|
10
11
|
let pendingUpdates = list_1.List.Create();
|
|
11
12
|
let updateScheduled = false;
|
|
12
13
|
const frameTime = 16;
|
|
@@ -50,6 +51,8 @@ function wrapPriorityUpdates(callback) {
|
|
|
50
51
|
}
|
|
51
52
|
exports.DOMNodeConfig = {
|
|
52
53
|
createNode(type, namespace) {
|
|
54
|
+
if (type === 'text')
|
|
55
|
+
return window_1.wndw.document.createTextNode('');
|
|
53
56
|
return namespace ?
|
|
54
57
|
window_1.wndw.document.createElementNS(namespace, type) :
|
|
55
58
|
window_1.wndw.document.createElement(type);
|
|
@@ -110,9 +113,15 @@ exports.DOMNodeConfig = {
|
|
|
110
113
|
createPropertyAssignment(target) {
|
|
111
114
|
return (0, createPropertyAssignment_2.CreatePropertyAssignment)(target);
|
|
112
115
|
},
|
|
116
|
+
assignProperties(target, next) {
|
|
117
|
+
(0, createPropertyAssignment_1.AssignProperties)(target, next);
|
|
118
|
+
},
|
|
113
119
|
createEventAssignment(target) {
|
|
114
120
|
return (0, createAssignment_1.CreateAssignment)(target, createEventAssignment_1.CreateEventAssignment);
|
|
115
121
|
},
|
|
122
|
+
createAttributeAssignment(target) {
|
|
123
|
+
return (0, createAssignment_1.CreateAssignment)(target, createAttributeAssignment_1.CreateAttributeAssignment);
|
|
124
|
+
},
|
|
116
125
|
fireEvent(target, event, data) {
|
|
117
126
|
var cEvent = new CustomEvent(event, data);
|
|
118
127
|
target.dispatchEvent(cEvent);
|
|
@@ -129,4 +138,35 @@ exports.DOMNodeConfig = {
|
|
|
129
138
|
replaceChildren(target, children) {
|
|
130
139
|
target.replaceChildren(...children);
|
|
131
140
|
},
|
|
141
|
+
reconcileChildren(target, children) {
|
|
142
|
+
if (children.length === 0 && !target.firstChild)
|
|
143
|
+
return;
|
|
144
|
+
if (children.length === 0 || !target.firstChild) {
|
|
145
|
+
target.replaceChildren(...children);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
let actualNode = target.firstChild;
|
|
149
|
+
let x = 0;
|
|
150
|
+
let removed = false;
|
|
151
|
+
for (; actualNode && x < children.length; x++) {
|
|
152
|
+
const expectedNode = children[x];
|
|
153
|
+
if (!removed && actualNode !== expectedNode) {
|
|
154
|
+
const remove = actualNode;
|
|
155
|
+
actualNode = actualNode.nextSibling;
|
|
156
|
+
target.removeChild(remove);
|
|
157
|
+
removed = true;
|
|
158
|
+
}
|
|
159
|
+
if (actualNode !== expectedNode) {
|
|
160
|
+
target.insertBefore(expectedNode, actualNode);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
actualNode = actualNode.nextSibling;
|
|
164
|
+
removed = false;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
while (target.lastChild !== children[x - 1])
|
|
168
|
+
target.removeChild(target.lastChild);
|
|
169
|
+
for (; x < children.length; x++)
|
|
170
|
+
target.appendChild(children[x]);
|
|
171
|
+
}
|
|
132
172
|
};
|
package/DOM/elements.d.ts
CHANGED
|
@@ -1,26 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export declare
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export declare
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export declare
|
|
26
|
-
|
|
1
|
+
export declare const div: <T>(config: {
|
|
2
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLElement>>;
|
|
3
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
4
|
+
[name: string]: string;
|
|
5
|
+
}>;
|
|
6
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
7
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
8
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
|
9
|
+
export declare const a: <T>(config: {
|
|
10
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLElement>>;
|
|
11
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
12
|
+
[name: string]: string;
|
|
13
|
+
}>;
|
|
14
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
15
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
16
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
|
17
|
+
export declare const button: <T>(config: {
|
|
18
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLButtonElement>>;
|
|
19
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
20
|
+
[name: string]: string;
|
|
21
|
+
}>;
|
|
22
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
23
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
24
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
|
25
|
+
export declare const h1: <T>(config: {
|
|
26
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLElement>>;
|
|
27
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
28
|
+
[name: string]: string;
|
|
29
|
+
}>;
|
|
30
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
31
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
32
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
|
33
|
+
export declare const input: <T>(config: {
|
|
34
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLInputElement>>;
|
|
35
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
36
|
+
[name: string]: string;
|
|
37
|
+
}>;
|
|
38
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
39
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
40
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
|
41
|
+
export declare const span: <T>(config: {
|
|
42
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLElement>>;
|
|
43
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
44
|
+
[name: string]: string;
|
|
45
|
+
}>;
|
|
46
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
47
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
48
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
|
49
|
+
export declare const table: <T>(config: {
|
|
50
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLElement>>;
|
|
51
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
52
|
+
[name: string]: string;
|
|
53
|
+
}>;
|
|
54
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
55
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
56
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
|
57
|
+
export declare const tbody: <T>(config: {
|
|
58
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLElement>>;
|
|
59
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
60
|
+
[name: string]: string;
|
|
61
|
+
}>;
|
|
62
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
63
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
64
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
|
65
|
+
export declare const tr: <T>(config: {
|
|
66
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLElement>>;
|
|
67
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
68
|
+
[name: string]: string;
|
|
69
|
+
}>;
|
|
70
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
71
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
72
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
|
73
|
+
export declare const td: <T>(config: {
|
|
74
|
+
props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLElement>>;
|
|
75
|
+
attrs?: import("../Node/vNode.types").FunctionOr<{
|
|
76
|
+
[name: string]: string;
|
|
77
|
+
}>;
|
|
78
|
+
on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
|
|
79
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
80
|
+
}, children?: import("../Node/vNode.types").vNode[] | ((data: T) => string | import("../Node/vNode.types").vNode | import("../Node/vNode.types").vNode[])) => import("../Node/vNode.types").vNode;
|
package/DOM/elements.js
CHANGED
|
@@ -1,103 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.div =
|
|
4
|
-
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.
|
|
15
|
-
exports.select = select;
|
|
16
|
-
exports.option = option;
|
|
17
|
-
exports.h1 = h1;
|
|
18
|
-
exports.h2 = h2;
|
|
19
|
-
exports.h3 = h3;
|
|
20
|
-
exports.p = p;
|
|
21
|
-
exports.style = style;
|
|
22
|
-
exports.button = button;
|
|
23
|
-
exports.table = table;
|
|
24
|
-
exports.tbody = tbody;
|
|
25
|
-
exports.th = th;
|
|
26
|
-
exports.tr = tr;
|
|
27
|
-
exports.td = td;
|
|
28
|
-
const elementNode_1 = require("../Node/elementNode");
|
|
29
|
-
function div(nodeDef, children) {
|
|
30
|
-
return elementNode_1.ElementNode.Create("div", null, nodeDef, children);
|
|
31
|
-
}
|
|
32
|
-
function a(nodeDef, children) {
|
|
33
|
-
return elementNode_1.ElementNode.Create("a", null, nodeDef, children);
|
|
34
|
-
}
|
|
35
|
-
function ul(nodeDef, children) {
|
|
36
|
-
return elementNode_1.ElementNode.Create("ul", null, nodeDef, children);
|
|
37
|
-
}
|
|
38
|
-
function li(nodeDef, children) {
|
|
39
|
-
return elementNode_1.ElementNode.Create("li", null, nodeDef, children);
|
|
40
|
-
}
|
|
41
|
-
function br(nodeDef) {
|
|
42
|
-
return elementNode_1.ElementNode.Create("br", null, nodeDef, null);
|
|
43
|
-
}
|
|
44
|
-
function b(nodeDef, children) {
|
|
45
|
-
return elementNode_1.ElementNode.Create("b", null, nodeDef, children);
|
|
46
|
-
}
|
|
47
|
-
function span(nodeDef, children) {
|
|
48
|
-
return elementNode_1.ElementNode.Create("span", null, nodeDef, children);
|
|
49
|
-
}
|
|
50
|
-
function img(nodeDef) {
|
|
51
|
-
return elementNode_1.ElementNode.Create("img", null, nodeDef, null);
|
|
52
|
-
}
|
|
53
|
-
function video(nodeDef, children) {
|
|
54
|
-
return elementNode_1.ElementNode.Create("video", null, nodeDef, children);
|
|
55
|
-
}
|
|
56
|
-
function source(nodeDef) {
|
|
57
|
-
return elementNode_1.ElementNode.Create("source", null, nodeDef, null);
|
|
58
|
-
}
|
|
59
|
-
function input(nodeDef) {
|
|
60
|
-
return elementNode_1.ElementNode.Create("input", null, nodeDef, null);
|
|
61
|
-
}
|
|
62
|
-
function textarea(nodeDef) {
|
|
63
|
-
return elementNode_1.ElementNode.Create("textarea", null, nodeDef, null);
|
|
64
|
-
}
|
|
65
|
-
function select(nodeDef, children) {
|
|
66
|
-
return elementNode_1.ElementNode.Create("select", null, nodeDef, children);
|
|
67
|
-
}
|
|
68
|
-
function option(nodeDef, children) {
|
|
69
|
-
return elementNode_1.ElementNode.Create("option", null, nodeDef, children);
|
|
70
|
-
}
|
|
71
|
-
function h1(nodeDef, children) {
|
|
72
|
-
return elementNode_1.ElementNode.Create("h1", null, nodeDef, children);
|
|
73
|
-
}
|
|
74
|
-
function h2(nodeDef, children) {
|
|
75
|
-
return elementNode_1.ElementNode.Create("h2", null, nodeDef, children);
|
|
76
|
-
}
|
|
77
|
-
function h3(nodeDef, children) {
|
|
78
|
-
return elementNode_1.ElementNode.Create("h3", null, nodeDef, children);
|
|
79
|
-
}
|
|
80
|
-
function p(nodeDef, children) {
|
|
81
|
-
return elementNode_1.ElementNode.Create("p", null, nodeDef, children);
|
|
82
|
-
}
|
|
83
|
-
function style(nodeDef, children) {
|
|
84
|
-
return elementNode_1.ElementNode.Create("style", null, nodeDef, children);
|
|
85
|
-
}
|
|
86
|
-
function button(nodeDef, children) {
|
|
87
|
-
return elementNode_1.ElementNode.Create("button", null, nodeDef, children);
|
|
88
|
-
}
|
|
89
|
-
function table(nodeDef, children) {
|
|
90
|
-
return elementNode_1.ElementNode.Create("table", null, nodeDef, children);
|
|
91
|
-
}
|
|
92
|
-
function tbody(nodeDef, children) {
|
|
93
|
-
return elementNode_1.ElementNode.Create("tbody", null, nodeDef, children);
|
|
94
|
-
}
|
|
95
|
-
function th(nodeDef, children) {
|
|
96
|
-
return elementNode_1.ElementNode.Create("th", null, nodeDef, children);
|
|
97
|
-
}
|
|
98
|
-
function tr(nodeDef, children) {
|
|
99
|
-
return elementNode_1.ElementNode.Create("tr", null, nodeDef, children);
|
|
100
|
-
}
|
|
101
|
-
function td(nodeDef, children) {
|
|
102
|
-
return elementNode_1.ElementNode.Create("td", null, nodeDef, children);
|
|
103
|
-
}
|
|
3
|
+
exports.td = exports.tr = exports.tbody = exports.table = exports.span = exports.input = exports.h1 = exports.button = exports.a = exports.div = void 0;
|
|
4
|
+
const vNode_1 = require("../Node/vNode");
|
|
5
|
+
exports.div = vNode_1.vNode.ToFunction('div');
|
|
6
|
+
exports.a = vNode_1.vNode.ToFunction('a');
|
|
7
|
+
exports.button = vNode_1.vNode.ToFunction('button');
|
|
8
|
+
exports.h1 = vNode_1.vNode.ToFunction('h1');
|
|
9
|
+
exports.input = vNode_1.vNode.ToFunction('input');
|
|
10
|
+
exports.span = vNode_1.vNode.ToFunction('span');
|
|
11
|
+
exports.table = vNode_1.vNode.ToFunction('table');
|
|
12
|
+
exports.tbody = vNode_1.vNode.ToFunction('tbody');
|
|
13
|
+
exports.tr = vNode_1.vNode.ToFunction('tr');
|
|
14
|
+
exports.td = vNode_1.vNode.ToFunction('td');
|
package/DOM/index.d.ts
CHANGED
package/DOM/index.js
CHANGED
|
@@ -15,6 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./elements"), exports);
|
|
18
|
-
__exportStar(require("./svgElements"), exports);
|
|
19
18
|
__exportStar(require("./createPropertyAssignment"), exports);
|
|
20
19
|
__exportStar(require("./createEventAssignment"), exports);
|
package/DOM/svgElements.d.ts
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { ElementChildrenFunction, ElementNodeFunctionParam } from "../Node/elementNode.types";
|
|
2
|
-
export declare function svg<T>(nodeDef: ElementNodeFunctionParam<T>, children?: ElementChildrenFunction<T>): import("../Node/elementNode.types").IElementNode<T>;
|
|
3
|
-
export declare function g<T>(nodeDef: ElementNodeFunctionParam<T>, children?: ElementChildrenFunction<T>): import("../Node/elementNode.types").IElementNode<T>;
|
|
4
|
-
export declare function circle<T>(nodeDef: ElementNodeFunctionParam<T>, children?: ElementChildrenFunction<T>): import("../Node/elementNode.types").IElementNode<T>;
|
package/DOM/svgElements.js
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.svg = svg;
|
|
4
|
-
exports.g = g;
|
|
5
|
-
exports.circle = circle;
|
|
6
|
-
const elementNode_1 = require("../Node/elementNode");
|
|
7
|
-
const svgNs = "http://www.w3.org/2000/svg";
|
|
8
|
-
function svg(nodeDef, children) {
|
|
9
|
-
return elementNode_1.ElementNode.Create("svg", svgNs, nodeDef, children);
|
|
10
|
-
}
|
|
11
|
-
function g(nodeDef, children) {
|
|
12
|
-
return elementNode_1.ElementNode.Create("g", svgNs, nodeDef, children);
|
|
13
|
-
}
|
|
14
|
-
function circle(nodeDef, children) {
|
|
15
|
-
return elementNode_1.ElementNode.Create("circle", svgNs, nodeDef, children);
|
|
16
|
-
}
|
package/Node/component.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComponentEvents } from "./component.types";
|
|
2
2
|
import { ObservableScope } from "../Store/Tree/observableScope";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { FunctionOr, vNode as vNodeType } from "./vNode.types";
|
|
4
|
+
import { RecursivePartial } from "../Utils/utils.types";
|
|
5
|
+
export declare class Component<D = void, T = void, E = {}> {
|
|
6
|
+
private vNode;
|
|
6
7
|
private componentEvents;
|
|
7
8
|
private scope;
|
|
8
9
|
private templates;
|
|
@@ -10,22 +11,24 @@ export declare class Component<D = void, T = void, E = void> {
|
|
|
10
11
|
get Destroyed(): boolean;
|
|
11
12
|
protected get Scope(): ObservableScope<D>;
|
|
12
13
|
protected get Data(): D;
|
|
13
|
-
protected get
|
|
14
|
+
protected get VNode(): vNodeType;
|
|
14
15
|
protected get Templates(): T;
|
|
15
|
-
constructor(data: D | (() => (D | Promise<D>)), templates: T,
|
|
16
|
-
Template():
|
|
16
|
+
constructor(data: D | (() => (D | Promise<D>)), templates: T, vNode: vNodeType, componentEvents: ComponentEvents<E>);
|
|
17
|
+
Template(): vNodeType | vNodeType[];
|
|
17
18
|
Bound(): void;
|
|
18
19
|
Fire<P extends keyof E>(event: P, data?: E[P]): void;
|
|
19
20
|
Destroy(): void;
|
|
20
21
|
}
|
|
22
|
+
type vComponentConfig<D, E, P = HTMLElement> = {
|
|
23
|
+
data?: () => D | undefined;
|
|
24
|
+
props?: FunctionOr<RecursivePartial<P>> | undefined;
|
|
25
|
+
on?: ComponentEvents<E> | undefined;
|
|
26
|
+
};
|
|
27
|
+
type ComponentConstructor<D, T, E> = {
|
|
28
|
+
new (data: D | (() => (D | Promise<D>)), templates: T, vNode: vNodeType, componentEvents: ComponentEvents<E>): Component<D, T, E>;
|
|
29
|
+
};
|
|
21
30
|
export declare namespace Component {
|
|
22
|
-
function ToFunction<D
|
|
23
|
-
function
|
|
24
|
-
function Register<D = void, T = void, E = void>(name: string, constructor: ComponentConstructor<D, T, E>): void;
|
|
25
|
-
function Attach(node: Node, nodeRef: ElementNodeRefTypes): void;
|
|
31
|
+
function ToFunction<D, T, E, P = HTMLElement>(type: string, constructor: ComponentConstructor<D, T, E>, namespace?: string): (config: vComponentConfig<D, E, P>, templates?: T) => vNodeType;
|
|
32
|
+
function Attach(node: any, vnode: vNodeType): vNodeType;
|
|
26
33
|
}
|
|
27
|
-
export
|
|
28
|
-
new (data: {
|
|
29
|
-
(): D | Promise<D>;
|
|
30
|
-
}, templates: T, nodeRef: INodeRefBase, componentEvents: ComponentNodeEvents<E>): Component<D, T, E>;
|
|
31
|
-
};
|
|
34
|
+
export {};
|
package/Node/component.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Component = void 0;
|
|
4
|
-
const nodeRef_1 = require("./nodeRef");
|
|
5
|
-
const componentNode_1 = require("./componentNode");
|
|
6
4
|
const decorators_1 = require("../Utils/decorators");
|
|
7
5
|
const observableScope_1 = require("../Store/Tree/observableScope");
|
|
6
|
+
const vNode_1 = require("./vNode");
|
|
8
7
|
class Component {
|
|
9
8
|
get Injector() {
|
|
10
|
-
return this.
|
|
9
|
+
return this.vNode.injector;
|
|
11
10
|
}
|
|
12
11
|
get Destroyed() {
|
|
13
|
-
return this.
|
|
12
|
+
return this.vNode.destroyed;
|
|
14
13
|
}
|
|
15
14
|
get Scope() {
|
|
16
15
|
return this.scope;
|
|
@@ -18,14 +17,14 @@ class Component {
|
|
|
18
17
|
get Data() {
|
|
19
18
|
return this.scope.Value;
|
|
20
19
|
}
|
|
21
|
-
get
|
|
22
|
-
return this.
|
|
20
|
+
get VNode() {
|
|
21
|
+
return this.vNode;
|
|
23
22
|
}
|
|
24
23
|
get Templates() {
|
|
25
24
|
return this.templates;
|
|
26
25
|
}
|
|
27
|
-
constructor(data, templates,
|
|
28
|
-
this.
|
|
26
|
+
constructor(data, templates, vNode, componentEvents) {
|
|
27
|
+
this.vNode = vNode;
|
|
29
28
|
this.componentEvents = componentEvents;
|
|
30
29
|
if (typeof data === 'function')
|
|
31
30
|
this.scope = new observableScope_1.ObservableScope(data);
|
|
@@ -48,31 +47,26 @@ class Component {
|
|
|
48
47
|
}
|
|
49
48
|
exports.Component = Component;
|
|
50
49
|
(function (Component) {
|
|
51
|
-
function ToFunction(type,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
Component.ToFunction = ToFunction;
|
|
59
|
-
function Register(name, constructor) {
|
|
60
|
-
const componentFunction = ToFunction(`${name}-component`, undefined, constructor);
|
|
61
|
-
class WebComponent extends HTMLElement {
|
|
62
|
-
constructor() {
|
|
63
|
-
super();
|
|
64
|
-
const shadowRoot = this.attachShadow({ mode: "open" });
|
|
65
|
-
const node = componentFunction({});
|
|
66
|
-
Attach(shadowRoot, node);
|
|
50
|
+
function ToFunction(type, constructor, namespace) {
|
|
51
|
+
return function (config, templates) {
|
|
52
|
+
const { data, on, props } = config;
|
|
53
|
+
class ConcreteComponent extends constructor {
|
|
54
|
+
constructor(vnode) {
|
|
55
|
+
super(data, templates, vnode, on);
|
|
56
|
+
}
|
|
67
57
|
}
|
|
68
|
-
|
|
69
|
-
|
|
58
|
+
const definition = {
|
|
59
|
+
type,
|
|
60
|
+
namespace: namespace ?? null,
|
|
61
|
+
props,
|
|
62
|
+
componentConstructor: ConcreteComponent
|
|
63
|
+
};
|
|
64
|
+
return vNode_1.vNode.Create(definition);
|
|
65
|
+
};
|
|
70
66
|
}
|
|
71
|
-
Component.
|
|
72
|
-
function Attach(node,
|
|
73
|
-
|
|
74
|
-
var rootRef = nodeRef_1.NodeRef.Wrap(node);
|
|
75
|
-
nodeRef_1.NodeRef.AddChild(rootRef, nodeRef);
|
|
67
|
+
Component.ToFunction = ToFunction;
|
|
68
|
+
function Attach(node, vnode) {
|
|
69
|
+
return vNode_1.vNode.Attach(node, vnode);
|
|
76
70
|
}
|
|
77
71
|
Component.Attach = Attach;
|
|
78
72
|
})(Component || (exports.Component = Component = {}));
|
package/Node/nodeConfig.d.ts
CHANGED
|
@@ -26,14 +26,21 @@ export interface INodeConfig {
|
|
|
26
26
|
createPropertyAssignment(target: any): {
|
|
27
27
|
(next: any): void;
|
|
28
28
|
};
|
|
29
|
+
assignProperties(target: any, next: any): void;
|
|
29
30
|
createEventAssignment(target: any): {
|
|
30
31
|
(next: {
|
|
31
32
|
[event: string]: (event: Event) => void;
|
|
32
33
|
}): void;
|
|
33
34
|
};
|
|
35
|
+
createAttributeAssignment(target: any): {
|
|
36
|
+
(next: {
|
|
37
|
+
[attribute: string]: string;
|
|
38
|
+
}): void;
|
|
39
|
+
};
|
|
34
40
|
getFirstChild(target: any): any;
|
|
35
41
|
getLastChild(target: any): any;
|
|
36
42
|
getNextSibling(target: any): any;
|
|
37
43
|
replaceChildren(target: any, children: any[]): void;
|
|
44
|
+
reconcileChildren(target: any, children: any[]): void;
|
|
38
45
|
}
|
|
39
46
|
export declare const NodeConfig: INodeConfig;
|
package/Node/vNode.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RecursivePartial } from "../Utils/utils.types";
|
|
2
|
+
import { vNode as vNodeType, vNodeDefinition, FunctionOr, vNodeEvents } from "./vNode.types";
|
|
3
|
+
type vNodeConfig<P = HTMLElement, E = HTMLElementEventMap, T = never> = {
|
|
4
|
+
props?: FunctionOr<RecursivePartial<P>>;
|
|
5
|
+
attrs?: FunctionOr<{
|
|
6
|
+
[name: string]: string;
|
|
7
|
+
}>;
|
|
8
|
+
on?: FunctionOr<vNodeEvents<E>>;
|
|
9
|
+
data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
|
|
10
|
+
};
|
|
11
|
+
export declare namespace vNode {
|
|
12
|
+
function Create<P = HTMLElement, E = HTMLElementEventMap, T = never>(definition: vNodeDefinition<P, E, T>): vNodeType;
|
|
13
|
+
function Init(vnode: vNodeType): void;
|
|
14
|
+
function InitAll(vnodes: vNodeType[]): void;
|
|
15
|
+
function Destroy(vnode: vNodeType): void;
|
|
16
|
+
function DestroyAll(vnodes: vNodeType[]): void;
|
|
17
|
+
function ToFunction<P = HTMLElement, E = HTMLElementEventMap>(type: string, namespace?: string): <T>(config: vNodeConfig<P, E, T>, children?: vNodeType[] | ((data: T) => string | vNodeType | vNodeType[])) => vNodeType;
|
|
18
|
+
function Attach(node: any, vnode: vNodeType): vNodeType;
|
|
19
|
+
}
|
|
20
|
+
export {};
|