render-core 1.4.8 → 1.4.10
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/index.d.ts +14 -8
- package/index.js +18 -13
- package/kernel/delivery/delivery.js +3 -3
- package/kernel/directive/property/v-bind.js +2 -2
- package/kernel/directive/react/v-model.js +1 -1
- package/kernel/proxyer/getProxy.d.ts +0 -3
- package/kernel/proxyer/getProxy.js +3 -7
- package/kernel/renderer/initRender.js +9 -10
- package/kernel/renderer/postRender.js +10 -11
- package/kernel/renderer/rawRender.js +10 -11
- package/kernel/renderer/updateRender.js +14 -13
- package/kernel/router/router.js +3 -3
- package/package.json +1 -4
- package/system/generic/component/ComponentGeneric.d.ts +1 -1
- package/system/generic/controller/ControllerGeneric.d.ts +10 -4
- package/system/generic/data/ComputedDataGeneric.d.ts +13 -0
- package/system/generic/data/ComputedDataGeneric.js +1 -0
- package/system/generic/data/WatcherDataGeneric.d.ts +13 -0
- package/system/generic/data/WatcherDataGeneric.js +1 -0
- package/system/injection/injection.d.ts +8 -3
- package/system/injection/injection.js +22 -12
- package/system/injection/injector.d.ts +30 -0
- package/system/injection/injector.js +77 -0
- package/system/lifecycle/mount.js +5 -8
- package/system/loader/loader.js +1 -1
- package/system/output/errorUtility.d.ts +3 -0
- package/system/output/errorUtility.js +9 -0
- package/system/prototype/ContextController.d.ts +9 -8
- package/system/prototype/ContextController.js +1 -7
- package/system/recorder/table2/system_func_2.d.ts +5 -0
- package/system/recorder/table2/system_func_2.js +8 -0
- package/system/utility/data/dataUtility.d.ts +5 -0
- package/system/utility/data/dataUtility.js +12 -0
- package/system/utility/directive/cmdUtility.d.ts +15 -0
- package/system/utility/directive/cmdUtility.js +43 -0
- package/system/utility/initiate/miscUtility.d.ts +6 -0
- package/system/utility/initiate/miscUtility.js +12 -0
- package/system/utility/initiate/templateUtility.d.ts +6 -0
- package/system/utility/initiate/templateUtility.js +11 -0
- package/system/utility/react/inputType.d.ts +25 -0
- package/system/utility/react/inputType.js +40 -0
- package/system/utility/react/inputUtility.d.ts +19 -0
- package/system/utility/react/inputUtility.js +125 -0
- package/system/utility/react/modelUtility.d.ts +15 -0
- package/system/utility/react/modelUtility.js +64 -0
- package/system/utility/react/sectionUtility.d.ts +6 -0
- package/system/utility/react/sectionUtility.js +123 -0
- package/system/utility/style/styleUtility.d.ts +29 -0
- package/system/utility/style/styleUtility.js +102 -0
- package/tension/prototype/AbstractComponent.d.ts +1 -1
- package/tension/prototype/HooksAction.js +1 -1
- package/xboot/Entrance.d.ts +3 -3
- package/xboot/Entrance.js +4 -5
- package/xboot/RenderProcessor.js +2 -2
- package/xboot/TagProcessor.js +4 -8
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { assignType, checkType, fileType, textType } from "./inputType";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param controller
|
|
5
|
+
*/
|
|
6
|
+
export function locateInputAddress(controller) {
|
|
7
|
+
//判断是否是输入导致的数据更新
|
|
8
|
+
if (controller.dataForMethod.hasOwnProperty("origin")) {
|
|
9
|
+
var doc = Reflect.get(controller.dataForMethod, "origin");
|
|
10
|
+
var target = document.getElementById(doc.id);
|
|
11
|
+
switch (doc.tag) {
|
|
12
|
+
case "INPUT":
|
|
13
|
+
locateInput(target, doc, controller);
|
|
14
|
+
break;
|
|
15
|
+
case "SELECT":
|
|
16
|
+
locateSelect(target, doc);
|
|
17
|
+
break;
|
|
18
|
+
case "TEXTAREA":
|
|
19
|
+
locateTextArea(target, doc, controller);
|
|
20
|
+
break;
|
|
21
|
+
default:
|
|
22
|
+
console.log("Can't locate input address");
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
* @param target
|
|
30
|
+
* @param doc
|
|
31
|
+
* @param controller
|
|
32
|
+
*/
|
|
33
|
+
function locateInput(target, doc, controller) {
|
|
34
|
+
switch (target.getAttribute("type")) {
|
|
35
|
+
case "text":
|
|
36
|
+
textType(target, doc, controller);
|
|
37
|
+
break;
|
|
38
|
+
case "color":
|
|
39
|
+
assignType(target, controller);
|
|
40
|
+
break;
|
|
41
|
+
case "date":
|
|
42
|
+
assignType(target, controller);
|
|
43
|
+
break;
|
|
44
|
+
case "time":
|
|
45
|
+
assignType(target, controller);
|
|
46
|
+
break;
|
|
47
|
+
case "email":
|
|
48
|
+
textType(target, doc, controller);
|
|
49
|
+
break;
|
|
50
|
+
case "url":
|
|
51
|
+
textType(target, doc, controller);
|
|
52
|
+
break;
|
|
53
|
+
case "week":
|
|
54
|
+
assignType(target, controller);
|
|
55
|
+
break;
|
|
56
|
+
case "tel":
|
|
57
|
+
textType(target, doc, controller);
|
|
58
|
+
break;
|
|
59
|
+
case "search":
|
|
60
|
+
textType(target, doc, controller);
|
|
61
|
+
break;
|
|
62
|
+
case "range":
|
|
63
|
+
assignType(target, controller);
|
|
64
|
+
break;
|
|
65
|
+
case "radio":
|
|
66
|
+
checkType(target);
|
|
67
|
+
break;
|
|
68
|
+
case "password":
|
|
69
|
+
textType(target, doc, controller);
|
|
70
|
+
break;
|
|
71
|
+
case "number":
|
|
72
|
+
textType(target, doc, controller);
|
|
73
|
+
break;
|
|
74
|
+
case "month":
|
|
75
|
+
assignType(target, controller);
|
|
76
|
+
break;
|
|
77
|
+
case "hidden":
|
|
78
|
+
assignType(target, controller);
|
|
79
|
+
break;
|
|
80
|
+
case "file":
|
|
81
|
+
fileType(target, controller);
|
|
82
|
+
break;
|
|
83
|
+
case "datetime-local":
|
|
84
|
+
assignType(target, controller);
|
|
85
|
+
break;
|
|
86
|
+
case "datetime":
|
|
87
|
+
assignType(target, controller);
|
|
88
|
+
break;
|
|
89
|
+
case "checkbox":
|
|
90
|
+
assignType(target, controller);
|
|
91
|
+
break;
|
|
92
|
+
default:
|
|
93
|
+
console.log("This type input can`t be tackled!");
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
*
|
|
99
|
+
* @param target
|
|
100
|
+
* @param doc
|
|
101
|
+
*/
|
|
102
|
+
function locateSelect(target, doc) {
|
|
103
|
+
// @ts-ignore
|
|
104
|
+
var list = target.getElementsByTagName("option");
|
|
105
|
+
for (var i = 0; i < list.length; i++) {
|
|
106
|
+
if (list[i].value === doc.selected)
|
|
107
|
+
list[i].selected = true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
*
|
|
112
|
+
* @param target
|
|
113
|
+
* @param doc
|
|
114
|
+
* @param controller
|
|
115
|
+
*/
|
|
116
|
+
function locateTextArea(target, doc, controller) {
|
|
117
|
+
// @ts-ignore
|
|
118
|
+
target.value = controller.dataForMethod[target.getAttribute("name")];
|
|
119
|
+
// @ts-ignore
|
|
120
|
+
target.focus();
|
|
121
|
+
// @ts-ignore
|
|
122
|
+
target.setSelectionRange(doc.start, doc.start);
|
|
123
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component } from "../../../index";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param tag
|
|
5
|
+
*/
|
|
6
|
+
export declare function checkStyleLabel(tag: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Here is the function go get all styles associated with the tag component.
|
|
9
|
+
* @param component
|
|
10
|
+
* @param styleLib
|
|
11
|
+
*/
|
|
12
|
+
export declare function themeStyle(component: Component, styleLib: Map<string, object>): void;
|
|
13
|
+
/**
|
|
14
|
+
* Here is the function to resolve
|
|
15
|
+
* @param tag
|
|
16
|
+
* @param styleLib
|
|
17
|
+
*/
|
|
18
|
+
export declare function loader_tag_style(tag: string, styleLib: Map<string, Map<string, string>>): void;
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param tag
|
|
22
|
+
* @param theme
|
|
23
|
+
*/
|
|
24
|
+
export declare function changeStyle(tag: string, theme: string): void;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param theme
|
|
28
|
+
*/
|
|
29
|
+
export declare function changeTheme(theme: string): void;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { loadStyle } from "../../loader/loader";
|
|
2
|
+
import { get_theme_style, set_theme_style } from "../../recorder/table1/system_func_1";
|
|
3
|
+
import { get_style_library } from "../../recorder/table0/system_func_0";
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @param tag
|
|
7
|
+
*/
|
|
8
|
+
export function checkStyleLabel(tag) {
|
|
9
|
+
//获取所有的style标签
|
|
10
|
+
var styles = document.getElementsByTagName("style");
|
|
11
|
+
//遍历标签,查看是否已经加载tag样式
|
|
12
|
+
for (var i = 0; i < styles.length; i++) {
|
|
13
|
+
if (styles[i].getAttribute("tag") === tag.toUpperCase())
|
|
14
|
+
//样式已经加载
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
//样式未加载
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Here is the function go get all styles associated with the tag component.
|
|
22
|
+
* @param component
|
|
23
|
+
* @param styleLib
|
|
24
|
+
*/
|
|
25
|
+
export function themeStyle(component, styleLib) {
|
|
26
|
+
var template = component.getTemplate();
|
|
27
|
+
var dom = document.createElement("div");
|
|
28
|
+
dom.innerHTML = template;
|
|
29
|
+
var styles = dom.getElementsByTagName("template")[0].content.querySelectorAll("style");
|
|
30
|
+
var componentStyleList = new Map();
|
|
31
|
+
for (var i = 0; i < styles.length; i++) {
|
|
32
|
+
componentStyleList.set(styles[i].getAttribute("theme"), styles[i].innerText);
|
|
33
|
+
}
|
|
34
|
+
styleLib.set(component.getName().toUpperCase(), componentStyleList);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Here is the function to resolve
|
|
38
|
+
* @param tag
|
|
39
|
+
* @param styleLib
|
|
40
|
+
*/
|
|
41
|
+
export function loader_tag_style(tag, styleLib) {
|
|
42
|
+
//获取到启动样式
|
|
43
|
+
var theme = get_theme_style();
|
|
44
|
+
if (styleLib.get(tag.toUpperCase())) {
|
|
45
|
+
if (styleLib.get(tag.toUpperCase()).get(theme) === undefined) {
|
|
46
|
+
console.log("tag:" + tag + " has no theme " + theme);
|
|
47
|
+
if (styleLib.get(tag.toUpperCase()).get("default") === undefined) {
|
|
48
|
+
console.log("tag:" + tag + " has no theme " + "default");
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
loadStyle(tag, "default", styleLib.get(tag.toUpperCase()).get("default"));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
loadStyle(tag, theme, styleLib.get(tag.toUpperCase()).get(theme));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
*
|
|
61
|
+
* @param tag
|
|
62
|
+
* @param theme
|
|
63
|
+
*/
|
|
64
|
+
export function changeStyle(tag, theme) {
|
|
65
|
+
var styleTxt = get_style_library().get(tag.toUpperCase()).get(theme);
|
|
66
|
+
if (styleTxt === undefined) {
|
|
67
|
+
console.log("Dont`t find this style!");
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
var style = document.createElement('style');
|
|
71
|
+
var text = document.createTextNode(styleTxt);
|
|
72
|
+
style.appendChild(text);
|
|
73
|
+
style.setAttribute("tag", tag.toUpperCase());
|
|
74
|
+
style.setAttribute("theme", theme);
|
|
75
|
+
var head = document.getElementsByTagName('head')[0];
|
|
76
|
+
var target = head.querySelector("style" + "[tag=" + tag.toUpperCase() + "]");
|
|
77
|
+
head.replaceChild(style, target);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
* @param theme
|
|
83
|
+
*/
|
|
84
|
+
export function changeTheme(theme) {
|
|
85
|
+
get_style_library().forEach(function (value, key) {
|
|
86
|
+
var styles = document.getElementsByTagName("style");
|
|
87
|
+
for (var i = 0; i < styles.length; i++) {
|
|
88
|
+
if (styles[i].getAttribute("tag") === key) {
|
|
89
|
+
var style = document.createElement('style');
|
|
90
|
+
if (value.get(theme)) {
|
|
91
|
+
var text = document.createTextNode(value.get(theme));
|
|
92
|
+
style.appendChild(text);
|
|
93
|
+
style.setAttribute("tag", key.toUpperCase());
|
|
94
|
+
style.setAttribute("theme", theme);
|
|
95
|
+
var head = document.getElementsByTagName('head')[0];
|
|
96
|
+
head.replaceChild(style, styles[i]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
set_theme_style(theme);
|
|
102
|
+
}
|
|
@@ -14,7 +14,7 @@ export declare abstract class AbstractComponent implements ComponentGeneric {
|
|
|
14
14
|
private readonly watcher?;
|
|
15
15
|
private readonly beforeRender?;
|
|
16
16
|
private readonly afterRender?;
|
|
17
|
-
constructor(config: {
|
|
17
|
+
protected constructor(config: {
|
|
18
18
|
name: string;
|
|
19
19
|
template: string;
|
|
20
20
|
config?: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { changeStyle, changeTheme } from "../../system/utility/styleUtility";
|
|
1
|
+
import { changeStyle, changeTheme } from "../../system/utility/style/styleUtility";
|
|
2
2
|
import { direct_delivery } from "../../kernel/delivery/delivery";
|
|
3
3
|
var HooksAction = /** @class */ (function () {
|
|
4
4
|
function HooksAction() {
|
package/xboot/Entrance.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Component } from "../index";
|
|
2
2
|
/**
|
|
3
|
-
* The entrance of
|
|
3
|
+
* The entrance of weave
|
|
4
4
|
* @param root
|
|
5
5
|
*/
|
|
6
6
|
export declare function render_for_weave(root?: string): void;
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* The entrance of listen
|
|
9
9
|
*/
|
|
10
10
|
export declare function render_for_listen(): void;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* The entrance of render
|
|
13
13
|
* @param component
|
|
14
14
|
* @param mounter
|
|
15
15
|
*/
|
package/xboot/Entrance.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { themeStyle } from "../system/utility/styleUtility";
|
|
1
|
+
import { themeStyle } from "../system/utility/style/styleUtility";
|
|
2
2
|
import { renderHtml } from "./renderProcessor";
|
|
3
3
|
import { get_context_controller, get_style_library, get_tag_library } from "../system/recorder/table0/system_func_0";
|
|
4
4
|
import { router_listener_with_router, router_listener_without_router } from "../kernel/router/router";
|
|
5
5
|
/**
|
|
6
|
-
* The entrance of
|
|
6
|
+
* The entrance of weave
|
|
7
7
|
* @param root
|
|
8
8
|
*/
|
|
9
9
|
export function render_for_weave(root) {
|
|
10
|
-
//获取styleLib对象
|
|
11
10
|
get_tag_library().forEach(function (component) {
|
|
12
11
|
themeStyle(component, get_style_library());
|
|
13
12
|
});
|
|
@@ -33,7 +32,7 @@ export function render_for_weave(root) {
|
|
|
33
32
|
}
|
|
34
33
|
}
|
|
35
34
|
/**
|
|
36
|
-
*
|
|
35
|
+
* The entrance of listen
|
|
37
36
|
*/
|
|
38
37
|
export function render_for_listen() {
|
|
39
38
|
get_tag_library().forEach(function (component) {
|
|
@@ -42,7 +41,7 @@ export function render_for_listen() {
|
|
|
42
41
|
router_listener_with_router(document.querySelector("webview"));
|
|
43
42
|
}
|
|
44
43
|
/**
|
|
45
|
-
*
|
|
44
|
+
* The entrance of render
|
|
46
45
|
* @param component
|
|
47
46
|
* @param mounter
|
|
48
47
|
*/
|
package/xboot/RenderProcessor.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { isUnKnown } from "../system/utility/checkUtility";
|
|
2
1
|
import { get_tag_library } from "../system/recorder/table0/system_func_0";
|
|
3
2
|
import { mpa_delivery } from "../kernel/delivery/delivery";
|
|
3
|
+
import { tag_unknown_check } from "../system/recorder/table2/system_func_2";
|
|
4
4
|
/**
|
|
5
5
|
* This function is used to render element below the mount point.
|
|
6
6
|
* @param collection
|
|
@@ -8,7 +8,7 @@ import { mpa_delivery } from "../kernel/delivery/delivery";
|
|
|
8
8
|
*/
|
|
9
9
|
export function renderHtml(collection, contextController) {
|
|
10
10
|
for (var i = 0; i < collection.length; i++) {
|
|
11
|
-
if (
|
|
11
|
+
if (tag_unknown_check(collection[i].nodeName.toUpperCase())) {
|
|
12
12
|
var component = get_tag_library().get(collection[i].nodeName.toUpperCase());
|
|
13
13
|
if (typeof component === undefined)
|
|
14
14
|
console.error(collection[i].nodeName.toUpperCase() + " can't be found in renderJs, you should firstly register in renderJs");
|
package/xboot/TagProcessor.js
CHANGED
|
@@ -7,20 +7,16 @@ import { get_tag_library } from "../system/recorder/table0/system_func_0";
|
|
|
7
7
|
export function registerTagLib(component) {
|
|
8
8
|
if (Array.isArray(component)) {
|
|
9
9
|
component.forEach(function (component) {
|
|
10
|
-
if (!get_tag_library().has(component.getName().toUpperCase()))
|
|
10
|
+
if (!get_tag_library().has(component.getName().toUpperCase()))
|
|
11
11
|
get_tag_library().set(component.getName().toUpperCase(), component);
|
|
12
|
-
|
|
13
|
-
else {
|
|
12
|
+
else
|
|
14
13
|
console.warn("The Tag:" + component.getName().toUpperCase() + "has been registered!");
|
|
15
|
-
}
|
|
16
14
|
});
|
|
17
15
|
}
|
|
18
16
|
else {
|
|
19
|
-
if (!get_tag_library().has(component.getName().toUpperCase()))
|
|
17
|
+
if (!get_tag_library().has(component.getName().toUpperCase()))
|
|
20
18
|
get_tag_library().set(component.getName().toUpperCase(), component);
|
|
21
|
-
|
|
22
|
-
else {
|
|
19
|
+
else
|
|
23
20
|
console.warn("The Tag:" + component.getName().toUpperCase() + "has been registered!");
|
|
24
|
-
}
|
|
25
21
|
}
|
|
26
22
|
}
|