@dooboostore/dom-render 1.0.110 → 1.0.112
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/README.MD +1 -2
- package/dist/cjs/DomRenderProxy.js +89 -48
- package/dist/cjs/DomRenderProxy.js.map +2 -2
- package/dist/cjs/components/ComponentBase.js +47 -1
- package/dist/cjs/components/ComponentBase.js.map +2 -2
- package/dist/cjs/components/a/A.js +22 -0
- package/dist/cjs/components/a/A.js.map +2 -2
- package/dist/cjs/components/appender/Appender.js +21 -4
- package/dist/cjs/components/appender/Appender.js.map +2 -2
- package/dist/cjs/components/details/Details.js +5 -0
- package/dist/cjs/components/details/Details.js.map +2 -2
- package/dist/cjs/components/forOf/ForOf.js +2 -2
- package/dist/cjs/components/forOf/ForOf.js.map +1 -1
- package/dist/cjs/components/if/If.js +1 -1
- package/dist/cjs/components/if/If.js.map +2 -2
- package/dist/cjs/components/index.js +3 -1
- package/dist/cjs/components/index.js.map +3 -3
- package/dist/cjs/components/router/RouterOutlet.js +41 -10
- package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
- package/dist/cjs/components/select/Select.js +39 -1
- package/dist/cjs/components/select/Select.js.map +2 -2
- package/dist/cjs/components/this/This.js +33 -5
- package/dist/cjs/components/this/This.js.map +2 -2
- package/dist/cjs/decorators/DomRenderNoProxy.js +3 -9
- package/dist/cjs/decorators/DomRenderNoProxy.js.map +2 -2
- package/dist/cjs/events/EventManager.js +103 -37
- package/dist/cjs/events/EventManager.js.map +2 -2
- package/dist/cjs/lifecycle/OnChangeAttrRender.js.map +1 -1
- package/dist/cjs/lifecycle/OnChildRawSetRendered.js +26 -0
- package/dist/cjs/lifecycle/OnChildRawSetRendered.js.map +7 -0
- package/dist/cjs/lifecycle/OnRawSetRendered.js.map +2 -2
- package/dist/cjs/operators/Appender.js +8 -1
- package/dist/cjs/operators/Appender.js.map +2 -2
- package/dist/cjs/operators/Dr.js +2 -2
- package/dist/cjs/operators/Dr.js.map +2 -2
- package/dist/cjs/operators/DrAppender.js +2 -2
- package/dist/cjs/operators/DrAppender.js.map +2 -2
- package/dist/cjs/operators/DrFor.js +2 -2
- package/dist/cjs/operators/DrFor.js.map +2 -2
- package/dist/cjs/operators/DrForOf.js +34 -6
- package/dist/cjs/operators/DrForOf.js.map +2 -2
- package/dist/cjs/operators/DrForm.js +6 -6
- package/dist/cjs/operators/DrForm.js.map +2 -2
- package/dist/cjs/operators/DrInnerHTML.js +2 -2
- package/dist/cjs/operators/DrInnerHTML.js.map +2 -2
- package/dist/cjs/operators/DrRepeat.js +2 -2
- package/dist/cjs/operators/DrRepeat.js.map +2 -2
- package/dist/cjs/operators/DrStripElement.js +2 -2
- package/dist/cjs/operators/DrStripElement.js.map +2 -2
- package/dist/cjs/operators/DrTargetElement.js +14 -5
- package/dist/cjs/operators/DrTargetElement.js.map +2 -2
- package/dist/cjs/operators/DrTargetElementIsElement.js +2 -2
- package/dist/cjs/operators/DrTargetElementIsElement.js.map +2 -2
- package/dist/cjs/operators/DrThis.js +2 -2
- package/dist/cjs/operators/DrThis.js.map +2 -2
- package/dist/cjs/operators/DrThisProperty.js +2 -1
- package/dist/cjs/operators/DrThisProperty.js.map +2 -2
- package/dist/cjs/rawsets/RawSet.js +87 -160
- package/dist/cjs/rawsets/RawSet.js.map +2 -2
- package/dist/cjs/routers/HashRouter.js +3 -0
- package/dist/cjs/routers/HashRouter.js.map +2 -2
- package/dist/cjs/routers/PathRouter.js +3 -0
- package/dist/cjs/routers/PathRouter.js.map +2 -2
- package/dist/cjs/routers/Router.js +25 -21
- package/dist/cjs/routers/Router.js.map +2 -2
- package/dist/esm/DomRenderProxy.js +89 -48
- package/dist/esm/DomRenderProxy.js.map +2 -2
- package/dist/esm/components/ComponentBase.js +47 -1
- package/dist/esm/components/ComponentBase.js.map +2 -2
- package/dist/esm/components/a/A.js +22 -0
- package/dist/esm/components/a/A.js.map +2 -2
- package/dist/esm/components/appender/Appender.js +22 -5
- package/dist/esm/components/appender/Appender.js.map +2 -2
- package/dist/esm/components/details/Details.js +5 -0
- package/dist/esm/components/details/Details.js.map +2 -2
- package/dist/esm/components/forOf/ForOf.js +2 -2
- package/dist/esm/components/forOf/ForOf.js.map +1 -1
- package/dist/esm/components/if/If.js +1 -1
- package/dist/esm/components/if/If.js.map +2 -2
- package/dist/esm/components/index.js +3 -1
- package/dist/esm/components/index.js.map +2 -2
- package/dist/esm/components/router/RouterOutlet.js +41 -10
- package/dist/esm/components/router/RouterOutlet.js.map +2 -2
- package/dist/esm/components/select/Select.js +39 -1
- package/dist/esm/components/select/Select.js.map +2 -2
- package/dist/esm/components/this/This.js +33 -5
- package/dist/esm/components/this/This.js.map +2 -2
- package/dist/esm/decorators/DomRenderNoProxy.js +3 -9
- package/dist/esm/decorators/DomRenderNoProxy.js.map +2 -2
- package/dist/esm/events/EventManager.js +103 -37
- package/dist/esm/events/EventManager.js.map +2 -2
- package/dist/esm/lifecycle/OnChangeAttrRender.js.map +1 -1
- package/dist/esm/lifecycle/OnChildRawSetRendered.js +7 -0
- package/dist/esm/lifecycle/OnChildRawSetRendered.js.map +7 -0
- package/dist/esm/lifecycle/OnRawSetRendered.js.map +2 -2
- package/dist/esm/operators/Appender.js +8 -1
- package/dist/esm/operators/Appender.js.map +2 -2
- package/dist/esm/operators/Dr.js +2 -2
- package/dist/esm/operators/Dr.js.map +2 -2
- package/dist/esm/operators/DrAppender.js +2 -2
- package/dist/esm/operators/DrAppender.js.map +2 -2
- package/dist/esm/operators/DrFor.js +2 -2
- package/dist/esm/operators/DrFor.js.map +2 -2
- package/dist/esm/operators/DrForOf.js +34 -6
- package/dist/esm/operators/DrForOf.js.map +2 -2
- package/dist/esm/operators/DrForm.js +6 -6
- package/dist/esm/operators/DrForm.js.map +2 -2
- package/dist/esm/operators/DrInnerHTML.js +2 -2
- package/dist/esm/operators/DrInnerHTML.js.map +2 -2
- package/dist/esm/operators/DrRepeat.js +2 -2
- package/dist/esm/operators/DrRepeat.js.map +2 -2
- package/dist/esm/operators/DrStripElement.js +2 -2
- package/dist/esm/operators/DrStripElement.js.map +2 -2
- package/dist/esm/operators/DrTargetElement.js +14 -5
- package/dist/esm/operators/DrTargetElement.js.map +2 -2
- package/dist/esm/operators/DrTargetElementIsElement.js +2 -2
- package/dist/esm/operators/DrTargetElementIsElement.js.map +2 -2
- package/dist/esm/operators/DrThis.js +2 -2
- package/dist/esm/operators/DrThis.js.map +2 -2
- package/dist/esm/operators/DrThisProperty.js +2 -1
- package/dist/esm/operators/DrThisProperty.js.map +2 -2
- package/dist/esm/rawsets/RawSet.js +87 -160
- package/dist/esm/rawsets/RawSet.js.map +2 -2
- package/dist/esm/routers/HashRouter.js +3 -0
- package/dist/esm/routers/HashRouter.js.map +2 -2
- package/dist/esm/routers/PathRouter.js +3 -0
- package/dist/esm/routers/PathRouter.js.map +2 -2
- package/dist/esm/routers/Router.js +25 -21
- package/dist/esm/routers/Router.js.map +2 -2
- package/dist/esm-bundle/dooboostore-dom-render.esm.js +830 -1533
- package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
- package/dist/types/DomRenderProxy.d.ts.map +1 -1
- package/dist/types/components/ComponentBase.d.ts +12 -1
- package/dist/types/components/ComponentBase.d.ts.map +1 -1
- package/dist/types/components/a/A.d.ts +6 -0
- package/dist/types/components/a/A.d.ts.map +1 -1
- package/dist/types/components/appender/Appender.d.ts +1 -0
- package/dist/types/components/appender/Appender.d.ts.map +1 -1
- package/dist/types/components/details/Details.d.ts +2 -0
- package/dist/types/components/details/Details.d.ts.map +1 -1
- package/dist/types/components/forOf/ForOf.d.ts +1 -1
- package/dist/types/components/forOf/ForOf.d.ts.map +1 -1
- package/dist/types/components/if/If.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/router/RouterOutlet.d.ts +6 -3
- package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
- package/dist/types/components/select/Select.d.ts +5 -3
- package/dist/types/components/select/Select.d.ts.map +1 -1
- package/dist/types/components/this/This.d.ts +5 -1
- package/dist/types/components/this/This.d.ts.map +1 -1
- package/dist/types/decorators/DomRenderNoProxy.d.ts.map +1 -1
- package/dist/types/events/EventManager.d.ts +1 -0
- package/dist/types/events/EventManager.d.ts.map +1 -1
- package/dist/types/lifecycle/OnChangeAttrRender.d.ts +1 -1
- package/dist/types/lifecycle/OnChangeAttrRender.d.ts.map +1 -1
- package/dist/types/lifecycle/OnChildRawSetRendered.d.ts +9 -0
- package/dist/types/lifecycle/OnChildRawSetRendered.d.ts.map +1 -0
- package/dist/types/lifecycle/OnRawSetRendered.d.ts +2 -0
- package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -1
- package/dist/types/operators/Appender.d.ts +1 -0
- package/dist/types/operators/Appender.d.ts.map +1 -1
- package/dist/types/operators/Dr.d.ts.map +1 -1
- package/dist/types/operators/DrAppender.d.ts.map +1 -1
- package/dist/types/operators/DrFor.d.ts.map +1 -1
- package/dist/types/operators/DrForOf.d.ts.map +1 -1
- package/dist/types/operators/DrForm.d.ts.map +1 -1
- package/dist/types/operators/DrInnerHTML.d.ts.map +1 -1
- package/dist/types/operators/DrRepeat.d.ts.map +1 -1
- package/dist/types/operators/DrStripElement.d.ts.map +1 -1
- package/dist/types/operators/DrTargetElement.d.ts.map +1 -1
- package/dist/types/operators/DrThisProperty.d.ts.map +1 -1
- package/dist/types/rawsets/RawSet.d.ts +4 -1
- package/dist/types/rawsets/RawSet.d.ts.map +1 -1
- package/dist/types/routers/HashRouter.d.ts +1 -0
- package/dist/types/routers/HashRouter.d.ts.map +1 -1
- package/dist/types/routers/PathRouter.d.ts +1 -0
- package/dist/types/routers/PathRouter.d.ts.map +1 -1
- package/dist/types/routers/Router.d.ts +3 -0
- package/dist/types/routers/Router.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-dom-render.umd.js +830 -1533
- package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
- package/package.json +4 -4
- package/src/DomRenderProxy.ts +169 -75
- package/src/DomRenderProxy.ts_cache_back +1031 -0
- package/src/components/ComponentBase.ts +61 -5
- package/src/components/a/A.ts +25 -0
- package/src/components/appender/Appender.ts +3 -3
- package/src/components/details/Details.ts +7 -0
- package/src/components/forOf/ForOf.ts +2 -2
- package/src/components/if/If.ts +3 -2
- package/src/components/index.ts +3 -0
- package/src/components/router/RouterOutlet.ts +60 -22
- package/src/components/select/Select.ts +69 -30
- package/src/components/this/This.ts +41 -6
- package/src/decorators/DomRenderNoProxy.ts +17 -14
- package/src/events/EventManager.ts +180 -77
- package/src/lifecycle/OnChangeAttrRender.ts +1 -1
- package/src/lifecycle/OnChildRawSetRendered.ts +13 -0
- package/src/lifecycle/OnRawSetRendered.ts +3 -1
- package/src/operators/Appender.ts +8 -1
- package/src/operators/Dr.ts +2 -1
- package/src/operators/DrAppender.ts +2 -1
- package/src/operators/DrFor.ts +2 -1
- package/src/operators/DrForOf.ts +36 -6
- package/src/operators/DrForm.ts +6 -5
- package/src/operators/DrInnerHTML.ts +2 -1
- package/src/operators/DrRepeat.ts +2 -1
- package/src/operators/DrStripElement.ts +2 -1
- package/src/operators/DrTargetElement.ts +17 -5
- package/src/operators/DrTargetElementIsElement.ts +2 -2
- package/src/operators/DrThis.ts +2 -2
- package/src/operators/DrThisProperty.ts +2 -1
- package/src/rawsets/RawSet.ts +161 -237
- package/src/routers/HashRouter.ts +4 -0
- package/src/routers/PathRouter.ts +5 -0
- package/src/routers/Router.ts +64 -47
- package/src/node_modules/.bin/acorn +0 -17
- package/src/node_modules/.bin/browserslist +0 -17
- package/src/node_modules/.bin/eslint +0 -17
- package/src/node_modules/.bin/sbf +0 -17
- package/src/node_modules/.bin/ts-node +0 -17
- package/src/node_modules/.bin/ts-node-cwd +0 -17
- package/src/node_modules/.bin/ts-node-dev +0 -17
- package/src/node_modules/.bin/ts-node-esm +0 -17
- package/src/node_modules/.bin/ts-node-script +0 -17
- package/src/node_modules/.bin/ts-node-transpile-only +0 -17
- package/src/node_modules/.bin/ts-script +0 -17
- package/src/node_modules/.bin/tsc +0 -17
- package/src/node_modules/.bin/tsnd +0 -17
- package/src/node_modules/.bin/tsserver +0 -17
- package/src/node_modules/.bin/webpack +0 -17
- package/src/node_modules/.bin/webpack-cli +0 -17
- package/src/node_modules/.bin/webpack-dev-server +0 -17
package/README.MD
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
[](https://github.com/dooboostore-develop/packages/actions/workflows/main.yaml)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
|
-
**Full Documentation:** [https://dooboostore-develop.github.io/
|
|
7
|
+
**Full Documentation:** [https://dooboostore-develop.github.io/@dooboostore/dom-render](https://dooboostore-develop.github.io/@dooboostore/dom-render)
|
|
8
8
|
|
|
9
9
|
A powerful and reactive view template engine for fine-grained DOM control and rendering. All internal state is managed through a proxy system for automatic UI updates.
|
|
10
10
|
|
|
@@ -36,7 +36,6 @@ yarn add @dooboostore/dom-render
|
|
|
36
36
|
|
|
37
37
|
The detailed API documentation, including all directives, components, and usage examples, is available on our documentation website.
|
|
38
38
|
|
|
39
|
-
**[Explore the full @dooboostore/dom-render documentation »](https://dooboostore-develop.github.io/packages/dom-render)**
|
|
40
39
|
|
|
41
40
|
## License
|
|
42
41
|
|
|
@@ -26,7 +26,6 @@ __export(DomRenderProxy_exports, {
|
|
|
26
26
|
module.exports = __toCommonJS(DomRenderProxy_exports);
|
|
27
27
|
var import_RawSet = require("./rawsets/RawSet");
|
|
28
28
|
var import_EventManager = require("./events/EventManager");
|
|
29
|
-
var import_ScriptUtils = require("@dooboostore/core-web/script/ScriptUtils");
|
|
30
29
|
var import_Types = require("./types/Types");
|
|
31
30
|
var import_RawSetType = require("./rawsets/RawSetType");
|
|
32
31
|
var import_DrThisProperty = require("./operators/DrThisProperty");
|
|
@@ -45,6 +44,7 @@ var import_ObjectUtils = require("@dooboostore/core/object/ObjectUtils");
|
|
|
45
44
|
var import_ValidUtils = require("@dooboostore/core/valid/ValidUtils");
|
|
46
45
|
var import_OnProxyDomRender = require("./lifecycle/OnProxyDomRender");
|
|
47
46
|
var import_OnRawSetRendered = require("./lifecycle/OnRawSetRendered");
|
|
47
|
+
var import_OnChildRawSetRendered = require("./lifecycle/OnChildRawSetRendered");
|
|
48
48
|
const excludeGetSetPropertys = [
|
|
49
49
|
"onBeforeReturnGet",
|
|
50
50
|
"onBeforeReturnSet",
|
|
@@ -81,12 +81,12 @@ const getDomRenderProxy = (obj) => {
|
|
|
81
81
|
return void 0;
|
|
82
82
|
};
|
|
83
83
|
class DomRenderProxy {
|
|
84
|
+
// public name = Math.random();
|
|
84
85
|
constructor(_domRender_origin, target, _domRender_config) {
|
|
85
86
|
this._domRender_origin = _domRender_origin;
|
|
86
87
|
this._domRender_config = _domRender_config;
|
|
87
88
|
this._domRender_ref = /* @__PURE__ */ new Map();
|
|
88
89
|
this._rawSets = /* @__PURE__ */ new Map();
|
|
89
|
-
// public _firstTarget: Node;
|
|
90
90
|
this._targets = /* @__PURE__ */ new Set();
|
|
91
91
|
if (target) {
|
|
92
92
|
this._targets.add(target);
|
|
@@ -170,7 +170,7 @@ class DomRenderProxy {
|
|
|
170
170
|
const onInit = target.getAttribute?.(import_RawSet.RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
|
|
171
171
|
let initParam;
|
|
172
172
|
if (onCreate) {
|
|
173
|
-
initParam =
|
|
173
|
+
initParam = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);
|
|
174
174
|
}
|
|
175
175
|
if ((0, import_OnInitRender.isOnInitRender)(this._domRender_proxy)) {
|
|
176
176
|
await this._domRender_proxy.onInitRender(
|
|
@@ -199,46 +199,65 @@ class DomRenderProxy {
|
|
|
199
199
|
}
|
|
200
200
|
const removeRawSets = [];
|
|
201
201
|
const rawSets = raws ?? this.getRawSets();
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
202
|
+
const CHUNK_SIZE = 50;
|
|
203
|
+
const chunks = [];
|
|
204
|
+
const rawSetsArray = Array.from(rawSets);
|
|
205
|
+
for (let i = 0; i < rawSetsArray.length; i += CHUNK_SIZE) {
|
|
206
|
+
chunks.push(rawSetsArray.slice(i, i + CHUNK_SIZE));
|
|
207
|
+
}
|
|
208
|
+
for (const chunk of chunks) {
|
|
209
|
+
const promises = chunk.map(async (it) => {
|
|
210
|
+
it.getUsingTriggerVariables(this._domRender_config).forEach((path) => {
|
|
211
|
+
this.addRawSet(path, it);
|
|
212
|
+
});
|
|
213
|
+
let renderResult;
|
|
214
|
+
if (it.isConnected) {
|
|
215
|
+
const targetAttrMap = it.point.node?.getAttribute?.(import_EventManager.EventManager.normalAttrMapAttrName);
|
|
216
|
+
if (it.detect?.action) {
|
|
217
|
+
it.detect.action();
|
|
218
|
+
} else if (it.type === import_RawSetType.RawSetType.TARGET_ELEMENT && it.dataSet?.render?.currentThis && fullPathStr && targetAttrMap) {
|
|
219
|
+
const attrStart = performance.now();
|
|
220
|
+
new Map(JSON.parse(targetAttrMap)).forEach((v, k) => {
|
|
221
|
+
var _a;
|
|
222
|
+
const isUsing = v.variablePaths.some((it2) => import_EventManager.EventManager.isUsingThisVar(it2.inner, `this.${fullPathStr}`));
|
|
223
|
+
if (isUsing) {
|
|
224
|
+
const targetAttrObject = import_RawSet.RawSet.getAttributeObject(it.point.node, {
|
|
225
|
+
script: it.dataSet?.render?.renderScript ?? "",
|
|
226
|
+
obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })
|
|
227
|
+
});
|
|
228
|
+
(_a = it.dataSet).render ?? (_a.render = {});
|
|
229
|
+
it.dataSet.render.attribute = targetAttrObject;
|
|
230
|
+
if ((0, import_OnChangeAttrRender.isOnChangeAttrRender)(it.dataSet?.render?.currentThis)) {
|
|
231
|
+
it.dataSet?.render?.currentThis?.onChangeAttrRender?.(k, targetAttrObject[k], { rawSet: it });
|
|
232
|
+
}
|
|
224
233
|
}
|
|
234
|
+
});
|
|
235
|
+
const attrEnd = performance.now();
|
|
236
|
+
} else {
|
|
237
|
+
const renderStart = performance.now();
|
|
238
|
+
const rawSets2 = await it.render(this._domRender_proxy, this._domRender_config);
|
|
239
|
+
const renderEnd = performance.now();
|
|
240
|
+
renderResult = rawSets2;
|
|
241
|
+
if (rawSets2 && rawSets2.raws.length > 0) {
|
|
242
|
+
await this.render(rawSets2.raws);
|
|
225
243
|
}
|
|
226
|
-
});
|
|
227
|
-
} else {
|
|
228
|
-
const rawSets2 = await it.render(this._domRender_proxy, this._domRender_config);
|
|
229
|
-
renderResult = rawSets2;
|
|
230
|
-
if (rawSets2 && rawSets2.raws.length > 0) {
|
|
231
|
-
await this.render(rawSets2.raws);
|
|
232
244
|
}
|
|
245
|
+
} else {
|
|
246
|
+
removeRawSets.push(it);
|
|
233
247
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
248
|
+
const t = it.findNearThis(this._domRender_proxy);
|
|
249
|
+
if ((0, import_OnRawSetRendered.isOnRawSetRendered)(t)) {
|
|
250
|
+
await t.onRawSetRendered(it, { path: fullPathStr, value: import_ObjectUtils.ObjectUtils.Script.evaluateReturn(`this.${fullPathStr}`, this._domRender_proxy), root: this._domRender_proxy, renderResult });
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
await Promise.all(promises);
|
|
254
|
+
if (chunks.length > 1) {
|
|
255
|
+
await new Promise((resolve) => requestAnimationFrame(resolve));
|
|
240
256
|
}
|
|
241
257
|
}
|
|
258
|
+
if ((0, import_OnChildRawSetRendered.isOnChildRawSetRendered)(this._domRender_proxy)) {
|
|
259
|
+
await this._domRender_proxy.onChildRawSetRendered();
|
|
260
|
+
}
|
|
242
261
|
if (removeRawSets.length > 0) {
|
|
243
262
|
this.removeRawSet(...removeRawSets);
|
|
244
263
|
}
|
|
@@ -253,12 +272,15 @@ class DomRenderProxy {
|
|
|
253
272
|
// return current;
|
|
254
273
|
// }
|
|
255
274
|
root(pathInfos, value, lastDoneExecute = true) {
|
|
275
|
+
const rootStartTime = Date.now();
|
|
276
|
+
const pathKey = pathInfos.flat().map((i) => i.path).join(".");
|
|
256
277
|
const fullPaths = [];
|
|
257
278
|
if (this._domRender_ref.size > 0) {
|
|
258
279
|
this._domRender_ref.forEach((it, key) => {
|
|
259
280
|
if ("_DomRender_isProxy" in key) {
|
|
260
281
|
it.forEach((sit) => {
|
|
261
282
|
try {
|
|
283
|
+
const recursiveStartTime = Date.now();
|
|
262
284
|
const concat = pathInfos.concat([[{ path: sit, obj: key }]]);
|
|
263
285
|
const items = key._DomRender_proxy?.root(
|
|
264
286
|
concat,
|
|
@@ -272,6 +294,7 @@ class DomRenderProxy {
|
|
|
272
294
|
}
|
|
273
295
|
});
|
|
274
296
|
} else {
|
|
297
|
+
const pathProcessStartTime = Date.now();
|
|
275
298
|
const strings = pathInfos.reverse().map((it) => it.map((it2) => it2.path).join(","));
|
|
276
299
|
const fullPathStr = strings.map((it) => isNaN(Number(it)) ? "." + it : `[${it}]`).join("").slice(1);
|
|
277
300
|
if (lastDoneExecute) {
|
|
@@ -279,10 +302,13 @@ class DomRenderProxy {
|
|
|
279
302
|
const front = strings.slice(0, strings.length - 1).map((it) => isNaN(Number(it)) ? "." + it : `[${it}]`).join("");
|
|
280
303
|
const lastPropertyName = strings[strings.length - 1];
|
|
281
304
|
const path = "this" + front;
|
|
282
|
-
const data =
|
|
305
|
+
const data = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(path), this._domRender_proxy);
|
|
306
|
+
const promiseStartTime = Date.now();
|
|
283
307
|
new Promise(async (resolve) => {
|
|
308
|
+
const promiseInnerStartTime = Date.now();
|
|
284
309
|
let rData = [];
|
|
285
310
|
const firstPathStr = front.slice(1);
|
|
311
|
+
const dictionaryCheckStartTime = Date.now();
|
|
286
312
|
const firstTargets = this._rawSets.get(firstPathStr);
|
|
287
313
|
const firstTargetDictionary = [];
|
|
288
314
|
firstTargets?.forEach((it) => {
|
|
@@ -324,6 +350,7 @@ class DomRenderProxy {
|
|
|
324
350
|
rData = await this.render(rawSets);
|
|
325
351
|
}
|
|
326
352
|
}
|
|
353
|
+
const renderStartTime = Date.now();
|
|
327
354
|
if (lastPropertyName === "length" && Array.isArray(data)) {
|
|
328
355
|
const aIterable = this._rawSets.get(firstPathStr);
|
|
329
356
|
if (aIterable) {
|
|
@@ -332,13 +359,17 @@ class DomRenderProxy {
|
|
|
332
359
|
} else if (iterable) {
|
|
333
360
|
rData = await this.render(Array.from(iterable), fullPathStr);
|
|
334
361
|
}
|
|
362
|
+
const eventProcessStartTime = Date.now();
|
|
335
363
|
const Node = this._domRender_config.window.Node;
|
|
336
364
|
this._targets.forEach((it) => {
|
|
337
365
|
if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
|
|
366
|
+
const findAttrStartTime = Date.now();
|
|
338
367
|
const targets = this._domRender_config.eventManager.findAttrElements(
|
|
339
368
|
it,
|
|
340
369
|
this._domRender_config
|
|
341
370
|
);
|
|
371
|
+
const targetCount = targets?.size || targets?.length || 0;
|
|
372
|
+
const changeVarStartTime = Date.now();
|
|
342
373
|
this._domRender_config.eventManager.changeVar(
|
|
343
374
|
this._domRender_proxy,
|
|
344
375
|
targets,
|
|
@@ -348,7 +379,7 @@ class DomRenderProxy {
|
|
|
348
379
|
}
|
|
349
380
|
});
|
|
350
381
|
if (rData?.length > 0 && (0, import_OnChildRenderedByProperty.isOnChildRenderedByProperty)(data)) {
|
|
351
|
-
const propertyValue =
|
|
382
|
+
const propertyValue = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(`this.${lastPropertyName}`, data);
|
|
352
383
|
data.onChildRenderedByProperty(lastPropertyName, propertyValue);
|
|
353
384
|
}
|
|
354
385
|
resolve(rData);
|
|
@@ -364,6 +395,7 @@ class DomRenderProxy {
|
|
|
364
395
|
target[p] = value;
|
|
365
396
|
return true;
|
|
366
397
|
}
|
|
398
|
+
let start = performance.now();
|
|
367
399
|
if (typeof p === "string") {
|
|
368
400
|
value = this.proxy(receiver, value, p);
|
|
369
401
|
}
|
|
@@ -386,14 +418,23 @@ class DomRenderProxy {
|
|
|
386
418
|
}).forEach((it) => {
|
|
387
419
|
const variablePaths = it.valueScript.variablePaths;
|
|
388
420
|
let targetScript = it.valueScript.originalAttrValue;
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
421
|
+
let script;
|
|
422
|
+
if (it.valueScript.isStringTemplate) {
|
|
423
|
+
variablePaths.forEach((it2) => {
|
|
424
|
+
let r = import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(it2.inner);
|
|
425
|
+
targetScript = targetScript.replaceAll(it2.origin, `\${${r}}`);
|
|
426
|
+
});
|
|
427
|
+
script = "`" + targetScript + "`";
|
|
428
|
+
} else {
|
|
429
|
+
variablePaths.forEach((it2) => {
|
|
430
|
+
let r = import_ObjectUtils.ObjectUtils.Path.toOptionalChainPath(it2.inner);
|
|
431
|
+
targetScript = targetScript.replaceAll(it2.origin, `${r}`);
|
|
432
|
+
});
|
|
433
|
+
script = targetScript;
|
|
434
|
+
}
|
|
435
|
+
const value1 = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(script, it.pathInfo.obj);
|
|
436
|
+
if (value1 === null || value1 === void 0) {
|
|
395
437
|
elementInfo.element.removeAttribute(it.key);
|
|
396
|
-
elementInfo.element[it.key] = null;
|
|
397
438
|
} else {
|
|
398
439
|
elementInfo.element.setAttribute(it.key, value1);
|
|
399
440
|
elementInfo.element[it.key] = value1;
|
|
@@ -403,11 +444,11 @@ class DomRenderProxy {
|
|
|
403
444
|
);
|
|
404
445
|
import_DocumentUtils.DocumentUtils.querySelectorAllByAttributeName(rootElement, import_EventManager.EventManager.linkTargetMapAttrName)?.forEach(
|
|
405
446
|
(elementInfo) => {
|
|
406
|
-
const targets = new Map(
|
|
447
|
+
const targets = new Map(import_ObjectUtils.ObjectUtils.Script.evaluateReturn(elementInfo.value));
|
|
407
448
|
Array.from(targets.entries()).filter(([key, value2]) => value2.trim()).filter(import_types.isDefined).flatMap(([key, valueScript]) => {
|
|
408
449
|
return fullPathInfo.flat().filter((it) => valueScript.includes(`this.${it.path}`)).flatMap((it) => ({ key, valueScript, pathInfo: it }));
|
|
409
450
|
}).forEach((info) => {
|
|
410
|
-
const value1 =
|
|
451
|
+
const value1 = import_ObjectUtils.ObjectUtils.Script.evaluateReturn(info.valueScript, info.pathInfo.obj);
|
|
411
452
|
const applyAttributeName = import_EventManager.EventManager.linkAttrs.find((it) => it.name === info.key);
|
|
412
453
|
if (applyAttributeName) {
|
|
413
454
|
if (value1 === null) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/DomRenderProxy.ts"],
|
|
4
|
-
"sourcesContent": ["import { RawSet, RenderResult } from './rawsets/RawSet';\nimport { EventManager, NormalAttrDataType } from './events/EventManager';\nimport { DomRenderConfig } from './configs/DomRenderConfig';\nimport { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';\nimport { DomRenderFinalProxy, Shield } from './types/Types';\nimport { RawSetType } from './rawsets/RawSetType';\nimport { DrThisProperty } from './operators/DrThisProperty';\nimport { RawSetOperatorType } from './rawsets/RawSetOperatorType';\nimport { ComponentSet } from './components/ComponentSet';\nimport { DomRenderNoProxyKey, isDomRenderNoProxy } from './decorators/DomRenderNoProxy';\nimport { isOnCreateRender } from './lifecycle/OnCreateRender';\nimport { isOnInitRender } from './lifecycle/OnInitRender';\nimport { isOnCreateRenderData } from './lifecycle/OnCreateRenderData';\nimport { isOnChangeAttrRender } from './lifecycle/OnChangeAttrRender';\nimport { DocumentUtils } from '@dooboostore/core-web/document/DocumentUtils';\nimport { isDefined } from '@dooboostore/core/types';\nimport { isOnBeforeReturnSet } from './lifecycle/OnBeforeReturnSet';\nimport { isOnChildRenderedByProperty } from './lifecycle/OnChildRenderedByProperty';\nimport { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';\nimport { ValidUtils } from '@dooboostore/core/valid/ValidUtils';\nimport { isOnProxyDomRender } from './lifecycle/OnProxyDomRender';\nimport { isOnRawSetRendered } from './lifecycle/OnRawSetRendered';\n\nconst excludeGetSetPropertys = [\n 'onBeforeReturnGet',\n 'onBeforeReturnSet',\n '__domrender_components',\n '__render',\n '_DomRender_isFinal',\n '_domRender_ref',\n '_rawSets',\n '_domRender_proxy',\n '_targets',\n '_DomRender_origin',\n '_DomRender_ref',\n '_DomRender_proxy'\n];\nexport const isWrapProxyDomRenderProxy = <T>(obj: T): boolean => {\n return obj && typeof obj === 'object' && '_DomRender_isProxy' in obj;\n};\nexport const getDomRenderOriginObject = <T>(obj: T): T => {\n if (isWrapProxyDomRenderProxy(obj)) {\n return (obj as any)._domRender_origin;\n }\n return obj;\n};\nexport const getDomRenderConfig = (obj: any): DomRenderConfig | undefined => {\n if (isWrapProxyDomRenderProxy(obj)) {\n return obj._domRender_config;\n }\n return undefined;\n};\n//@ts-ignore\nexport const getDomRenderProxy = <T>(obj: T): DomRenderProxy<T> | undefined => {\n if (isWrapProxyDomRenderProxy(obj)) {\n //@ts-ignore\n return (obj as any)._domRender_proxy as DomRenderProxy<T>;\n }\n return undefined;\n};\nexport class DomRenderProxy<T extends object> implements ProxyHandler<T> {\n public _domRender_ref = new Map<object, Set<string>>();\n public _rawSets = new Map<string, Set<RawSet>>();\n public _domRender_proxy?: T;\n // public _firstTarget: Node;\n public _targets = new Set<Node>();\n\n constructor(\n public _domRender_origin: T,\n target: Node | null | undefined,\n public _domRender_config: DomRenderConfig\n ) {\n if (target) {\n this._targets.add(target);\n // this._firstTarget = target;\n }\n\n // setInterval(() => {\n // this._rawSets.forEach(it => {\n // Array.from(it).forEach(it => {\n // console.log(it, it.isConnected)\n // })\n // });\n // }, 1000)\n }\n\n public static unFinal<T = any>(obj: T): T {\n return DomRenderFinalProxy.unFinal(obj);\n }\n\n public static final<T = any>(obj: T): T {\n return DomRenderFinalProxy.final(obj);\n }\n\n public static isFinal<T = any>(obj: T) {\n return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);\n }\n\n public async run(objProxy: T) {\n this._domRender_proxy = objProxy;\n if (isOnProxyDomRender(objProxy)) {\n objProxy.onProxyDomRender(this._domRender_config);\n }\n const obj = getDomRenderOriginObject<any>(objProxy);\n if (obj) {\n Object.keys(obj).forEach(it => {\n // Reflect \uBA54\uD0C0\uB370\uC774\uD130\uC5D0\uC11C domRender:NoProxy \uC5EC\uBD80 \uD655\uC778\n try {\n const isNoProxy =\n Reflect.getMetadata(DomRenderNoProxyKey, obj, it) ||\n Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n if (isNoProxy) {\n return obj;\n }\n } catch (e) {}\n const target = obj[it];\n if (\n target !== undefined &&\n target !== null &&\n typeof target === 'object' &&\n !DomRenderProxy.isFinal(target) &&\n !Object.isFrozen(target) &&\n !(obj instanceof Shield)\n ) {\n const isExcluded = this._domRender_config.proxyExcludeTyps?.some(it => target instanceof it) ?? false;\n // const filter = this._domRender_config.proxyExcludeTyps?.filter(it => target instanceof it) ?? [];\n if (!isExcluded) {\n const proxyAfter = this.proxy(objProxy, target, it);\n obj[it] = proxyAfter;\n }\n }\n });\n }\n // console.log('target', this._targets);\n for (let target of this._targets) {\n await this.initRender(target);\n }\n }\n\n public async initRender(target: Node, rawSet?: RawSet) {\n // if (target instanceof Element) {\n // target.setAttribute('dr-this', 'this');\n // const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this.config);\n // this.render(rawSets)\n // return;\n // }\n //\n if (target instanceof Element) {\n // \uC911\uC694: \uB098\uB97C\uD1B5\uD574 \uC774\uC5B4\uC9C4\uACF3\uC758 \uC704\uCE58\uB97C \uB0A8\uACA8\uC57C\uB41C\uB2E4 \uC548\uADF8\uB7EC\uBA74 TargetElement\uB294 \uC54C\uC218 \uC788\uB294 \uBC29\uBC95\uC774 \uC5C6\uB2E4. \uC5EC\uAE30\uC11C \uD754\uC801\uC744 \uB0A8\uACA8\uC918\uC57C \uD55C\uB2E4.\n // const targetElementNames = (this.config.targetElements?.map(it => it.name.toLowerCase().replaceAll('.', '\\\\.')) ?? []).join(',');\n // Array.from(target.querySelectorAll(targetElementNames)).forEach(it => it.setAttribute(EventManager.parentVariablePathAttrName, '@this@'));\n target.innerHTML = target.innerHTML.replace(/@this@/g, 'this');\n }\n // TODO: \uD55C\uACF3\uC5D0\uC11C \uCC98\uB9AC \uD544\uC694\uD560\uB4EF.. \uB108\uBB34 \uC0B0\uBC1C\uC801\uC73C\uB85C \uC788\uC74C.\n const onCreate = (target as any).getAttribute?.(RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);\n let createParam: any[] = [];\n if (onCreate) {\n createParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);\n if (!Array.isArray(createParam)) {\n createParam = [createParam];\n }\n }\n\n if (isOnCreateRenderData(this._domRender_proxy)) {\n this._domRender_proxy?.onCreateRenderData({ rootParent: this._domRender_proxy });\n }\n\n if (isOnCreateRender(this._domRender_proxy)) {\n this._domRender_proxy.onCreateRender(...createParam);\n }\n\n // const innerHTML = (target as any).innerHTML ?? '';\n this._targets.add(target);\n const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this._domRender_config);\n // console.log('initRender -------rawSet', rawSets)\n // \uC911\uC694 \uCD08\uAE30\uC5D0 \uD55C\uBC88 \uD295\uACA8\uC918\uC57C\uD568.\n this._domRender_config.eventManager.applyEvent(\n this._domRender_proxy,\n this._domRender_config.eventManager.findAttrElements(target as Element, this._domRender_config),\n this._domRender_config\n );\n rawSets.forEach(it => {\n const variables = it.getUsingTriggerVariables(this._domRender_config);\n if (variables.size <= 0) {\n this.addRawSet('', it);\n } else {\n variables.forEach(sit => {\n this.addRawSet(sit, it);\n });\n }\n });\n\n const targetRawSets = await this.render(this.getRawSets());\n for (let targetRawSet of targetRawSets) {\n const onInit = (target as any).getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);\n let initParam: any;\n if (onCreate) {\n initParam = ScriptUtils.evaluateReturn(onCreate, this._domRender_proxy);\n }\n if (isOnInitRender(this._domRender_proxy)) {\n await this._domRender_proxy.onInitRender(\n initParam,\n rawSet ?? ({ dataSet: { config: this._domRender_config } } as any)\n );\n }\n }\n }\n\n public getRawSets() {\n const set = new Set<RawSet>();\n this._rawSets.forEach((v, k) => {\n v.forEach(it => set.add(it));\n });\n return Array.from(set);\n }\n\n // \uC911\uC694 important\n public async render(raws?: RawSet[] | string, fullPathStr?: string) {\n if (typeof raws === 'string') {\n const iter = this._rawSets.get(raws);\n if (iter) {\n raws = Array.from(iter);\n } else {\n raws = undefined;\n }\n }\n const removeRawSets: RawSet[] = [];\n const rawSets = raws ?? this.getRawSets();\n\n // console.log('----', rawSets);\n for (const it of rawSets as RawSet[]) {\n it.getUsingTriggerVariables(this._domRender_config).forEach(path => {\n // console.log('getUsingTriggerVariables->', path);\n this.addRawSet(path, it);\n });\n\n let renderResult: RenderResult | undefined;\n if (it.isConnected) {\n // \uC911\uC694 render\uB420\uB54C targetAttribute \uCCB4\uD06C \uD574\uC57C\uD568.\n const targetAttrMap = (it.point.node as Element)?.getAttribute?.(EventManager.normalAttrMapAttrName);\n // console.log('sssssssssSSS?',it, targetAttrMap)\n // console.log('----2', it, fullPathStr, targetAttrMap, (it.fragment as any).render, it.isConnected, this.getRawSets());\n if (it.detect?.action) {\n it.detect.action();\n // } else if (it.type === RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && (it.fragment as any).render) {\n } else if (\n it.type === RawSetType.TARGET_ELEMENT &&\n it.dataSet?.render?.currentThis &&\n fullPathStr &&\n targetAttrMap\n ) {\n new Map<string, NormalAttrDataType>(JSON.parse(targetAttrMap)).forEach((v, k) => {\n // it?.data.onChangeAttrRender(k, null, v);\n // console.log('------->?',v,k);\n const isUsing = v.variablePaths.some(it => EventManager.isUsingThisVar(it.inner, `this.${fullPathStr}`))\n // console.log('------->?',v,k, isUsing);\n if (isUsing) {\n const targetAttrObject = RawSet.getAttributeObject(it.point.node as Element, {\n script: it.dataSet?.render?.renderScript ?? '',\n obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })\n });\n it.dataSet.render ??= {};\n it.dataSet.render.attribute = targetAttrObject;\n // const render = it.dataSet?.render;\n // console.log('render-->!!!!!', it.dataSet.render);\n // const script = `${render.renderScript} return ${v} `;\n // const cval = ScriptUtils.eval(script, Object.assign(this._domRender_proxy ?? {}, { __render: render }));\n if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {\n it.dataSet?.render?.currentThis?.onChangeAttrRender?.(k, targetAttrObject[k], { rawSet: it });\n }\n }\n // console.log('---?', v, fullPathStr, isUsing);\n });\n // ------------------->\n } else {\n const rawSets = await it.render(this._domRender_proxy, this._domRender_config);\n renderResult = rawSets;\n // \uADF8\uC678 \uC790\uC2DD\uB4E4 render\n if (rawSets && rawSets.raws.length > 0) {\n await this.render(rawSets.raws);\n }\n }\n } else {\n removeRawSets.push(it);\n }\n\n const t = it.findNearThis(this._domRender_proxy);\n // TODO: \uD638\uCD9C\uB41C\uACF3\uC5D0\uC11C \uB610 \uBCC0\uC218\uB97C \uC218\uC815\uD558\uAC8C\uB418\uBA74 \uBB34\uD55C\uB8E8\uD504\uB2C8\uAE50 \uC660\uB9CC\uD558\uBA74 \uC0AC\uC6A9\uBABB\uD558\uAC8C \uD574\uC57C\uD55C\uB2E4.\n if (isOnRawSetRendered(t)) {\n await t.onRawSetRendered(it, { path: fullPathStr, renderResult });\n }\n // console.log('----', it);\n }\n\n if (removeRawSets.length > 0) {\n this.removeRawSet(...removeRawSets);\n }\n return this.getRawSets();\n }\n\n // domrender_ref\uB85C \uCC3E\uB294\uAC78\uB85C \uBC14\uAFC8\n // public findRootDomRenderProxy(): DomRenderProxy<any> {\n // let current:DomRenderProxy<any> = this;\n // while (current.parentProxy) {\n // current = current.parentProxy;\n // }\n // return current;\n // }\n\n public root(\n pathInfos: { path: string; obj: any }[][],\n value?: any,\n lastDoneExecute = true\n ): { path: string; obj: any }[][] {\n // console.log('root--->', paths, value, this._domRender_ref, this._domRender_origin);\n const fullPaths: { path: string; obj: any }[][] = [];\n if (this._domRender_ref.size > 0) {\n this._domRender_ref.forEach((it, key) => {\n if ('_DomRender_isProxy' in key) {\n it.forEach(sit => {\n try {\n const concat = pathInfos.concat([[{ path: sit, obj: key }]]);\n const items: { path: string; obj: any }[][] = (key as any)._DomRender_proxy?.root(\n concat,\n value,\n lastDoneExecute\n );\n\n fullPaths.push(items.flat());\n // fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});\n // fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});\n } catch (e) {\n // \uC624\uBE0C\uC81D\uD2B8\uB4E4 \uC5C6\uC5B4\uC84C\uC744\uC218\uB3C4\uC788\uB2E4 Destroy\uC2DC\uC810\uC5D0\uC11C \uC624\uB958\uB098\uB294\uACBD\uC6B0\uAC00 \uC788\uB2E4. \uB530\uB77C\uC11C \uCC38\uC870 \uD558\uB294\uBD80\uBD84 \uC5C6\uC5B4\uC838\uC57C\uD55C\uB2E4.\n // console.error(e)\n // it.delete(sit);\n }\n });\n }\n });\n } else {\n // const firstPathStr = paths.slice(1).reverse().join('.');\n const strings = pathInfos.reverse().map(it => it.map(it => it.path).join(','));\n // array\uAC19\uC740\uACBD\uC6B0\uB3C4 \uD0A4\uAC12\uC73C\uB85C \uC811\uADFC\uD558\uAE30\uB54C\uBB38\uC5D0 \uD2B9\uC815 \uC778\uB371\uC2A4\uB97C \uCC3E\uC544\uC11C \uADF8\uBD80\uBD84\uB9CC \uBC14\uAFD4\uC904\uC218 \uC788\uB2E4.\n const fullPathStr = strings\n .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))\n .join('')\n .slice(1);\n // console.log('-------fullPathStr', fullPathStr, lastDoneExecute);\n if (lastDoneExecute) {\n // const firstData = ScriptUtils.evalReturn('this.' + firstPathStr, this._domRender_proxy);\n // console.log('-------', firstPathStr, firstData);\n // if (firstData instanceof Dictionary) {\n // }\n const iterable = this._rawSets.get(fullPathStr);\n // array check\n const front = strings\n .slice(0, strings.length - 1)\n .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))\n .join('');\n const lastPropertyName = strings[strings.length - 1];\n const path = 'this' + front;\n const data = ScriptUtils.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(path), this._domRender_proxy);\n // console.log('root-->', this._rawSets, path, data );\n // console.log('--!!!!', fullPathStr, iterable, data, front, last);\n // \uC65C\uC5EC\uAE30\uC11C promise\uB97C \uD588\uC744\uAE4C\uB97C \uC0DD\uAC01\uD574\uBCF4\uBA74......\uD6D4.. \uBCC0\uC218\uBCC0\uACBD\uACFC \uD654\uBA74 \uBFCC\uB824\uC8FC\uB294\uAC78 \uB3D9\uAE30\uB85C\uD558\uBA74 \uC131\uB2A5\uC774 \uC548\uB098\uC624\uACE0 \uBE44\uD604\uC2E4\uC801\uC774\uB2E4. \uADF8\uB798\uC11C promise\n new Promise<RawSet[]>(async resolve => {\n let rData: RawSet[] = [];\n const firstPathStr = front.slice(1);\n\n // check dictionary\n // console.log('-promise-------', firstPathStr, this)\n const firstTargets = this._rawSets.get(firstPathStr);\n const firstTargetDictionary: RawSet[] = [];\n firstTargets?.forEach(it => {\n // console.log('----forEach---', it);\n const type = (it.point.start as Element)?.getAttribute?.('type');\n if (type === RawSetOperatorType.DR_THIS_PROPERTY) {\n firstTargetDictionary.push(it);\n }\n });\n if (firstTargetDictionary.length > 0) {\n // console.log('ddddddddddd', firstTargetDictionary);\n const rawSets: RawSet[] = [];\n let skip = false;\n firstTargetDictionary.forEach(it => {\n const startElement = it.point.start as Element;\n const keys = startElement.getAttribute(RawSet.DR_HAS_KEYS_OPTIONNAME)?.split(',') ?? [];\n if (value === undefined) {\n const rawSet = it.getHasRawSet(lastPropertyName);\n rawSet?.remove();\n startElement.setAttribute(\n RawSet.DR_HAS_KEYS_OPTIONNAME,\n keys.filter(it => it !== lastPropertyName).join(',')\n );\n }\n if (!keys.includes(lastPropertyName)) {\n const raws = DrThisProperty.append(\n this._domRender_proxy,\n fullPathStr,\n lastPropertyName,\n it,\n this._domRender_config\n );\n if (raws) {\n rawSets.push(...raws);\n }\n } else {\n skip = true;\n }\n });\n if (skip === false || rawSets.length > 0) {\n rData = await this.render(rawSets);\n }\n }\n\n if (lastPropertyName === 'length' && Array.isArray(data)) {\n const aIterable = this._rawSets.get(firstPathStr);\n if (aIterable) {\n rData = await this.render(Array.from(aIterable));\n }\n } else if (iterable) {\n // console.log('------------',iterable, fullPaths)\n rData = await this.render(Array.from(iterable), fullPathStr);\n }\n\n // console.log('-----------', this, lastPropertyName );\n // this._targets.forEach(it => {\n // // return;\n // if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {\n // const targets = eventManager.findAttrElements((it as DocumentFragment | Element), this.config);\n // eventManager.changeVar(this._domRender_proxy, targets, `this.${fullPathStr}`, this.config);\n // }\n // });\n\n const Node = ((this._domRender_config.window as any).Node)\n this._targets.forEach(it => {\n // return;\n if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {\n const targets = this._domRender_config.eventManager.findAttrElements(\n it as DocumentFragment | Element,\n this._domRender_config\n );\n this._domRender_config.eventManager.changeVar(\n this._domRender_proxy,\n targets,\n `this.${fullPathStr}`,\n this._domRender_config\n );\n }\n });\n\n //\uB79C\uB354\uB300\uC0C1\uB41C\uAC8C\uC788\uC73C\uBA74\n if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {\n const propertyValue = ScriptUtils.evaluateReturn(`this.${lastPropertyName}`, data);\n data.onChildRenderedByProperty(lastPropertyName, propertyValue);\n // data\n }\n resolve(rData);\n }).then(it => {\n // console.log('DonrenderProxy root RenderDone')\n });\n }\n fullPaths.push([{ path: fullPathStr, obj: this._domRender_proxy }]);\n }\n\n // console.log('dddddd', fullPaths.flatMap(it=>it).map(it=>it.path))\n return fullPaths;\n }\n\n public set(target: T, p: string | symbol, value: any, receiver: T): boolean {\n // console.log('set------->', target, p, value, receiver, Date.now())\n // console.log('set------->', p,value)\n // console.log('set------->', target, p, value, receiver, Date.now())\n // try {\n // const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, target, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n // if (isNoProxy) {\n // return obj;\n // }\n // }catch (e) {}\n\n // console.log('set-->', p, value, target, receiver, Reflect.getMetadata(DomRenderNoProxyKey, target, p) );\n\n if (\n (typeof p === 'string' && p !== '__domrender_components' && excludeGetSetPropertys.includes(p)) ||\n Reflect.getMetadata(DomRenderNoProxyKey, target, p)\n ) {\n (target as any)[p] = value;\n return true;\n }\n // const old = (target as any)[p];\n // console.log('set proxy-->', target, p, value, this._rawSets, this._domRender_ref);\n // if (typeof p === 'string' && '__render' === p) {\n // (target as any)[p] = value;\n // return true;\n // }\n // console.log('set--?', p, target, value);\n\n if (typeof p === 'string') {\n value = this.proxy(receiver, value, p);\n }\n\n // console.log('set typeChecked', (target as any)[p] instanceof ComponentSet, value instanceof ComponentSet);\n // if ((target as any)[p] instanceof ComponentSet) {\n // (target as any)[p]?.obj?.onDrThisUnBind?.();\n // }\n // is ComponentSet\n if (value instanceof ComponentSet && (target as any)[p] instanceof ComponentSet) {\n value.config.beforeComponentSet = (target as any)[p];\n }\n (target as any)[p] = value;\n let fullPathInfo: { path: string; obj: any }[][] = [];\n if (typeof p === 'string') {\n fullPathInfo = this.root([[{ path: p, obj: this._domRender_proxy }]], value);\n }\n\n // console.log('setRooot', fullPathInfo);\n\n //normal attribute \uB610\uD55C \uB9C1\uD06C\uB791 \uAC19\uC740 \uC99D\uC138\uB77C\uC11C \uC774\uB807\uAC8C \uD574\uC918\uC57C\uD55C\uB2E4!!\n // const rootDomRenderProxy = this.findRootDomRenderProxy();\n // console.log('set!!!!!!!', fullPathInfo, rootDomRenderProxy)\n // console.log('--------rootDom',fullPathInfo, rootDomRenderProxy, rootDomRenderProxy._domRender_proxy)\n const rootElement = this._domRender_config.rootElement ?? this._domRender_config.window.document;\n DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(\n elementInfo => {\n // @ts-ignore\n // const optionalPath = ObjectUtils.Path.toOptionalChainPath(elementInfo.value);\n const targets = new Map<string, NormalAttrDataType>(\n ObjectUtils.Script.evaluateReturn<[string, NormalAttrDataType][]>(elementInfo.value)\n );\n Array.from(targets.entries())\n .filter(isDefined)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.variablePaths?.some(vit=> vit.inner.includes(`this.${it.path}`)))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(it => {\n // const optionalPaths = it.valueScript.variablePaths.map(it => ObjectUtils.Path.toOptionalChainPath(it))\n const variablePaths = it.valueScript.variablePaths;\n let targetScript = it.valueScript.originalAttrValue;\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin,`\\${${r}}`);\n })\n const value1 = ObjectUtils.Script.evaluateReturn('`'+targetScript+'`', it.pathInfo.obj);\n // console.log('proxy set!Attribut======', it.key, value1)\n if (value1 === null) {\n elementInfo.element.removeAttribute(it.key);\n elementInfo.element[it.key] = null;\n } else {\n elementInfo.element.setAttribute(it.key, value1);\n elementInfo.element[it.key] = value1;\n }\n });\n }\n );\n\n //\uC5EC\uAE30\uC11C \uB9C1\uD06C \uAC19\uC740\uAC70 \uD574\uC918\uC57C\uD568 *-link\uB85C \uBCC0\uC218\uAC12\uC774 \uBCC0\uACBD\uB418\uBA74 \uADF8\uAC78 \uCC38\uACE0\uD558\uACE0\uC788\uB294 \uB2E4\uB978\uAC83\uB4E4\uC5D0\uB3C4 \uD574\uC918\uC57C\uD55C\uB2E4.\n DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(\n elementInfo => {\n // @ts-ignore\n const targets = new Map<string, string>(ScriptUtils.evaluateReturn<[string, string][]>(elementInfo.value));\n\n Array.from(targets.entries())\n .filter(([key, value]) => value.trim())\n .filter(isDefined)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.includes(`this.${it.path}`))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(info => {\n const value1 = ScriptUtils.evaluateReturn(info.valueScript, info.pathInfo.obj);\n const applyAttributeName = EventManager.linkAttrs.find(it => it.name === info.key);\n if (applyAttributeName) {\n if (value1 === null) {\n elementInfo.element.removeAttribute(applyAttributeName.property);\n } else {\n // console.log('ppppppppppppppppppppppp', applyAttributeName, elementInfo)\n elementInfo.element.setAttribute(applyAttributeName.property, value1);\n }\n }\n });\n\n Array.from(targets.entries())\n .filter(([key, value]) => value.trim())\n .filter(isDefined)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.includes(`this.${it.path}`))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(info => {\n const linkInfo = EventManager.linkAttrs.find(it => it.name === info.key);\n if (linkInfo) {\n elementInfo.element[linkInfo.property] = value;\n }\n });\n }\n );\n\n // console.log('---end',receiver);\n if (\n 'onBeforeReturnSet' in receiver &&\n typeof p === 'string' &&\n !(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)\n ) {\n if (isOnBeforeReturnSet(receiver)) {\n receiver.onBeforeReturnSet?.(\n p,\n value,\n fullPathInfo.map(it => it.map(it => it.path).join())\n );\n }\n }\n return true;\n }\n\n get(target: T, p: string | symbol, receiver: any): any {\n // console.log('get-->', target, p, receiver);\n if (p === '_DomRender_origin' || p === '_domRender_origin') {\n return this._domRender_origin;\n } else if (p === '_DomRender_ref' || p === '_domRender_ref') {\n return this._domRender_ref;\n } else if (p === '_DomRender_config' || p === '_domRender_config') {\n return this._domRender_config;\n } else if (p === '_DomRender_proxy' || p === '_domRender_proxy') {\n return this;\n } else {\n // Date\uB77C\uB358\uC9C0 \uC774\uB7F0\uB188\uB4E4\uC740-_-\uD504\uB85D\uC2DC\uAC00 \uC774\uC0C1\uD558\uAC8C \uB3D9\uC791\uD574\uC11C\n // console.log('--->', p, target, target.bind, 'bind' in target)\n // if ((p in target) && ('bind' in target)) {\n // try{\n // return (target as any)[p].bind(target);\n // }catch (e) {\n // console.error(e)\n // }\n // } else {\n // return (target as any)[p]\n // }\n // return (p in target) ? (target as any)[p].bind(target) : (target as any)[p]\n // console.log('-->', p, Object.prototype.toString.call((target as any)[p]), (target as any)[p])\n // return (target as any)[p]\n let it = (target as any)[p];\n if (\n it &&\n typeof it === 'object' &&\n '_DomRender_isProxy' in it &&\n Object.prototype.toString.call(it._DomRender_origin) === '[object Date]'\n ) {\n it = it._DomRender_origin;\n }\n\n if (\n 'onBeforeReturnGet' in receiver &&\n typeof p === 'string' &&\n !(this._domRender_config.proxyExcludeOnBeforeReturnGets ?? []).concat(excludeGetSetPropertys).includes(p)\n ) {\n (receiver as any)?.onBeforeReturnGet?.(\n p,\n it,\n this.root([[{ path: p, obj: this._domRender_proxy }]], it, false)\n );\n }\n return it;\n }\n }\n\n deleteProperty(target: T, p: string | symbol): boolean {\n delete (target as any)[p];\n if (typeof p === 'string') {\n this.root([[{ path: p, obj: this._domRender_proxy }]]);\n }\n return true;\n }\n\n has(target: T, p: string | symbol): boolean {\n return p === '_DomRender_isProxy' || p in target;\n }\n\n proxy(parentProxy: T, obj: T | any, p: string) {\n try {\n // const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, obj, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n const isObject = typeof obj === 'object';\n const isNoProxy = isObject && isDomRenderNoProxy(obj, p);\n const isExclude = this._domRender_config.proxyExcludeTyps?.some(it => obj instanceof it) ?? false;\n const isFinal = isObject && DomRenderProxy.isFinal(obj);\n const isFrozen = Object.isFrozen(obj);\n const isShield = obj instanceof Shield;\n if (\n obj === undefined ||\n obj === null ||\n isNoProxy ||\n isExclude ||\n ValidUtils.isNullOrUndefined(obj) ||\n !isObject ||\n isFinal ||\n isFrozen ||\n isShield\n ) {\n return obj;\n }\n } catch (e) {}\n\n /*\n const proxyTarget = (this._domRender_config.proxyExcludeTyps?.filter(it => obj instanceof it) ?? []).length <= 0;\n if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {\n const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);\n domRender.addRef(parentProxy, p);\n const proxy = new Proxy(obj, domRender);\n domRender.run(proxy);\n return proxy;\n }\n if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {\n const d = (obj as any)._DomRender_proxy as DomRenderProxy<T>;\n d.addRef(this._domRender_proxy!, p);\n return obj;\n } else {\n return obj;\n }\n */\n if (!isWrapProxyDomRenderProxy(obj)) {\n const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);\n domRender.addRef(parentProxy, p);\n const proxy = new Proxy(obj, domRender);\n domRender.run(proxy);\n return proxy;\n }\n if (isWrapProxyDomRenderProxy(obj)) {\n const d = (obj as any)._DomRender_proxy as DomRenderProxy<T>;\n d.addRef(this._domRender_proxy!, p);\n return obj;\n } else {\n return obj;\n }\n }\n\n public addRef(parent: object, path: string) {\n if (!this._domRender_ref.get(parent)) {\n this._domRender_ref.set(parent, new Set<string>());\n }\n this._domRender_ref.get(parent)?.add(path);\n }\n\n public addRawSetAndRender(path: string, rawSet: RawSet) {\n this.addRawSet(path, rawSet);\n this.render([rawSet]);\n }\n\n public addRawSet(path: string, rawSet: RawSet) {\n // console.log('addRawSet--> path:', path, 'rawSet:', rawSet)\n if (!this._rawSets.get(path)) {\n this._rawSets.set(path, new Set<RawSet>());\n }\n this._rawSets.get(path)?.add(rawSet);\n }\n\n // public removeRawSet(...raws: RawSet[]) {\n // this._rawSets.forEach(it => {\n // raws.forEach(sit => it.delete(sit));\n // })\n // this.garbageRawSet();\n // }\n\n public removeRawSet(...raws: RawSet[]) {\n this._rawSets.forEach(it => {\n it.forEach(sit => {\n if (!sit.isConnected) {\n it.delete(sit);\n } else if (raws.includes(sit)) {\n it.delete(sit);\n }\n });\n });\n this.targetGarbageRawSet();\n }\n\n private targetGarbageRawSet() {\n this._targets.forEach(it => {\n if (!it.isConnected) {\n this._targets.delete(it);\n }\n });\n }\n\n private garbageRawSet() {\n this._targets.forEach(it => {\n if (!it.isConnected) {\n this._targets.delete(it);\n }\n });\n\n this._rawSets.forEach(it => {\n it.forEach(sit => {\n if (!sit.isConnected) {\n it.delete(sit);\n }\n });\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { RawSet, RenderResult } from './rawsets/RawSet';\nimport { EventManager, NormalAttrDataType } from './events/EventManager';\nimport { DomRenderConfig } from './configs/DomRenderConfig';\nimport { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';\nimport { DomRenderFinalProxy, Shield } from './types/Types';\nimport { RawSetType } from './rawsets/RawSetType';\nimport { DrThisProperty } from './operators/DrThisProperty';\nimport { RawSetOperatorType } from './rawsets/RawSetOperatorType';\nimport { ComponentSet } from './components/ComponentSet';\nimport { DomRenderNoProxyKey, isDomRenderNoProxy } from './decorators/DomRenderNoProxy';\nimport { isOnCreateRender } from './lifecycle/OnCreateRender';\nimport { isOnInitRender } from './lifecycle/OnInitRender';\nimport { isOnCreateRenderData } from './lifecycle/OnCreateRenderData';\nimport { isOnChangeAttrRender } from './lifecycle/OnChangeAttrRender';\nimport { DocumentUtils } from '@dooboostore/core-web/document/DocumentUtils';\nimport { isDefined } from '@dooboostore/core/types';\nimport { isOnBeforeReturnSet } from './lifecycle/OnBeforeReturnSet';\nimport { isOnChildRenderedByProperty } from './lifecycle/OnChildRenderedByProperty';\nimport { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';\nimport { ValidUtils } from '@dooboostore/core/valid/ValidUtils';\nimport { isOnProxyDomRender } from './lifecycle/OnProxyDomRender';\nimport { isOnRawSetRendered } from './lifecycle/OnRawSetRendered';\nimport { isOnChildRawSetRendered } from \"./lifecycle/OnChildRawSetRendered\";\n\nconst excludeGetSetPropertys = [\n 'onBeforeReturnGet',\n 'onBeforeReturnSet',\n '__domrender_components',\n '__render',\n '_DomRender_isFinal',\n '_domRender_ref',\n '_rawSets',\n '_domRender_proxy',\n '_targets',\n '_DomRender_origin',\n '_DomRender_ref',\n '_DomRender_proxy'\n];\nexport const isWrapProxyDomRenderProxy = <T>(obj: T): boolean => {\n return obj && typeof obj === 'object' && '_DomRender_isProxy' in obj;\n};\nexport const getDomRenderOriginObject = <T>(obj: T): T => {\n if (isWrapProxyDomRenderProxy(obj)) {\n return (obj as any)._domRender_origin;\n }\n return obj;\n};\nexport const getDomRenderConfig = (obj: any): DomRenderConfig | undefined => {\n if (isWrapProxyDomRenderProxy(obj)) {\n return obj._domRender_config;\n }\n return undefined;\n};\n//@ts-ignore\nexport const getDomRenderProxy = <T>(obj: T): DomRenderProxy<T> | undefined => {\n if (isWrapProxyDomRenderProxy(obj)) {\n //@ts-ignore\n return (obj as any)._domRender_proxy as DomRenderProxy<T>;\n }\n return undefined;\n};\nexport class DomRenderProxy<T extends object> implements ProxyHandler<T> {\n public _domRender_ref = new Map<object, Set<string>>();\n public _rawSets = new Map<string, Set<RawSet>>();\n public _domRender_proxy?: T;\n public _targets = new Set<Node>();\n // public name = Math.random();\n\n constructor(\n public _domRender_origin: T,\n target: Node | null | undefined,\n public _domRender_config: DomRenderConfig\n ) {\n if (target) {\n this._targets.add(target);\n // this._firstTarget = target;\n }\n\n // setInterval(() => {\n // this._rawSets.forEach(it => {\n // Array.from(it).forEach(it => {\n // console.log(it, it.isConnected)\n // })\n // });\n // }, 1000)\n }\n\n public static unFinal<T = any>(obj: T): T {\n return DomRenderFinalProxy.unFinal(obj);\n }\n\n public static final<T = any>(obj: T): T {\n return DomRenderFinalProxy.final(obj);\n }\n\n public static isFinal<T = any>(obj: T) {\n return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);\n }\n\n public async run(objProxy: T) {\n this._domRender_proxy = objProxy;\n if (isOnProxyDomRender(objProxy)) {\n objProxy.onProxyDomRender(this._domRender_config);\n }\n const obj = getDomRenderOriginObject<any>(objProxy);\n if (obj) {\n Object.keys(obj).forEach(it => {\n // Reflect \uBA54\uD0C0\uB370\uC774\uD130\uC5D0\uC11C domRender:NoProxy \uC5EC\uBD80 \uD655\uC778\n try {\n const isNoProxy =\n Reflect.getMetadata(DomRenderNoProxyKey, obj, it) ||\n Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n if (isNoProxy) {\n return obj;\n }\n } catch (e) { }\n const target = obj[it];\n if (\n target !== undefined &&\n target !== null &&\n typeof target === 'object' &&\n !DomRenderProxy.isFinal(target) &&\n !Object.isFrozen(target) &&\n !(obj instanceof Shield)\n ) {\n const isExcluded = this._domRender_config.proxyExcludeTyps?.some(it => target instanceof it) ?? false;\n // const filter = this._domRender_config.proxyExcludeTyps?.filter(it => target instanceof it) ?? [];\n if (!isExcluded) {\n const proxyAfter = this.proxy(objProxy, target, it);\n obj[it] = proxyAfter;\n }\n }\n });\n }\n // console.log('target', this._targets);\n for (let target of this._targets) {\n await this.initRender(target);\n }\n }\n\n public async initRender(target: Node, rawSet?: RawSet) {\n // if (target instanceof Element) {\n // target.setAttribute('dr-this', 'this');\n // const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this.config);\n // this.render(rawSets)\n // return;\n // }\n //\n if (target instanceof Element) {\n // \uC911\uC694: \uB098\uB97C\uD1B5\uD574 \uC774\uC5B4\uC9C4\uACF3\uC758 \uC704\uCE58\uB97C \uB0A8\uACA8\uC57C\uB41C\uB2E4 \uC548\uADF8\uB7EC\uBA74 TargetElement\uB294 \uC54C\uC218 \uC788\uB294 \uBC29\uBC95\uC774 \uC5C6\uB2E4. \uC5EC\uAE30\uC11C \uD754\uC801\uC744 \uB0A8\uACA8\uC918\uC57C \uD55C\uB2E4.\n // const targetElementNames = (this.config.targetElements?.map(it => it.name.toLowerCase().replaceAll('.', '\\\\.')) ?? []).join(',');\n // Array.from(target.querySelectorAll(targetElementNames)).forEach(it => it.setAttribute(EventManager.parentVariablePathAttrName, '@this@'));\n target.innerHTML = target.innerHTML.replace(/@this@/g, 'this');\n }\n // TODO: \uD55C\uACF3\uC5D0\uC11C \uCC98\uB9AC \uD544\uC694\uD560\uB4EF.. \uB108\uBB34 \uC0B0\uBC1C\uC801\uC73C\uB85C \uC788\uC74C.\n const onCreate = (target as any).getAttribute?.(RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);\n let createParam: any[] = [];\n if (onCreate) {\n createParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);\n if (!Array.isArray(createParam)) {\n createParam = [createParam];\n }\n }\n\n if (isOnCreateRenderData(this._domRender_proxy)) {\n this._domRender_proxy?.onCreateRenderData({ rootParent: this._domRender_proxy });\n }\n\n if (isOnCreateRender(this._domRender_proxy)) {\n this._domRender_proxy.onCreateRender(...createParam);\n }\n\n // const innerHTML = (target as any).innerHTML ?? '';\n this._targets.add(target);\n const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this._domRender_config);\n // console.log('initRender -------rawSet', rawSets)\n // \uC911\uC694 \uCD08\uAE30\uC5D0 \uD55C\uBC88 \uD295\uACA8\uC918\uC57C\uD568.\n this._domRender_config.eventManager.applyEvent(\n this._domRender_proxy,\n this._domRender_config.eventManager.findAttrElements(target as Element, this._domRender_config),\n this._domRender_config\n );\n rawSets.forEach(it => {\n const variables = it.getUsingTriggerVariables(this._domRender_config);\n if (variables.size <= 0) {\n this.addRawSet('', it);\n } else {\n variables.forEach(sit => {\n this.addRawSet(sit, it);\n });\n }\n });\n\n const targetRawSets = await this.render(this.getRawSets());\n for (let targetRawSet of targetRawSets) {\n const onInit = (target as any).getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);\n let initParam: any;\n if (onCreate) {\n initParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);\n }\n if (isOnInitRender(this._domRender_proxy)) {\n await this._domRender_proxy.onInitRender(\n initParam,\n rawSet ?? ({ dataSet: { config: this._domRender_config } } as any)\n );\n }\n }\n }\n\n public getRawSets() {\n const set = new Set<RawSet>();\n this._rawSets.forEach((v, k) => {\n v.forEach(it => set.add(it));\n });\n return Array.from(set);\n }\n\n // \uC911\uC694 important\n public async render(raws?: RawSet[] | string, fullPathStr?: string) {\n if (typeof raws === 'string') {\n const iter = this._rawSets.get(raws);\n if (iter) {\n raws = Array.from(iter);\n } else {\n raws = undefined;\n }\n }\n const removeRawSets: RawSet[] = [];\n const rawSets = raws ?? this.getRawSets();\n // console.log('Total RawSets to render:', Array.isArray(rawSets) ? rawSets.length : 0);\n\n // console.log('----', rawSets);\n // console.log('----', rawSets);\n const CHUNK_SIZE = 50;\n const chunks = [];\n const rawSetsArray = Array.from(rawSets as RawSet[]);\n for (let i = 0; i < rawSetsArray.length; i += CHUNK_SIZE) {\n chunks.push(rawSetsArray.slice(i, i + CHUNK_SIZE));\n }\n\n for (const chunk of chunks) {\n const promises = chunk.map(async (it) => {\n it.getUsingTriggerVariables(this._domRender_config).forEach(path => {\n // console.log('getUsingTriggerVariables->', path);\n this.addRawSet(path, it);\n });\n\n let renderResult: RenderResult | undefined;\n if (it.isConnected) {\n // \uC911\uC694 render\uB420\uB54C targetAttribute \uCCB4\uD06C \uD574\uC57C\uD568.\n const targetAttrMap = (it.point.node as Element)?.getAttribute?.(EventManager.normalAttrMapAttrName);\n // console.log('sssssssssSSS?',it, targetAttrMap)\n // console.log('----2', it, fullPathStr, targetAttrMap, (it.fragment as any).render, it.isConnected, this.getRawSets());\n if (it.detect?.action) {\n it.detect.action();\n // } else if (it.type === RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && (it.fragment as any).render) {\n } else if (\n it.type === RawSetType.TARGET_ELEMENT &&\n it.dataSet?.render?.currentThis &&\n fullPathStr &&\n targetAttrMap\n ) {\n const attrStart = performance.now();\n new Map<string, NormalAttrDataType>(JSON.parse(targetAttrMap)).forEach((v, k) => {\n // it?.data.onChangeAttrRender(k, null, v);\n // console.log('------->?',v,k);\n const isUsing = v.variablePaths.some(it => EventManager.isUsingThisVar(it.inner, `this.${fullPathStr}`))\n // console.log('------->?',v,k, isUsing);\n if (isUsing) {\n const targetAttrObject = RawSet.getAttributeObject(it.point.node as Element, {\n script: it.dataSet?.render?.renderScript ?? '',\n obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })\n });\n it.dataSet.render ??= {};\n it.dataSet.render.attribute = targetAttrObject;\n // const render = it.dataSet?.render;\n // console.log('render-->!!!!!', it.dataSet.render);\n // const script = `${render.renderScript} return ${v} `;\n // const cval = ScriptUtils.eval(script, Object.assign(this._domRender_proxy ?? {}, { __render: render }));\n if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {\n it.dataSet?.render?.currentThis?.onChangeAttrRender?.(k, targetAttrObject[k], { rawSet: it });\n }\n }\n // console.log('---?', v, fullPathStr, isUsing);\n });\n const attrEnd = performance.now();\n // if (attrEnd - attrStart > 10) {\n // console.log('Slow Attr Update:', attrEnd - attrStart, it);\n // }\n // ------------------->\n } else {\n const renderStart = performance.now();\n const rawSets = await it.render(this._domRender_proxy, this._domRender_config);\n const renderEnd = performance.now();\n // if (renderEnd - renderStart > 10) {\n // console.log('Slow RawSet Render:', renderEnd - renderStart, it);\n // }\n renderResult = rawSets;\n // \uADF8\uC678 \uC790\uC2DD\uB4E4 render\n if (rawSets && rawSets.raws.length > 0) {\n await this.render(rawSets.raws);\n }\n }\n } else {\n removeRawSets.push(it);\n }\n\n const t = it.findNearThis(this._domRender_proxy);\n // TODO: \uD638\uCD9C\uB41C\uACF3\uC5D0\uC11C \uB610 \uBCC0\uC218\uB97C \uC218\uC815\uD558\uAC8C\uB418\uBA74 \uBB34\uD55C\uB8E8\uD504\uB2C8\uAE50 \uC660\uB9CC\uD558\uBA74 \uC0AC\uC6A9\uBABB\uD558\uAC8C \uD574\uC57C\uD55C\uB2E4.\n if (isOnRawSetRendered(t)) {\n await t.onRawSetRendered(it, { path: fullPathStr, value: ObjectUtils.Script.evaluateReturn(`this.${fullPathStr}`, this._domRender_proxy), root: this._domRender_proxy, renderResult });\n }\n // console.log('----', it);\n });\n await Promise.all(promises);\n if (chunks.length > 1) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n }\n }\n\n if (isOnChildRawSetRendered(this._domRender_proxy)) {\n await this._domRender_proxy.onChildRawSetRendered();\n }\n\n if (removeRawSets.length > 0) {\n this.removeRawSet(...removeRawSets);\n }\n return this.getRawSets();\n }\n\n // domrender_ref\uB85C \uCC3E\uB294\uAC78\uB85C \uBC14\uAFC8\n // public findRootDomRenderProxy(): DomRenderProxy<any> {\n // let current:DomRenderProxy<any> = this;\n // while (current.parentProxy) {\n // current = current.parentProxy;\n // }\n // return current;\n // }\n\n public root(\n pathInfos: { path: string; obj: any }[][],\n value?: any,\n lastDoneExecute = true\n ): { path: string; obj: any }[][] {\n // console.time('root_total');\n const rootStartTime = Date.now();\n const pathKey = pathInfos.flat().map(i => i.path).join('.');\n\n // console.group(`\uD83C\uDF33 DomRenderProxy root: ${pathKey}`);\n // console.log('root--->', pathInfos, value, this._domRender_ref, this._domRender_origin);\n const fullPaths: { path: string; obj: any }[][] = [];\n if (this._domRender_ref.size > 0) {\n this._domRender_ref.forEach((it, key) => {\n if ('_DomRender_isProxy' in key) {\n it.forEach(sit => {\n try {\n const recursiveStartTime = Date.now();\n const concat = pathInfos.concat([[{ path: sit, obj: key }]]);\n const items: { path: string; obj: any }[][] = (key as any)._DomRender_proxy?.root(\n concat,\n value,\n lastDoneExecute\n );\n // console.log(`\uD83D\uDD04 Recursive root call for ${sit}: ${Date.now() - recursiveStartTime}ms`);\n\n fullPaths.push(items.flat());\n // fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});\n // fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});\n } catch (e) {\n // \uC624\uBE0C\uC81D\uD2B8\uB4E4 \uC5C6\uC5B4\uC84C\uC744\uC218\uB3C4\uC788\uB2E4 Destroy\uC2DC\uC810\uC5D0\uC11C \uC624\uB958\uB098\uB294\uACBD\uC6B0\uAC00 \uC788\uB2E4. \uB530\uB77C\uC11C \uCC38\uC870 \uD558\uB294\uBD80\uBD84 \uC5C6\uC5B4\uC838\uC57C\uD55C\uB2E4.\n // console.error(e)\n // it.delete(sit);\n }\n });\n }\n });\n } else {\n // console.time('root_recursive');\n const pathProcessStartTime = Date.now();\n // const firstPathStr = paths.slice(1).reverse().join('.');\n const strings = pathInfos.reverse().map(it => it.map(it => it.path).join(','));\n // array\uAC19\uC740\uACBD\uC6B0\uB3C4 \uD0A4\uAC12\uC73C\uB85C \uC811\uADFC\uD558\uAE30\uB54C\uBB38\uC5D0 \uD2B9\uC815 \uC778\uB371\uC2A4\uB97C \uCC3E\uC544\uC11C \uADF8\uBD80\uBD84\uB9CC \uBC14\uAFD4\uC904\uC218 \uC788\uB2E4.\n const fullPathStr = strings\n .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))\n .join('')\n .slice(1);\n // console.log(`\uD83D\uDEE4\uFE0F Path processing time: ${Date.now() - pathProcessStartTime}ms for path: ${fullPathStr}`);\n if (lastDoneExecute) {\n // const firstData = ScriptUtils.evalReturn('this.' + firstPathStr, this._domRender_proxy);\n // console.log('-------', firstPathStr, firstData);\n // if (firstData instanceof Dictionary) {\n // }\n const iterable = this._rawSets.get(fullPathStr);\n // array check\n const front = strings\n .slice(0, strings.length - 1)\n .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))\n .join('');\n const lastPropertyName = strings[strings.length - 1];\n const path = 'this' + front;\n const data = ObjectUtils.Script.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(path), this._domRender_proxy);\n // console.log('root-->', this._rawSets, path, data );\n // console.log('--!!!!', fullPathStr, iterable, data, front, last);\n // \uC65C\uC5EC\uAE30\uC11C promise\uB97C \uD588\uC744\uAE4C\uB97C \uC0DD\uAC01\uD574\uBCF4\uBA74......\uD6D4.. \uBCC0\uC218\uBCC0\uACBD\uACFC \uD654\uBA74 \uBFCC\uB824\uC8FC\uB294\uAC78 \uB3D9\uAE30\uB85C\uD558\uBA74 \uC131\uB2A5\uC774 \uC548\uB098\uC624\uACE0 \uBE44\uD604\uC2E4\uC801\uC774\uB2E4. \uADF8\uB798\uC11C promise\n const promiseStartTime = Date.now();\n // console.timeEnd('root_recursive');\n // console.time('root_render_wait');\n new Promise<RawSet[]>(async resolve => {\n const promiseInnerStartTime = Date.now();\n let rData: RawSet[] = [];\n const firstPathStr = front.slice(1);\n\n // check dictionary\n const dictionaryCheckStartTime = Date.now();\n // console.log('-promise-------', firstPathStr, this)\n const firstTargets = this._rawSets.get(firstPathStr);\n const firstTargetDictionary: RawSet[] = [];\n firstTargets?.forEach(it => {\n // console.log('----forEach---', it);\n const type = (it.point.start as Element)?.getAttribute?.('type');\n if (type === RawSetOperatorType.DR_THIS_PROPERTY) {\n firstTargetDictionary.push(it);\n }\n });\n // console.log(`\uD83D\uDCDA Dictionary check time: ${Date.now() - dictionaryCheckStartTime}ms (${firstTargetDictionary.length} found)`);\n\n if (firstTargetDictionary.length > 0) {\n // console.log('ddddddddddd', firstTargetDictionary);\n const rawSets: RawSet[] = [];\n let skip = false;\n firstTargetDictionary.forEach(it => {\n const startElement = it.point.start as Element;\n const keys = startElement.getAttribute(RawSet.DR_HAS_KEYS_OPTIONNAME)?.split(',') ?? [];\n if (value === undefined) {\n const rawSet = it.getHasRawSet(lastPropertyName);\n rawSet?.remove();\n startElement.setAttribute(\n RawSet.DR_HAS_KEYS_OPTIONNAME,\n keys.filter(it => it !== lastPropertyName).join(',')\n );\n }\n if (!keys.includes(lastPropertyName)) {\n const raws = DrThisProperty.append(\n this._domRender_proxy,\n fullPathStr,\n lastPropertyName,\n it,\n this._domRender_config\n );\n if (raws) {\n rawSets.push(...raws);\n }\n } else {\n skip = true;\n }\n });\n if (skip === false || rawSets.length > 0) {\n rData = await this.render(rawSets);\n }\n }\n\n const renderStartTime = Date.now();\n if (lastPropertyName === 'length' && Array.isArray(data)) {\n const aIterable = this._rawSets.get(firstPathStr);\n if (aIterable) {\n rData = await this.render(Array.from(aIterable));\n }\n } else if (iterable) {\n // console.log('------------',iterable, fullPaths)\n rData = await this.render(Array.from(iterable), fullPathStr);\n }\n // console.log(`\uD83C\uDFA8 Render time: ${Date.now() - renderStartTime}ms (${rData?.length || 0} rawSets)`);\n\n // console.log('-----------', this, lastPropertyName );\n // this._targets.forEach(it => {\n // // return;\n // if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {\n // const targets = eventManager.findAttrElements((it as DocumentFragment | Element), this.config);\n // eventManager.changeVar(this._domRender_proxy, targets, `this.${fullPathStr}`, this.config);\n // }\n // });\n\n const eventProcessStartTime = Date.now();\n const Node = ((this._domRender_config.window as any).Node)\n this._targets.forEach(it => {\n // return;\n if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {\n const findAttrStartTime = Date.now();\n const targets = this._domRender_config.eventManager.findAttrElements(\n it as DocumentFragment | Element,\n this._domRender_config\n );\n const targetCount = (targets as any)?.size || (targets as any)?.length || 0;\n // console.log(`\uD83D\uDD0D findAttrElements time: ${Date.now() - findAttrStartTime}ms (${targetCount} elements)`, it);\n\n const changeVarStartTime = Date.now();\n this._domRender_config.eventManager.changeVar(\n this._domRender_proxy,\n targets,\n `this.${fullPathStr}`,\n this._domRender_config\n );\n // console.log(`\uD83D\uDD04 changeVar time: ${Date.now() - changeVarStartTime}ms`);\n }\n });\n // console.log(`\u26A1 Event processing time: ${Date.now() - eventProcessStartTime}ms (${this._targets.size} targets)`);\n\n // console.log(`\uD83D\uDD04 Promise inner total time: ${Date.now() - promiseInnerStartTime}ms`);\n\n //\uB79C\uB354\uB300\uC0C1\uB41C\uAC8C\uC788\uC73C\uBA74\n if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {\n const propertyValue = ObjectUtils.Script.evaluateReturn(`this.${lastPropertyName}`, data);\n data.onChildRenderedByProperty(lastPropertyName, propertyValue);\n // data\n }\n resolve(rData);\n }).then(it => {\n // console.log('DonrenderProxy root RenderDone')\n // console.timeEnd('root_render_wait');\n // console.timeEnd('root_total');\n });\n }\n fullPaths.push([{ path: fullPathStr, obj: this._domRender_proxy }]);\n }\n\n // console.log(`\uD83C\uDFC1 Root method total time: ${Date.now() - rootStartTime}ms`);\n // console.log('dddddd', fullPaths.flatMap(it => it).map(it => it.path))\n // console.groupEnd();\n return fullPaths;\n }\n\n public set(target: T, p: string | symbol, value: any, receiver: T): boolean {\n // console.log('set------->', target, p, value, receiver, Date.now())\n // console.log('set------->', p,value)\n // console.log('set------->', target, p, value, receiver, Date.now())\n // try {\n // const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, target, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n // if (isNoProxy) {\n // return obj;\n // }\n // }catch (e) {}\n\n // console.log('set-->', p, value, target, receiver, Reflect.getMetadata(DomRenderNoProxyKey, target, p) );\n\n if (\n (typeof p === 'string' && p !== '__domrender_components' && excludeGetSetPropertys.includes(p)) ||\n Reflect.getMetadata(DomRenderNoProxyKey, target, p)\n ) {\n (target as any)[p] = value;\n return true;\n }\n // const old = (target as any)[p];\n // console.log('set proxy-->', target, p, value, this._rawSets, this._domRender_ref);\n // if (typeof p === 'string' && '__render' === p) {\n // (target as any)[p] = value;\n // return true;\n // }\n // console.log('set--?', p, target, value);\n let start = performance.now()\n if (typeof p === 'string') {\n value = this.proxy(receiver, value, p);\n }\n // console.log('set proxy time', performance.now() - start, p);\n // start = performance.now();\n\n\n // console.log('set typeChecked', (target as any)[p] instanceof ComponentSet, value instanceof ComponentSet);\n // if ((target as any)[p] instanceof ComponentSet) {\n // (target as any)[p]?.obj?.onDrThisUnBind?.();\n // }\n // console.log('---', this._domRender_ref, p, this._domRender_proxy)\n // is ComponentSet\n if (value instanceof ComponentSet && (target as any)[p] instanceof ComponentSet) {\n value.config.beforeComponentSet = (target as any)[p];\n }\n (target as any)[p] = value;\n let fullPathInfo: { path: string; obj: any }[][] = [];\n if (typeof p === 'string') {\n fullPathInfo = this.root([[{ path: p, obj: this._domRender_proxy }]], value);\n }\n\n\n // console.log('set proxy root time', performance.now() - start, p);\n // start = performance.now();\n //\n // console.log('setRooot', fullPathInfo);\n\n //normal attribute \uB610\uD55C \uB9C1\uD06C\uB791 \uAC19\uC740 \uC99D\uC138\uB77C\uC11C \uC774\uB807\uAC8C \uD574\uC918\uC57C\uD55C\uB2E4!!\n // const rootDomRenderProxy = this.findRootDomRenderProxy();\n // console.log('set!!!!!!!', fullPathInfo, rootDomRenderProxy)\n // console.log('--------rootDom',fullPathInfo, rootDomRenderProxy, rootDomRenderProxy._domRender_proxy)\n const rootElement = this._domRender_config.rootElement ?? this._domRender_config.window.document;\n DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(\n elementInfo => {\n // @ts-ignore\n // const optionalPath = ObjectUtils.Path.toOptionalChainPath(elementInfo.value);\n const targets = new Map<string, NormalAttrDataType>(\n ObjectUtils.Script.evaluateReturn<[string, NormalAttrDataType][]>(elementInfo.value)\n );\n Array.from(targets.entries())\n .filter(isDefined)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.variablePaths?.some(vit => vit.inner.includes(`this.${it.path}`)))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(it => {\n // const optionalPaths = it.valueScript.variablePaths.map(it => ObjectUtils.Path.toOptionalChainPath(it))\n const variablePaths = it.valueScript.variablePaths;\n let targetScript = it.valueScript.originalAttrValue;\n let script: string;\n if (it.valueScript.isStringTemplate) {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `\\${${r}}`);\n })\n script = '`' + targetScript + '`';\n } else {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `${r}`);\n })\n script = targetScript;\n }\n // variablePaths.forEach(it => {\n // let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n // targetScript = targetScript.replaceAll(it.origin,`\\${${r}}`);\n // })\n const value1 = ObjectUtils.Script.evaluateReturn(script, it.pathInfo.obj);\n // console.log('proxy set!Attribut======', it.key, value1)\n if (value1 === null || value1 === undefined) {\n elementInfo.element.removeAttribute(it.key);\n // elementInfo.element[it.key] = null;\n } else {\n elementInfo.element.setAttribute(it.key, value1);\n elementInfo.element[it.key] = value1;\n }\n });\n }\n );\n\n // console.log('set proxy normalAttrMapAttrName time', performance.now() - start, p);\n // start = performance.now();\n\n\n\n //\uC5EC\uAE30\uC11C \uB9C1\uD06C \uAC19\uC740\uAC70 \uD574\uC918\uC57C\uD568 *-link\uB85C \uBCC0\uC218\uAC12\uC774 \uBCC0\uACBD\uB418\uBA74 \uADF8\uAC78 \uCC38\uACE0\uD558\uACE0\uC788\uB294 \uB2E4\uB978\uAC83\uB4E4\uC5D0\uB3C4 \uD574\uC918\uC57C\uD55C\uB2E4.\n DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(\n elementInfo => {\n // @ts-ignore\n const targets = new Map<string, string>(ObjectUtils.Script.evaluateReturn<[string, string][]>(elementInfo.value));\n\n Array.from(targets.entries())\n .filter(([key, value]) => value.trim())\n .filter(isDefined)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.includes(`this.${it.path}`))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(info => {\n const value1 = ObjectUtils.Script.evaluateReturn(info.valueScript, info.pathInfo.obj);\n const applyAttributeName = EventManager.linkAttrs.find(it => it.name === info.key);\n if (applyAttributeName) {\n if (value1 === null) {\n elementInfo.element.removeAttribute(applyAttributeName.property);\n } else {\n // console.log('ppppppppppppppppppppppp', applyAttributeName, elementInfo)\n elementInfo.element.setAttribute(applyAttributeName.property, value1);\n }\n }\n });\n\n Array.from(targets.entries())\n .filter(([key, value]) => value.trim())\n .filter(isDefined)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.includes(`this.${it.path}`))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(info => {\n const linkInfo = EventManager.linkAttrs.find(it => it.name === info.key);\n if (linkInfo) {\n elementInfo.element[linkInfo.property] = value;\n }\n });\n }\n );\n\n // console.log('set proxy linkTargetMapAttrName time', performance.now() - start, p);\n // start = performance.now();\n\n // console.log('---end',receiver);\n if (\n 'onBeforeReturnSet' in receiver &&\n typeof p === 'string' &&\n !(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)\n ) {\n if (isOnBeforeReturnSet(receiver)) {\n receiver.onBeforeReturnSet?.(\n p,\n value,\n fullPathInfo.map(it => it.map(it => it.path).join())\n );\n }\n }\n\n // console.log('done!!')\n return true;\n }\n\n get(target: T, p: string | symbol, receiver: any): any {\n // console.log('get-->', target, p, receiver);\n if (p === '_DomRender_origin' || p === '_domRender_origin') {\n return this._domRender_origin;\n } else if (p === '_DomRender_ref' || p === '_domRender_ref') {\n return this._domRender_ref;\n } else if (p === '_DomRender_config' || p === '_domRender_config') {\n return this._domRender_config;\n } else if (p === '_DomRender_proxy' || p === '_domRender_proxy') {\n return this;\n } else {\n // Date\uB77C\uB358\uC9C0 \uC774\uB7F0\uB188\uB4E4\uC740-_-\uD504\uB85D\uC2DC\uAC00 \uC774\uC0C1\uD558\uAC8C \uB3D9\uC791\uD574\uC11C\n // console.log('--->', p, target, target.bind, 'bind' in target)\n // if ((p in target) && ('bind' in target)) {\n // try{\n // return (target as any)[p].bind(target);\n // }catch (e) {\n // console.error(e)\n // }\n // } else {\n // return (target as any)[p]\n // }\n // return (p in target) ? (target as any)[p].bind(target) : (target as any)[p]\n // console.log('-->', p, Object.prototype.toString.call((target as any)[p]), (target as any)[p])\n // return (target as any)[p]\n let it = (target as any)[p];\n if (\n it &&\n typeof it === 'object' &&\n '_DomRender_isProxy' in it &&\n Object.prototype.toString.call(it._DomRender_origin) === '[object Date]'\n ) {\n it = it._DomRender_origin;\n }\n\n if (\n 'onBeforeReturnGet' in receiver &&\n typeof p === 'string' &&\n !(this._domRender_config.proxyExcludeOnBeforeReturnGets ?? []).concat(excludeGetSetPropertys).includes(p)\n ) {\n (receiver as any)?.onBeforeReturnGet?.(\n p,\n it,\n this.root([[{ path: p, obj: this._domRender_proxy }]], it, false)\n );\n }\n return it;\n }\n }\n\n deleteProperty(target: T, p: string | symbol): boolean {\n delete (target as any)[p];\n if (typeof p === 'string') {\n this.root([[{ path: p, obj: this._domRender_proxy }]]);\n }\n return true;\n }\n\n has(target: T, p: string | symbol): boolean {\n return p === '_DomRender_isProxy' || p in target;\n }\n\n proxy(parentProxy: T, obj: T | any, p: string) {\n try {\n // const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, obj, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n const isObject = typeof obj === 'object';\n const isNoProxy = isObject && isDomRenderNoProxy(obj, p);\n const isExclude = this._domRender_config.proxyExcludeTyps?.some(it => obj instanceof it) ?? false;\n const isFinal = isObject && DomRenderProxy.isFinal(obj);\n const isFrozen = Object.isFrozen(obj);\n const isShield = obj instanceof Shield;\n if (\n obj === undefined ||\n obj === null ||\n isNoProxy ||\n isExclude ||\n ValidUtils.isNullOrUndefined(obj) ||\n !isObject ||\n isFinal ||\n isFrozen ||\n isShield\n ) {\n return obj;\n }\n } catch (e) { }\n\n /*\n const proxyTarget = (this._domRender_config.proxyExcludeTyps?.filter(it => obj instanceof it) ?? []).length <= 0;\n if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {\n const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);\n domRender.addRef(parentProxy, p);\n const proxy = new Proxy(obj, domRender);\n domRender.run(proxy);\n return proxy;\n }\n if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {\n const d = (obj as any)._DomRender_proxy as DomRenderProxy<T>;\n d.addRef(this._domRender_proxy!, p);\n return obj;\n } else {\n return obj;\n }\n */\n if (!isWrapProxyDomRenderProxy(obj)) {\n const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);\n domRender.addRef(parentProxy, p);\n const proxy = new Proxy(obj, domRender);\n domRender.run(proxy);\n return proxy;\n }\n if (isWrapProxyDomRenderProxy(obj)) {\n const d = (obj as any)._DomRender_proxy as DomRenderProxy<T>;\n d.addRef(this._domRender_proxy!, p);\n return obj;\n } else {\n return obj;\n }\n }\n\n public addRef(parent: object, path: string) {\n if (!this._domRender_ref.get(parent)) {\n this._domRender_ref.set(parent, new Set<string>());\n }\n this._domRender_ref.get(parent)?.add(path);\n }\n\n public addRawSetAndRender(path: string, rawSet: RawSet) {\n this.addRawSet(path, rawSet);\n this.render([rawSet]);\n }\n\n public addRawSet(path: string, rawSet: RawSet) {\n // console.log('addRawSet--> path:', path, 'rawSet:', rawSet)\n if (!this._rawSets.get(path)) {\n this._rawSets.set(path, new Set<RawSet>());\n }\n this._rawSets.get(path)?.add(rawSet);\n }\n\n // public removeRawSet(...raws: RawSet[]) {\n // this._rawSets.forEach(it => {\n // raws.forEach(sit => it.delete(sit));\n // })\n // this.garbageRawSet();\n // }\n\n public removeRawSet(...raws: RawSet[]) {\n this._rawSets.forEach(it => {\n it.forEach(sit => {\n if (!sit.isConnected) {\n it.delete(sit);\n } else if (raws.includes(sit)) {\n it.delete(sit);\n }\n });\n });\n this.targetGarbageRawSet();\n }\n\n private targetGarbageRawSet() {\n this._targets.forEach(it => {\n if (!it.isConnected) {\n this._targets.delete(it);\n }\n });\n }\n\n private garbageRawSet() {\n this._targets.forEach(it => {\n if (!it.isConnected) {\n this._targets.delete(it);\n }\n });\n\n this._rawSets.forEach(it => {\n it.forEach(sit => {\n if (!sit.isConnected) {\n it.delete(sit);\n }\n });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["it", "rawSets", "value"]
|
|
7
7
|
}
|