render-core 1.4.9 → 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.
Files changed (54) hide show
  1. package/index.d.ts +14 -8
  2. package/index.js +18 -13
  3. package/kernel/delivery/delivery.js +3 -3
  4. package/kernel/directive/property/v-bind.js +2 -2
  5. package/kernel/directive/react/v-model.js +1 -1
  6. package/kernel/proxyer/getProxy.d.ts +0 -3
  7. package/kernel/proxyer/getProxy.js +1 -5
  8. package/kernel/renderer/initRender.js +9 -10
  9. package/kernel/renderer/postRender.js +10 -11
  10. package/kernel/renderer/rawRender.js +10 -11
  11. package/kernel/renderer/updateRender.js +14 -13
  12. package/kernel/router/router.js +3 -3
  13. package/package.json +1 -4
  14. package/system/generic/component/ComponentGeneric.d.ts +1 -1
  15. package/system/generic/controller/ControllerGeneric.d.ts +10 -4
  16. package/system/generic/data/ComputedDataGeneric.d.ts +13 -0
  17. package/system/generic/data/ComputedDataGeneric.js +1 -0
  18. package/system/generic/data/WatcherDataGeneric.d.ts +13 -0
  19. package/system/generic/data/WatcherDataGeneric.js +1 -0
  20. package/system/injection/injection.d.ts +8 -3
  21. package/system/injection/injection.js +22 -12
  22. package/system/injection/injector.d.ts +30 -0
  23. package/system/injection/injector.js +77 -0
  24. package/system/lifecycle/mount.js +5 -8
  25. package/system/loader/loader.js +1 -1
  26. package/system/output/errorUtility.d.ts +3 -0
  27. package/system/output/errorUtility.js +9 -0
  28. package/system/prototype/ContextController.d.ts +9 -8
  29. package/system/prototype/ContextController.js +1 -7
  30. package/system/recorder/table2/system_func_2.d.ts +5 -0
  31. package/system/recorder/table2/system_func_2.js +8 -0
  32. package/system/utility/data/dataUtility.d.ts +5 -0
  33. package/system/utility/data/dataUtility.js +12 -0
  34. package/system/utility/directive/cmdUtility.d.ts +15 -0
  35. package/system/utility/directive/cmdUtility.js +43 -0
  36. package/system/utility/initiate/miscUtility.d.ts +6 -0
  37. package/system/utility/initiate/miscUtility.js +12 -0
  38. package/system/utility/initiate/templateUtility.d.ts +6 -0
  39. package/system/utility/initiate/templateUtility.js +11 -0
  40. package/system/utility/react/inputType.d.ts +25 -0
  41. package/system/utility/react/inputType.js +40 -0
  42. package/system/utility/react/inputUtility.d.ts +19 -0
  43. package/system/utility/react/inputUtility.js +125 -0
  44. package/system/utility/react/modelUtility.d.ts +15 -0
  45. package/system/utility/react/modelUtility.js +64 -0
  46. package/system/utility/react/sectionUtility.d.ts +6 -0
  47. package/system/utility/react/sectionUtility.js +123 -0
  48. package/system/utility/style/styleUtility.d.ts +29 -0
  49. package/system/utility/style/styleUtility.js +102 -0
  50. package/tension/prototype/HooksAction.js +1 -1
  51. package/xboot/Entrance.d.ts +3 -3
  52. package/xboot/Entrance.js +4 -5
  53. package/xboot/RenderProcessor.js +2 -2
  54. 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
+ }
@@ -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() {
@@ -1,15 +1,15 @@
1
1
  import { Component } from "../index";
2
2
  /**
3
- * The entrance of render
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 render
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
  */
@@ -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 (isUnKnown(collection[i].nodeName.toUpperCase())) {
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");
@@ -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
  }