dom-render 1.0.66 → 1.0.70
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 +5 -3
- package/Config.js +2 -1
- package/DomRender.js +11 -4
- package/DomRenderProxy.d.ts +5 -4
- package/DomRenderProxy.js +136 -44
- package/README.MD +272 -237
- package/RawSet.d.ts +51 -14
- package/RawSet.js +451 -252
- package/dist/bundle.js +3042 -1879
- package/events/EventManager.d.ts +15 -4
- package/events/EventManager.js +240 -187
- package/iterators/Range.d.ts +0 -1
- package/iterators/Range.js +13 -36
- package/lifecycle/OnBeforeReturnGet.js +2 -1
- package/lifecycle/OnBeforeReturnSet.js +2 -1
- package/lifecycle/OnCreateRender.d.ts +3 -0
- package/lifecycle/OnCreateRender.js +2 -0
- package/lifecycle/OnInitRender.d.ts +5 -1
- package/lifecycle/OnInitRender.js +2 -1
- package/managers/RenderManager.d.ts +3 -0
- package/managers/RenderManager.js +18 -0
- package/package.json +18 -14
- package/types/Types.d.ts +8 -0
- package/types/Types.js +32 -2
- package/utils/clipboard/ClipBoardUtils.d.ts +6 -0
- package/utils/clipboard/ClipBoardUtils.js +25 -0
- package/utils/dom/DomUtils.js +5 -2
- package/utils/location/LocationUtils.d.ts +15 -0
- package/utils/location/LocationUtils.js +54 -0
- package/utils/node/NodeUtils.js +7 -2
- package/utils/random/RandomUtils.js +9 -5
- package/utils/script/ScriptUtils.d.ts +5 -5
- package/utils/script/ScriptUtils.js +36 -53
- package/utils/storage/StorageUtils.d.ts +9 -0
- package/utils/storage/StorageUtils.js +48 -0
- package/utils/string/StringUtils.js +22 -2
- package/utils/valid/ValidUtils.js +10 -2
- package/validators/AllCheckedValidatorArray.js +7 -4
- package/validators/AllUnCheckedValidatorArray.js +7 -4
- package/validators/CheckedValidator.js +7 -4
- package/validators/CountEqualsCheckedValidatorArray.js +7 -4
- package/validators/CountEqualsUnCheckedValidatorArray.js +7 -4
- package/validators/CountGreaterThanCheckedValidatorArray.js +7 -4
- package/validators/CountGreaterThanEqualsCheckedValidatorArray.js +7 -4
- package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +7 -4
- package/validators/CountGreaterThanUnCheckedValidatorArray.js +7 -4
- package/validators/CountLessThanCheckedValidatorArray.js +7 -4
- package/validators/CountLessThanEqualsCheckedValidatorArray.js +7 -4
- package/validators/CountLessThanEqualsUnCheckedValidatorArray.js +7 -4
- package/validators/CountLessThanUnCheckedValidatorArray.js +7 -4
- package/validators/CountUnCheckedValidatorArray.js +7 -4
- package/validators/EmptyValidator.js +7 -4
- package/validators/ExcludeCheckedValidatorArray.js +7 -4
- package/validators/FormValidator.d.ts +1 -0
- package/validators/FormValidator.js +10 -4
- package/validators/IncludeCheckedValidatorArray.js +7 -4
- package/validators/MultipleValidator.js +8 -4
- package/validators/NonPassValidator.js +7 -4
- package/validators/NotEmptyValidator.js +8 -4
- package/validators/NotRegExpTestValidator.js +9 -6
- package/validators/PassValidator.js +7 -4
- package/validators/RegExpTestValidator.js +10 -6
- package/validators/RequiredValidator.js +8 -4
- package/validators/UnCheckedValidator.js +7 -4
- package/validators/ValidMultipleValidator.js +7 -4
- package/validators/ValidValidator.js +7 -4
- package/validators/ValidValidatorArray.js +7 -4
- package/validators/Validator.d.ts +12 -1
- package/validators/Validator.js +68 -25
- package/validators/ValidatorArray.js +10 -7
- package/validators/ValueEqualsValidator.js +7 -4
- package/validators/ValueNotEqualsValidator.js +7 -4
- package/dist/Config.d.ts +0 -31
- package/dist/DomRender.d.ts +0 -4
- package/dist/DomRenderProxy.d.ts +0 -28
- package/dist/RawSet.d.ts +0 -73
- package/dist/bundle.js.map +0 -1
- package/dist/events/EventManager.d.ts +0 -35
- package/dist/iterators/Range.d.ts +0 -23
- package/dist/lifecycle/OnBeforeReturnGet.d.ts +0 -3
- package/dist/lifecycle/OnBeforeReturnSet.d.ts +0 -3
- package/dist/lifecycle/OnInitRender.d.ts +0 -3
- package/dist/types/Types.d.ts +0 -6
- package/dist/utils/dom/DomUtils.d.ts +0 -13
- package/dist/utils/node/NodeUtils.d.ts +0 -10
- package/dist/utils/random/RandomUtils.d.ts +0 -7
- package/dist/utils/script/ScriptUtils.d.ts +0 -14
- package/dist/utils/string/StringUtils.d.ts +0 -5
- package/dist/utils/valid/ValidUtils.d.ts +0 -10
- package/dist/validators/AllCheckedValidatorArray.d.ts +0 -6
- package/dist/validators/AllUnCheckedValidatorArray.d.ts +0 -6
- package/dist/validators/CheckedValidator.d.ts +0 -5
- package/dist/validators/CountEqualsCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountEqualsUnCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountGreaterThanCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountLessThanCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountLessThanUnCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/CountUnCheckedValidatorArray.d.ts +0 -7
- package/dist/validators/EmptyValidator.d.ts +0 -5
- package/dist/validators/ExcludeCheckedValidatorArray.d.ts +0 -8
- package/dist/validators/FormValidator.d.ts +0 -6
- package/dist/validators/IncludeCheckedValidatorArray.d.ts +0 -8
- package/dist/validators/MultipleValidator.d.ts +0 -8
- package/dist/validators/NonPassValidator.d.ts +0 -5
- package/dist/validators/NotEmptyValidator.d.ts +0 -5
- package/dist/validators/NotRegExpTestValidator.d.ts +0 -6
- package/dist/validators/PassValidator.d.ts +0 -5
- package/dist/validators/RegExpTestValidator.d.ts +0 -6
- package/dist/validators/RequiredValidator.d.ts +0 -5
- package/dist/validators/UnCheckedValidator.d.ts +0 -5
- package/dist/validators/ValidMultipleValidator.d.ts +0 -9
- package/dist/validators/ValidValidator.d.ts +0 -6
- package/dist/validators/ValidValidatorArray.d.ts +0 -7
- package/dist/validators/Validator.d.ts +0 -46
- package/dist/validators/ValidatorArray.d.ts +0 -17
- package/dist/validators/ValueEqualsValidator.d.ts +0 -6
- package/dist/validators/ValueNotEqualsValidator.d.ts +0 -6
package/Config.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConstructorType } from './types/Types';
|
|
2
|
-
import { RawSet, Render } from './RawSet';
|
|
2
|
+
import { CreatorMetaData, RawSet, Render } from './RawSet';
|
|
3
3
|
export declare type TargetElement = {
|
|
4
4
|
name: string;
|
|
5
5
|
template?: string;
|
|
@@ -7,6 +7,7 @@ export declare type TargetElement = {
|
|
|
7
7
|
callBack: (target: Element, obj: any, rawSet: RawSet) => DocumentFragment;
|
|
8
8
|
complete?: (target: Element, obj: any, rawSet: RawSet) => void;
|
|
9
9
|
__render?: Render;
|
|
10
|
+
__creatorMetaData?: CreatorMetaData;
|
|
10
11
|
};
|
|
11
12
|
export declare type TargetAttr = {
|
|
12
13
|
name: string;
|
|
@@ -14,10 +15,11 @@ export declare type TargetAttr = {
|
|
|
14
15
|
complete?: (target: Element, attrValue: string, obj: any, rawSet: RawSet) => void;
|
|
15
16
|
};
|
|
16
17
|
export interface Config {
|
|
18
|
+
window: Window;
|
|
17
19
|
targetElements?: TargetElement[];
|
|
18
20
|
targetAttrs?: TargetAttr[];
|
|
19
|
-
onElementInit?: (name: string, obj: any, rawSet: RawSet, targetElement: TargetElement) =>
|
|
20
|
-
onAttrInit?: (name: string, attrValue: string, obj: any, rawSet: RawSet) =>
|
|
21
|
+
onElementInit?: (name: string, obj: any, rawSet: RawSet, targetElement: TargetElement) => any;
|
|
22
|
+
onAttrInit?: (name: string, attrValue: string, obj: any, rawSet: RawSet) => any;
|
|
21
23
|
proxyExcludeTyps?: ConstructorType<any>[];
|
|
22
24
|
proxyExcludeOnBeforeReturnSets?: string[];
|
|
23
25
|
proxyExcludeOnBeforeReturnGets?: string[];
|
package/Config.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/DomRender.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DomRender = void 0;
|
|
4
|
+
var DomRenderProxy_1 = require("./DomRenderProxy");
|
|
5
|
+
var DomRender = /** @class */ (function () {
|
|
3
6
|
function DomRender() {
|
|
4
7
|
}
|
|
5
8
|
DomRender.run = function (obj, target, config) {
|
|
@@ -11,7 +14,10 @@ var DomRender = (function () {
|
|
|
11
14
|
robj = obj;
|
|
12
15
|
return robj;
|
|
13
16
|
}
|
|
14
|
-
|
|
17
|
+
if (!config) {
|
|
18
|
+
config = { window: window };
|
|
19
|
+
}
|
|
20
|
+
var domRender = new DomRenderProxy_1.DomRenderProxy(obj, target, config);
|
|
15
21
|
var dest = new Proxy(obj, domRender);
|
|
16
22
|
robj = dest;
|
|
17
23
|
domRender.run(robj);
|
|
@@ -19,4 +25,5 @@ var DomRender = (function () {
|
|
|
19
25
|
};
|
|
20
26
|
return DomRender;
|
|
21
27
|
}());
|
|
22
|
-
|
|
28
|
+
exports.DomRender = DomRender;
|
|
29
|
+
// export default DomRender;
|
package/DomRenderProxy.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import { RawSet } from './RawSet';
|
|
|
2
2
|
import { Config } from './Config';
|
|
3
3
|
export declare class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
4
4
|
_domRender_origin: T;
|
|
5
|
-
private config
|
|
5
|
+
private config;
|
|
6
6
|
_domRender_ref: Map<object, Set<string>>;
|
|
7
7
|
_rawSets: Map<string, Set<RawSet>>;
|
|
8
8
|
_domRender_proxy?: T;
|
|
9
9
|
_targets: Set<Node>;
|
|
10
|
-
constructor(_domRender_origin: T, target
|
|
10
|
+
constructor(_domRender_origin: T, target: Node | undefined, config: Config);
|
|
11
11
|
static unFinal<T = any>(obj: T): T;
|
|
12
12
|
static final<T = any>(obj: T): T;
|
|
13
13
|
static isFinal<T = any>(obj: T): boolean;
|
|
@@ -23,6 +23,7 @@ export declare class DomRenderProxy<T extends object> implements ProxyHandler<T>
|
|
|
23
23
|
addRef(parent: object, path: string): void;
|
|
24
24
|
addRawSetAndRender(path: string, rawSet: RawSet): void;
|
|
25
25
|
addRawSet(path: string, rawSet: RawSet): void;
|
|
26
|
-
removeRawSet(raws: RawSet): void;
|
|
27
|
-
|
|
26
|
+
removeRawSet(...raws: RawSet[]): void;
|
|
27
|
+
private targetGarbageRawSet;
|
|
28
|
+
private garbageRawSet;
|
|
28
29
|
}
|
package/DomRenderProxy.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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 Types_1 = require("./types/Types");
|
|
5
8
|
var excludeGetSetPropertys = ['onBeforeReturnGet', 'onBeforeReturnSet', '__domrender_components', '__render', '_DomRender_isFinal', '_domRender_ref', '_rawSets', '_domRender_proxy', '_targets', '_DomRender_origin', '_DomRender_ref', '_DomRender_proxy'];
|
|
6
|
-
var DomRenderProxy = (function () {
|
|
9
|
+
var DomRenderProxy = /** @class */ (function () {
|
|
7
10
|
function DomRenderProxy(_domRender_origin, target, config) {
|
|
8
11
|
this._domRender_origin = _domRender_origin;
|
|
9
12
|
this.config = config;
|
|
@@ -15,15 +18,13 @@ var DomRenderProxy = (function () {
|
|
|
15
18
|
}
|
|
16
19
|
}
|
|
17
20
|
DomRenderProxy.unFinal = function (obj) {
|
|
18
|
-
|
|
19
|
-
return obj;
|
|
21
|
+
return Types_1.DomRenderFinalProxy.unFinal(obj);
|
|
20
22
|
};
|
|
21
23
|
DomRenderProxy.final = function (obj) {
|
|
22
|
-
obj
|
|
23
|
-
return obj;
|
|
24
|
+
return Types_1.DomRenderFinalProxy.final(obj);
|
|
24
25
|
};
|
|
25
26
|
DomRenderProxy.isFinal = function (obj) {
|
|
26
|
-
return
|
|
27
|
+
return Types_1.DomRenderFinalProxy.isFinal(obj);
|
|
27
28
|
};
|
|
28
29
|
DomRenderProxy.prototype.run = function (objProxy) {
|
|
29
30
|
var _this = this;
|
|
@@ -31,10 +32,14 @@ var DomRenderProxy = (function () {
|
|
|
31
32
|
var obj = objProxy._DomRender_origin;
|
|
32
33
|
if (obj) {
|
|
33
34
|
Object.keys(obj).forEach(function (it) {
|
|
34
|
-
var _a, _b
|
|
35
|
+
var _a, _b;
|
|
36
|
+
// console.log('key-------->', it)
|
|
35
37
|
var target = obj[it];
|
|
36
|
-
if (target !== undefined && target !== null && typeof target === 'object' && !DomRenderProxy.isFinal(target) && !Object.isFrozen(target) && !(obj instanceof Shield)) {
|
|
37
|
-
|
|
38
|
+
if (target !== undefined && target !== null && typeof target === 'object' && !DomRenderProxy.isFinal(target) && !Object.isFrozen(target) && !(obj instanceof Types_1.Shield)) {
|
|
39
|
+
// console.log('target-------->', it, target);
|
|
40
|
+
// console.count('target')
|
|
41
|
+
// console.log('target-------->')
|
|
42
|
+
var filter = (_b = (_a = _this.config.proxyExcludeTyps) === null || _a === void 0 ? void 0 : _a.filter(function (it) { return target instanceof it; })) !== null && _b !== void 0 ? _b : [];
|
|
38
43
|
if (filter.length === 0) {
|
|
39
44
|
var proxyAfter = _this.proxy(objProxy, target, it);
|
|
40
45
|
obj[it] = proxyAfter;
|
|
@@ -48,23 +53,36 @@ var DomRenderProxy = (function () {
|
|
|
48
53
|
};
|
|
49
54
|
DomRenderProxy.prototype.initRender = function (target) {
|
|
50
55
|
var _this = this;
|
|
51
|
-
var _a, _b;
|
|
56
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
57
|
+
var onCreate = (_b = (_a = target).getAttribute) === null || _b === void 0 ? void 0 : _b.call(_a, 'dr-on-create');
|
|
58
|
+
var createParam = undefined;
|
|
59
|
+
if (onCreate) {
|
|
60
|
+
createParam = ScriptUtils_1.ScriptUtils.evalReturn(onCreate, this._domRender_proxy);
|
|
61
|
+
}
|
|
62
|
+
(_d = (_c = this._domRender_proxy) === null || _c === void 0 ? void 0 : _c.onCreateRender) === null || _d === void 0 ? void 0 : _d.call(_c, createParam);
|
|
63
|
+
var innerHTML = (_e = target.innerHTML) !== null && _e !== void 0 ? _e : '';
|
|
52
64
|
this._targets.add(target);
|
|
53
|
-
var rawSets = RawSet.checkPointCreates(target, this.config);
|
|
54
|
-
eventManager.applyEvent(this._domRender_proxy, eventManager.findAttrElements(target, this.config), this.config);
|
|
65
|
+
var rawSets = RawSet_1.RawSet.checkPointCreates(target, this.config);
|
|
66
|
+
EventManager_1.eventManager.applyEvent(this._domRender_proxy, EventManager_1.eventManager.findAttrElements(target, this.config), this.config);
|
|
55
67
|
rawSets.forEach(function (it) {
|
|
56
|
-
var
|
|
57
|
-
if (
|
|
68
|
+
var variables = it.getUsingTriggerVariables(_this.config);
|
|
69
|
+
if (variables.size <= 0) {
|
|
58
70
|
_this.addRawSet('', it);
|
|
59
71
|
}
|
|
60
72
|
else {
|
|
61
|
-
|
|
73
|
+
variables.forEach(function (sit) {
|
|
62
74
|
_this.addRawSet(sit, it);
|
|
63
75
|
});
|
|
64
76
|
}
|
|
65
77
|
});
|
|
66
78
|
this.render(this.getRawSets());
|
|
67
|
-
|
|
79
|
+
var render = { target: target };
|
|
80
|
+
var creatorMetaData = {
|
|
81
|
+
creator: this._domRender_proxy,
|
|
82
|
+
rootCreator: this._domRender_proxy,
|
|
83
|
+
innerHTML: innerHTML,
|
|
84
|
+
};
|
|
85
|
+
(_g = (_f = this._domRender_proxy) === null || _f === void 0 ? void 0 : _f.onInitRender) === null || _g === void 0 ? void 0 : _g.call(_f, { render: render, creatorMetaData: creatorMetaData });
|
|
68
86
|
};
|
|
69
87
|
DomRenderProxy.prototype.getRawSets = function () {
|
|
70
88
|
var set = new Set();
|
|
@@ -75,20 +93,35 @@ var DomRenderProxy = (function () {
|
|
|
75
93
|
};
|
|
76
94
|
DomRenderProxy.prototype.render = function (raws) {
|
|
77
95
|
var _this = this;
|
|
96
|
+
var removeRawSets = [];
|
|
78
97
|
(raws !== null && raws !== void 0 ? raws : this.getRawSets()).forEach(function (it) {
|
|
98
|
+
var _a;
|
|
79
99
|
it.getUsingTriggerVariables(_this.config).forEach(function (path) { return _this.addRawSet(path, it); });
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
100
|
+
// console.log('------->', it, it.isConnected)
|
|
101
|
+
if (it.isConnected) {
|
|
102
|
+
if ((_a = it.detect) === null || _a === void 0 ? void 0 : _a.action) {
|
|
103
|
+
it.detect.action();
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
var rawSets = it.render(_this._domRender_proxy, _this.config);
|
|
107
|
+
if (rawSets && rawSets.length > 0) {
|
|
108
|
+
_this.render(rawSets);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
83
111
|
}
|
|
84
112
|
else {
|
|
85
|
-
|
|
113
|
+
removeRawSets.push(it);
|
|
114
|
+
// this.removeRawSet(it)
|
|
86
115
|
}
|
|
87
116
|
});
|
|
117
|
+
if (removeRawSets.length > 0) {
|
|
118
|
+
this.removeRawSet.apply(this, removeRawSets);
|
|
119
|
+
}
|
|
88
120
|
};
|
|
89
121
|
DomRenderProxy.prototype.root = function (paths, value, lastDoneExecute) {
|
|
90
122
|
var _this = this;
|
|
91
123
|
if (lastDoneExecute === void 0) { lastDoneExecute = true; }
|
|
124
|
+
// console.log('root--->', paths, value, this._domRender_ref, this._domRender_origin);
|
|
92
125
|
var fullPaths = [];
|
|
93
126
|
if (this._domRender_ref.size > 0) {
|
|
94
127
|
this._domRender_ref.forEach(function (it, key) {
|
|
@@ -103,13 +136,20 @@ var DomRenderProxy = (function () {
|
|
|
103
136
|
}
|
|
104
137
|
else {
|
|
105
138
|
var strings = paths.reverse();
|
|
106
|
-
|
|
139
|
+
// const fullPathStr = strings.join('.');
|
|
140
|
+
var fullPathStr_1 = strings.map(function (it) { return isNaN(Number(it)) ? '.' + it : "[".concat(it, "]"); }).join('').slice(1);
|
|
107
141
|
if (lastDoneExecute) {
|
|
108
142
|
var iterable = this._rawSets.get(fullPathStr_1);
|
|
109
|
-
|
|
143
|
+
// array check
|
|
144
|
+
var front = strings.slice(0, strings.length - 1).map(function (it) { return isNaN(Number(it)) ? '.' + it : "[".concat(it, "]"); }).join('');
|
|
145
|
+
// front = front.replace(/\.\[/g, '[');
|
|
146
|
+
// const front = strings.slice(0, strings.length - 1).join('.');
|
|
147
|
+
// front = front.replace(/\.\[/g, '[');
|
|
110
148
|
var last = strings[strings.length - 1];
|
|
111
|
-
|
|
112
|
-
|
|
149
|
+
// console.log('root-else-->', fullPathStr, iterable, front, last)
|
|
150
|
+
// if (!isNaN(Number(last)) && Array.isArray(ScriptUtils.evalReturn('this' + front, this._domRender_proxy))) {
|
|
151
|
+
if (last === 'length' && Array.isArray(ScriptUtils_1.ScriptUtils.evalReturn('this' + front, this._domRender_proxy))) {
|
|
152
|
+
var aIterable = this._rawSets.get(front.slice(1));
|
|
113
153
|
if (aIterable) {
|
|
114
154
|
this.render(Array.from(aIterable));
|
|
115
155
|
}
|
|
@@ -119,8 +159,8 @@ var DomRenderProxy = (function () {
|
|
|
119
159
|
}
|
|
120
160
|
this._targets.forEach(function (it) {
|
|
121
161
|
if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
|
|
122
|
-
var targets = eventManager.findAttrElements(it, _this.config);
|
|
123
|
-
eventManager.changeVar(_this._domRender_proxy, targets, "this."
|
|
162
|
+
var targets = EventManager_1.eventManager.findAttrElements(it, _this.config);
|
|
163
|
+
EventManager_1.eventManager.changeVar(_this._domRender_proxy, targets, "this.".concat(fullPathStr_1), _this.config);
|
|
124
164
|
}
|
|
125
165
|
});
|
|
126
166
|
}
|
|
@@ -129,7 +169,17 @@ var DomRenderProxy = (function () {
|
|
|
129
169
|
return fullPaths;
|
|
130
170
|
};
|
|
131
171
|
DomRenderProxy.prototype.set = function (target, p, value, receiver) {
|
|
132
|
-
var _a, _b, _c
|
|
172
|
+
var _a, _b, _c;
|
|
173
|
+
if (typeof p === 'string' && p !== '__domrender_components' && excludeGetSetPropertys.includes(p)) {
|
|
174
|
+
target[p] = value;
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
// console.log('set proxy-->', target, p, value, this._rawSets, this._domRender_ref);
|
|
178
|
+
// if (typeof p === 'string' && '__render' === p) {
|
|
179
|
+
// (target as any)[p] = value;
|
|
180
|
+
// return true;
|
|
181
|
+
// }
|
|
182
|
+
// console.log('set--?', p, target, value);
|
|
133
183
|
if (typeof p === 'string') {
|
|
134
184
|
value = this.proxy(receiver, value, p);
|
|
135
185
|
}
|
|
@@ -138,13 +188,15 @@ var DomRenderProxy = (function () {
|
|
|
138
188
|
if (typeof p === 'string') {
|
|
139
189
|
fullPath = this.root([p], value);
|
|
140
190
|
}
|
|
141
|
-
|
|
142
|
-
|
|
191
|
+
// console.log('full path:', fullPath);
|
|
192
|
+
if (('onBeforeReturnSet' in receiver) && typeof p === 'string' && !((_a = this.config.proxyExcludeOnBeforeReturnSets) !== null && _a !== void 0 ? _a : []).concat(excludeGetSetPropertys).includes(p)) {
|
|
193
|
+
(_c = (_b = receiver) === null || _b === void 0 ? void 0 : _b.onBeforeReturnSet) === null || _c === void 0 ? void 0 : _c.call(_b, p, value, fullPath);
|
|
143
194
|
}
|
|
144
195
|
return true;
|
|
145
196
|
};
|
|
146
197
|
DomRenderProxy.prototype.get = function (target, p, receiver) {
|
|
147
|
-
var _a, _b, _c
|
|
198
|
+
var _a, _b, _c;
|
|
199
|
+
// console.log('get-->', target, p, receiver);
|
|
148
200
|
if (p === '_DomRender_origin') {
|
|
149
201
|
return this._domRender_origin;
|
|
150
202
|
}
|
|
@@ -155,12 +207,26 @@ var DomRenderProxy = (function () {
|
|
|
155
207
|
return this;
|
|
156
208
|
}
|
|
157
209
|
else {
|
|
210
|
+
// Date라던지 이런놈들은-_-프록시가 이상하게 동작해서
|
|
211
|
+
// console.log('--->', p, target, target.bind, 'bind' in target)
|
|
212
|
+
// if ((p in target) && ('bind' in target)) {
|
|
213
|
+
// try{
|
|
214
|
+
// return (target as any)[p].bind(target);
|
|
215
|
+
// }catch (e) {
|
|
216
|
+
// console.error(e)
|
|
217
|
+
// }
|
|
218
|
+
// } else {
|
|
219
|
+
// return (target as any)[p]
|
|
220
|
+
// }
|
|
221
|
+
// return (p in target) ? (target as any)[p].bind(target) : (target as any)[p]
|
|
222
|
+
// console.log('-->', p, Object.prototype.toString.call((target as any)[p]), (target as any)[p])
|
|
223
|
+
// return (target as any)[p]
|
|
158
224
|
var it_1 = target[p];
|
|
159
225
|
if (it_1 && typeof it_1 === 'object' && ('_DomRender_isProxy' in it_1) && Object.prototype.toString.call(it_1._DomRender_origin) === '[object Date]') {
|
|
160
226
|
it_1 = it_1._DomRender_origin;
|
|
161
227
|
}
|
|
162
|
-
if (('onBeforeReturnGet' in receiver) && typeof p === 'string' && !((
|
|
163
|
-
(
|
|
228
|
+
if (('onBeforeReturnGet' in receiver) && typeof p === 'string' && !((_a = this.config.proxyExcludeOnBeforeReturnGets) !== null && _a !== void 0 ? _a : []).concat(excludeGetSetPropertys).includes(p)) {
|
|
229
|
+
(_c = (_b = receiver) === null || _b === void 0 ? void 0 : _b.onBeforeReturnGet) === null || _c === void 0 ? void 0 : _c.call(_b, p, it_1, this.root([p], it_1, false));
|
|
164
230
|
}
|
|
165
231
|
return it_1;
|
|
166
232
|
}
|
|
@@ -169,16 +235,16 @@ var DomRenderProxy = (function () {
|
|
|
169
235
|
return p === '_DomRender_isProxy' || p in target;
|
|
170
236
|
};
|
|
171
237
|
DomRenderProxy.prototype.proxy = function (parentProxy, obj, p) {
|
|
172
|
-
var _a, _b
|
|
173
|
-
var proxyTarget = ((
|
|
174
|
-
if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {
|
|
238
|
+
var _a, _b;
|
|
239
|
+
var proxyTarget = ((_b = (_a = this.config.proxyExcludeTyps) === null || _a === void 0 ? void 0 : _a.filter(function (it) { return obj instanceof it; })) !== null && _b !== void 0 ? _b : []).length <= 0;
|
|
240
|
+
if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Types_1.Shield)) {
|
|
175
241
|
var domRender = new DomRenderProxy(obj, undefined, this.config);
|
|
176
242
|
domRender.addRef(parentProxy, p);
|
|
177
243
|
var proxy = new Proxy(obj, domRender);
|
|
178
244
|
domRender.run(proxy);
|
|
179
245
|
return proxy;
|
|
180
246
|
}
|
|
181
|
-
if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {
|
|
247
|
+
if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Types_1.Shield)) {
|
|
182
248
|
var d = obj._DomRender_proxy;
|
|
183
249
|
d.addRef(this._domRender_proxy, p);
|
|
184
250
|
return obj;
|
|
@@ -200,16 +266,42 @@ var DomRenderProxy = (function () {
|
|
|
200
266
|
};
|
|
201
267
|
DomRenderProxy.prototype.addRawSet = function (path, rawSet) {
|
|
202
268
|
var _a;
|
|
269
|
+
// console.log('addRawSet-->', path, rawSet)
|
|
203
270
|
if (!this._rawSets.get(path)) {
|
|
204
271
|
this._rawSets.set(path, new Set());
|
|
205
272
|
}
|
|
206
273
|
(_a = this._rawSets.get(path)) === null || _a === void 0 ? void 0 : _a.add(rawSet);
|
|
207
274
|
};
|
|
208
|
-
|
|
275
|
+
// public removeRawSet(...raws: RawSet[]) {
|
|
276
|
+
// this._rawSets.forEach(it => {
|
|
277
|
+
// raws.forEach(sit => it.delete(sit));
|
|
278
|
+
// })
|
|
279
|
+
// this.garbageRawSet();
|
|
280
|
+
// }
|
|
281
|
+
DomRenderProxy.prototype.removeRawSet = function () {
|
|
282
|
+
var raws = [];
|
|
283
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
284
|
+
raws[_i] = arguments[_i];
|
|
285
|
+
}
|
|
209
286
|
this._rawSets.forEach(function (it) {
|
|
210
|
-
it.
|
|
287
|
+
it.forEach(function (sit) {
|
|
288
|
+
if (!sit.isConnected) {
|
|
289
|
+
it.delete(sit);
|
|
290
|
+
}
|
|
291
|
+
else if (raws.includes(sit)) {
|
|
292
|
+
it.delete(sit);
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
this.targetGarbageRawSet();
|
|
297
|
+
};
|
|
298
|
+
DomRenderProxy.prototype.targetGarbageRawSet = function () {
|
|
299
|
+
var _this = this;
|
|
300
|
+
this._targets.forEach(function (it) {
|
|
301
|
+
if (!it.isConnected) {
|
|
302
|
+
_this._targets.delete(it);
|
|
303
|
+
}
|
|
211
304
|
});
|
|
212
|
-
this.garbageRawSet();
|
|
213
305
|
};
|
|
214
306
|
DomRenderProxy.prototype.garbageRawSet = function () {
|
|
215
307
|
var _this = this;
|
|
@@ -228,4 +320,4 @@ var DomRenderProxy = (function () {
|
|
|
228
320
|
};
|
|
229
321
|
return DomRenderProxy;
|
|
230
322
|
}());
|
|
231
|
-
|
|
323
|
+
exports.DomRenderProxy = DomRenderProxy;
|