render-core 1.0.52 → 1.0.54
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/class/controller/partController.d.ts +3 -0
- package/class/controller/partController.js +7 -0
- package/core/cmd/v-for.js +9 -3
- package/core/cmd/v-index.d.ts +2 -0
- package/core/cmd/v-index.js +36 -0
- package/core/cmd/v-key.d.ts +2 -0
- package/core/cmd/v-key.js +52 -0
- package/core/cmd/v-switch.js +6 -3
- package/core/cmd/v-txt.d.ts +1 -1
- package/core/render/partRender.d.ts +2 -0
- package/core/render/partRender.js +16 -0
- package/core/utility/vForUtility.d.ts +2 -0
- package/core/utility/vForUtility.js +7 -0
- package/library/cmd/cmd.js +5 -0
- package/package.json +1 -1
package/core/cmd/v-for.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extractForArray, extractForMap } from "../utility/vForUtility";
|
|
1
2
|
export function resolver_for_of(elements, data) {
|
|
2
3
|
for (var i = 0; i < elements.length; i++) {
|
|
3
4
|
var result = elements[i].hasAttribute("v-for-of");
|
|
@@ -5,10 +6,13 @@ export function resolver_for_of(elements, data) {
|
|
|
5
6
|
var dataName = elements[i].getAttribute("v-for-of");
|
|
6
7
|
elements[i].removeAttribute("v-for-of");
|
|
7
8
|
for (var _i = 0, _a = data[dataName]; _i < _a.length; _i++) {
|
|
8
|
-
var
|
|
9
|
+
var dataItem = _a[_i];
|
|
10
|
+
//将该模板节点在此处展开
|
|
11
|
+
extractForArray(elements[i].parentNode, elements[i], data[dataName].index(dataItem), dataItem);
|
|
9
12
|
}
|
|
13
|
+
elements[i].parentNode.removeChild(elements[i]);
|
|
10
14
|
}
|
|
11
|
-
|
|
15
|
+
resolver_for_of(elements[i].children, data);
|
|
12
16
|
}
|
|
13
17
|
}
|
|
14
18
|
export function resolver_for_each(elements, data) {
|
|
@@ -17,8 +21,10 @@ export function resolver_for_each(elements, data) {
|
|
|
17
21
|
if (result) {
|
|
18
22
|
var dataName = elements[i].getAttribute("v-for-each");
|
|
19
23
|
elements[i].removeAttribute("v-for-each");
|
|
20
|
-
for (var
|
|
24
|
+
for (var key in data[dataName]) {
|
|
25
|
+
extractForMap(elements[i].parentNode, elements[i], key, data[dataName][key]);
|
|
21
26
|
}
|
|
27
|
+
elements[i].parentNode.removeChild(elements[i]);
|
|
22
28
|
}
|
|
23
29
|
resolver_for_each(elements[i].children, data);
|
|
24
30
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function resolver_array_single(element, index, data) {
|
|
2
|
+
var result = element.hasAttribute("v-data");
|
|
3
|
+
if (result) {
|
|
4
|
+
var dataName = element.getAttribute("v-data");
|
|
5
|
+
element.removeAttribute("v-data");
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
elements[i].innerText = JSON.stringify(data);
|
|
8
|
+
}
|
|
9
|
+
result = element.hasAttribute("v-index");
|
|
10
|
+
if (result) {
|
|
11
|
+
var dataName = element.getAttribute("v-index");
|
|
12
|
+
element.removeAttribute("v-index");
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
element.innerText = JSON.stringify(data);
|
|
15
|
+
}
|
|
16
|
+
var subElements = element.children;
|
|
17
|
+
resolver_array_multi(subElements, index, data);
|
|
18
|
+
}
|
|
19
|
+
export function resolver_array_multi(elements, index, data) {
|
|
20
|
+
for (var i = 0; i < elements.length; i++) {
|
|
21
|
+
var result = elements[i].hasAttribute("v-data");
|
|
22
|
+
if (result) {
|
|
23
|
+
elements[i].removeAttribute("v-data");
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
elements[i].innerText = JSON.stringify(data);
|
|
26
|
+
}
|
|
27
|
+
result = elements[i].hasAttribute("v-index");
|
|
28
|
+
if (result) {
|
|
29
|
+
elements[i].removeAttribute("v-index");
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
elements[i].innerText = JSON.stringify(index);
|
|
32
|
+
}
|
|
33
|
+
var subElements = elements[i].children;
|
|
34
|
+
resolver_array_multi(subElements, index, data);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { part_render_map } from "../render/partRender";
|
|
2
|
+
export function resolver_map_single(element, key, data) {
|
|
3
|
+
//检查v-data
|
|
4
|
+
var result = element.hasAttribute("v-data");
|
|
5
|
+
if (result) {
|
|
6
|
+
element.removeAttribute("v-data");
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
elements[i].innerText = JSON.stringify(data);
|
|
9
|
+
}
|
|
10
|
+
//检查v-key
|
|
11
|
+
result = element.hasAttribute("v-key");
|
|
12
|
+
if (result) {
|
|
13
|
+
element.removeAttribute("v-key");
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
element.innerText = JSON.stringify(data);
|
|
16
|
+
}
|
|
17
|
+
//检查v-for-of
|
|
18
|
+
result = element.hasAttribute("v-for-item");
|
|
19
|
+
if (result) {
|
|
20
|
+
element.removeAttribute("v-for-item");
|
|
21
|
+
part_render_map(element.parentNode, element, key, data);
|
|
22
|
+
}
|
|
23
|
+
//深度展开
|
|
24
|
+
var subElements = element.children;
|
|
25
|
+
resolver_map_multi(subElements, key, data);
|
|
26
|
+
}
|
|
27
|
+
export function resolver_map_multi(elements, key, data) {
|
|
28
|
+
for (var i = 0; i < elements.length; i++) {
|
|
29
|
+
//检查v-data
|
|
30
|
+
var result = elements[i].hasAttribute("v-data");
|
|
31
|
+
if (result) {
|
|
32
|
+
elements[i].removeAttribute("v-data");
|
|
33
|
+
// @ts-ignore
|
|
34
|
+
elements[i].innerText = JSON.stringify(data);
|
|
35
|
+
}
|
|
36
|
+
//检查v-key
|
|
37
|
+
result = elements[i].hasAttribute("v-key");
|
|
38
|
+
if (result) {
|
|
39
|
+
elements[i].removeAttribute("v-key");
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
elements[i].innerText = JSON.stringify(index);
|
|
42
|
+
}
|
|
43
|
+
//检查v-for-of
|
|
44
|
+
result = elements[i].hasAttribute("v-for-item");
|
|
45
|
+
if (result) {
|
|
46
|
+
elements[i].removeAttribute("v-for-item");
|
|
47
|
+
part_render_map(elements[i].parentNode, elements[i], key, data);
|
|
48
|
+
}
|
|
49
|
+
var subElements = elements[i].children;
|
|
50
|
+
resolver_map_multi(subElements, key, data);
|
|
51
|
+
}
|
|
52
|
+
}
|
package/core/cmd/v-switch.js
CHANGED
|
@@ -10,12 +10,15 @@ export function resolver_switch(elements, data) {
|
|
|
10
10
|
//如何属性匹配
|
|
11
11
|
if (result !== null) {
|
|
12
12
|
//属性
|
|
13
|
-
var
|
|
13
|
+
var property = result[0].substring(9);
|
|
14
14
|
//值
|
|
15
|
-
var
|
|
15
|
+
var value = elements[i].getAttribute(result[0]);
|
|
16
16
|
//删除属性
|
|
17
17
|
elements[i].removeAttribute(result[0]);
|
|
18
|
-
if (data[
|
|
18
|
+
if (data[property] === value) {
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
19
22
|
// @ts-ignore
|
|
20
23
|
elements[i].style.display = "none";
|
|
21
24
|
break;
|
package/core/cmd/v-txt.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function resolver_txt(elements: HTMLCollection, data:
|
|
1
|
+
export declare function resolver_txt(elements: HTMLCollection, data: any): void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { resolver_array_single } from "../cmd/v-index";
|
|
2
|
+
import { resolver_map_single } from "../cmd/v-key";
|
|
3
|
+
export function part_render_array(baseRoot, temp, index, data) {
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
var clone = temp.cloneNode(true);
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
resolver_array_single(clone, index, data);
|
|
8
|
+
baseRoot.insertBefore(clone, temp);
|
|
9
|
+
}
|
|
10
|
+
export function part_render_map(baseRoot, temp, key, data) {
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
var clone = temp.cloneNode(true);
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
resolver_map_single(clone, key, data);
|
|
15
|
+
baseRoot.insertBefore(clone, temp);
|
|
16
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { part_render_array, part_render_map } from "../render/partRender";
|
|
2
|
+
export function extractForArray(baseRoot, temp, index, data) {
|
|
3
|
+
part_render_array(baseRoot, temp, index, data);
|
|
4
|
+
}
|
|
5
|
+
export function extractForMap(baseRoot, temp, key, data) {
|
|
6
|
+
part_render_map(baseRoot, temp, key, data);
|
|
7
|
+
}
|
package/library/cmd/cmd.js
CHANGED
|
@@ -8,6 +8,7 @@ import { resolver_show } from "../../core/cmd/v-show";
|
|
|
8
8
|
import { resolver_render } from "../../core/cmd/v-render";
|
|
9
9
|
import { resolver_if } from "../../core/cmd/v-if";
|
|
10
10
|
import { resolver_switch } from "../../core/cmd/v-switch";
|
|
11
|
+
import { resolver_for_each, resolver_for_of } from "../../core/cmd/v-for";
|
|
11
12
|
export function cmd(tagTemplate, proto, controller) {
|
|
12
13
|
//给所有元素添加上npm=tag标志
|
|
13
14
|
addLabel(tagTemplate.children, proto.getName());
|
|
@@ -31,6 +32,10 @@ export function afterCmd(templateSpace, proto, controller) {
|
|
|
31
32
|
resolver_if(templateSpace.children, controller.proxyForMethods);
|
|
32
33
|
//v-switch
|
|
33
34
|
resolver_switch(templateSpace.children, controller.proxyForMethods);
|
|
35
|
+
//v-for-each
|
|
36
|
+
resolver_for_each(templateSpace.children, controller.proxyForMethods);
|
|
37
|
+
//v-for-of
|
|
38
|
+
resolver_for_of(templateSpace.children, controller.proxyForMethods);
|
|
34
39
|
}
|
|
35
40
|
export function cmdForUpdate(tagTemplate, proto, controller) {
|
|
36
41
|
//给所有元素添加上npm=tag标志
|