render-core 1.3.71 → 1.4.0
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/controller/ComponentController.d.ts +29 -0
- package/controller/ComponentController.js +30 -0
- package/controller/ContextController.d.ts +28 -0
- package/controller/ContextController.js +36 -0
- package/core/cmd/data/v-el.d.ts +3 -2
- package/core/cmd/data/v-html.d.ts +3 -2
- package/core/cmd/data/v-txt.d.ts +3 -2
- package/core/cmd/react/v-change.d.ts +6 -0
- package/core/cmd/react/v-change.js +22 -0
- package/core/cmd/solt/v-solt.d.ts +5 -5
- package/core/cmd/solt/v-solt.js +12 -12
- package/core/exexutor/executor.d.ts +7 -0
- package/core/exexutor/executor.js +24 -0
- package/core/inject/inject.d.ts +3 -2
- package/core/inject/inject.js +12 -9
- package/core/inject/injection.d.ts +22 -0
- package/core/inject/injection.js +50 -0
- package/core/lifecycle/afterMethods.d.ts +4 -4
- package/core/lifecycle/afterMethods.js +3 -3
- package/core/lifecycle/controllerCycle.d.ts +16 -7
- package/core/lifecycle/controllerCycle.js +47 -23
- package/core/lifecycle/mount.d.ts +4 -3
- package/core/lifecycle/mount.js +25 -5
- package/core/proxy/getProxy.d.ts +6 -8
- package/core/proxy/getProxy.js +15 -31
- package/core/proxy/proxy.d.ts +9 -0
- package/core/proxy/proxy.js +26 -0
- package/core/render/PostRender.js +7 -7
- package/core/render/delivery.js +1 -1
- package/core/render/initRender.js +3 -3
- package/core/render/rawRender.js +7 -7
- package/core/render/updateRender.js +8 -8
- package/core/resolver/props.js +6 -5
- package/core/utility/checkUtility.js +1 -1
- package/core/utility/cmdUtility.d.ts +4 -3
- package/core/utility/cmdUtility.js +15 -15
- package/core/utility/injectUtility.d.ts +0 -6
- package/core/utility/injectUtility.js +1 -35
- package/core/utility/inputType.d.ts +3 -3
- package/core/utility/inputType.js +5 -5
- package/core/utility/inputUtility.d.ts +1 -0
- package/core/utility/inputUtility.js +8 -0
- package/core/utility/sectionUtility.d.ts +1 -1
- package/core/utility/sectionUtility.js +18 -15
- package/core/utility/styleUtility.d.ts +4 -3
- package/core/utility/styleUtility.js +17 -29
- package/generic/ApplicationGeneric.d.ts +4 -0
- package/generic/ApplicationGeneric.js +1 -0
- package/generic/ConfigGeneric.d.ts +3 -0
- package/generic/ConfigGeneric.js +1 -0
- package/generic/ControllerGeneric.d.ts +22 -0
- package/generic/ControllerGeneric.js +1 -0
- package/generic/RenderGeneric.d.ts +1 -1
- package/generic/StyleGeneric.d.ts +4 -0
- package/generic/StyleGeneric.js +1 -0
- package/generic/originalDataGeneric.d.ts +4 -0
- package/generic/originalDataGeneric.js +1 -0
- package/http/generic/HttpGeneric.d.ts +3 -1
- package/index.d.ts +32 -14
- package/index.js +53 -34
- package/package.json +2 -2
- package/proto/controller/ComponentController.d.ts +11 -8
- package/proto/controller/ComponentController.js +8 -6
- package/proto/controller/PageController.d.ts +5 -5
- package/proto/controller/PageController.js +3 -3
- package/runtime/config/RenderConfig.d.ts +12 -0
- package/runtime/config/RenderConfig.js +11 -0
- package/runtime/config/config.d.ts +4 -0
- package/runtime/config/config.js +4 -0
- package/runtime/config.d.ts +3 -0
- package/runtime/config.js +3 -0
- package/runtime/delivery.d.ts +5 -0
- package/runtime/delivery.js +43 -0
- package/runtime/{Entrance.d.ts → entrance.d.ts} +2 -1
- package/runtime/entrance.js +33 -0
- package/runtime/render/PostRender.d.ts +15 -0
- package/runtime/render/PostRender.js +49 -0
- package/runtime/render/delivery.d.ts +5 -0
- package/runtime/render/delivery.js +42 -0
- package/runtime/render/initRender.d.ts +15 -0
- package/runtime/render/initRender.js +46 -0
- package/runtime/render/rawRender.d.ts +15 -0
- package/runtime/render/rawRender.js +50 -0
- package/runtime/renderProcessor.d.ts +11 -0
- package/runtime/{RenderProcessor.js → renderProcessor.js} +11 -8
- package/runtime/tag/TagProcessor.d.ts +9 -0
- package/runtime/tagProcessor.js +27 -0
- package/runtime/update/updateRender.d.ts +10 -0
- package/runtime/update/updateRender.js +38 -0
- package/runtime/Entrance.js +0 -14
- package/runtime/RenderProcessor.d.ts +0 -7
- /package/runtime/{TagProcessor.js → tag/TagProcessor.js} +0 -0
- /package/runtime/{TagProcessor.d.ts → tagProcessor.d.ts} +0 -0
package/core/lifecycle/mount.js
CHANGED
|
@@ -12,20 +12,40 @@ export function mount(controller, proto, parent, child, tagTemplate) {
|
|
|
12
12
|
//给box添加样式
|
|
13
13
|
renderSpace.setAttribute("style", proto.getBoxStyle());
|
|
14
14
|
//指定渲染空间
|
|
15
|
-
controller.
|
|
15
|
+
controller.componentAttachedRootElement = renderSpace;
|
|
16
16
|
//开始渲染
|
|
17
17
|
parent.replaceChild(renderSpace, child);
|
|
18
18
|
while (tagTemplate.hasChildNodes()) {
|
|
19
19
|
renderSpace.append(tagTemplate.firstChild);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
+
export function mountForUpdate(tagTemplate) {
|
|
23
|
+
//mount
|
|
24
|
+
var renderSpace = document.createElement("div");
|
|
25
|
+
renderSpace.setAttribute("anchor", "end");
|
|
26
|
+
while (tagTemplate.hasChildNodes()) {
|
|
27
|
+
renderSpace.append(tagTemplate.firstChild);
|
|
28
|
+
}
|
|
29
|
+
return renderSpace;
|
|
30
|
+
}
|
|
22
31
|
/**
|
|
23
|
-
*
|
|
32
|
+
* Insert elements without div element
|
|
24
33
|
* @param root
|
|
25
34
|
*/
|
|
26
35
|
export function unBox(root) {
|
|
27
|
-
|
|
28
|
-
|
|
36
|
+
var begin = document.createElement("div");
|
|
37
|
+
begin.setAttribute("anchor", "begin");
|
|
38
|
+
begin.setAttribute("style", "display:none");
|
|
39
|
+
root.componentAttachedRootElement.parentNode.insertBefore(begin, root.componentAttachedRootElement);
|
|
40
|
+
root.begin = begin;
|
|
41
|
+
while (root.componentAttachedRootElement.hasChildNodes()) {
|
|
42
|
+
//插入元素到根之前
|
|
43
|
+
root.componentAttachedRootElement.parentNode.insertBefore(root.componentAttachedRootElement.firstChild, root.componentAttachedRootElement);
|
|
29
44
|
}
|
|
30
|
-
root.parentNode
|
|
45
|
+
var parent = root.componentAttachedRootElement.parentNode;
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
root.anchor = root.componentAttachedRootElement;
|
|
48
|
+
root.anchor.setAttribute("anchor", "end");
|
|
49
|
+
root.anchor.setAttribute("style", "display:none");
|
|
50
|
+
root.componentAttachedRootElement = parent;
|
|
31
51
|
}
|
package/core/proxy/getProxy.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { ComponentController } from "../../
|
|
1
|
+
import { ComponentController } from "../../controller/ComponentController";
|
|
2
|
+
import { Component } from "../../../render-refer/dist";
|
|
2
3
|
/**
|
|
3
4
|
* 获取data对象的代理对象
|
|
4
|
-
* @param obj
|
|
5
|
-
* @param updater
|
|
6
|
-
*/
|
|
7
|
-
export declare function getProxyObject(obj: {}, updater: ComponentController): any;
|
|
8
|
-
/**
|
|
9
|
-
* 获取setter代理函数
|
|
10
5
|
* @param data
|
|
11
6
|
* @param updater
|
|
7
|
+
* @param tagLib
|
|
8
|
+
* @param styleLib
|
|
12
9
|
*/
|
|
13
|
-
export declare function
|
|
10
|
+
export declare function getSetterProxy(data: {}, updater: ComponentController, tagLib: Map<string, Component>, styleLib: Map<string, Map<string, string>>): any;
|
|
11
|
+
export declare function getGetterProxy(data: {}, updater: ComponentController): any;
|
package/core/proxy/getProxy.js
CHANGED
|
@@ -1,42 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { locateInputAddress } from "../utility/sectionUtility";
|
|
1
|
+
import { getSetter } from "./proxy";
|
|
3
2
|
/**
|
|
4
3
|
* 获取data对象的代理对象
|
|
5
|
-
* @param
|
|
4
|
+
* @param data
|
|
6
5
|
* @param updater
|
|
6
|
+
* @param tagLib
|
|
7
|
+
* @param styleLib
|
|
7
8
|
*/
|
|
8
|
-
export function
|
|
9
|
+
export function getSetterProxy(data, updater, tagLib, styleLib) {
|
|
9
10
|
//定义代理方法对象
|
|
10
11
|
var handel = {};
|
|
11
12
|
//获取set代理方法
|
|
12
|
-
handel["set"] = getSetter(
|
|
13
|
+
handel["set"] = getSetter(updater, tagLib, styleLib);
|
|
13
14
|
//返回代理对象
|
|
14
|
-
return new Proxy(
|
|
15
|
+
return new Proxy(data, handel);
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (this.mode !== "box") {
|
|
24
|
-
console.log("Not box element can not to update data!");
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
//检查是否有watcher
|
|
28
|
-
try {
|
|
29
|
-
this.watcher[prop](obj[prop], value);
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
}
|
|
33
|
-
//更新值
|
|
34
|
-
obj[prop] = value;
|
|
35
|
-
//执行更新
|
|
36
|
-
update_Render(this);
|
|
37
|
-
locateInputAddress(this);
|
|
38
|
-
Reflect.deleteProperty(this, "origin");
|
|
39
|
-
return true;
|
|
17
|
+
export function getGetterProxy(data, updater) {
|
|
18
|
+
var handel = {};
|
|
19
|
+
handel["set"] = function (data, props) {
|
|
20
|
+
console.log("Watcher can only read props from data object");
|
|
21
|
+
};
|
|
22
|
+
handel["deleteProperty"] = function (data, props) {
|
|
23
|
+
console.log("Watcher can only read props from data object");
|
|
40
24
|
};
|
|
41
|
-
return
|
|
25
|
+
return new Proxy(data, handel);
|
|
42
26
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ComponentController } from "../../controller/ComponentController";
|
|
2
|
+
import { Component } from "../../../render-refer/dist";
|
|
3
|
+
/**
|
|
4
|
+
* 获取setter代理函数
|
|
5
|
+
* @param updater
|
|
6
|
+
* @param styleLib
|
|
7
|
+
* @param tagLib
|
|
8
|
+
*/
|
|
9
|
+
export declare function getSetter(updater: ComponentController, tagLib: Map<string, Component>, styleLib: Map<string, Map<string, string>>): any;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { locateInputAddress } from "../utility/sectionUtility";
|
|
2
|
+
import { update_Render } from "../../runtime/update/UpdateRender";
|
|
3
|
+
/**
|
|
4
|
+
* 获取setter代理函数
|
|
5
|
+
* @param updater
|
|
6
|
+
* @param styleLib
|
|
7
|
+
* @param tagLib
|
|
8
|
+
*/
|
|
9
|
+
export function getSetter(updater, tagLib, styleLib) {
|
|
10
|
+
var setter = function (obj, prop, value) {
|
|
11
|
+
//检查是否有watcher
|
|
12
|
+
try {
|
|
13
|
+
this.watcher[prop](obj[prop], value);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
}
|
|
17
|
+
//更新值
|
|
18
|
+
obj[prop] = value;
|
|
19
|
+
//执行更新
|
|
20
|
+
update_Render(this, tagLib, styleLib);
|
|
21
|
+
locateInputAddress(this);
|
|
22
|
+
Reflect.deleteProperty(this, "origin");
|
|
23
|
+
return true;
|
|
24
|
+
};
|
|
25
|
+
return setter.bind(updater);
|
|
26
|
+
}
|
|
@@ -17,26 +17,26 @@ import { resolver_solt } from "../cmd/solt/v-solt";
|
|
|
17
17
|
export function post_render(proto, parent, child, link, tagTemplate) {
|
|
18
18
|
//获取控制对象
|
|
19
19
|
var controller = new ComponentController();
|
|
20
|
-
//解析
|
|
20
|
+
//解析salt
|
|
21
21
|
resolver_solt(child, controller);
|
|
22
22
|
//控制对象预处理
|
|
23
23
|
controllerCycleTypeTwo(controller, proto, child, link, tagTemplate);
|
|
24
24
|
//beforeRender
|
|
25
|
-
proto.getBeforeRender().call(controller.
|
|
25
|
+
proto.getBeforeRender().call(controller.originalData);
|
|
26
26
|
//解析指令
|
|
27
27
|
cmdUtility(tagTemplate, proto, controller);
|
|
28
28
|
//mount
|
|
29
29
|
mount(controller, proto, parent, child, tagTemplate);
|
|
30
30
|
injectRefs(controller);
|
|
31
31
|
//渲染后处理
|
|
32
|
-
afterCmd(controller.
|
|
32
|
+
afterCmd(controller.componentAttachedRootElement, controller.prototypeOfComponent, controller);
|
|
33
33
|
//后处理
|
|
34
34
|
afterMethodsTypeOne(controller, child, link);
|
|
35
35
|
//afterRender
|
|
36
|
-
proto.getAfterRender().call(controller.
|
|
36
|
+
proto.getAfterRender().call(controller.dataForMethod);
|
|
37
37
|
//深度渲染
|
|
38
|
-
findComponent(controller.
|
|
39
|
-
if (proto.
|
|
40
|
-
unBox(controller.
|
|
38
|
+
findComponent(controller.componentAttachedRootElement.children, controller);
|
|
39
|
+
if (proto.getConfig()["mode"] === false) {
|
|
40
|
+
unBox(controller.componentAttachedRootElement);
|
|
41
41
|
}
|
|
42
42
|
}
|
package/core/render/delivery.js
CHANGED
|
@@ -15,7 +15,7 @@ export function delivery(proto, parent, child, link) {
|
|
|
15
15
|
//两种渲染方式
|
|
16
16
|
if (child.hasAttribute("name")) {
|
|
17
17
|
//需要保持状态的渲染
|
|
18
|
-
if (link.
|
|
18
|
+
if (link.lazyComponent.has(child.getAttribute("name"))) {
|
|
19
19
|
//该name元素存在旧数据,是更新渲染
|
|
20
20
|
init_render(proto, parent, child, link, tagTemplate);
|
|
21
21
|
}
|
|
@@ -28,12 +28,12 @@ export function init_render(proto, parent, child, link, tagTemplate) {
|
|
|
28
28
|
//获取
|
|
29
29
|
injectRefs(controller);
|
|
30
30
|
//渲染后数据处理
|
|
31
|
-
afterCmd(controller.
|
|
31
|
+
afterCmd(controller.componentAttachedRootElement, proto, controller);
|
|
32
32
|
//后处理
|
|
33
33
|
afterMethodsTypeOne(controller, child, link);
|
|
34
34
|
//深度渲染
|
|
35
35
|
findComponent(tagTemplate.children, controller);
|
|
36
|
-
if (proto.
|
|
37
|
-
unBox(controller.
|
|
36
|
+
if (proto.getConfig()["mode"] === false) {
|
|
37
|
+
unBox(controller.componentAttachedRootElement);
|
|
38
38
|
}
|
|
39
39
|
}
|
package/core/render/rawRender.js
CHANGED
|
@@ -17,12 +17,12 @@ import { resolver_solt } from "../cmd/solt/v-solt";
|
|
|
17
17
|
export function raw_render(proto, parent, child, link, tagTemplate) {
|
|
18
18
|
//获取控制对象
|
|
19
19
|
var controller = new ComponentController();
|
|
20
|
-
//解析
|
|
20
|
+
//解析salt
|
|
21
21
|
resolver_solt(child, controller);
|
|
22
22
|
//控制对象预处理
|
|
23
23
|
controllerCycleTypeTwo(controller, proto, child, link, tagTemplate);
|
|
24
24
|
//beforeRender,可以获取数据而不触发更新
|
|
25
|
-
proto.getBeforeRender().call(controller.
|
|
25
|
+
proto.getBeforeRender().call(controller.originalData);
|
|
26
26
|
//解析指令(模板处理)
|
|
27
27
|
cmdUtility(tagTemplate, proto, controller);
|
|
28
28
|
//mount
|
|
@@ -30,14 +30,14 @@ export function raw_render(proto, parent, child, link, tagTemplate) {
|
|
|
30
30
|
//获取注入引用资源
|
|
31
31
|
injectRefs(controller);
|
|
32
32
|
//渲染后处理
|
|
33
|
-
afterCmd(controller.
|
|
33
|
+
afterCmd(controller.componentAttachedRootElement, proto, controller);
|
|
34
34
|
//后处理(数据渲染)
|
|
35
35
|
afterMethodsTypeTwo(controller, child, link);
|
|
36
36
|
//afterRender,可以操作渲染后的dom
|
|
37
|
-
proto.getAfterRender().call(controller.
|
|
37
|
+
proto.getAfterRender().call(controller.dataForMethod);
|
|
38
38
|
//深度渲染
|
|
39
|
-
findComponent(controller.
|
|
40
|
-
if (proto.
|
|
41
|
-
unBox(controller.
|
|
39
|
+
findComponent(controller.componentAttachedRootElement.children, controller);
|
|
40
|
+
if (proto.getConfig()["mode"] === false) {
|
|
41
|
+
unBox(controller.componentAttachedRootElement);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -8,22 +8,22 @@ import { getTemplate } from "../utility/templateUtility";
|
|
|
8
8
|
*/
|
|
9
9
|
export function update_Render(controller) {
|
|
10
10
|
//生成DOM
|
|
11
|
-
var tagTemplate = getTemplate(controller.
|
|
11
|
+
var tagTemplate = getTemplate(controller.prototypeOfComponent);
|
|
12
12
|
//清除保存的发布对象
|
|
13
|
-
controller.
|
|
13
|
+
controller.slaveComponent = [];
|
|
14
14
|
//解析指令
|
|
15
|
-
cmdUtility(tagTemplate, controller.
|
|
15
|
+
cmdUtility(tagTemplate, controller.prototypeOfComponent, controller);
|
|
16
16
|
//unmount
|
|
17
|
-
while (controller.
|
|
18
|
-
controller.
|
|
17
|
+
while (controller.componentAttachedRootElement.hasChildNodes()) {
|
|
18
|
+
controller.componentAttachedRootElement.removeChild(controller.componentAttachedRootElement.firstChild);
|
|
19
19
|
}
|
|
20
20
|
//mount
|
|
21
21
|
while (tagTemplate.hasChildNodes()) {
|
|
22
|
-
controller.
|
|
22
|
+
controller.componentAttachedRootElement.appendChild(tagTemplate.firstChild);
|
|
23
23
|
}
|
|
24
24
|
injectRefs(controller);
|
|
25
25
|
//渲染后处理
|
|
26
|
-
afterCmd(controller.
|
|
26
|
+
afterCmd(controller.componentAttachedRootElement, controller.prototypeOfComponent, controller);
|
|
27
27
|
//深度渲染
|
|
28
|
-
findComponent(controller.
|
|
28
|
+
findComponent(controller.componentAttachedRootElement.children, controller);
|
|
29
29
|
}
|
package/core/resolver/props.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Property } from "../../index";
|
|
1
2
|
/**
|
|
2
3
|
* This function is used to resolve tag customed properties.
|
|
3
4
|
* @param node
|
|
@@ -36,19 +37,19 @@ export function getAllPropsByObject(node, object) {
|
|
|
36
37
|
for (var objectKey in object) {
|
|
37
38
|
if (node.getAttribute(objectKey)) {
|
|
38
39
|
switch (object[objectKey]) {
|
|
39
|
-
case
|
|
40
|
+
case Property.INT:
|
|
40
41
|
props.set(objectKey, parseInt(node.getAttribute(objectKey)));
|
|
41
42
|
break;
|
|
42
|
-
case
|
|
43
|
+
case Property.FLOAT:
|
|
43
44
|
props.set(objectKey, parseFloat(node.getAttribute(objectKey)));
|
|
44
45
|
break;
|
|
45
|
-
case
|
|
46
|
+
case Property.BOOLEAN:
|
|
46
47
|
props.set(objectKey, parseFloat(node.getAttribute(objectKey)));
|
|
47
48
|
break;
|
|
48
|
-
case
|
|
49
|
+
case Property.STRING:
|
|
49
50
|
props.set(objectKey, node.getAttribute(objectKey));
|
|
50
51
|
break;
|
|
51
|
-
case
|
|
52
|
+
case Property.JSON:
|
|
52
53
|
props.set(objectKey, JSON.parse(node.getAttribute(objectKey)));
|
|
53
54
|
break;
|
|
54
55
|
default:
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { ComponentController } from "../../
|
|
1
|
+
import { ComponentController } from "../../controller/ComponentController";
|
|
2
2
|
import { Component } from "render-refer";
|
|
3
|
+
import { ContextController } from "../../controller/ContextController";
|
|
3
4
|
/**
|
|
4
5
|
* This function is used to resolver those commands which should be executed before mount.
|
|
5
6
|
* @param tagTemplate
|
|
6
7
|
* @param proto
|
|
7
8
|
* @param controller
|
|
8
9
|
*/
|
|
9
|
-
export declare function cmdUtility(tagTemplate: Element, proto: Component, controller: ComponentController): void;
|
|
10
|
+
export declare function cmdUtility(tagTemplate: Element, proto: Component, controller: ComponentController | ContextController): void;
|
|
10
11
|
/**
|
|
11
12
|
* This function is used to resolver those commands which should be executed after mount.
|
|
12
13
|
* @param templateSpace
|
|
13
14
|
* @param proto
|
|
14
15
|
* @param controller
|
|
15
16
|
*/
|
|
16
|
-
export declare function afterCmd(templateSpace: ParentNode, proto: Component, controller: ComponentController): void;
|
|
17
|
+
export declare function afterCmd(templateSpace: ParentNode, proto: Component, controller: ComponentController | ContextController): void;
|
|
@@ -9,7 +9,7 @@ import { resolver_render } from "../cmd/justify/v-render";
|
|
|
9
9
|
import { resolver_if } from "../cmd/justify/v-if";
|
|
10
10
|
import { resolver_switch } from "../cmd/justify/v-switch";
|
|
11
11
|
import { resolver_for_of } from "../cmd/loop/v-for";
|
|
12
|
-
import {
|
|
12
|
+
import { extract_salt } from "../cmd/solt/v-solt";
|
|
13
13
|
import { resolver_expression } from "../cmd/data/v-el";
|
|
14
14
|
import { resolver_for_map } from "../cmd/loop/v-map";
|
|
15
15
|
/**
|
|
@@ -22,17 +22,17 @@ export function cmdUtility(tagTemplate, proto, controller) {
|
|
|
22
22
|
//给所有元素添加上npm=tag标志
|
|
23
23
|
addLabel(tagTemplate.children, proto.getName());
|
|
24
24
|
//将元素事件绑定到元素上
|
|
25
|
-
resolver_event(tagTemplate.children, proto.getMethods(), controller.
|
|
25
|
+
resolver_event(tagTemplate.children, proto.getMethods(), controller.dataForMethod, controller.originalData);
|
|
26
26
|
//渲染html
|
|
27
|
-
resolver_html(tagTemplate.children, controller.
|
|
27
|
+
resolver_html(tagTemplate.children, controller.dataForMethod, controller);
|
|
28
28
|
//渲染text
|
|
29
|
-
resolver_txt(tagTemplate.children, controller.
|
|
29
|
+
resolver_txt(tagTemplate.children, controller.dataForMethod, controller);
|
|
30
30
|
//绑定数据
|
|
31
|
-
resolver_model(tagTemplate.children, controller.
|
|
31
|
+
resolver_model(tagTemplate.children, controller.dataForMethod);
|
|
32
32
|
//渲染属性
|
|
33
|
-
resolver_bind(tagTemplate.children, controller.
|
|
34
|
-
//
|
|
35
|
-
|
|
33
|
+
resolver_bind(tagTemplate.children, controller.dataForMethod);
|
|
34
|
+
//salt
|
|
35
|
+
extract_salt(tagTemplate.children, controller);
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* This function is used to resolver those commands which should be executed after mount.
|
|
@@ -42,17 +42,17 @@ export function cmdUtility(tagTemplate, proto, controller) {
|
|
|
42
42
|
*/
|
|
43
43
|
export function afterCmd(templateSpace, proto, controller) {
|
|
44
44
|
//v-show
|
|
45
|
-
resolver_show(templateSpace.children, controller.
|
|
45
|
+
resolver_show(templateSpace.children, controller.dataForMethod);
|
|
46
46
|
//v-render
|
|
47
|
-
resolver_render(templateSpace.children, controller.
|
|
47
|
+
resolver_render(templateSpace.children, controller.dataForMethod);
|
|
48
48
|
//v-if
|
|
49
|
-
resolver_if(templateSpace.children, controller.
|
|
49
|
+
resolver_if(templateSpace.children, controller.dataForMethod);
|
|
50
50
|
//v-switch
|
|
51
|
-
resolver_switch(templateSpace.children, controller.
|
|
51
|
+
resolver_switch(templateSpace.children, controller.dataForMethod);
|
|
52
52
|
//v-for-each
|
|
53
|
-
resolver_for_map(templateSpace.children, controller.
|
|
53
|
+
resolver_for_map(templateSpace.children, controller.dataForMethod);
|
|
54
54
|
//v-for-of
|
|
55
|
-
resolver_for_of(templateSpace.children, controller.
|
|
55
|
+
resolver_for_of(templateSpace.children, controller.dataForMethod);
|
|
56
56
|
//v-el
|
|
57
|
-
resolver_expression(controller.
|
|
57
|
+
resolver_expression(controller.componentAttachedRootElement, controller.dataForMethod, controller);
|
|
58
58
|
}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import { ComponentController } from "../../proto/controller/ComponentController";
|
|
2
|
-
import { PageController } from "../../proto/controller/PageController";
|
|
3
1
|
export declare function getCodeSpaceForProps(data: {}, $props: Map<string, object>): void;
|
|
4
2
|
export declare function getCodeSpaceForQuery(data: {}, $query: Map<string, any>): void;
|
|
5
3
|
export declare function getCodeSpaceForRef(data: {}, $ref: Map<string, Element>): void;
|
|
6
|
-
export declare function getCommitMethod(controller: ComponentController | PageController): any;
|
|
7
|
-
export declare function getSetterMethod(controller: ComponentController | PageController): any;
|
|
8
|
-
export declare function getGetterMethod(controller: ComponentController | PageController): any;
|
|
9
4
|
export declare function getCodeSpaceForCommit(data: {}, commit: any): void;
|
|
10
|
-
export declare function getPublishMethod(controller: ComponentController | PageController): any;
|
|
11
5
|
export declare function getCodeSpaceForPublish(data: {}, publisher: any): void;
|
|
12
6
|
export declare function getSetCodeSpaceForProperty(data: {}, setter: any): void;
|
|
13
7
|
export declare function getGetCodeSpaceForProperty(data: {}, getter: any): void;
|
|
@@ -2,50 +2,16 @@ export function getCodeSpaceForProps(data, $props) {
|
|
|
2
2
|
Reflect.set(data, "$props", $props);
|
|
3
3
|
}
|
|
4
4
|
export function getCodeSpaceForQuery(data, $query) {
|
|
5
|
-
Reflect.set(data, "$
|
|
5
|
+
Reflect.set(data, "$params", $query);
|
|
6
6
|
}
|
|
7
7
|
//注入对象
|
|
8
8
|
export function getCodeSpaceForRef(data, $ref) {
|
|
9
9
|
Reflect.set(data, "$refs", $ref);
|
|
10
10
|
}
|
|
11
|
-
export function getCommitMethod(controller) {
|
|
12
|
-
var commit = function (method) {
|
|
13
|
-
var args = [];
|
|
14
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
15
|
-
args[_i - 1] = arguments[_i];
|
|
16
|
-
}
|
|
17
|
-
return this.receiver(method, args);
|
|
18
|
-
};
|
|
19
|
-
return commit.bind(controller);
|
|
20
|
-
}
|
|
21
|
-
export function getSetterMethod(controller) {
|
|
22
|
-
var setter = function (property, value) {
|
|
23
|
-
this[property] = value;
|
|
24
|
-
};
|
|
25
|
-
return setter.bind(controller.proxyForMethods);
|
|
26
|
-
}
|
|
27
|
-
export function getGetterMethod(controller) {
|
|
28
|
-
var setter = function (property) {
|
|
29
|
-
return this[property];
|
|
30
|
-
};
|
|
31
|
-
return setter.bind(controller.proxyForMethods);
|
|
32
|
-
}
|
|
33
11
|
//注入对象
|
|
34
12
|
export function getCodeSpaceForCommit(data, commit) {
|
|
35
13
|
Reflect.set(data, "$commit", commit);
|
|
36
14
|
}
|
|
37
|
-
export function getPublishMethod(controller) {
|
|
38
|
-
var publisher = function (method) {
|
|
39
|
-
var args = [];
|
|
40
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
41
|
-
args[_i - 1] = arguments[_i];
|
|
42
|
-
}
|
|
43
|
-
for (var i = 0; i < this.to.length; i++) {
|
|
44
|
-
this.to[i].receiver(method, args);
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
return publisher.bind(controller);
|
|
48
|
-
}
|
|
49
15
|
//注入对象
|
|
50
16
|
export function getCodeSpaceForPublish(data, publisher) {
|
|
51
17
|
Reflect.set(data, "$publish", publisher);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ComponentController } from "../../
|
|
1
|
+
import { ComponentController } from "../../controller/ComponentController";
|
|
2
2
|
export declare function textType(target: any, doc: any, controller: ComponentController): void;
|
|
3
|
-
export declare function assignType(target: any,
|
|
4
|
-
export declare function fileType(target: any,
|
|
3
|
+
export declare function assignType(target: any, controller: ComponentController): void;
|
|
4
|
+
export declare function fileType(target: any, controller: ComponentController): void;
|
|
5
5
|
export declare function checkType(target: any): void;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
export function textType(target, doc, controller) {
|
|
2
2
|
// @ts-ignore
|
|
3
|
-
target.value = controller.
|
|
3
|
+
target.value = controller.dataForMethod[target.getAttribute("name")];
|
|
4
4
|
// @ts-ignore
|
|
5
5
|
target.focus();
|
|
6
6
|
// @ts-ignore
|
|
7
7
|
target.setSelectionRange(doc.start, doc.start);
|
|
8
8
|
}
|
|
9
|
-
export function assignType(target,
|
|
9
|
+
export function assignType(target, controller) {
|
|
10
10
|
// @ts-ignore
|
|
11
|
-
target.value = controller.
|
|
11
|
+
target.value = controller.dataForMethod[target.getAttribute("name")];
|
|
12
12
|
}
|
|
13
|
-
export function fileType(target,
|
|
13
|
+
export function fileType(target, controller) {
|
|
14
14
|
// @ts-ignore
|
|
15
|
-
target.files = controller.
|
|
15
|
+
target.files = controller.dataForMethod[target.getAttribute("name")];
|
|
16
16
|
}
|
|
17
17
|
export function checkType(target) {
|
|
18
18
|
// @ts-ignore
|
|
@@ -2,3 +2,4 @@ export declare function inputUtility(element: Element, space: Object): void;
|
|
|
2
2
|
export declare function filesType(element: Element, space: Object): void;
|
|
3
3
|
export declare function selectUtility(element: Element, space: Object): void;
|
|
4
4
|
export declare function textareaUtility(element: Element, space: Object): void;
|
|
5
|
+
export declare function changeUtility(element: Element, space: Object): void;
|
|
@@ -98,3 +98,11 @@ export function textareaUtility(element, space) {
|
|
|
98
98
|
start: element.selectionStart
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
|
+
export function changeUtility(element, space) {
|
|
102
|
+
Reflect.set(space, "origin", {
|
|
103
|
+
tag: element.tagName,
|
|
104
|
+
id: element.getAttribute("id"),
|
|
105
|
+
// @ts-ignore
|
|
106
|
+
start: element.selectionStart
|
|
107
|
+
});
|
|
108
|
+
}
|
|
@@ -5,8 +5,8 @@ import { assignType, checkType, fileType, textType } from "./inputType";
|
|
|
5
5
|
*/
|
|
6
6
|
export function locateInputAddress(controller) {
|
|
7
7
|
//判断是否是输入导致的数据更新
|
|
8
|
-
if (controller.
|
|
9
|
-
var doc = Reflect.get(controller.
|
|
8
|
+
if (controller.dataForMethod.hasOwnProperty("origin")) {
|
|
9
|
+
var doc = Reflect.get(controller.dataForMethod, "origin");
|
|
10
10
|
var target = document.getElementById(doc.id);
|
|
11
11
|
switch (doc.tag) {
|
|
12
12
|
case "INPUT":
|
|
@@ -18,6 +18,9 @@ export function locateInputAddress(controller) {
|
|
|
18
18
|
case "TEXTAREA":
|
|
19
19
|
locateTextArea(target, doc, controller);
|
|
20
20
|
break;
|
|
21
|
+
default:
|
|
22
|
+
console.log("Can't locate input address");
|
|
23
|
+
break;
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
26
|
}
|
|
@@ -27,13 +30,13 @@ function locateInput(target, doc, controller) {
|
|
|
27
30
|
textType(target, doc, controller);
|
|
28
31
|
break;
|
|
29
32
|
case "color":
|
|
30
|
-
assignType(target,
|
|
33
|
+
assignType(target, controller);
|
|
31
34
|
break;
|
|
32
35
|
case "date":
|
|
33
|
-
assignType(target,
|
|
36
|
+
assignType(target, controller);
|
|
34
37
|
break;
|
|
35
38
|
case "time":
|
|
36
|
-
assignType(target,
|
|
39
|
+
assignType(target, controller);
|
|
37
40
|
break;
|
|
38
41
|
case "email":
|
|
39
42
|
textType(target, doc, controller);
|
|
@@ -42,7 +45,7 @@ function locateInput(target, doc, controller) {
|
|
|
42
45
|
textType(target, doc, controller);
|
|
43
46
|
break;
|
|
44
47
|
case "week":
|
|
45
|
-
assignType(target,
|
|
48
|
+
assignType(target, controller);
|
|
46
49
|
break;
|
|
47
50
|
case "tel":
|
|
48
51
|
textType(target, doc, controller);
|
|
@@ -51,7 +54,7 @@ function locateInput(target, doc, controller) {
|
|
|
51
54
|
textType(target, doc, controller);
|
|
52
55
|
break;
|
|
53
56
|
case "range":
|
|
54
|
-
assignType(target,
|
|
57
|
+
assignType(target, controller);
|
|
55
58
|
break;
|
|
56
59
|
case "radio":
|
|
57
60
|
checkType(target);
|
|
@@ -63,31 +66,31 @@ function locateInput(target, doc, controller) {
|
|
|
63
66
|
textType(target, doc, controller);
|
|
64
67
|
break;
|
|
65
68
|
case "month":
|
|
66
|
-
assignType(target,
|
|
69
|
+
assignType(target, controller);
|
|
67
70
|
break;
|
|
68
71
|
case "hidden":
|
|
69
|
-
assignType(target,
|
|
72
|
+
assignType(target, controller);
|
|
70
73
|
break;
|
|
71
74
|
case "file":
|
|
72
|
-
fileType(target,
|
|
75
|
+
fileType(target, controller);
|
|
73
76
|
break;
|
|
74
77
|
case "datetime-local":
|
|
75
|
-
assignType(target,
|
|
78
|
+
assignType(target, controller);
|
|
76
79
|
break;
|
|
77
80
|
case "datetime":
|
|
78
|
-
assignType(target,
|
|
81
|
+
assignType(target, controller);
|
|
79
82
|
break;
|
|
80
83
|
case "checkbox":
|
|
81
|
-
assignType(target,
|
|
84
|
+
assignType(target, controller);
|
|
82
85
|
break;
|
|
83
86
|
default:
|
|
84
|
-
console.log("This type input can`t be
|
|
87
|
+
console.log("This type input can`t be tackled!");
|
|
85
88
|
break;
|
|
86
89
|
}
|
|
87
90
|
}
|
|
88
91
|
function locateTextArea(target, doc, controller) {
|
|
89
92
|
// @ts-ignore
|
|
90
|
-
target.value = controller.
|
|
93
|
+
target.value = controller.dataForMethod[target.getAttribute("name")];
|
|
91
94
|
// @ts-ignore
|
|
92
95
|
target.focus();
|
|
93
96
|
// @ts-ignore
|