@dooboostore/dom-render 1.0.109 → 1.0.110
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/dist/cjs/DomRenderProxy.js +122 -57
- package/dist/cjs/DomRenderProxy.js.map +2 -2
- package/dist/cjs/components/ComponentBase.js +4 -4
- package/dist/cjs/components/ComponentBase.js.map +2 -2
- package/dist/cjs/components/appender/Appender.js +0 -3
- package/dist/cjs/components/appender/Appender.js.map +2 -2
- package/dist/cjs/components/checkbox/CheckBox.js.map +2 -2
- package/dist/cjs/components/choose/Choose.js +3 -1
- package/dist/cjs/components/choose/Choose.js.map +2 -2
- package/dist/cjs/components/details/Details.js +2 -2
- package/dist/cjs/components/details/Details.js.map +2 -2
- package/dist/cjs/components/forOf/ForOf.js.map +2 -2
- package/dist/cjs/components/if/If.js +2 -2
- package/dist/cjs/components/if/If.js.map +2 -2
- package/dist/cjs/components/input/Input.js +2 -2
- package/dist/cjs/components/input/Input.js.map +2 -2
- package/dist/cjs/components/promise/PromiseSwitch.js +6 -6
- package/dist/cjs/components/promise/PromiseSwitch.js.map +2 -2
- package/dist/cjs/components/radio/Radio.js.map +2 -2
- package/dist/cjs/components/router/Route.js +2 -2
- package/dist/cjs/components/router/Route.js.map +2 -2
- package/dist/cjs/components/router/RouterOutlet.js +2 -2
- package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
- package/dist/cjs/components/select/Select.js +6 -6
- package/dist/cjs/components/select/Select.js.map +2 -2
- package/dist/cjs/components/this/This.js +2 -2
- package/dist/cjs/components/this/This.js.map +2 -2
- package/dist/cjs/components/timer/Timer.js +2 -3
- package/dist/cjs/components/timer/Timer.js.map +2 -2
- package/dist/cjs/events/EventManager.js +9 -2
- package/dist/cjs/events/EventManager.js.map +2 -2
- package/dist/cjs/lifecycle/OnInitRender.js.map +1 -1
- package/dist/cjs/operators/DrForOf.js +24 -11
- package/dist/cjs/operators/DrForOf.js.map +2 -2
- package/dist/cjs/operators/DrIf.js +1 -2
- package/dist/cjs/operators/DrIf.js.map +2 -2
- package/dist/cjs/operators/DrInnerText.js +2 -2
- package/dist/cjs/operators/DrInnerText.js.map +2 -2
- package/dist/cjs/rawsets/RawSet.js +243 -46
- package/dist/cjs/rawsets/RawSet.js.map +3 -3
- package/dist/cjs/routers/PathRouter.js +13 -7
- package/dist/cjs/routers/PathRouter.js.map +2 -2
- package/dist/cjs/routers/Router.js +51 -27
- package/dist/cjs/routers/Router.js.map +2 -2
- package/dist/esm/DomRenderProxy.js +122 -57
- package/dist/esm/DomRenderProxy.js.map +2 -2
- package/dist/esm/components/ComponentBase.js +4 -4
- package/dist/esm/components/ComponentBase.js.map +2 -2
- package/dist/esm/components/appender/Appender.js +0 -3
- package/dist/esm/components/appender/Appender.js.map +2 -2
- package/dist/esm/components/checkbox/CheckBox.js.map +2 -2
- package/dist/esm/components/choose/Choose.js +3 -1
- package/dist/esm/components/choose/Choose.js.map +2 -2
- package/dist/esm/components/details/Details.js +2 -2
- package/dist/esm/components/details/Details.js.map +2 -2
- package/dist/esm/components/forOf/ForOf.js.map +2 -2
- package/dist/esm/components/if/If.js +2 -2
- package/dist/esm/components/if/If.js.map +2 -2
- package/dist/esm/components/input/Input.js +2 -2
- package/dist/esm/components/input/Input.js.map +2 -2
- package/dist/esm/components/promise/PromiseSwitch.js +6 -6
- package/dist/esm/components/promise/PromiseSwitch.js.map +2 -2
- package/dist/esm/components/radio/Radio.js.map +2 -2
- package/dist/esm/components/router/Route.js +2 -2
- package/dist/esm/components/router/Route.js.map +2 -2
- package/dist/esm/components/router/RouterOutlet.js +2 -2
- package/dist/esm/components/router/RouterOutlet.js.map +2 -2
- package/dist/esm/components/select/Select.js +6 -6
- package/dist/esm/components/select/Select.js.map +2 -2
- package/dist/esm/components/this/This.js +2 -2
- package/dist/esm/components/this/This.js.map +2 -2
- package/dist/esm/components/timer/Timer.js +2 -3
- package/dist/esm/components/timer/Timer.js.map +2 -2
- package/dist/esm/events/EventManager.js +9 -2
- package/dist/esm/events/EventManager.js.map +2 -2
- package/dist/esm/lifecycle/OnInitRender.js.map +1 -1
- package/dist/esm/operators/DrForOf.js +24 -11
- package/dist/esm/operators/DrForOf.js.map +2 -2
- package/dist/esm/operators/DrIf.js +1 -2
- package/dist/esm/operators/DrIf.js.map +2 -2
- package/dist/esm/operators/DrInnerText.js +2 -2
- package/dist/esm/operators/DrInnerText.js.map +2 -2
- package/dist/esm/rawsets/RawSet.js +243 -46
- package/dist/esm/rawsets/RawSet.js.map +3 -3
- package/dist/esm/routers/PathRouter.js +13 -7
- package/dist/esm/routers/PathRouter.js.map +2 -2
- package/dist/esm/routers/Router.js +51 -27
- package/dist/esm/routers/Router.js.map +2 -2
- package/dist/esm-bundle/dooboostore-dom-render.esm.js +1850 -319
- package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
- package/dist/types/DomRenderProxy.d.ts +2 -2
- package/dist/types/DomRenderProxy.d.ts.map +1 -1
- package/dist/types/components/ComponentBase.d.ts +1 -1
- package/dist/types/components/ComponentBase.d.ts.map +1 -1
- package/dist/types/components/appender/Appender.d.ts +0 -2
- package/dist/types/components/appender/Appender.d.ts.map +1 -1
- package/dist/types/components/checkbox/CheckBox.d.ts.map +1 -1
- package/dist/types/components/choose/Choose.d.ts.map +1 -1
- package/dist/types/components/details/Details.d.ts +1 -1
- package/dist/types/components/details/Details.d.ts.map +1 -1
- package/dist/types/components/forOf/ForOf.d.ts.map +1 -1
- package/dist/types/components/if/If.d.ts +1 -1
- package/dist/types/components/if/If.d.ts.map +1 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/input/Input.d.ts +1 -1
- package/dist/types/components/input/Input.d.ts.map +1 -1
- package/dist/types/components/promise/PromiseSwitch.d.ts +1 -1
- package/dist/types/components/promise/PromiseSwitch.d.ts.map +1 -1
- package/dist/types/components/radio/Radio.d.ts.map +1 -1
- package/dist/types/components/router/Route.d.ts +1 -1
- package/dist/types/components/router/Route.d.ts.map +1 -1
- package/dist/types/components/router/RouterOutlet.d.ts +1 -1
- package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
- package/dist/types/components/select/Select.d.ts +3 -3
- package/dist/types/components/select/Select.d.ts.map +1 -1
- package/dist/types/components/this/This.d.ts +1 -1
- package/dist/types/components/this/This.d.ts.map +1 -1
- package/dist/types/components/timer/Timer.d.ts +1 -1
- package/dist/types/components/timer/Timer.d.ts.map +1 -1
- package/dist/types/events/EventManager.d.ts +8 -0
- package/dist/types/events/EventManager.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -101
- package/dist/types/lifecycle/OnInitRender.d.ts +1 -1
- package/dist/types/lifecycle/OnInitRender.d.ts.map +1 -1
- package/dist/types/operators/DrForOf.d.ts.map +1 -1
- package/dist/types/operators/DrInnerText.d.ts.map +1 -1
- package/dist/types/rawsets/RawSet.d.ts +6 -5
- package/dist/types/rawsets/RawSet.d.ts.map +1 -1
- package/dist/types/routers/PathRouter.d.ts.map +1 -1
- package/dist/types/routers/Router.d.ts +9 -11
- package/dist/types/routers/Router.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-dom-render.umd.js +1850 -319
- package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
- package/package.json +7 -7
- package/src/DomRenderProxy.ts +258 -137
- package/src/components/ComponentBase.ts +4 -4
- package/src/components/appender/Appender.ts +0 -5
- package/src/components/checkbox/CheckBox.ts +22 -25
- package/src/components/choose/Choose.ts +16 -19
- package/src/components/details/Details.ts +40 -43
- package/src/components/forOf/ForOf.ts +6 -9
- package/src/components/if/If.ts +9 -11
- package/src/components/input/Input.ts +16 -22
- package/src/components/promise/PromiseSwitch.ts +67 -66
- package/src/components/radio/Radio.ts +23 -28
- package/src/components/router/Route.ts +10 -13
- package/src/components/router/RouterOutlet.ts +5 -4
- package/src/components/select/Select.ts +7 -7
- package/src/components/this/This.ts +13 -12
- package/src/components/timer/Timer.ts +12 -16
- package/src/events/EventManager.ts +15 -4
- package/src/lifecycle/OnInitRender.ts +1 -1
- package/src/node_modules/.bin/acorn +17 -0
- package/src/node_modules/.bin/browserslist +17 -0
- package/src/node_modules/.bin/eslint +17 -0
- package/src/node_modules/.bin/sbf +17 -0
- package/src/node_modules/.bin/ts-node +17 -0
- package/src/node_modules/.bin/ts-node-cwd +17 -0
- package/src/node_modules/.bin/ts-node-dev +17 -0
- package/src/node_modules/.bin/ts-node-esm +17 -0
- package/src/node_modules/.bin/ts-node-script +17 -0
- package/src/node_modules/.bin/ts-node-transpile-only +17 -0
- package/src/node_modules/.bin/ts-script +17 -0
- package/src/node_modules/.bin/tsc +17 -0
- package/src/node_modules/.bin/tsnd +17 -0
- package/src/node_modules/.bin/tsserver +17 -0
- package/src/node_modules/.bin/webpack +17 -0
- package/src/node_modules/.bin/webpack-cli +17 -0
- package/src/node_modules/.bin/webpack-dev-server +17 -0
- package/src/operators/DrForOf.ts +25 -10
- package/src/operators/DrIf.ts +1 -1
- package/src/operators/DrInnerText.ts +2 -1
- package/src/rawsets/RawSet.ts +387 -288
- package/src/routers/PathRouter.ts +14 -7
- package/src/routers/Router.ts +77 -48
- package/types.d.ts +0 -2873
package/src/DomRenderProxy.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RawSet, RenderResult } from './rawsets/RawSet';
|
|
2
|
-
import { EventManager } from './events/EventManager';
|
|
2
|
+
import { EventManager, NormalAttrDataType } from './events/EventManager';
|
|
3
3
|
import { DomRenderConfig } from './configs/DomRenderConfig';
|
|
4
4
|
import { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';
|
|
5
5
|
import { DomRenderFinalProxy, Shield } from './types/Types';
|
|
@@ -17,34 +17,47 @@ import { isDefined } from '@dooboostore/core/types';
|
|
|
17
17
|
import { isOnBeforeReturnSet } from './lifecycle/OnBeforeReturnSet';
|
|
18
18
|
import { isOnChildRenderedByProperty } from './lifecycle/OnChildRenderedByProperty';
|
|
19
19
|
import { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';
|
|
20
|
-
import {ValidUtils} from '@dooboostore/core/valid/ValidUtils'
|
|
20
|
+
import { ValidUtils } from '@dooboostore/core/valid/ValidUtils';
|
|
21
21
|
import { isOnProxyDomRender } from './lifecycle/OnProxyDomRender';
|
|
22
22
|
import { isOnRawSetRendered } from './lifecycle/OnRawSetRendered';
|
|
23
23
|
|
|
24
|
-
const excludeGetSetPropertys = [
|
|
24
|
+
const excludeGetSetPropertys = [
|
|
25
|
+
'onBeforeReturnGet',
|
|
26
|
+
'onBeforeReturnSet',
|
|
27
|
+
'__domrender_components',
|
|
28
|
+
'__render',
|
|
29
|
+
'_DomRender_isFinal',
|
|
30
|
+
'_domRender_ref',
|
|
31
|
+
'_rawSets',
|
|
32
|
+
'_domRender_proxy',
|
|
33
|
+
'_targets',
|
|
34
|
+
'_DomRender_origin',
|
|
35
|
+
'_DomRender_ref',
|
|
36
|
+
'_DomRender_proxy'
|
|
37
|
+
];
|
|
25
38
|
export const isWrapProxyDomRenderProxy = <T>(obj: T): boolean => {
|
|
26
|
-
return obj && typeof obj === 'object' &&
|
|
39
|
+
return obj && typeof obj === 'object' && '_DomRender_isProxy' in obj;
|
|
27
40
|
};
|
|
28
|
-
export const getDomRenderOriginObject = <T>(obj: T):T => {
|
|
41
|
+
export const getDomRenderOriginObject = <T>(obj: T): T => {
|
|
29
42
|
if (isWrapProxyDomRenderProxy(obj)) {
|
|
30
43
|
return (obj as any)._domRender_origin;
|
|
31
44
|
}
|
|
32
45
|
return obj;
|
|
33
|
-
}
|
|
46
|
+
};
|
|
34
47
|
export const getDomRenderConfig = (obj: any): DomRenderConfig | undefined => {
|
|
35
48
|
if (isWrapProxyDomRenderProxy(obj)) {
|
|
36
49
|
return obj._domRender_config;
|
|
37
50
|
}
|
|
38
51
|
return undefined;
|
|
39
|
-
}
|
|
52
|
+
};
|
|
40
53
|
//@ts-ignore
|
|
41
54
|
export const getDomRenderProxy = <T>(obj: T): DomRenderProxy<T> | undefined => {
|
|
42
55
|
if (isWrapProxyDomRenderProxy(obj)) {
|
|
43
|
-
|
|
56
|
+
//@ts-ignore
|
|
44
57
|
return (obj as any)._domRender_proxy as DomRenderProxy<T>;
|
|
45
58
|
}
|
|
46
59
|
return undefined;
|
|
47
|
-
}
|
|
60
|
+
};
|
|
48
61
|
export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
49
62
|
public _domRender_ref = new Map<object, Set<string>>();
|
|
50
63
|
public _rawSets = new Map<string, Set<RawSet>>();
|
|
@@ -52,7 +65,11 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
52
65
|
// public _firstTarget: Node;
|
|
53
66
|
public _targets = new Set<Node>();
|
|
54
67
|
|
|
55
|
-
constructor(
|
|
68
|
+
constructor(
|
|
69
|
+
public _domRender_origin: T,
|
|
70
|
+
target: Node | null | undefined,
|
|
71
|
+
public _domRender_config: DomRenderConfig
|
|
72
|
+
) {
|
|
56
73
|
if (target) {
|
|
57
74
|
this._targets.add(target);
|
|
58
75
|
// this._firstTarget = target;
|
|
@@ -79,7 +96,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
79
96
|
return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);
|
|
80
97
|
}
|
|
81
98
|
|
|
82
|
-
public run(objProxy: T) {
|
|
99
|
+
public async run(objProxy: T) {
|
|
83
100
|
this._domRender_proxy = objProxy;
|
|
84
101
|
if (isOnProxyDomRender(objProxy)) {
|
|
85
102
|
objProxy.onProxyDomRender(this._domRender_config);
|
|
@@ -89,14 +106,22 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
89
106
|
Object.keys(obj).forEach(it => {
|
|
90
107
|
// Reflect 메타데이터에서 domRender:NoProxy 여부 확인
|
|
91
108
|
try {
|
|
92
|
-
const isNoProxy =
|
|
109
|
+
const isNoProxy =
|
|
110
|
+
Reflect.getMetadata(DomRenderNoProxyKey, obj, it) ||
|
|
111
|
+
Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);
|
|
93
112
|
if (isNoProxy) {
|
|
94
113
|
return obj;
|
|
95
114
|
}
|
|
96
|
-
} catch (e) {
|
|
97
|
-
}
|
|
115
|
+
} catch (e) {}
|
|
98
116
|
const target = obj[it];
|
|
99
|
-
if (
|
|
117
|
+
if (
|
|
118
|
+
target !== undefined &&
|
|
119
|
+
target !== null &&
|
|
120
|
+
typeof target === 'object' &&
|
|
121
|
+
!DomRenderProxy.isFinal(target) &&
|
|
122
|
+
!Object.isFrozen(target) &&
|
|
123
|
+
!(obj instanceof Shield)
|
|
124
|
+
) {
|
|
100
125
|
const isExcluded = this._domRender_config.proxyExcludeTyps?.some(it => target instanceof it) ?? false;
|
|
101
126
|
// const filter = this._domRender_config.proxyExcludeTyps?.filter(it => target instanceof it) ?? [];
|
|
102
127
|
if (!isExcluded) {
|
|
@@ -107,13 +132,12 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
107
132
|
});
|
|
108
133
|
}
|
|
109
134
|
// console.log('target', this._targets);
|
|
110
|
-
this._targets
|
|
111
|
-
this.initRender(target);
|
|
112
|
-
}
|
|
135
|
+
for (let target of this._targets) {
|
|
136
|
+
await this.initRender(target);
|
|
137
|
+
}
|
|
113
138
|
}
|
|
114
139
|
|
|
115
|
-
public initRender(target: Node, rawSet?: RawSet) {
|
|
116
|
-
|
|
140
|
+
public async initRender(target: Node, rawSet?: RawSet) {
|
|
117
141
|
// if (target instanceof Element) {
|
|
118
142
|
// target.setAttribute('dr-this', 'this');
|
|
119
143
|
// const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this.config);
|
|
@@ -131,7 +155,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
131
155
|
const onCreate = (target as any).getAttribute?.(RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);
|
|
132
156
|
let createParam: any[] = [];
|
|
133
157
|
if (onCreate) {
|
|
134
|
-
createParam =
|
|
158
|
+
createParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);
|
|
135
159
|
if (!Array.isArray(createParam)) {
|
|
136
160
|
createParam = [createParam];
|
|
137
161
|
}
|
|
@@ -150,7 +174,11 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
150
174
|
const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this._domRender_config);
|
|
151
175
|
// console.log('initRender -------rawSet', rawSets)
|
|
152
176
|
// 중요 초기에 한번 튕겨줘야함.
|
|
153
|
-
this._domRender_config.eventManager.applyEvent(
|
|
177
|
+
this._domRender_config.eventManager.applyEvent(
|
|
178
|
+
this._domRender_proxy,
|
|
179
|
+
this._domRender_config.eventManager.findAttrElements(target as Element, this._domRender_config),
|
|
180
|
+
this._domRender_config
|
|
181
|
+
);
|
|
154
182
|
rawSets.forEach(it => {
|
|
155
183
|
const variables = it.getUsingTriggerVariables(this._domRender_config);
|
|
156
184
|
if (variables.size <= 0) {
|
|
@@ -161,26 +189,21 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
161
189
|
});
|
|
162
190
|
}
|
|
163
191
|
});
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
// creator: this._domRender_proxy,
|
|
168
|
-
// rootCreator: this._domRender_proxy,
|
|
169
|
-
// innerHTML
|
|
170
|
-
// } as CreatorMetaData;
|
|
192
|
+
|
|
193
|
+
const targetRawSets = await this.render(this.getRawSets());
|
|
194
|
+
for (let targetRawSet of targetRawSets) {
|
|
171
195
|
const onInit = (target as any).getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
|
|
172
196
|
let initParam: any;
|
|
173
197
|
if (onCreate) {
|
|
174
198
|
initParam = ScriptUtils.evaluateReturn(onCreate, this._domRender_proxy);
|
|
175
|
-
// if (!Array.isArray(initParam)) {
|
|
176
|
-
// initParam = [initParam];
|
|
177
|
-
// }
|
|
178
199
|
}
|
|
179
200
|
if (isOnInitRender(this._domRender_proxy)) {
|
|
180
|
-
this._domRender_proxy.onInitRender(
|
|
201
|
+
await this._domRender_proxy.onInitRender(
|
|
202
|
+
initParam,
|
|
203
|
+
rawSet ?? ({ dataSet: { config: this._domRender_config } } as any)
|
|
204
|
+
);
|
|
181
205
|
}
|
|
182
|
-
}
|
|
183
|
-
|
|
206
|
+
}
|
|
184
207
|
}
|
|
185
208
|
|
|
186
209
|
public getRawSets() {
|
|
@@ -220,13 +243,23 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
220
243
|
if (it.detect?.action) {
|
|
221
244
|
it.detect.action();
|
|
222
245
|
// } else if (it.type === RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && (it.fragment as any).render) {
|
|
223
|
-
} else if (
|
|
224
|
-
|
|
246
|
+
} else if (
|
|
247
|
+
it.type === RawSetType.TARGET_ELEMENT &&
|
|
248
|
+
it.dataSet?.render?.currentThis &&
|
|
249
|
+
fullPathStr &&
|
|
250
|
+
targetAttrMap
|
|
251
|
+
) {
|
|
252
|
+
new Map<string, NormalAttrDataType>(JSON.parse(targetAttrMap)).forEach((v, k) => {
|
|
225
253
|
// it?.data.onChangeAttrRender(k, null, v);
|
|
226
|
-
|
|
254
|
+
// console.log('------->?',v,k);
|
|
255
|
+
const isUsing = v.variablePaths.some(it => EventManager.isUsingThisVar(it.inner, `this.${fullPathStr}`))
|
|
256
|
+
// console.log('------->?',v,k, isUsing);
|
|
227
257
|
if (isUsing) {
|
|
228
|
-
const targetAttrObject = RawSet.getAttributeObject(
|
|
229
|
-
|
|
258
|
+
const targetAttrObject = RawSet.getAttributeObject(it.point.node as Element, {
|
|
259
|
+
script: it.dataSet?.render?.renderScript ?? '',
|
|
260
|
+
obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })
|
|
261
|
+
});
|
|
262
|
+
it.dataSet.render ??= {};
|
|
230
263
|
it.dataSet.render.attribute = targetAttrObject;
|
|
231
264
|
// const render = it.dataSet?.render;
|
|
232
265
|
// console.log('render-->!!!!!', it.dataSet.render);
|
|
@@ -251,10 +284,10 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
251
284
|
removeRawSets.push(it);
|
|
252
285
|
}
|
|
253
286
|
|
|
254
|
-
const t = it.findNearThis(this._domRender_proxy)
|
|
287
|
+
const t = it.findNearThis(this._domRender_proxy);
|
|
255
288
|
// TODO: 호출된곳에서 또 변수를 수정하게되면 무한루프니깐 왠만하면 사용못하게 해야한다.
|
|
256
|
-
if(isOnRawSetRendered(t)){
|
|
257
|
-
await t.onRawSetRendered(it, {path: fullPathStr, renderResult});
|
|
289
|
+
if (isOnRawSetRendered(t)) {
|
|
290
|
+
await t.onRawSetRendered(it, { path: fullPathStr, renderResult });
|
|
258
291
|
}
|
|
259
292
|
// console.log('----', it);
|
|
260
293
|
}
|
|
@@ -266,25 +299,32 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
266
299
|
}
|
|
267
300
|
|
|
268
301
|
// domrender_ref로 찾는걸로 바꿈
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
302
|
+
// public findRootDomRenderProxy(): DomRenderProxy<any> {
|
|
303
|
+
// let current:DomRenderProxy<any> = this;
|
|
304
|
+
// while (current.parentProxy) {
|
|
305
|
+
// current = current.parentProxy;
|
|
306
|
+
// }
|
|
307
|
+
// return current;
|
|
308
|
+
// }
|
|
276
309
|
|
|
277
|
-
public root(
|
|
310
|
+
public root(
|
|
311
|
+
pathInfos: { path: string; obj: any }[][],
|
|
312
|
+
value?: any,
|
|
313
|
+
lastDoneExecute = true
|
|
314
|
+
): { path: string; obj: any }[][] {
|
|
278
315
|
// console.log('root--->', paths, value, this._domRender_ref, this._domRender_origin);
|
|
279
|
-
const fullPaths: {path: string
|
|
316
|
+
const fullPaths: { path: string; obj: any }[][] = [];
|
|
280
317
|
if (this._domRender_ref.size > 0) {
|
|
281
318
|
this._domRender_ref.forEach((it, key) => {
|
|
282
319
|
if ('_DomRender_isProxy' in key) {
|
|
283
320
|
it.forEach(sit => {
|
|
284
321
|
try {
|
|
285
|
-
|
|
286
|
-
const
|
|
287
|
-
|
|
322
|
+
const concat = pathInfos.concat([[{ path: sit, obj: key }]]);
|
|
323
|
+
const items: { path: string; obj: any }[][] = (key as any)._DomRender_proxy?.root(
|
|
324
|
+
concat,
|
|
325
|
+
value,
|
|
326
|
+
lastDoneExecute
|
|
327
|
+
);
|
|
288
328
|
|
|
289
329
|
fullPaths.push(items.flat());
|
|
290
330
|
// fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});
|
|
@@ -299,9 +339,12 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
299
339
|
});
|
|
300
340
|
} else {
|
|
301
341
|
// const firstPathStr = paths.slice(1).reverse().join('.');
|
|
302
|
-
const strings = pathInfos.reverse().map(it=>it.map(it=>it.path).join(','));
|
|
342
|
+
const strings = pathInfos.reverse().map(it => it.map(it => it.path).join(','));
|
|
303
343
|
// array같은경우도 키값으로 접근하기때문에 특정 인덱스를 찾아서 그부분만 바꿔줄수 있다.
|
|
304
|
-
const fullPathStr = strings
|
|
344
|
+
const fullPathStr = strings
|
|
345
|
+
.map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))
|
|
346
|
+
.join('')
|
|
347
|
+
.slice(1);
|
|
305
348
|
// console.log('-------fullPathStr', fullPathStr, lastDoneExecute);
|
|
306
349
|
if (lastDoneExecute) {
|
|
307
350
|
// const firstData = ScriptUtils.evalReturn('this.' + firstPathStr, this._domRender_proxy);
|
|
@@ -310,7 +353,10 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
310
353
|
// }
|
|
311
354
|
const iterable = this._rawSets.get(fullPathStr);
|
|
312
355
|
// array check
|
|
313
|
-
const front = strings
|
|
356
|
+
const front = strings
|
|
357
|
+
.slice(0, strings.length - 1)
|
|
358
|
+
.map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))
|
|
359
|
+
.join('');
|
|
314
360
|
const lastPropertyName = strings[strings.length - 1];
|
|
315
361
|
const path = 'this' + front;
|
|
316
362
|
const data = ScriptUtils.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(path), this._domRender_proxy);
|
|
@@ -342,10 +388,19 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
342
388
|
if (value === undefined) {
|
|
343
389
|
const rawSet = it.getHasRawSet(lastPropertyName);
|
|
344
390
|
rawSet?.remove();
|
|
345
|
-
startElement.setAttribute(
|
|
391
|
+
startElement.setAttribute(
|
|
392
|
+
RawSet.DR_HAS_KEYS_OPTIONNAME,
|
|
393
|
+
keys.filter(it => it !== lastPropertyName).join(',')
|
|
394
|
+
);
|
|
346
395
|
}
|
|
347
396
|
if (!keys.includes(lastPropertyName)) {
|
|
348
|
-
const raws = DrThisProperty.append(
|
|
397
|
+
const raws = DrThisProperty.append(
|
|
398
|
+
this._domRender_proxy,
|
|
399
|
+
fullPathStr,
|
|
400
|
+
lastPropertyName,
|
|
401
|
+
it,
|
|
402
|
+
this._domRender_config
|
|
403
|
+
);
|
|
349
404
|
if (raws) {
|
|
350
405
|
rawSets.push(...raws);
|
|
351
406
|
}
|
|
@@ -354,7 +409,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
354
409
|
}
|
|
355
410
|
});
|
|
356
411
|
if (skip === false || rawSets.length > 0) {
|
|
357
|
-
|
|
412
|
+
rData = await this.render(rawSets);
|
|
358
413
|
}
|
|
359
414
|
}
|
|
360
415
|
|
|
@@ -368,8 +423,6 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
368
423
|
rData = await this.render(Array.from(iterable), fullPathStr);
|
|
369
424
|
}
|
|
370
425
|
|
|
371
|
-
|
|
372
|
-
|
|
373
426
|
// console.log('-----------', this, lastPropertyName );
|
|
374
427
|
// this._targets.forEach(it => {
|
|
375
428
|
// // return;
|
|
@@ -379,18 +432,26 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
379
432
|
// }
|
|
380
433
|
// });
|
|
381
434
|
|
|
382
|
-
|
|
435
|
+
const Node = ((this._domRender_config.window as any).Node)
|
|
383
436
|
this._targets.forEach(it => {
|
|
384
437
|
// return;
|
|
385
438
|
if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
|
|
386
|
-
const targets = this._domRender_config.eventManager.findAttrElements(
|
|
387
|
-
|
|
439
|
+
const targets = this._domRender_config.eventManager.findAttrElements(
|
|
440
|
+
it as DocumentFragment | Element,
|
|
441
|
+
this._domRender_config
|
|
442
|
+
);
|
|
443
|
+
this._domRender_config.eventManager.changeVar(
|
|
444
|
+
this._domRender_proxy,
|
|
445
|
+
targets,
|
|
446
|
+
`this.${fullPathStr}`,
|
|
447
|
+
this._domRender_config
|
|
448
|
+
);
|
|
388
449
|
}
|
|
389
450
|
});
|
|
390
451
|
|
|
391
452
|
//랜더대상된게있으면
|
|
392
|
-
if(rData?.length > 0 && isOnChildRenderedByProperty(data)) {
|
|
393
|
-
const propertyValue = ScriptUtils.evaluateReturn(`this.${lastPropertyName}`, data)
|
|
453
|
+
if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {
|
|
454
|
+
const propertyValue = ScriptUtils.evaluateReturn(`this.${lastPropertyName}`, data);
|
|
394
455
|
data.onChildRenderedByProperty(lastPropertyName, propertyValue);
|
|
395
456
|
// data
|
|
396
457
|
}
|
|
@@ -399,7 +460,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
399
460
|
// console.log('DonrenderProxy root RenderDone')
|
|
400
461
|
});
|
|
401
462
|
}
|
|
402
|
-
fullPaths.push([{path:fullPathStr, obj: this._domRender_proxy}]);
|
|
463
|
+
fullPaths.push([{ path: fullPathStr, obj: this._domRender_proxy }]);
|
|
403
464
|
}
|
|
404
465
|
|
|
405
466
|
// console.log('dddddd', fullPaths.flatMap(it=>it).map(it=>it.path))
|
|
@@ -443,77 +504,116 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
443
504
|
// (target as any)[p]?.obj?.onDrThisUnBind?.();
|
|
444
505
|
// }
|
|
445
506
|
// is ComponentSet
|
|
446
|
-
if (
|
|
507
|
+
if (value instanceof ComponentSet && (target as any)[p] instanceof ComponentSet) {
|
|
447
508
|
value.config.beforeComponentSet = (target as any)[p];
|
|
448
509
|
}
|
|
449
510
|
(target as any)[p] = value;
|
|
450
|
-
let fullPathInfo: {path: string
|
|
511
|
+
let fullPathInfo: { path: string; obj: any }[][] = [];
|
|
451
512
|
if (typeof p === 'string') {
|
|
452
|
-
fullPathInfo = this.root([[{path:p, obj: this._domRender_proxy}]], value)
|
|
513
|
+
fullPathInfo = this.root([[{ path: p, obj: this._domRender_proxy }]], value);
|
|
453
514
|
}
|
|
454
515
|
|
|
455
516
|
// console.log('setRooot', fullPathInfo);
|
|
456
517
|
|
|
457
|
-
|
|
458
518
|
//normal attribute 또한 링크랑 같은 증세라서 이렇게 해줘야한다!!
|
|
459
519
|
// const rootDomRenderProxy = this.findRootDomRenderProxy();
|
|
460
520
|
// console.log('set!!!!!!!', fullPathInfo, rootDomRenderProxy)
|
|
461
521
|
// console.log('--------rootDom',fullPathInfo, rootDomRenderProxy, rootDomRenderProxy._domRender_proxy)
|
|
462
522
|
const rootElement = this._domRender_config.rootElement ?? this._domRender_config.window.document;
|
|
463
|
-
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
523
|
+
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(
|
|
524
|
+
elementInfo => {
|
|
525
|
+
// @ts-ignore
|
|
526
|
+
// const optionalPath = ObjectUtils.Path.toOptionalChainPath(elementInfo.value);
|
|
527
|
+
const targets = new Map<string, NormalAttrDataType>(
|
|
528
|
+
ObjectUtils.Script.evaluateReturn<[string, NormalAttrDataType][]>(elementInfo.value)
|
|
529
|
+
);
|
|
530
|
+
Array.from(targets.entries())
|
|
531
|
+
.filter(isDefined)
|
|
532
|
+
.flatMap(([key, valueScript]) => {
|
|
533
|
+
return fullPathInfo
|
|
534
|
+
.flat()
|
|
535
|
+
.filter(it => valueScript.variablePaths?.some(vit=> vit.inner.includes(`this.${it.path}`)))
|
|
536
|
+
.flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));
|
|
537
|
+
})
|
|
538
|
+
.forEach(it => {
|
|
539
|
+
// const optionalPaths = it.valueScript.variablePaths.map(it => ObjectUtils.Path.toOptionalChainPath(it))
|
|
540
|
+
const variablePaths = it.valueScript.variablePaths;
|
|
541
|
+
let targetScript = it.valueScript.originalAttrValue;
|
|
542
|
+
variablePaths.forEach(it => {
|
|
543
|
+
let r = ObjectUtils.Path.toOptionalChainPath(it.inner);
|
|
544
|
+
targetScript = targetScript.replaceAll(it.origin,`\${${r}}`);
|
|
545
|
+
})
|
|
546
|
+
const value1 = ObjectUtils.Script.evaluateReturn('`'+targetScript+'`', it.pathInfo.obj);
|
|
547
|
+
// console.log('proxy set!Attribut======', it.key, value1)
|
|
548
|
+
if (value1 === null) {
|
|
549
|
+
elementInfo.element.removeAttribute(it.key);
|
|
550
|
+
elementInfo.element[it.key] = null;
|
|
551
|
+
} else {
|
|
552
|
+
elementInfo.element.setAttribute(it.key, value1);
|
|
553
|
+
elementInfo.element[it.key] = value1;
|
|
554
|
+
}
|
|
555
|
+
});
|
|
556
|
+
}
|
|
557
|
+
);
|
|
482
558
|
|
|
483
559
|
//여기서 링크 같은거 해줘야함 *-link로 변수값이 변경되면 그걸 참고하고있는 다른것들에도 해줘야한다.
|
|
484
|
-
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
560
|
+
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(
|
|
561
|
+
elementInfo => {
|
|
562
|
+
// @ts-ignore
|
|
563
|
+
const targets = new Map<string, string>(ScriptUtils.evaluateReturn<[string, string][]>(elementInfo.value));
|
|
564
|
+
|
|
565
|
+
Array.from(targets.entries())
|
|
566
|
+
.filter(([key, value]) => value.trim())
|
|
567
|
+
.filter(isDefined)
|
|
568
|
+
.flatMap(([key, valueScript]) => {
|
|
569
|
+
return fullPathInfo
|
|
570
|
+
.flat()
|
|
571
|
+
.filter(it => valueScript.includes(`this.${it.path}`))
|
|
572
|
+
.flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));
|
|
573
|
+
})
|
|
574
|
+
.forEach(info => {
|
|
575
|
+
const value1 = ScriptUtils.evaluateReturn(info.valueScript, info.pathInfo.obj);
|
|
576
|
+
const applyAttributeName = EventManager.linkAttrs.find(it => it.name === info.key);
|
|
577
|
+
if (applyAttributeName) {
|
|
578
|
+
if (value1 === null) {
|
|
579
|
+
elementInfo.element.removeAttribute(applyAttributeName.property);
|
|
580
|
+
} else {
|
|
581
|
+
// console.log('ppppppppppppppppppppppp', applyAttributeName, elementInfo)
|
|
582
|
+
elementInfo.element.setAttribute(applyAttributeName.property, value1);
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
});
|
|
586
|
+
|
|
587
|
+
Array.from(targets.entries())
|
|
588
|
+
.filter(([key, value]) => value.trim())
|
|
589
|
+
.filter(isDefined)
|
|
590
|
+
.flatMap(([key, valueScript]) => {
|
|
591
|
+
return fullPathInfo
|
|
592
|
+
.flat()
|
|
593
|
+
.filter(it => valueScript.includes(`this.${it.path}`))
|
|
594
|
+
.flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));
|
|
595
|
+
})
|
|
596
|
+
.forEach(info => {
|
|
597
|
+
const linkInfo = EventManager.linkAttrs.find(it => it.name === info.key);
|
|
598
|
+
if (linkInfo) {
|
|
599
|
+
elementInfo.element[linkInfo.property] = value;
|
|
600
|
+
}
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
);
|
|
512
604
|
|
|
513
605
|
// console.log('---end',receiver);
|
|
514
|
-
if (
|
|
515
|
-
|
|
516
|
-
|
|
606
|
+
if (
|
|
607
|
+
'onBeforeReturnSet' in receiver &&
|
|
608
|
+
typeof p === 'string' &&
|
|
609
|
+
!(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)
|
|
610
|
+
) {
|
|
611
|
+
if (isOnBeforeReturnSet(receiver)) {
|
|
612
|
+
receiver.onBeforeReturnSet?.(
|
|
613
|
+
p,
|
|
614
|
+
value,
|
|
615
|
+
fullPathInfo.map(it => it.map(it => it.path).join())
|
|
616
|
+
);
|
|
517
617
|
}
|
|
518
618
|
}
|
|
519
619
|
return true;
|
|
@@ -525,9 +625,9 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
525
625
|
return this._domRender_origin;
|
|
526
626
|
} else if (p === '_DomRender_ref' || p === '_domRender_ref') {
|
|
527
627
|
return this._domRender_ref;
|
|
528
|
-
} else if (p === '_DomRender_config' || p ==='_domRender_config') {
|
|
628
|
+
} else if (p === '_DomRender_config' || p === '_domRender_config') {
|
|
529
629
|
return this._domRender_config;
|
|
530
|
-
} else if (p === '_DomRender_proxy' || p ==='_domRender_proxy') {
|
|
630
|
+
} else if (p === '_DomRender_proxy' || p === '_domRender_proxy') {
|
|
531
631
|
return this;
|
|
532
632
|
} else {
|
|
533
633
|
// Date라던지 이런놈들은-_-프록시가 이상하게 동작해서
|
|
@@ -545,12 +645,25 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
545
645
|
// console.log('-->', p, Object.prototype.toString.call((target as any)[p]), (target as any)[p])
|
|
546
646
|
// return (target as any)[p]
|
|
547
647
|
let it = (target as any)[p];
|
|
548
|
-
if (
|
|
648
|
+
if (
|
|
649
|
+
it &&
|
|
650
|
+
typeof it === 'object' &&
|
|
651
|
+
'_DomRender_isProxy' in it &&
|
|
652
|
+
Object.prototype.toString.call(it._DomRender_origin) === '[object Date]'
|
|
653
|
+
) {
|
|
549
654
|
it = it._DomRender_origin;
|
|
550
655
|
}
|
|
551
656
|
|
|
552
|
-
if (
|
|
553
|
-
|
|
657
|
+
if (
|
|
658
|
+
'onBeforeReturnGet' in receiver &&
|
|
659
|
+
typeof p === 'string' &&
|
|
660
|
+
!(this._domRender_config.proxyExcludeOnBeforeReturnGets ?? []).concat(excludeGetSetPropertys).includes(p)
|
|
661
|
+
) {
|
|
662
|
+
(receiver as any)?.onBeforeReturnGet?.(
|
|
663
|
+
p,
|
|
664
|
+
it,
|
|
665
|
+
this.root([[{ path: p, obj: this._domRender_proxy }]], it, false)
|
|
666
|
+
);
|
|
554
667
|
}
|
|
555
668
|
return it;
|
|
556
669
|
}
|
|
@@ -559,7 +672,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
559
672
|
deleteProperty(target: T, p: string | symbol): boolean {
|
|
560
673
|
delete (target as any)[p];
|
|
561
674
|
if (typeof p === 'string') {
|
|
562
|
-
this.root([[{path:p, obj: this._domRender_proxy}]]);
|
|
675
|
+
this.root([[{ path: p, obj: this._domRender_proxy }]]);
|
|
563
676
|
}
|
|
564
677
|
return true;
|
|
565
678
|
}
|
|
@@ -572,19 +685,27 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
572
685
|
try {
|
|
573
686
|
// const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, obj, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);
|
|
574
687
|
const isObject = typeof obj === 'object';
|
|
575
|
-
const isNoProxy = isObject && isDomRenderNoProxy(obj,p)
|
|
576
|
-
const isExclude =
|
|
688
|
+
const isNoProxy = isObject && isDomRenderNoProxy(obj, p);
|
|
689
|
+
const isExclude = this._domRender_config.proxyExcludeTyps?.some(it => obj instanceof it) ?? false;
|
|
577
690
|
const isFinal = isObject && DomRenderProxy.isFinal(obj);
|
|
578
691
|
const isFrozen = Object.isFrozen(obj);
|
|
579
692
|
const isShield = obj instanceof Shield;
|
|
580
|
-
if (
|
|
693
|
+
if (
|
|
694
|
+
obj === undefined ||
|
|
695
|
+
obj === null ||
|
|
696
|
+
isNoProxy ||
|
|
697
|
+
isExclude ||
|
|
698
|
+
ValidUtils.isNullOrUndefined(obj) ||
|
|
699
|
+
!isObject ||
|
|
700
|
+
isFinal ||
|
|
701
|
+
isFrozen ||
|
|
702
|
+
isShield
|
|
703
|
+
) {
|
|
581
704
|
return obj;
|
|
582
705
|
}
|
|
583
|
-
} catch (e) {
|
|
584
|
-
}
|
|
585
|
-
|
|
706
|
+
} catch (e) {}
|
|
586
707
|
|
|
587
|
-
/*
|
|
708
|
+
/*
|
|
588
709
|
const proxyTarget = (this._domRender_config.proxyExcludeTyps?.filter(it => obj instanceof it) ?? []).length <= 0;
|
|
589
710
|
if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {
|
|
590
711
|
const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);
|
|
@@ -601,7 +722,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
601
722
|
return obj;
|
|
602
723
|
}
|
|
603
724
|
*/
|
|
604
|
-
if (
|
|
725
|
+
if (!isWrapProxyDomRenderProxy(obj)) {
|
|
605
726
|
const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);
|
|
606
727
|
domRender.addRef(parentProxy, p);
|
|
607
728
|
const proxy = new Proxy(obj, domRender);
|