render-core 1.0.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/class/apiComponent.d.ts +55 -0
- package/class/apiComponent.js +111 -0
- package/class/apiController.d.ts +13 -0
- package/class/apiController.js +16 -0
- package/class/component.d.ts +63 -0
- package/class/component.js +131 -0
- package/class/controller.d.ts +12 -0
- package/class/controller.js +18 -0
- package/core/cmd/v-bind.d.ts +1 -0
- package/core/cmd/v-bind.js +25 -0
- package/core/cmd/v-el.d.ts +0 -0
- package/core/cmd/v-el.js +0 -0
- package/core/cmd/v-for.d.ts +0 -0
- package/core/cmd/v-for.js +0 -0
- package/core/cmd/v-html.d.ts +1 -0
- package/core/cmd/v-html.js +13 -0
- package/core/cmd/v-if.d.ts +0 -0
- package/core/cmd/v-if.js +0 -0
- package/core/cmd/v-model.d.ts +1 -0
- package/core/cmd/v-model.js +34 -0
- package/core/cmd/v-on.d.ts +1 -0
- package/core/cmd/v-on.js +25 -0
- package/core/cmd/v-ref.d.ts +1 -0
- package/core/cmd/v-ref.js +10 -0
- package/core/cmd/v-render.d.ts +1 -0
- package/core/cmd/v-render.js +21 -0
- package/core/cmd/v-show.d.ts +1 -0
- package/core/cmd/v-show.js +21 -0
- package/core/cmd/v-txt.d.ts +1 -0
- package/core/cmd/v-txt.js +13 -0
- package/core/proxy/getProxy.d.ts +5 -0
- package/core/proxy/getProxy.js +19 -0
- package/core/render/apiRender.d.ts +4 -0
- package/core/render/apiRender.js +60 -0
- package/core/render/depthRender.d.ts +5 -0
- package/core/render/depthRender.js +198 -0
- package/core/render/initRender.d.ts +5 -0
- package/core/render/initRender.js +87 -0
- package/core/render/updateRender.d.ts +2 -0
- package/core/render/updateRender.js +50 -0
- package/core/resolver/props.d.ts +1 -0
- package/core/resolver/props.js +14 -0
- package/core/resolver/query.d.ts +1 -0
- package/core/resolver/query.js +13 -0
- package/core/utility/checkUtility.d.ts +1 -0
- package/core/utility/checkUtility.js +4 -0
- package/core/utility/injectUtility.d.ts +10 -0
- package/core/utility/injectUtility.js +47 -0
- package/core/utility/miscUtility.d.ts +4 -0
- package/core/utility/miscUtility.js +55 -0
- package/core/utility/styleUtility.d.ts +1 -0
- package/core/utility/styleUtility.js +12 -0
- package/index.d.ts +28 -0
- package/index.js +64 -0
- package/library/getter/getter.d.ts +1 -0
- package/library/getter/getter.js +6 -0
- package/library/loader/loader.d.ts +1 -0
- package/library/loader/loader.js +11 -0
- package/library/setter/setter.d.ts +5 -0
- package/library/setter/setter.js +23 -0
- package/library/tag/extend.d.ts +14 -0
- package/library/tag/extend.js +4 -0
- package/meta/meta.d.ts +4 -0
- package/meta/meta.js +3 -0
- package/package.json +16 -0
- package/runtime/database/metaTagLib.d.ts +2 -0
- package/runtime/database/metaTagLib.js +27 -0
- package/runtime/runtime.d.ts +2 -0
- package/runtime/runtime.js +16 -0
package/index.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Component } from "./class/component";
|
|
2
|
+
import ApiComponent from "./class/apiComponent";
|
|
3
|
+
import meta from "./meta/meta";
|
|
4
|
+
import { renderHtml } from "./runtime/runtime";
|
|
5
|
+
import { apiRender } from "./core/render/apiRender";
|
|
6
|
+
import { ApiController } from "./class/apiController";
|
|
7
|
+
//页面RenderJs
|
|
8
|
+
var RenderJS = /** @class */ (function () {
|
|
9
|
+
//构造函数
|
|
10
|
+
function RenderJS() {
|
|
11
|
+
this.tagLib = new Map();
|
|
12
|
+
this.version = meta.version;
|
|
13
|
+
}
|
|
14
|
+
//添加自定义标签
|
|
15
|
+
RenderJS.prototype.addTag = function (component) {
|
|
16
|
+
var _this = this;
|
|
17
|
+
if (component instanceof Component) {
|
|
18
|
+
if (!this.tagLib.has(component.getName().toUpperCase())) {
|
|
19
|
+
this.tagLib.set(component.getName().toUpperCase(), component);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.warn("The Tag:" + component.getName().toUpperCase() + "has been registered!");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
component.forEach(function (component) {
|
|
27
|
+
if (!_this.tagLib.has(component.getName().toUpperCase())) {
|
|
28
|
+
_this.tagLib.set(component.getName().toUpperCase(), component);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.warn("The Tag:" + component.getName().toUpperCase() + "has been registered!");
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
//运行renderJs
|
|
37
|
+
RenderJS.prototype.run = function () {
|
|
38
|
+
Reflect.set(window, "tagLib", this.tagLib);
|
|
39
|
+
renderHtml(document.body.children, this.tagLib);
|
|
40
|
+
};
|
|
41
|
+
return RenderJS;
|
|
42
|
+
}());
|
|
43
|
+
export { RenderJS };
|
|
44
|
+
//嵌入式RenderJs
|
|
45
|
+
var EmbedRenderJs = /** @class */ (function () {
|
|
46
|
+
//构造函数
|
|
47
|
+
function EmbedRenderJs(config) {
|
|
48
|
+
this.apiComponent = new ApiComponent(config);
|
|
49
|
+
}
|
|
50
|
+
//渲染嵌入式app
|
|
51
|
+
EmbedRenderJs.prototype.render = function (selector) {
|
|
52
|
+
this.controller = apiRender(this.apiComponent, document.getElementById(selector), this.apiComponent.getName(), Reflect.get(window, "tagLib"), new ApiController());
|
|
53
|
+
};
|
|
54
|
+
//与嵌入式app交互
|
|
55
|
+
EmbedRenderJs.prototype.commit = function (method) {
|
|
56
|
+
var args = [];
|
|
57
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
58
|
+
args[_i - 1] = arguments[_i];
|
|
59
|
+
}
|
|
60
|
+
return this.controller[method](args);
|
|
61
|
+
};
|
|
62
|
+
return EmbedRenderJs;
|
|
63
|
+
}());
|
|
64
|
+
export { EmbedRenderJs };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getGetter(data: {}): any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function loadStyle(data: string, tag: string): void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { checkStyleLabel } from "../../core/utility/styleUtility";
|
|
2
|
+
export function loadStyle(data, tag) {
|
|
3
|
+
if (!checkStyleLabel(tag)) {
|
|
4
|
+
var style = document.createElement('style');
|
|
5
|
+
var text = document.createTextNode(data);
|
|
6
|
+
style.appendChild(text);
|
|
7
|
+
style.setAttribute("tag", tag.toUpperCase());
|
|
8
|
+
var head = document.getElementsByTagName('head')[0];
|
|
9
|
+
head.appendChild(style);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Controller } from "../../class/controller";
|
|
2
|
+
import { ApiController } from "../../class/apiController";
|
|
3
|
+
export declare function getSetter(data: {}, updater: Controller): any;
|
|
4
|
+
export declare function getSetterForInject(data: {}): (obj: any, prop: any, value: any) => boolean;
|
|
5
|
+
export declare function getSetterForApi(data: {}, updater: ApiController): any;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { updateRender } from "../../core/render/updateRender";
|
|
2
|
+
export function getSetter(data, updater) {
|
|
3
|
+
var setter = function (obj, prop, value) {
|
|
4
|
+
obj[prop] = value;
|
|
5
|
+
updateRender(this);
|
|
6
|
+
return true;
|
|
7
|
+
};
|
|
8
|
+
return setter.bind(updater);
|
|
9
|
+
}
|
|
10
|
+
export function getSetterForInject(data) {
|
|
11
|
+
return function (obj, prop, value) {
|
|
12
|
+
console.error("Meta filed can't be set value!");
|
|
13
|
+
return false;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function getSetterForApi(data, updater) {
|
|
17
|
+
var setter = function (obj, prop, value) {
|
|
18
|
+
obj[prop] = value;
|
|
19
|
+
updateRender(this);
|
|
20
|
+
return true;
|
|
21
|
+
};
|
|
22
|
+
return setter.bind(updater);
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function extendTag(component: {
|
|
2
|
+
name: string;
|
|
3
|
+
template: string;
|
|
4
|
+
data?: {};
|
|
5
|
+
computed?: {};
|
|
6
|
+
methods?: {};
|
|
7
|
+
components?: {};
|
|
8
|
+
beforeRender?: () => void;
|
|
9
|
+
afterRender?: () => void;
|
|
10
|
+
beforeUpdate?: () => void;
|
|
11
|
+
afterUpdate?: () => void;
|
|
12
|
+
beforeMount?: () => void;
|
|
13
|
+
beforeUnmount?: () => void;
|
|
14
|
+
}): any;
|
package/meta/meta.d.ts
ADDED
package/meta/meta.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "render-core",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "The router for render-js",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com//render-js/render.git"
|
|
13
|
+
},
|
|
14
|
+
"author": "mutian",
|
|
15
|
+
"license": "MIT"
|
|
16
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var metaTagLib = [];
|
|
2
|
+
var tableTag = ["FORM", "INPUT", "TEXTAREA", "BUTTON", "SELECT", "OPTGROUP", "OPTION", "LABEL", "FIELDSET", "LEGEND", "DATALIST", "KEYGEN", "OUTPUT"];
|
|
3
|
+
metaTagLib = metaTagLib.concat(tableTag);
|
|
4
|
+
var frameTag = ["FRAME", "FRAMESET", "NOFRAMES", "IFRAME"];
|
|
5
|
+
metaTagLib = metaTagLib.concat(frameTag);
|
|
6
|
+
var imgTag = ["IMG", "MAP", "AREA", "CANVAS", "FIGCAPTION", "FIGURE", "AUDIO", "VIDEO", "SOURCE", "TRACK"];
|
|
7
|
+
metaTagLib = metaTagLib.concat(imgTag);
|
|
8
|
+
var linkTag = ["A", "LINK", "MAIN", "NAV"];
|
|
9
|
+
metaTagLib = metaTagLib.concat(linkTag);
|
|
10
|
+
var listTag = ["UL", "OL", "LI", "DIR", "DL", "DT", "DD", "MENU", "COMMAND"];
|
|
11
|
+
metaTagLib = metaTagLib.concat(listTag);
|
|
12
|
+
var titleTag = ["H1", "H2", "H3", "H4", "H5", "H6"];
|
|
13
|
+
metaTagLib = metaTagLib.concat(titleTag);
|
|
14
|
+
var tbTag = ["TABLE", "CAPTION", "TH", "TR", "TD", "THEAD", "TBODY", "TFOOT", "COL", "COLGROUP"];
|
|
15
|
+
metaTagLib = metaTagLib.concat(tbTag);
|
|
16
|
+
var styleTag = ["STYLE", "DIV", "SPAN", "HEADER", "FOOTER", "SECTION", "ARTICLE", "ASIDE", "DETAILS", "DIALOG", "SUMMARY"];
|
|
17
|
+
metaTagLib = metaTagLib.concat(styleTag);
|
|
18
|
+
var metaTag = ["HEAD", "META", "BASE", "BASEFONT"];
|
|
19
|
+
metaTagLib = metaTagLib.concat(metaTag);
|
|
20
|
+
var programTag = ["SCRIPT", "NOSCRIPT", "APPLET", "EMBED", "OBJECT", "PARAM"];
|
|
21
|
+
metaTagLib = metaTagLib.concat(programTag);
|
|
22
|
+
var formTag = ["ACRONYM", "ABBR", "ADDRESS", "B", "BDI", "BDO", "BIG", "BLOCKQUOTE", "CENTER", "CITE", "CODE", "DEL", "DFN", "EM", "FONT", "I", "INS", "KBD", "MARK", "METER", "PRE", "PROGRESS", "Q", "RP", "RT", "RUBY", "S", "SAMP", "SMALL", "STRIKE", "STRONG", "SUB", "SUP", "TIME", "TT", "U", "VAR", "WBR"];
|
|
23
|
+
metaTagLib = metaTagLib.concat(formTag);
|
|
24
|
+
var baseTag = ["!DOCTYPE", "HTML", "TITLE", "BODY", "P", "BR", "HR", "!--...--"];
|
|
25
|
+
metaTagLib = metaTagLib.concat(baseTag);
|
|
26
|
+
//返回数组
|
|
27
|
+
export default metaTagLib;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { isUnKnown } from "../core/utility/checkUtility";
|
|
2
|
+
import { resolver } from "../core/utility/miscUtility";
|
|
3
|
+
//检查元素是否为基元素
|
|
4
|
+
export function renderHtml(collection, tagLib) {
|
|
5
|
+
//遍历element节点,判断是否为自定义标签
|
|
6
|
+
for (var i = 0; i < collection.length; i++) {
|
|
7
|
+
if (isUnKnown(collection[i].nodeName.toUpperCase())) {
|
|
8
|
+
//自定义标签
|
|
9
|
+
resolver(collection[i], tagLib);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
//非自定义标签,深度解析
|
|
13
|
+
renderHtml(collection[i].children, tagLib);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|