render-core 1.0.70 → 1.0.72

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.
@@ -3,6 +3,7 @@ import { Controller } from "./controller";
3
3
  export declare class ApiController {
4
4
  root: ParentNode;
5
5
  proto: ApiComponent;
6
+ solt: Map<string, any>;
6
7
  preRender: boolean;
7
8
  link: Map<string, {}>;
8
9
  to: Controller[];
@@ -2,6 +2,7 @@ var ApiController = /** @class */ (function () {
2
2
  function ApiController() {
3
3
  this.link = new Map();
4
4
  this.preRender = false;
5
+ this.solt = new Map();
5
6
  }
6
7
  //接收器
7
8
  ApiController.prototype.receiver = function (method) {
@@ -2,6 +2,7 @@ import { Component } from "../component/component";
2
2
  export declare class Controller {
3
3
  root: ParentNode;
4
4
  proto: Component;
5
+ solt: Map<string, any>;
5
6
  link: Map<string, {}>;
6
7
  to: Controller[];
7
8
  raw_data: {};
@@ -4,6 +4,7 @@ var Controller = /** @class */ (function () {
4
4
  this.link = new Map();
5
5
  this.to = Array();
6
6
  this.raw_data = {};
7
+ this.solt = new Map();
7
8
  }
8
9
  //接收器
9
10
  Controller.prototype.receiver = function (method) {
@@ -2,6 +2,7 @@ import { Controller } from "./controller";
2
2
  export declare class PageController {
3
3
  private methods;
4
4
  private currentTag;
5
+ solt: Map<string, any>;
5
6
  raw_data: {};
6
7
  to: Controller[];
7
8
  link: Map<string, {}>;
@@ -6,6 +6,7 @@ var PageController = /** @class */ (function () {
6
6
  this.link = new Map();
7
7
  this.to = Array();
8
8
  this.crtTag = null;
9
+ this.solt = new Map();
9
10
  }
10
11
  //接收器
11
12
  PageController.prototype.receiver = function (method) {
package/core/cmd/v-for.js CHANGED
@@ -36,6 +36,7 @@ export function resolver_for_each(elements, data) {
36
36
  elements[i].removeAttribute("v-for-each");
37
37
  if (data[dataName] instanceof Object) {
38
38
  extractForMap(elements[i].parentNode, elements[i], data[dataName]);
39
+ i++;
39
40
  }
40
41
  else {
41
42
  console.log("Instruction v-for-of need an object datatype to extract!");
@@ -43,6 +44,8 @@ export function resolver_for_each(elements, data) {
43
44
  //将模板节点删除
44
45
  elements[i].parentNode.removeChild(elements[i]);
45
46
  }
46
- resolver_for_each(elements[i].children, data);
47
+ if (elements[i]) {
48
+ resolver_for_each(elements[i].children, data);
49
+ }
47
50
  }
48
51
  }
@@ -7,26 +7,21 @@ import { part_render_map } from "../render/partRender";
7
7
  */
8
8
  export function resolver_array_single(element, index, data) {
9
9
  //解析data
10
- var result = element.hasAttribute("v-data");
11
- if (result) {
10
+ if (element.hasAttribute("v-data")) {
12
11
  element.removeAttribute("v-data");
13
12
  // @ts-ignore
14
13
  element.innerText = data;
15
14
  }
16
15
  //解析index
17
- result = element.hasAttribute("v-index");
18
- if (result) {
16
+ if (element.hasAttribute("v-index")) {
19
17
  element.removeAttribute("v-index");
20
18
  // @ts-ignore
21
19
  element.innerText = data;
22
20
  }
23
21
  //检查v-for-item
24
- result = element.hasAttribute("v-for-item");
25
- if (result) {
22
+ if (element.hasAttribute("v-for-item")) {
26
23
  element.removeAttribute("v-for-item");
27
- for (var keyItem in data) {
28
- part_render_map(element.parentNode, element, data[keyItem]);
29
- }
24
+ part_render_map(element.parentNode, element, data);
30
25
  //删除节点
31
26
  element.parentNode.removeChild(element);
32
27
  }
@@ -37,27 +32,27 @@ export function resolver_array_single(element, index, data) {
37
32
  export function resolver_array_multi(elements, index, data) {
38
33
  for (var i = 0; i < elements.length; i++) {
39
34
  //解析data
40
- var result = elements[i].hasAttribute("v-data");
41
- if (result) {
35
+ if (elements[i].hasAttribute("v-data")) {
42
36
  elements[i].removeAttribute("v-data");
43
37
  // @ts-ignore
44
38
  elements[i].innerText = data;
45
39
  }
46
40
  //解析index
47
- result = elements[i].hasAttribute("v-index");
48
- if (result) {
41
+ if (elements[i].hasAttribute("v-index")) {
49
42
  elements[i].removeAttribute("v-index");
50
43
  // @ts-ignore
51
44
  elements[i].innerText = index;
52
45
  }
53
46
  //检查v-for-item
54
- result = elements[i].hasAttribute("v-for-item");
55
- if (result) {
47
+ if (elements[i].hasAttribute("v-for-item")) {
56
48
  elements[i].removeAttribute("v-for-item");
57
49
  part_render_map(elements[i].parentNode, elements[i], data);
50
+ i++;
58
51
  //删除节点
59
52
  elements[i].parentNode.removeChild(elements[i]);
60
53
  }
61
- resolver_array_multi(elements[i].children, index, data);
54
+ if (elements[i]) {
55
+ resolver_array_multi(elements[i].children, index, data);
56
+ }
62
57
  }
63
58
  }
package/core/cmd/v-key.js CHANGED
@@ -33,25 +33,23 @@ export function resolver_map_single(element, data) {
33
33
  export function resolver_map_multi(elements, data) {
34
34
  var _loop_1 = function (i) {
35
35
  //检查v-key
36
- var result = elements[i].hasAttribute("v-key");
37
- if (result) {
36
+ if (elements[i].hasAttribute("v-key")) {
38
37
  var property = elements[i].getAttribute("v-key");
39
38
  elements[i].removeAttribute("v-key");
40
39
  // @ts-ignore
41
40
  elements[i].innerText = data[property];
42
41
  }
43
42
  //检查v-for-item
44
- result = elements[i].hasAttribute("v-for-item");
45
- if (result) {
43
+ if (elements[i].hasAttribute("v-for-item")) {
46
44
  var property = elements[i].getAttribute("v-for-item");
47
45
  elements[i].removeAttribute("v-for-item");
48
46
  part_render_map(elements[i].parentNode, elements[i], data[property]);
47
+ i++;
49
48
  //删除节点
50
49
  elements[i].parentNode.removeChild(elements[i]);
51
50
  }
52
51
  //检查v-for-array
53
- result = elements[i].hasAttribute("v-for-index");
54
- if (result) {
52
+ if (elements[i].hasAttribute("v-for-index")) {
55
53
  elements[i].removeAttribute("v-for-index");
56
54
  data.forEach(function (value, index) {
57
55
  extractForArray(elements[i].parentNode, elements[i], index, value);
@@ -0,0 +1,15 @@
1
+ import { Controller } from "../../class/controller/controller";
2
+ import { ApiController } from "../../class/controller/apiController";
3
+ import { PageController } from "../../class/controller/pageController";
4
+ /**
5
+ * 此函数用于解析自定义元素solt
6
+ * @param tagTemplate
7
+ * @param controller
8
+ */
9
+ export declare function resolver_solt(tagTemplate: Element, controller: Controller | ApiController | PageController): void;
10
+ /**
11
+ * 此函数用于展开solt
12
+ * @param elements
13
+ * @param controller
14
+ */
15
+ export declare function extract_solt(elements: HTMLCollection, controller: Controller | ApiController | PageController): void;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * 此函数用于解析自定义元素solt
3
+ * @param tagTemplate
4
+ * @param controller
5
+ */
6
+ export function resolver_solt(tagTemplate, controller) {
7
+ if (tagTemplate.hasChildNodes()) {
8
+ if (tagTemplate.children) {
9
+ for (var i = 0; i < tagTemplate.children.length; i++) {
10
+ if (tagTemplate.children[i].nodeName === "SOLT") {
11
+ if (tagTemplate.children[i].hasAttribute("solt")) {
12
+ controller.solt.set(tagTemplate.children[i].getAttribute("solt"), tagTemplate.children[i].innerHTML);
13
+ }
14
+ else {
15
+ controller.solt.set("default", tagTemplate.children[i].innerHTML);
16
+ }
17
+ }
18
+ }
19
+ }
20
+ else {
21
+ controller.solt.set("default", tagTemplate.innerHTML);
22
+ }
23
+ }
24
+ }
25
+ /**
26
+ * 此函数用于展开solt
27
+ * @param elements
28
+ * @param controller
29
+ */
30
+ export function extract_solt(elements, controller) {
31
+ for (var i = 0; i < elements.length; i++) {
32
+ var result = elements[i].hasAttribute("v-solt");
33
+ if (result) {
34
+ var dataName = elements[i].getAttribute("v-solt");
35
+ elements[i].removeAttribute("v-solt");
36
+ if (!dataName) {
37
+ elements[i].innerHTML = controller.solt.get("default");
38
+ }
39
+ else {
40
+ // @ts-ignore
41
+ elements[i].innerHTML = controller.solt.get(dataName);
42
+ }
43
+ }
44
+ var subElements = elements[i].children;
45
+ extract_solt(subElements, controller);
46
+ }
47
+ }
@@ -5,6 +5,7 @@ import { mount } from "../../library/lifecycle/mount";
5
5
  import { injectRefs } from "../inject/inject";
6
6
  import { afterMethodsTypeOne } from "../../library/lifecycle/afterMethods";
7
7
  import { findComponent } from "./delivery";
8
+ import { resolver_solt } from "../cmd/v-solt";
8
9
  /**
9
10
  * 该函数用于初次渲染需要记录状态的组件
10
11
  * @param proto
@@ -16,6 +17,8 @@ import { findComponent } from "./delivery";
16
17
  export function post_render(proto, parent, child, link, tagTemplate) {
17
18
  //获取控制对象
18
19
  var controller = new Controller();
20
+ //解析solt
21
+ resolver_solt(tagTemplate, controller);
19
22
  //控制对象预处理
20
23
  controllerCycleTypeTwo(controller, proto, child, link, tagTemplate);
21
24
  //beforeRender
@@ -5,6 +5,7 @@ import { mount } from "../../library/lifecycle/mount";
5
5
  import { injectRefs } from "../inject/inject";
6
6
  import { afterMethodsTypeOne } from "../../library/lifecycle/afterMethods";
7
7
  import { findComponent } from "./delivery";
8
+ import { resolver_solt } from "../cmd/v-solt";
8
9
  /**
9
10
  * 该函数用于处理需要更更新时候,需要从父组件提取数据状态的渲染操作
10
11
  * @param proto
@@ -16,6 +17,8 @@ import { findComponent } from "./delivery";
16
17
  export function init_render(proto, parent, child, link, tagTemplate) {
17
18
  //获取控制对象
18
19
  var controller = new Controller();
20
+ //解析solt
21
+ resolver_solt(tagTemplate, controller);
19
22
  //控制对象预处理
20
23
  controllerCycleTypeOne(controller, proto, child, link, tagTemplate);
21
24
  //beforeRender
@@ -5,6 +5,7 @@ import { mount } from "../../library/lifecycle/mount";
5
5
  import { injectRefs } from "../inject/inject";
6
6
  import { afterMethodsTypeTwo } from "../../library/lifecycle/afterMethods";
7
7
  import { findComponent } from "./delivery";
8
+ import { resolver_solt } from "../cmd/v-solt";
8
9
  /**
9
10
  * 该函数用于渲染不需要记录状态的组件
10
11
  * @param proto
@@ -16,6 +17,8 @@ import { findComponent } from "./delivery";
16
17
  export function raw_render(proto, parent, child, link, tagTemplate) {
17
18
  //获取控制对象
18
19
  var controller = new Controller();
20
+ //解析solt
21
+ resolver_solt(tagTemplate, controller);
19
22
  //控制对象预处理
20
23
  controllerCycleTypeTwo(controller, proto, child, link, tagTemplate);
21
24
  //beforeRender
@@ -9,6 +9,7 @@ import { resolver_render } from "../../core/cmd/v-render";
9
9
  import { resolver_if } from "../../core/cmd/v-if";
10
10
  import { resolver_switch } from "../../core/cmd/v-switch";
11
11
  import { resolver_for_each, resolver_for_of } from "../../core/cmd/v-for";
12
+ import { extract_solt } from "../../core/cmd/v-solt";
12
13
  export function cmd(tagTemplate, proto, controller) {
13
14
  //给所有元素添加上npm=tag标志
14
15
  addLabel(tagTemplate.children, proto.getName());
@@ -22,6 +23,8 @@ export function cmd(tagTemplate, proto, controller) {
22
23
  resolver_model(tagTemplate.children, controller.proxyForMethods);
23
24
  //渲染属性
24
25
  resolver_bind(tagTemplate.children, controller.proxyForMethods);
26
+ //solt
27
+ extract_solt(tagTemplate.children, controller);
25
28
  }
26
29
  export function afterCmd(templateSpace, proto, controller) {
27
30
  //v-show
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "render-core",
3
- "version": "1.0.70",
3
+ "version": "1.0.72",
4
4
  "description": "The core for render-js",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",