dom-render 1.0.35 → 1.0.39

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/Config.d.ts CHANGED
@@ -16,6 +16,9 @@ export interface Config {
16
16
  onElementInit?: (name: string, obj: any, rawSet: RawSet) => void;
17
17
  onAttrInit?: (name: string, attrValue: string, obj: any, rawSet: RawSet) => void;
18
18
  proxyExcludeTyps?: ConstructorType<any>[];
19
+ scripts?: {
20
+ [n: string]: any;
21
+ };
19
22
  applyEvents?: {
20
23
  attrName: string;
21
24
  callBack: (elements: Element, attrValue: string, obj: any) => void;
package/Config.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
package/DomRender.js CHANGED
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DomRender = void 0;
4
- var DomRenderProxy_1 = require("./DomRenderProxy");
1
+ import { DomRenderProxy } from './DomRenderProxy';
5
2
  var DomRender = (function () {
6
3
  function DomRender() {
7
4
  }
@@ -13,7 +10,7 @@ var DomRender = (function () {
13
10
  return obj;
14
11
  }
15
12
  else {
16
- var domRender = new DomRenderProxy_1.DomRenderProxy(obj, target, config);
13
+ var domRender = new DomRenderProxy(obj, target, config);
17
14
  var dest = new Proxy(obj, domRender);
18
15
  domRender.run(dest);
19
16
  return dest;
@@ -21,4 +18,4 @@ var DomRender = (function () {
21
18
  };
22
19
  return DomRender;
23
20
  }());
24
- exports.DomRender = DomRender;
21
+ export { DomRender };
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -8,11 +8,12 @@ export declare class DomRenderProxy<T extends object> implements ProxyHandler<T>
8
8
  _domRender_proxy?: T;
9
9
  _targets: Set<Node>;
10
10
  constructor(_domRender_origin: T, target?: Node, config?: Config | undefined);
11
- static final<T = any>(obj: T): any;
11
+ static final<T = any>(obj: T): T;
12
12
  static isFinal<T = any>(obj: T): boolean;
13
13
  run(objProxy: T): void;
14
14
  initRender(target: Node): void;
15
- render(raws: RawSet[]): void;
15
+ getRawSets(): RawSet[];
16
+ render(raws?: RawSet[]): void;
16
17
  root(paths: string[], value: any): void;
17
18
  set(target: T, p: string | symbol, value: any, receiver: T): boolean;
18
19
  get(target: T, p: string | symbol, receiver: any): any;
package/DomRenderProxy.js CHANGED
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DomRenderProxy = void 0;
4
- var RawSet_1 = require("./RawSet");
5
- var EventManager_1 = require("./events/EventManager");
6
- var ScriptUtils_1 = require("./utils/script/ScriptUtils");
7
- var Shield_1 = require("./Shield");
1
+ import { RawSet } from './RawSet';
2
+ import { eventManager } from './events/EventManager';
3
+ import { ScriptUtils } from './utils/script/ScriptUtils';
4
+ import { Shield } from './Shield';
8
5
  var DomRenderProxy = (function () {
9
6
  function DomRenderProxy(_domRender_origin, target, config) {
10
7
  this._domRender_origin = _domRender_origin;
@@ -34,7 +31,7 @@ var DomRenderProxy = (function () {
34
31
  Object.keys(obj).forEach(function (it) {
35
32
  var _a, _b, _c;
36
33
  var target = obj[it];
37
- if (target !== undefined && target !== null && typeof target === 'object' && !DomRenderProxy.isFinal(target) && !Object.isFrozen(target) && !(obj instanceof Shield_1.Shield)) {
34
+ if (target !== undefined && target !== null && typeof target === 'object' && !DomRenderProxy.isFinal(target) && !Object.isFrozen(target) && !(obj instanceof Shield)) {
38
35
  var filter = (_c = (_b = (_a = _this.config) === null || _a === void 0 ? void 0 : _a.proxyExcludeTyps) === null || _b === void 0 ? void 0 : _b.filter(function (it) { return target instanceof it; })) !== null && _c !== void 0 ? _c : [];
39
36
  if (filter.length === 0) {
40
37
  var proxyAfter = _this.proxy(objProxy, target, it);
@@ -51,8 +48,8 @@ var DomRenderProxy = (function () {
51
48
  var _this = this;
52
49
  var _a, _b;
53
50
  this._targets.add(target);
54
- var rawSets = RawSet_1.RawSet.checkPointCreates(target, this.config);
55
- EventManager_1.eventManager.applyEvent(this._domRender_proxy, EventManager_1.eventManager.findAttrElements(target, this.config), this.config);
51
+ var rawSets = RawSet.checkPointCreates(target, this.config);
52
+ eventManager.applyEvent(this._domRender_proxy, eventManager.findAttrElements(target, this.config), this.config);
56
53
  rawSets.forEach(function (it) {
57
54
  var strings = it.getUsingTriggerVariables(_this.config);
58
55
  if (strings.size <= 0) {
@@ -64,14 +61,19 @@ var DomRenderProxy = (function () {
64
61
  });
65
62
  }
66
63
  });
64
+ this.render(this.getRawSets());
65
+ (_b = (_a = this._domRender_proxy) === null || _a === void 0 ? void 0 : _a.onInitRender) === null || _b === void 0 ? void 0 : _b.call(_a);
66
+ };
67
+ DomRenderProxy.prototype.getRawSets = function () {
68
+ var set = new Set();
67
69
  this._rawSets.forEach(function (v, k) {
68
- _this.render(Array.from(v));
70
+ v.forEach(function (it) { return set.add(it); });
69
71
  });
70
- (_b = (_a = this._domRender_proxy) === null || _a === void 0 ? void 0 : _a.onInitRender) === null || _b === void 0 ? void 0 : _b.call(_a);
72
+ return Array.from(set);
71
73
  };
72
74
  DomRenderProxy.prototype.render = function (raws) {
73
75
  var _this = this;
74
- raws.forEach(function (it) {
76
+ (raws !== null && raws !== void 0 ? raws : this.getRawSets()).forEach(function (it) {
75
77
  if (it.point.start.isConnected && it.point.start.isConnected) {
76
78
  var rawSets = it.render(_this._domRender_proxy, _this.config);
77
79
  _this.render(rawSets);
@@ -99,7 +101,7 @@ var DomRenderProxy = (function () {
99
101
  var iterable = this._rawSets.get(fullPathStr_1);
100
102
  var front = strings.slice(0, strings.length - 1).join('.');
101
103
  var last = strings[strings.length - 1];
102
- if (!isNaN(Number(last)) && Array.isArray(ScriptUtils_1.ScriptUtils.evalReturn(front, this._domRender_proxy))) {
104
+ if (!isNaN(Number(last)) && Array.isArray(ScriptUtils.evalReturn(front, this._domRender_proxy))) {
103
105
  var aIterable = this._rawSets.get(front);
104
106
  if (aIterable) {
105
107
  this.render(Array.from(aIterable));
@@ -110,8 +112,8 @@ var DomRenderProxy = (function () {
110
112
  }
111
113
  this._targets.forEach(function (it) {
112
114
  if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
113
- var targets = EventManager_1.eventManager.findAttrElements(it, _this.config);
114
- EventManager_1.eventManager.changeVar(_this._domRender_proxy, targets, "this." + fullPathStr_1);
115
+ var targets = eventManager.findAttrElements(it, _this.config);
116
+ eventManager.changeVar(_this._domRender_proxy, targets, "this." + fullPathStr_1);
115
117
  }
116
118
  });
117
119
  }
@@ -150,14 +152,16 @@ var DomRenderProxy = (function () {
150
152
  return p === '_DomRender_isProxy' || p in target;
151
153
  };
152
154
  DomRenderProxy.prototype.proxy = function (parentProxy, obj, p) {
153
- if (obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield_1.Shield)) {
155
+ var _a, _b, _c;
156
+ var proxyTarget = ((_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.proxyExcludeTyps) === null || _b === void 0 ? void 0 : _b.filter(function (it) { return obj instanceof it; })) !== null && _c !== void 0 ? _c : []).length <= 0;
157
+ if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {
154
158
  var domRender = new DomRenderProxy(obj, undefined, this.config);
155
159
  domRender.addRef(parentProxy, p);
156
160
  var proxy = new Proxy(obj, domRender);
157
161
  domRender.run(proxy);
158
162
  return proxy;
159
163
  }
160
- if (obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield_1.Shield)) {
164
+ if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {
161
165
  var d = obj._DomRender_proxy;
162
166
  d.addRef(this._domRender_proxy, p);
163
167
  return obj;
@@ -207,4 +211,4 @@ var DomRenderProxy = (function () {
207
211
  };
208
212
  return DomRenderProxy;
209
213
  }());
210
- exports.DomRenderProxy = DomRenderProxy;
214
+ export { DomRenderProxy };
package/RawSet.d.ts CHANGED
@@ -19,6 +19,8 @@ export declare class RawSet {
19
19
  static readonly DR_VAR_OPTIONNAME = "dr-var";
20
20
  static readonly DR_STRIP_OPTIONNAME = "dr-strip";
21
21
  static readonly DR_ATTRIBUTES: string[];
22
+ static readonly SCRIPTS_VARNAME = "$scripts";
23
+ static readonly RAWSET_VARNAME = "$rawset";
22
24
  constructor(uuid: string, point: {
23
25
  start: Comment;
24
26
  end: Comment;
@@ -48,4 +50,12 @@ export declare class RawSet {
48
50
  random: string;
49
51
  }[]): void;
50
52
  static drThisCreate(element: Element, drThis: string, drVarOption: string, drStripOption: boolean, obj: any): DocumentFragment;
53
+ private setBindProperty;
51
54
  }
55
+ export declare type Render = {
56
+ rawset: RawSet;
57
+ scripts: {
58
+ [n: string]: any;
59
+ };
60
+ [n: string]: any;
61
+ };
package/RawSet.js CHANGED
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RawSet = void 0;
4
- var RandomUtils_1 = require("./utils/random/RandomUtils");
5
- var StringUtils_1 = require("./utils/string/StringUtils");
6
- var ScriptUtils_1 = require("./utils/script/ScriptUtils");
7
- var EventManager_1 = require("./events/EventManager");
1
+ import { RandomUtils } from './utils/random/RandomUtils';
2
+ import { StringUtils } from './utils/string/StringUtils';
3
+ import { ScriptUtils } from './utils/script/ScriptUtils';
4
+ import { eventManager } from './events/EventManager';
8
5
  var RawSet = (function () {
9
6
  function RawSet(uuid, point, fragment, data) {
10
7
  if (data === void 0) { data = {}; }
@@ -24,13 +21,19 @@ var RawSet = (function () {
24
21
  var usingTriggerVariables = new Set();
25
22
  this.fragment.childNodes.forEach(function (cNode, key) {
26
23
  var _a, _b, _c;
24
+ var script = '';
27
25
  if (cNode.nodeType === Node.TEXT_NODE) {
28
- ScriptUtils_1.ScriptUtils.getVariablePaths("`" + ((_a = cNode.textContent) !== null && _a !== void 0 ? _a : '') + "`").forEach(function (it) { return usingTriggerVariables.add(it); });
26
+ script = "`" + ((_a = cNode.textContent) !== null && _a !== void 0 ? _a : '') + "`";
29
27
  }
30
28
  else if (cNode.nodeType === Node.ELEMENT_NODE) {
31
29
  var element_1 = cNode;
32
30
  var targetAttrNames = ((_c = (_b = config === null || config === void 0 ? void 0 : config.targetAttrs) === null || _b === void 0 ? void 0 : _b.map(function (it) { return it.name; })) !== null && _c !== void 0 ? _c : []).concat(RawSet.DR_ATTRIBUTES);
33
- ScriptUtils_1.ScriptUtils.getVariablePaths(targetAttrNames.map(function (it) { return (element_1.getAttribute(it)); }).filter(function (it) { return it; }).join(';')).forEach(function (it) { return usingTriggerVariables.add(it); });
31
+ script = targetAttrNames.map(function (it) { return (element_1.getAttribute(it)); }).filter(function (it) { return it; }).join(';');
32
+ }
33
+ if (script) {
34
+ script = script.replace(RegExp(RawSet.SCRIPTS_VARNAME.replace('$', '\\$'), 'g'), "this?.___" + RawSet.SCRIPTS_VARNAME);
35
+ script = script.replace(RegExp(RawSet.RAWSET_VARNAME.replace('$', '\\$'), 'g'), "this?.___" + RawSet.RAWSET_VARNAME);
36
+ Array.from(ScriptUtils.getVariablePaths(script)).filter(function (it) { return !it.startsWith("___" + RawSet.SCRIPTS_VARNAME) && !it.startsWith("___" + RawSet.SCRIPTS_VARNAME); }).forEach(function (it) { return usingTriggerVariables.add(it); });
34
37
  }
35
38
  });
36
39
  return usingTriggerVariables;
@@ -46,7 +49,12 @@ var RawSet = (function () {
46
49
  var fag = document.createDocumentFragment();
47
50
  if (cNode.nodeType === Node.TEXT_NODE) {
48
51
  var textContent = cNode.textContent;
49
- var n = document.createTextNode(ScriptUtils_1.ScriptUtils.eval("return `" + textContent + "`", obj));
52
+ var n = document.createTextNode(ScriptUtils.eval("\n const " + RawSet.SCRIPTS_VARNAME + " = this.__render.scripts;\n const " + RawSet.RAWSET_VARNAME + " = this.__render.rawset;\n return `" + textContent + "`\n ", Object.assign(obj, {
53
+ __render: Object.freeze({
54
+ rawset: _this,
55
+ scripts: _this.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj)
56
+ })
57
+ })));
50
58
  (_a = cNode.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(n, cNode);
51
59
  }
52
60
  else if (cNode.nodeType === Node.ELEMENT_NODE) {
@@ -67,9 +75,15 @@ var RawSet = (function () {
67
75
  var itRandom = RawSet.drItOtherEncoding(element_2);
68
76
  var vars = RawSet.drVarEncoding(element_2, (_b = drAttr.drVarOption) !== null && _b !== void 0 ? _b : '');
69
77
  var newTemp = document.createElement('temp');
70
- ScriptUtils_1.ScriptUtils.eval("\n const n = this.__element.cloneNode(true);\n var destIt = " + drAttr.drItOption + ";\n if (destIt !== undefined) {\n n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt);\n }\n if (this.__drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__fag.append(n);\n }", Object.assign({
71
- __fag: newTemp, __drStripOption: drAttr.drStripOption, __element: element_2
72
- }, obj));
78
+ ScriptUtils.eval("\n const " + RawSet.SCRIPTS_VARNAME + " = this.__render.scripts;\n const " + RawSet.RAWSET_VARNAME + " = this.__render.rawset;\n const n = this.__render.element.cloneNode(true);\n var destIt = " + drAttr.drItOption + ";\n if (destIt !== undefined) {\n n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt);\n }\n if (this.__render.drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__render.fag.append(n);\n }", Object.assign(obj, {
79
+ __render: Object.freeze({
80
+ fag: newTemp,
81
+ drStripOption: drAttr.drStripOption,
82
+ element: element_2,
83
+ rawset: _this,
84
+ scripts: _this.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj)
85
+ })
86
+ }));
73
87
  RawSet.drVarDecoding(newTemp, vars);
74
88
  RawSet.drItOtherDecoding(newTemp, itRandom);
75
89
  var tempalte = document.createElement('template');
@@ -83,9 +97,15 @@ var RawSet = (function () {
83
97
  var itRandom = RawSet.drItOtherEncoding(element_2);
84
98
  var vars = RawSet.drVarEncoding(element_2, (_d = drAttr.drVarOption) !== null && _d !== void 0 ? _d : '');
85
99
  var newTemp = document.createElement('temp');
86
- ScriptUtils_1.ScriptUtils.eval("\n if(" + drAttr.drIf + ") {\n const n = this.__element.cloneNode(true);\n var destIt = " + drAttr.drItOption + ";\n if (destIt !== undefined) {\n n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt);\n }\n if (this.__drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__fag.append(n);\n }\n }", Object.assign({
87
- __fag: newTemp, __drStripOption: drAttr.drStripOption, __element: element_2
88
- }, obj));
100
+ ScriptUtils.eval("\n const " + RawSet.SCRIPTS_VARNAME + " = this.__render.scripts;\n const " + RawSet.RAWSET_VARNAME + " = this.__render.rawset;\n if(" + drAttr.drIf + ") {\n const n = this.__render.element.cloneNode(true);\n var destIt = " + drAttr.drItOption + ";\n if (destIt !== undefined) {\n n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt);\n }\n if (this.__render.drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__render.fag.append(it));\n } else {\n this.__render.fag.append(n);\n }\n }", Object.assign(obj, {
101
+ __render: Object.freeze({
102
+ fag: newTemp,
103
+ drStripOption: drAttr.drStripOption,
104
+ element: element_2,
105
+ rawset: _this,
106
+ scripts: _this.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj)
107
+ })
108
+ }));
89
109
  RawSet.drVarDecoding(newTemp, vars);
90
110
  RawSet.drItOtherDecoding(newTemp, itRandom);
91
111
  var tempalte = document.createElement('template');
@@ -96,7 +116,7 @@ var RawSet = (function () {
96
116
  raws.push.apply(raws, rr);
97
117
  }
98
118
  if (drAttr.drThis) {
99
- var r = ScriptUtils_1.ScriptUtils.evalReturn(drAttr.drThis, obj);
119
+ var r = ScriptUtils.evalReturn(drAttr.drThis, obj);
100
120
  if (r) {
101
121
  fag.append(RawSet.drThisCreate(element_2, drAttr.drThis, (_f = drAttr.drVarOption) !== null && _f !== void 0 ? _f : '', drAttr.drStripOption, obj));
102
122
  var rr = RawSet.checkPointCreates(fag, config);
@@ -108,10 +128,13 @@ var RawSet = (function () {
108
128
  }
109
129
  }
110
130
  if (drAttr.drInnerText) {
111
- var data = ScriptUtils_1.ScriptUtils.evalReturn(drAttr.drInnerText, obj);
131
+ var data = ScriptUtils.evalReturn(drAttr.drInnerText, obj);
112
132
  var newTemp = document.createElement('temp');
113
- ScriptUtils_1.ScriptUtils.eval("\n const n = this.__element.cloneNode(true);\n n.innerText = this.__data;\n if (this.__drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__fag.append(n);\n }\n ", Object.assign({
114
- __fag: newTemp, __drStripOption: drAttr.drStripOption, __data: data, __element: element_2
133
+ ScriptUtils.eval("\n const n = this.__element.cloneNode(true);\n n.innerText = this.__data;\n if (this.__drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__fag.append(n);\n }\n ", Object.assign({
134
+ __fag: newTemp,
135
+ __drStripOption: drAttr.drStripOption,
136
+ __data: data,
137
+ __element: element_2
115
138
  }, obj));
116
139
  var tempalte = document.createElement('template');
117
140
  tempalte.innerHTML = newTemp.innerHTML;
@@ -121,10 +144,13 @@ var RawSet = (function () {
121
144
  raws.push.apply(raws, rr);
122
145
  }
123
146
  if (drAttr.drInnerHTML) {
124
- var data = ScriptUtils_1.ScriptUtils.evalReturn(drAttr.drInnerHTML, obj);
147
+ var data = ScriptUtils.evalReturn(drAttr.drInnerHTML, obj);
125
148
  var newTemp = document.createElement('temp');
126
- ScriptUtils_1.ScriptUtils.eval("\n const n = this.__element.cloneNode(true);\n n.innerHTML = this.__data;\n if (this.__drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__fag.append(n);\n }\n ", Object.assign({
127
- __fag: newTemp, __drStripOption: drAttr.drStripOption, __data: data, __element: element_2
149
+ ScriptUtils.eval("\n const n = this.__element.cloneNode(true);\n n.innerHTML = this.__data;\n if (this.__drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__fag.append(n);\n }\n ", Object.assign({
150
+ __fag: newTemp,
151
+ __drStripOption: drAttr.drStripOption,
152
+ __data: data,
153
+ __element: element_2
128
154
  }, obj));
129
155
  var tempalte = document.createElement('template');
130
156
  tempalte.innerHTML = newTemp.innerHTML;
@@ -137,9 +163,14 @@ var RawSet = (function () {
137
163
  var itRandom = RawSet.drItOtherEncoding(element_2);
138
164
  var vars = RawSet.drVarEncoding(element_2, (_k = drAttr.drVarOption) !== null && _k !== void 0 ? _k : '');
139
165
  var newTemp = document.createElement('temp');
140
- ScriptUtils_1.ScriptUtils.eval("\n for(" + drAttr.drFor + ") {\n const n = this.__element.cloneNode(true);\n var destIt = " + drAttr.drItOption + ";\n if (destIt !== undefined) {\n n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt);\n }\n if (this.__drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__fag.append(n);\n }\n }", Object.assign({
141
- __fag: newTemp, __drStripOption: drAttr.drStripOption, __element: element_2
142
- }, obj));
166
+ ScriptUtils.eval("\n const " + RawSet.SCRIPTS_VARNAME + " = this.__render.scripts;\n for(" + drAttr.drFor + ") {\n const n = this.__render.element.cloneNode(true);\n var destIt = " + drAttr.drItOption + ";\n if (destIt !== undefined) {\n n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt);\n }\n if (this.__render.drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__render.fag.append(it));\n } else {\n this.__render.fag.append(n);\n }\n }", Object.assign(obj, {
167
+ __render: Object.freeze({
168
+ fag: newTemp,
169
+ drStripOption: drAttr.drStripOption,
170
+ element: element_2,
171
+ scripts: _this.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj)
172
+ })
173
+ }));
143
174
  RawSet.drVarDecoding(newTemp, vars);
144
175
  RawSet.drItOtherDecoding(newTemp, itRandom);
145
176
  var tempalte = document.createElement('template');
@@ -153,11 +184,14 @@ var RawSet = (function () {
153
184
  var itRandom = RawSet.drItOtherEncoding(element_2);
154
185
  var vars = RawSet.drVarEncoding(element_2, (_m = drAttr.drVarOption) !== null && _m !== void 0 ? _m : '');
155
186
  var newTemp = document.createElement('temp');
156
- ScriptUtils_1.ScriptUtils.eval("var i = 0; for(const it of " + drAttr.drForOf + ") {\n //alert(1)\n var destIt = it;\n var forOfStr = `" + drAttr.drForOf + "`;\n if (/,/g.test(forOfStr)) {\n if (typeof it === 'string') {\n destIt = it;\n } else {\n destIt = forOfStr.substring(1, forOfStr.length-1).split(',')[i];\n }\n } else {\n destIt = forOfStr + '[' + i +']'\n }\n \n const n = this.__element.cloneNode(true);\n n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt);\n \n if (this.__drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__fag.append(n);\n }\n i++;\n }", Object.assign({
157
- __drStripOption: drAttr.drStripOption,
158
- __fag: newTemp,
159
- __element: element_2
160
- }, obj));
187
+ ScriptUtils.eval("\n const " + RawSet.SCRIPTS_VARNAME + " = this.__render.scripts;\n var i = 0; \n for(const it of " + drAttr.drForOf + ") {\n var destIt = it;\n var forOfStr = `" + drAttr.drForOf + "`;\n if (/,/g.test(forOfStr)) {\n if (typeof it === 'string') {\n destIt = it;\n } else {\n destIt = forOfStr.substring(1, forOfStr.length-1).split(',')[i];\n }\n } else {\n destIt = forOfStr + '[' + i +']'\n }\n \n const n = this.__render.element.cloneNode(true);\n n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destIt);\n \n if (this.__render.drStripOption) {\n Array.from(n.childNodes).forEach(it => this.__render.fag.append(it));\n } else {\n this.__render.fag.append(n);\n }\n i++;\n }", Object.assign(obj, {
188
+ __render: Object.freeze({
189
+ drStripOption: drAttr.drStripOption,
190
+ fag: newTemp,
191
+ element: element_2,
192
+ scripts: _this.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj)
193
+ })
194
+ }));
161
195
  RawSet.drVarDecoding(newTemp, vars);
162
196
  RawSet.drItOtherDecoding(newTemp, itRandom);
163
197
  var tempalte = document.createElement('template');
@@ -178,10 +212,13 @@ var RawSet = (function () {
178
212
  (_a = element_2.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(fag, element_2);
179
213
  var onInit = element_2.getAttribute('dr-on-init-component');
180
214
  if (onInit) {
181
- ScriptUtils_1.ScriptUtils.evalReturn(onInit, obj)(obj === null || obj === void 0 ? void 0 : obj.__componentInstances[_this.uuid], _this);
215
+ ScriptUtils.evalReturn(onInit, obj)(obj === null || obj === void 0 ? void 0 : obj.__componentInstances[_this.uuid], _this);
182
216
  }
183
217
  raws.push.apply(raws, rr);
184
- onElementInitCallBack.push({ name: name, obj: obj });
218
+ onElementInitCallBack.push({
219
+ name: name,
220
+ obj: obj
221
+ });
185
222
  (_b = it === null || it === void 0 ? void 0 : it.complete) === null || _b === void 0 ? void 0 : _b.call(it, element_2, obj, _this);
186
223
  }
187
224
  }
@@ -197,7 +234,11 @@ var RawSet = (function () {
197
234
  var rr = RawSet.checkPointCreates(fag, config);
198
235
  (_a = element_2.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(fag, element_2);
199
236
  raws.push.apply(raws, rr);
200
- onAttrInitCallBack.push({ attrName: attrName, attrValue: attrValue, obj: obj });
237
+ onAttrInitCallBack.push({
238
+ attrName: attrName,
239
+ attrValue: attrValue,
240
+ obj: obj
241
+ });
201
242
  (_b = it === null || it === void 0 ? void 0 : it.complete) === null || _b === void 0 ? void 0 : _b.call(it, element_2, attrValue, obj, _this);
202
243
  }
203
244
  }
@@ -212,7 +253,7 @@ var RawSet = (function () {
212
253
  };
213
254
  RawSet.prototype.applyEvent = function (obj, fragment, config) {
214
255
  if (fragment === void 0) { fragment = this.fragment; }
215
- EventManager_1.eventManager.applyEvent(obj, EventManager_1.eventManager.findAttrElements(fragment, config), config);
256
+ eventManager.applyEvent(obj, eventManager.findAttrElements(fragment, config), config);
216
257
  };
217
258
  RawSet.prototype.getAttributeAndDelete = function (element, attr) {
218
259
  var data = element.getAttribute(attr);
@@ -230,7 +271,7 @@ var RawSet = (function () {
230
271
  acceptNode: function (node) {
231
272
  var _a, _b, _c, _d, _e;
232
273
  if (node.nodeType === Node.TEXT_NODE) {
233
- return /\$\{.*?\}/g.test(StringUtils_1.StringUtils.deleteEnter((_a = node.data) !== null && _a !== void 0 ? _a : '')) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
274
+ return /\$\{.*?\}/g.test(StringUtils.deleteEnter((_a = node.data) !== null && _a !== void 0 ? _a : '')) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
234
275
  }
235
276
  else if (node.nodeType === Node.ELEMENT_NODE) {
236
277
  var element_3 = node;
@@ -246,53 +287,48 @@ var RawSet = (function () {
246
287
  var currentNode;
247
288
  var _loop_1 = function () {
248
289
  if (currentNode.nodeType === Node.TEXT_NODE) {
249
- var text_1 = (_a = currentNode.textContent) !== null && _a !== void 0 ? _a : '';
290
+ var text = (_a = currentNode.textContent) !== null && _a !== void 0 ? _a : '';
250
291
  var template_1 = document.createElement('template');
251
- var a = StringUtils_1.StringUtils.regexExec(/\$\{.*?\}/g, text_1);
252
- var map = a.reverse().map(function (it) { return { uuid: '', content: '', regexArr: it }; });
253
- map.forEach(function (it) {
254
- var uuid = RandomUtils_1.RandomUtils.uuid();
255
- it.uuid = uuid;
256
- it.content = it.regexArr[0];
257
- text_1 = text_1.substr(0, it.regexArr.index) + text_1.substr(it.regexArr.index).replace(it.regexArr[0], "<!--start text " + uuid + "--><!--end text " + uuid + "-->");
292
+ var a = StringUtils.regexExec(/\$\{.*?\}/g, text);
293
+ var map = a.map(function (it) {
294
+ return {
295
+ uuid: RandomUtils.uuid(),
296
+ content: it[0],
297
+ regexArr: it
298
+ };
258
299
  });
259
- template_1.innerHTML = text_1;
300
+ var lasterIndex_1 = 0;
260
301
  map.forEach(function (it) {
261
- var _a, _b;
262
- var subNodeIterator = document.createNodeIterator(template_1.content, NodeFilter.SHOW_COMMENT, {
263
- acceptNode: function (node) {
264
- var text = node.textContent;
265
- return (text === "start text " + it.uuid || text === "end text " + it.uuid) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
266
- }
267
- });
268
- var start;
269
- var end;
270
- var subNode;
271
- while (subNode = subNodeIterator.nextNode()) {
272
- if (((_a = subNode.textContent) !== null && _a !== void 0 ? _a : '').startsWith('start')) {
273
- start = subNode;
274
- }
275
- if (((_b = subNode.textContent) !== null && _b !== void 0 ? _b : '').startsWith('end')) {
276
- end = subNode;
277
- }
278
- }
279
- if (start && end) {
280
- var fragment = document.createDocumentFragment();
281
- fragment.append(document.createTextNode(it.content));
282
- pars.push(new RawSet(it.uuid, { start: start, end: end }, fragment));
283
- }
302
+ var regexArr = it.regexArr;
303
+ var preparedText = regexArr.input.substring(lasterIndex_1, regexArr.index);
304
+ var start = document.createComment("start text " + it.uuid);
305
+ var end = document.createComment("end text " + it.uuid);
306
+ template_1.content.append(document.createTextNode(preparedText));
307
+ template_1.content.append(start);
308
+ template_1.content.append(end);
309
+ var fragment = document.createDocumentFragment();
310
+ fragment.append(document.createTextNode(it.content));
311
+ pars.push(new RawSet(it.uuid, {
312
+ start: start,
313
+ end: end
314
+ }, fragment));
315
+ lasterIndex_1 = regexArr.index + it.content.length;
284
316
  });
317
+ template_1.content.append(document.createTextNode(text.substring(lasterIndex_1, text.length)));
285
318
  (_b = currentNode === null || currentNode === void 0 ? void 0 : currentNode.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(template_1.content, currentNode);
286
319
  }
287
320
  else {
288
- var uuid = RandomUtils_1.RandomUtils.uuid();
321
+ var uuid = RandomUtils.uuid();
289
322
  var fragment = document.createDocumentFragment();
290
323
  var start = document.createComment("start " + uuid);
291
324
  var end = document.createComment("end " + uuid);
292
325
  (_c = currentNode === null || currentNode === void 0 ? void 0 : currentNode.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(start, currentNode);
293
326
  (_d = currentNode === null || currentNode === void 0 ? void 0 : currentNode.parentNode) === null || _d === void 0 ? void 0 : _d.insertBefore(end, currentNode.nextSibling);
294
327
  fragment.append(currentNode);
295
- pars.push(new RawSet(uuid, { start: start, end: end }, fragment));
328
+ pars.push(new RawSet(uuid, {
329
+ start: start,
330
+ end: end
331
+ }, fragment));
296
332
  }
297
333
  };
298
334
  while (currentNode = nodeIterator.nextNode()) {
@@ -311,7 +347,7 @@ var RawSet = (function () {
311
347
  }
312
348
  };
313
349
  RawSet.drItOtherEncoding = function (element) {
314
- var random = RandomUtils_1.RandomUtils.uuid();
350
+ var random = RandomUtils.uuid();
315
351
  var regex = /#it#/g;
316
352
  element.querySelectorAll("[" + RawSet.DR_IT_OPTIONNAME + "], [" + RawSet.DR_FOR_OF_NAME + "]").forEach(function (it) {
317
353
  it.innerHTML = it.innerHTML.replace(regex, random);
@@ -324,17 +360,17 @@ var RawSet = (function () {
324
360
  });
325
361
  };
326
362
  RawSet.drThisEncoding = function (element, drThis) {
327
- var thisRandom = RandomUtils_1.RandomUtils.uuid();
363
+ var thisRandom = RandomUtils.uuid();
328
364
  element.querySelectorAll("[" + RawSet.DR_THIS_NAME + "]").forEach(function (it) {
329
365
  var message = it.innerHTML;
330
- StringUtils_1.StringUtils.regexExec(/([^(dr\-)])?this(?=.?)/g, message).reverse().forEach(function (it) {
366
+ StringUtils.regexExec(/([^(dr\-)])?this(?=.?)/g, message).reverse().forEach(function (it) {
331
367
  var _a;
332
368
  message = message.substr(0, it.index) + message.substr(it.index).replace(it[0], "" + ((_a = it[1]) !== null && _a !== void 0 ? _a : '') + drThis);
333
369
  });
334
370
  it.innerHTML = message;
335
371
  });
336
372
  var message = element.innerHTML;
337
- StringUtils_1.StringUtils.regexExec(/([^(dr\-)])?this(?=.?)/g, message).reverse().forEach(function (it) {
373
+ StringUtils.regexExec(/([^(dr\-)])?this(?=.?)/g, message).reverse().forEach(function (it) {
338
374
  var _a;
339
375
  message = message.substr(0, it.index) + message.substr(it.index).replace(it[0], "" + ((_a = it[1]) !== null && _a !== void 0 ? _a : '') + drThis);
340
376
  });
@@ -354,7 +390,7 @@ var RawSet = (function () {
354
390
  name: s[0],
355
391
  value: s[1],
356
392
  regex: RegExp('var\\.' + s[0] + '(?=.?)', 'g'),
357
- random: RandomUtils_1.RandomUtils.uuid()
393
+ random: RandomUtils.uuid()
358
394
  };
359
395
  });
360
396
  element.querySelectorAll("[" + RawSet.DR_VAR_OPTIONNAME + "]").forEach(function (it) {
@@ -389,6 +425,18 @@ var RawSet = (function () {
389
425
  }
390
426
  return fag;
391
427
  };
428
+ RawSet.prototype.setBindProperty = function (scripts, obj) {
429
+ if (scripts) {
430
+ var newScripts = Object.assign({}, scripts);
431
+ for (var _i = 0, _a = Object.entries(newScripts); _i < _a.length; _i++) {
432
+ var _b = _a[_i], key = _b[0], value = _b[1];
433
+ if (typeof value === 'function') {
434
+ newScripts[key] = value.bind(obj);
435
+ }
436
+ }
437
+ return newScripts;
438
+ }
439
+ };
392
440
  RawSet.DR = 'dr';
393
441
  RawSet.DR_IF_NAME = 'dr-if';
394
442
  RawSet.DR_FOR_OF_NAME = 'dr-for-of';
@@ -401,6 +449,8 @@ var RawSet = (function () {
401
449
  RawSet.DR_VAR_OPTIONNAME = 'dr-var';
402
450
  RawSet.DR_STRIP_OPTIONNAME = 'dr-strip';
403
451
  RawSet.DR_ATTRIBUTES = [RawSet.DR, RawSet.DR_IF_NAME, RawSet.DR_FOR_OF_NAME, RawSet.DR_FOR_NAME, RawSet.DR_THIS_NAME, RawSet.DR_INNERHTML_NAME, RawSet.DR_INNERTEXT_NAME];
452
+ RawSet.SCRIPTS_VARNAME = '$scripts';
453
+ RawSet.RAWSET_VARNAME = '$rawset';
404
454
  return RawSet;
405
455
  }());
406
- exports.RawSet = RawSet;
456
+ export { RawSet };
package/Shield.js CHANGED
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Shield = void 0;
4
1
  var Shield = (function () {
5
2
  function Shield() {
6
3
  }
7
4
  return Shield;
8
5
  }());
9
- exports.Shield = Shield;
6
+ export { Shield };
@@ -0,0 +1,26 @@
1
+ import { ConstructorType } from './types/Types';
2
+ import { RawSet } from './RawSet';
3
+ export declare type TargetElement = {
4
+ name: string;
5
+ callBack: (target: Element, obj: any, rawSet: RawSet) => DocumentFragment;
6
+ complete?: (target: Element, obj: any, rawSet: RawSet) => void;
7
+ };
8
+ export declare type TargetAttr = {
9
+ name: string;
10
+ callBack: (target: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment;
11
+ complete?: (target: Element, attrValue: string, obj: any, rawSet: RawSet) => void;
12
+ };
13
+ export interface Config {
14
+ targetElements?: TargetElement[];
15
+ targetAttrs?: TargetAttr[];
16
+ onElementInit?: (name: string, obj: any, rawSet: RawSet) => void;
17
+ onAttrInit?: (name: string, attrValue: string, obj: any, rawSet: RawSet) => void;
18
+ proxyExcludeTyps?: ConstructorType<any>[];
19
+ scripts?: {
20
+ [n: string]: any;
21
+ };
22
+ applyEvents?: {
23
+ attrName: string;
24
+ callBack: (elements: Element, attrValue: string, obj: any) => void;
25
+ }[];
26
+ }
@@ -0,0 +1,4 @@
1
+ import { Config } from './Config';
2
+ export declare class DomRender {
3
+ static run<T extends object>(obj: T, target?: Node, config?: Config): T;
4
+ }
@@ -0,0 +1,3 @@
1
+ export interface DomRenderLifeCycle {
2
+ onInitRender(): void;
3
+ }