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 +3 -0
- package/Config.js +1 -2
- package/DomRender.js +3 -6
- package/DomRenderLifeCycle.js +1 -2
- package/DomRenderProxy.d.ts +3 -2
- package/DomRenderProxy.js +23 -19
- package/RawSet.d.ts +10 -0
- package/RawSet.js +126 -76
- package/Shield.js +1 -4
- package/dist/Config.d.ts +26 -0
- package/dist/DomRender.d.ts +4 -0
- package/dist/DomRenderLifeCycle.d.ts +3 -0
- package/dist/DomRenderProxy.d.ts +27 -0
- package/dist/RawSet.d.ts +61 -0
- package/dist/Shield.d.ts +3 -0
- package/dist/{dom-render.js → bundle.js} +1091 -1026
- package/dist/bundle.js.map +1 -0
- package/dist/events/EventManager.d.ts +14 -0
- package/dist/types/Types.d.ts +3 -0
- package/dist/utils/dom/DomUtils.d.ts +13 -0
- package/dist/utils/node/NodeUtils.d.ts +10 -0
- package/dist/utils/random/RandomUtils.d.ts +7 -0
- package/dist/utils/script/ScriptUtils.d.ts +14 -0
- package/dist/utils/string/StringUtils.d.ts +4 -0
- package/dist/utils/valid/ValidUtils.d.ts +10 -0
- package/events/EventManager.d.ts +1 -1
- package/events/EventManager.js +11 -10
- package/package.json +16 -11
- package/types/Types.js +1 -2
- package/utils/dom/DomUtils.js +1 -4
- package/utils/node/NodeUtils.js +1 -4
- package/utils/random/RandomUtils.js +4 -7
- package/utils/script/ScriptUtils.js +1 -4
- package/utils/string/StringUtils.js +1 -4
- package/utils/valid/ValidUtils.js +1 -4
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
|
-
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
1
|
+
export {};
|
package/DomRender.js
CHANGED
@@ -1,7 +1,4 @@
|
|
1
|
-
|
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
|
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
|
-
|
21
|
+
export { DomRender };
|
package/DomRenderLifeCycle.js
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
1
|
+
export {};
|
package/DomRenderProxy.d.ts
CHANGED
@@ -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):
|
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
|
-
|
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
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
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
|
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 =
|
55
|
-
|
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
|
-
|
70
|
+
v.forEach(function (it) { return set.add(it); });
|
69
71
|
});
|
70
|
-
|
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(
|
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 =
|
114
|
-
|
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
|
-
|
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
|
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
|
-
|
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
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
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
|
-
|
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
|
-
|
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(
|
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
|
-
|
71
|
-
|
72
|
-
|
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
|
-
|
87
|
-
|
88
|
-
|
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 =
|
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 =
|
131
|
+
var data = ScriptUtils.evalReturn(drAttr.drInnerText, obj);
|
112
132
|
var newTemp = document.createElement('temp');
|
113
|
-
|
114
|
-
__fag: newTemp,
|
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 =
|
147
|
+
var data = ScriptUtils.evalReturn(drAttr.drInnerHTML, obj);
|
125
148
|
var newTemp = document.createElement('temp');
|
126
|
-
|
127
|
-
__fag: newTemp,
|
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
|
-
|
141
|
-
|
142
|
-
|
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
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
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
|
-
|
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({
|
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({
|
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
|
-
|
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(
|
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
|
290
|
+
var text = (_a = currentNode.textContent) !== null && _a !== void 0 ? _a : '';
|
250
291
|
var template_1 = document.createElement('template');
|
251
|
-
var a =
|
252
|
-
var map = a.
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
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
|
-
|
300
|
+
var lasterIndex_1 = 0;
|
260
301
|
map.forEach(function (it) {
|
261
|
-
var
|
262
|
-
var
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
var
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
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 =
|
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, {
|
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 =
|
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 =
|
363
|
+
var thisRandom = RandomUtils.uuid();
|
328
364
|
element.querySelectorAll("[" + RawSet.DR_THIS_NAME + "]").forEach(function (it) {
|
329
365
|
var message = it.innerHTML;
|
330
|
-
|
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
|
-
|
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:
|
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
|
-
|
456
|
+
export { RawSet };
|
package/Shield.js
CHANGED
package/dist/Config.d.ts
ADDED
@@ -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
|
+
}
|