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.
Files changed (69) hide show
  1. package/class/apiComponent.d.ts +55 -0
  2. package/class/apiComponent.js +111 -0
  3. package/class/apiController.d.ts +13 -0
  4. package/class/apiController.js +16 -0
  5. package/class/component.d.ts +63 -0
  6. package/class/component.js +131 -0
  7. package/class/controller.d.ts +12 -0
  8. package/class/controller.js +18 -0
  9. package/core/cmd/v-bind.d.ts +1 -0
  10. package/core/cmd/v-bind.js +25 -0
  11. package/core/cmd/v-el.d.ts +0 -0
  12. package/core/cmd/v-el.js +0 -0
  13. package/core/cmd/v-for.d.ts +0 -0
  14. package/core/cmd/v-for.js +0 -0
  15. package/core/cmd/v-html.d.ts +1 -0
  16. package/core/cmd/v-html.js +13 -0
  17. package/core/cmd/v-if.d.ts +0 -0
  18. package/core/cmd/v-if.js +0 -0
  19. package/core/cmd/v-model.d.ts +1 -0
  20. package/core/cmd/v-model.js +34 -0
  21. package/core/cmd/v-on.d.ts +1 -0
  22. package/core/cmd/v-on.js +25 -0
  23. package/core/cmd/v-ref.d.ts +1 -0
  24. package/core/cmd/v-ref.js +10 -0
  25. package/core/cmd/v-render.d.ts +1 -0
  26. package/core/cmd/v-render.js +21 -0
  27. package/core/cmd/v-show.d.ts +1 -0
  28. package/core/cmd/v-show.js +21 -0
  29. package/core/cmd/v-txt.d.ts +1 -0
  30. package/core/cmd/v-txt.js +13 -0
  31. package/core/proxy/getProxy.d.ts +5 -0
  32. package/core/proxy/getProxy.js +19 -0
  33. package/core/render/apiRender.d.ts +4 -0
  34. package/core/render/apiRender.js +60 -0
  35. package/core/render/depthRender.d.ts +5 -0
  36. package/core/render/depthRender.js +198 -0
  37. package/core/render/initRender.d.ts +5 -0
  38. package/core/render/initRender.js +87 -0
  39. package/core/render/updateRender.d.ts +2 -0
  40. package/core/render/updateRender.js +50 -0
  41. package/core/resolver/props.d.ts +1 -0
  42. package/core/resolver/props.js +14 -0
  43. package/core/resolver/query.d.ts +1 -0
  44. package/core/resolver/query.js +13 -0
  45. package/core/utility/checkUtility.d.ts +1 -0
  46. package/core/utility/checkUtility.js +4 -0
  47. package/core/utility/injectUtility.d.ts +10 -0
  48. package/core/utility/injectUtility.js +47 -0
  49. package/core/utility/miscUtility.d.ts +4 -0
  50. package/core/utility/miscUtility.js +55 -0
  51. package/core/utility/styleUtility.d.ts +1 -0
  52. package/core/utility/styleUtility.js +12 -0
  53. package/index.d.ts +28 -0
  54. package/index.js +64 -0
  55. package/library/getter/getter.d.ts +1 -0
  56. package/library/getter/getter.js +6 -0
  57. package/library/loader/loader.d.ts +1 -0
  58. package/library/loader/loader.js +11 -0
  59. package/library/setter/setter.d.ts +5 -0
  60. package/library/setter/setter.js +23 -0
  61. package/library/tag/extend.d.ts +14 -0
  62. package/library/tag/extend.js +4 -0
  63. package/meta/meta.d.ts +4 -0
  64. package/meta/meta.js +3 -0
  65. package/package.json +16 -0
  66. package/runtime/database/metaTagLib.d.ts +2 -0
  67. package/runtime/database/metaTagLib.js +27 -0
  68. package/runtime/runtime.d.ts +2 -0
  69. 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,6 @@
1
+ export function getGetter(data) {
2
+ var getter = function (obj, prop) {
3
+ return obj[prop];
4
+ };
5
+ return getter.bind(data);
6
+ }
@@ -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;
@@ -0,0 +1,4 @@
1
+ import { Component } from "../../class/component";
2
+ export function extendTag(component) {
3
+ return new Component(component);
4
+ }
package/meta/meta.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ version: string;
3
+ };
4
+ export default _default;
package/meta/meta.js ADDED
@@ -0,0 +1,3 @@
1
+ export default {
2
+ version: "2.0.0",
3
+ };
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,2 @@
1
+ declare let metaTagLib: string[];
2
+ export default metaTagLib;
@@ -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,2 @@
1
+ import { Component } from "../class/component";
2
+ export declare function renderHtml(collection: HTMLCollection, tagLib: Map<string, Component>): void;
@@ -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
+ }