@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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dooboostore/dom-render",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.112",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -90,9 +90,9 @@
|
|
|
90
90
|
"typescript": "^5.9.2",
|
|
91
91
|
"esbuild-plugin-tsc": "^0.5.0",
|
|
92
92
|
"esbuild": "^0.23.0",
|
|
93
|
-
"@dooboostore/core": "1.0.
|
|
94
|
-
"@dooboostore/core-
|
|
95
|
-
"@dooboostore/core-
|
|
93
|
+
"@dooboostore/core": "1.0.28",
|
|
94
|
+
"@dooboostore/core-node": "1.0.10",
|
|
95
|
+
"@dooboostore/core-web": "1.0.9"
|
|
96
96
|
},
|
|
97
97
|
"scripts": {
|
|
98
98
|
"clean": "rm -rf dist",
|
package/src/DomRenderProxy.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';
|
|
|
20
20
|
import { ValidUtils } from '@dooboostore/core/valid/ValidUtils';
|
|
21
21
|
import { isOnProxyDomRender } from './lifecycle/OnProxyDomRender';
|
|
22
22
|
import { isOnRawSetRendered } from './lifecycle/OnRawSetRendered';
|
|
23
|
+
import { isOnChildRawSetRendered } from "./lifecycle/OnChildRawSetRendered";
|
|
23
24
|
|
|
24
25
|
const excludeGetSetPropertys = [
|
|
25
26
|
'onBeforeReturnGet',
|
|
@@ -62,8 +63,8 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
62
63
|
public _domRender_ref = new Map<object, Set<string>>();
|
|
63
64
|
public _rawSets = new Map<string, Set<RawSet>>();
|
|
64
65
|
public _domRender_proxy?: T;
|
|
65
|
-
// public _firstTarget: Node;
|
|
66
66
|
public _targets = new Set<Node>();
|
|
67
|
+
// public name = Math.random();
|
|
67
68
|
|
|
68
69
|
constructor(
|
|
69
70
|
public _domRender_origin: T,
|
|
@@ -112,7 +113,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
112
113
|
if (isNoProxy) {
|
|
113
114
|
return obj;
|
|
114
115
|
}
|
|
115
|
-
} catch (e) {}
|
|
116
|
+
} catch (e) { }
|
|
116
117
|
const target = obj[it];
|
|
117
118
|
if (
|
|
118
119
|
target !== undefined &&
|
|
@@ -195,7 +196,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
195
196
|
const onInit = (target as any).getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
|
|
196
197
|
let initParam: any;
|
|
197
198
|
if (onCreate) {
|
|
198
|
-
initParam =
|
|
199
|
+
initParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);
|
|
199
200
|
}
|
|
200
201
|
if (isOnInitRender(this._domRender_proxy)) {
|
|
201
202
|
await this._domRender_proxy.onInitRender(
|
|
@@ -226,70 +227,99 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
226
227
|
}
|
|
227
228
|
const removeRawSets: RawSet[] = [];
|
|
228
229
|
const rawSets = raws ?? this.getRawSets();
|
|
230
|
+
// console.log('Total RawSets to render:', Array.isArray(rawSets) ? rawSets.length : 0);
|
|
229
231
|
|
|
230
232
|
// console.log('----', rawSets);
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
233
|
+
// console.log('----', rawSets);
|
|
234
|
+
const CHUNK_SIZE = 50;
|
|
235
|
+
const chunks = [];
|
|
236
|
+
const rawSetsArray = Array.from(rawSets as RawSet[]);
|
|
237
|
+
for (let i = 0; i < rawSetsArray.length; i += CHUNK_SIZE) {
|
|
238
|
+
chunks.push(rawSetsArray.slice(i, i + CHUNK_SIZE));
|
|
239
|
+
}
|
|
236
240
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
it.
|
|
248
|
-
it
|
|
249
|
-
fullPathStr
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
it.
|
|
264
|
-
//
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
241
|
+
for (const chunk of chunks) {
|
|
242
|
+
const promises = chunk.map(async (it) => {
|
|
243
|
+
it.getUsingTriggerVariables(this._domRender_config).forEach(path => {
|
|
244
|
+
// console.log('getUsingTriggerVariables->', path);
|
|
245
|
+
this.addRawSet(path, it);
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
let renderResult: RenderResult | undefined;
|
|
249
|
+
if (it.isConnected) {
|
|
250
|
+
// ์ค์ render๋ ๋ targetAttribute ์ฒดํฌ ํด์ผํจ.
|
|
251
|
+
const targetAttrMap = (it.point.node as Element)?.getAttribute?.(EventManager.normalAttrMapAttrName);
|
|
252
|
+
// console.log('sssssssssSSS?',it, targetAttrMap)
|
|
253
|
+
// console.log('----2', it, fullPathStr, targetAttrMap, (it.fragment as any).render, it.isConnected, this.getRawSets());
|
|
254
|
+
if (it.detect?.action) {
|
|
255
|
+
it.detect.action();
|
|
256
|
+
// } else if (it.type === RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && (it.fragment as any).render) {
|
|
257
|
+
} else if (
|
|
258
|
+
it.type === RawSetType.TARGET_ELEMENT &&
|
|
259
|
+
it.dataSet?.render?.currentThis &&
|
|
260
|
+
fullPathStr &&
|
|
261
|
+
targetAttrMap
|
|
262
|
+
) {
|
|
263
|
+
const attrStart = performance.now();
|
|
264
|
+
new Map<string, NormalAttrDataType>(JSON.parse(targetAttrMap)).forEach((v, k) => {
|
|
265
|
+
// it?.data.onChangeAttrRender(k, null, v);
|
|
266
|
+
// console.log('------->?',v,k);
|
|
267
|
+
const isUsing = v.variablePaths.some(it => EventManager.isUsingThisVar(it.inner, `this.${fullPathStr}`))
|
|
268
|
+
// console.log('------->?',v,k, isUsing);
|
|
269
|
+
if (isUsing) {
|
|
270
|
+
const targetAttrObject = RawSet.getAttributeObject(it.point.node as Element, {
|
|
271
|
+
script: it.dataSet?.render?.renderScript ?? '',
|
|
272
|
+
obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })
|
|
273
|
+
});
|
|
274
|
+
it.dataSet.render ??= {};
|
|
275
|
+
it.dataSet.render.attribute = targetAttrObject;
|
|
276
|
+
// const render = it.dataSet?.render;
|
|
277
|
+
// console.log('render-->!!!!!', it.dataSet.render);
|
|
278
|
+
// const script = `${render.renderScript} return ${v} `;
|
|
279
|
+
// const cval = ScriptUtils.eval(script, Object.assign(this._domRender_proxy ?? {}, { __render: render }));
|
|
280
|
+
if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {
|
|
281
|
+
it.dataSet?.render?.currentThis?.onChangeAttrRender?.(k, targetAttrObject[k], { rawSet: it });
|
|
282
|
+
}
|
|
270
283
|
}
|
|
284
|
+
// console.log('---?', v, fullPathStr, isUsing);
|
|
285
|
+
});
|
|
286
|
+
const attrEnd = performance.now();
|
|
287
|
+
// if (attrEnd - attrStart > 10) {
|
|
288
|
+
// console.log('Slow Attr Update:', attrEnd - attrStart, it);
|
|
289
|
+
// }
|
|
290
|
+
// ------------------->
|
|
291
|
+
} else {
|
|
292
|
+
const renderStart = performance.now();
|
|
293
|
+
const rawSets = await it.render(this._domRender_proxy, this._domRender_config);
|
|
294
|
+
const renderEnd = performance.now();
|
|
295
|
+
// if (renderEnd - renderStart > 10) {
|
|
296
|
+
// console.log('Slow RawSet Render:', renderEnd - renderStart, it);
|
|
297
|
+
// }
|
|
298
|
+
renderResult = rawSets;
|
|
299
|
+
// ๊ทธ์ธ ์์๋ค render
|
|
300
|
+
if (rawSets && rawSets.raws.length > 0) {
|
|
301
|
+
await this.render(rawSets.raws);
|
|
271
302
|
}
|
|
272
|
-
// console.log('---?', v, fullPathStr, isUsing);
|
|
273
|
-
});
|
|
274
|
-
// ------------------->
|
|
275
|
-
} else {
|
|
276
|
-
const rawSets = await it.render(this._domRender_proxy, this._domRender_config);
|
|
277
|
-
renderResult = rawSets;
|
|
278
|
-
// ๊ทธ์ธ ์์๋ค render
|
|
279
|
-
if (rawSets && rawSets.raws.length > 0) {
|
|
280
|
-
await this.render(rawSets.raws);
|
|
281
303
|
}
|
|
304
|
+
} else {
|
|
305
|
+
removeRawSets.push(it);
|
|
282
306
|
}
|
|
283
|
-
} else {
|
|
284
|
-
removeRawSets.push(it);
|
|
285
|
-
}
|
|
286
307
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
308
|
+
const t = it.findNearThis(this._domRender_proxy);
|
|
309
|
+
// TODO: ํธ์ถ๋๊ณณ์์ ๋ ๋ณ์๋ฅผ ์์ ํ๊ฒ๋๋ฉด ๋ฌดํ๋ฃจํ๋๊น ์ ๋งํ๋ฉด ์ฌ์ฉ๋ชปํ๊ฒ ํด์ผํ๋ค.
|
|
310
|
+
if (isOnRawSetRendered(t)) {
|
|
311
|
+
await t.onRawSetRendered(it, { path: fullPathStr, value: ObjectUtils.Script.evaluateReturn(`this.${fullPathStr}`, this._domRender_proxy), root: this._domRender_proxy, renderResult });
|
|
312
|
+
}
|
|
313
|
+
// console.log('----', it);
|
|
314
|
+
});
|
|
315
|
+
await Promise.all(promises);
|
|
316
|
+
if (chunks.length > 1) {
|
|
317
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
291
318
|
}
|
|
292
|
-
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
if (isOnChildRawSetRendered(this._domRender_proxy)) {
|
|
322
|
+
await this._domRender_proxy.onChildRawSetRendered();
|
|
293
323
|
}
|
|
294
324
|
|
|
295
325
|
if (removeRawSets.length > 0) {
|
|
@@ -312,19 +342,26 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
312
342
|
value?: any,
|
|
313
343
|
lastDoneExecute = true
|
|
314
344
|
): { path: string; obj: any }[][] {
|
|
315
|
-
// console.
|
|
345
|
+
// console.time('root_total');
|
|
346
|
+
const rootStartTime = Date.now();
|
|
347
|
+
const pathKey = pathInfos.flat().map(i => i.path).join('.');
|
|
348
|
+
|
|
349
|
+
// console.group(`๐ณ DomRenderProxy root: ${pathKey}`);
|
|
350
|
+
// console.log('root--->', pathInfos, value, this._domRender_ref, this._domRender_origin);
|
|
316
351
|
const fullPaths: { path: string; obj: any }[][] = [];
|
|
317
352
|
if (this._domRender_ref.size > 0) {
|
|
318
353
|
this._domRender_ref.forEach((it, key) => {
|
|
319
354
|
if ('_DomRender_isProxy' in key) {
|
|
320
355
|
it.forEach(sit => {
|
|
321
356
|
try {
|
|
357
|
+
const recursiveStartTime = Date.now();
|
|
322
358
|
const concat = pathInfos.concat([[{ path: sit, obj: key }]]);
|
|
323
359
|
const items: { path: string; obj: any }[][] = (key as any)._DomRender_proxy?.root(
|
|
324
360
|
concat,
|
|
325
361
|
value,
|
|
326
362
|
lastDoneExecute
|
|
327
363
|
);
|
|
364
|
+
// console.log(`๐ Recursive root call for ${sit}: ${Date.now() - recursiveStartTime}ms`);
|
|
328
365
|
|
|
329
366
|
fullPaths.push(items.flat());
|
|
330
367
|
// fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});
|
|
@@ -338,6 +375,8 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
338
375
|
}
|
|
339
376
|
});
|
|
340
377
|
} else {
|
|
378
|
+
// console.time('root_recursive');
|
|
379
|
+
const pathProcessStartTime = Date.now();
|
|
341
380
|
// const firstPathStr = paths.slice(1).reverse().join('.');
|
|
342
381
|
const strings = pathInfos.reverse().map(it => it.map(it => it.path).join(','));
|
|
343
382
|
// array๊ฐ์๊ฒฝ์ฐ๋ ํค๊ฐ์ผ๋ก ์ ๊ทผํ๊ธฐ๋๋ฌธ์ ํน์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ ๊ทธ๋ถ๋ถ๋ง ๋ฐ๊ฟ์ค์ ์๋ค.
|
|
@@ -345,7 +384,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
345
384
|
.map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))
|
|
346
385
|
.join('')
|
|
347
386
|
.slice(1);
|
|
348
|
-
// console.log(
|
|
387
|
+
// console.log(`๐ค๏ธ Path processing time: ${Date.now() - pathProcessStartTime}ms for path: ${fullPathStr}`);
|
|
349
388
|
if (lastDoneExecute) {
|
|
350
389
|
// const firstData = ScriptUtils.evalReturn('this.' + firstPathStr, this._domRender_proxy);
|
|
351
390
|
// console.log('-------', firstPathStr, firstData);
|
|
@@ -359,15 +398,20 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
359
398
|
.join('');
|
|
360
399
|
const lastPropertyName = strings[strings.length - 1];
|
|
361
400
|
const path = 'this' + front;
|
|
362
|
-
const data =
|
|
401
|
+
const data = ObjectUtils.Script.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(path), this._domRender_proxy);
|
|
363
402
|
// console.log('root-->', this._rawSets, path, data );
|
|
364
403
|
// console.log('--!!!!', fullPathStr, iterable, data, front, last);
|
|
365
404
|
// ์์ฌ๊ธฐ์ promise๋ฅผ ํ์๊น๋ฅผ ์๊ฐํด๋ณด๋ฉด......ํ.. ๋ณ์๋ณ๊ฒฝ๊ณผ ํ๋ฉด ๋ฟ๋ ค์ฃผ๋๊ฑธ ๋๊ธฐ๋กํ๋ฉด ์ฑ๋ฅ์ด ์๋์ค๊ณ ๋นํ์ค์ ์ด๋ค. ๊ทธ๋์ promise
|
|
405
|
+
const promiseStartTime = Date.now();
|
|
406
|
+
// console.timeEnd('root_recursive');
|
|
407
|
+
// console.time('root_render_wait');
|
|
366
408
|
new Promise<RawSet[]>(async resolve => {
|
|
409
|
+
const promiseInnerStartTime = Date.now();
|
|
367
410
|
let rData: RawSet[] = [];
|
|
368
411
|
const firstPathStr = front.slice(1);
|
|
369
412
|
|
|
370
413
|
// check dictionary
|
|
414
|
+
const dictionaryCheckStartTime = Date.now();
|
|
371
415
|
// console.log('-promise-------', firstPathStr, this)
|
|
372
416
|
const firstTargets = this._rawSets.get(firstPathStr);
|
|
373
417
|
const firstTargetDictionary: RawSet[] = [];
|
|
@@ -378,6 +422,8 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
378
422
|
firstTargetDictionary.push(it);
|
|
379
423
|
}
|
|
380
424
|
});
|
|
425
|
+
// console.log(`๐ Dictionary check time: ${Date.now() - dictionaryCheckStartTime}ms (${firstTargetDictionary.length} found)`);
|
|
426
|
+
|
|
381
427
|
if (firstTargetDictionary.length > 0) {
|
|
382
428
|
// console.log('ddddddddddd', firstTargetDictionary);
|
|
383
429
|
const rawSets: RawSet[] = [];
|
|
@@ -413,6 +459,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
413
459
|
}
|
|
414
460
|
}
|
|
415
461
|
|
|
462
|
+
const renderStartTime = Date.now();
|
|
416
463
|
if (lastPropertyName === 'length' && Array.isArray(data)) {
|
|
417
464
|
const aIterable = this._rawSets.get(firstPathStr);
|
|
418
465
|
if (aIterable) {
|
|
@@ -422,6 +469,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
422
469
|
// console.log('------------',iterable, fullPaths)
|
|
423
470
|
rData = await this.render(Array.from(iterable), fullPathStr);
|
|
424
471
|
}
|
|
472
|
+
// console.log(`๐จ Render time: ${Date.now() - renderStartTime}ms (${rData?.length || 0} rawSets)`);
|
|
425
473
|
|
|
426
474
|
// console.log('-----------', this, lastPropertyName );
|
|
427
475
|
// this._targets.forEach(it => {
|
|
@@ -432,38 +480,52 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
432
480
|
// }
|
|
433
481
|
// });
|
|
434
482
|
|
|
483
|
+
const eventProcessStartTime = Date.now();
|
|
435
484
|
const Node = ((this._domRender_config.window as any).Node)
|
|
436
485
|
this._targets.forEach(it => {
|
|
437
486
|
// return;
|
|
438
487
|
if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {
|
|
488
|
+
const findAttrStartTime = Date.now();
|
|
439
489
|
const targets = this._domRender_config.eventManager.findAttrElements(
|
|
440
490
|
it as DocumentFragment | Element,
|
|
441
491
|
this._domRender_config
|
|
442
492
|
);
|
|
493
|
+
const targetCount = (targets as any)?.size || (targets as any)?.length || 0;
|
|
494
|
+
// console.log(`๐ findAttrElements time: ${Date.now() - findAttrStartTime}ms (${targetCount} elements)`, it);
|
|
495
|
+
|
|
496
|
+
const changeVarStartTime = Date.now();
|
|
443
497
|
this._domRender_config.eventManager.changeVar(
|
|
444
498
|
this._domRender_proxy,
|
|
445
499
|
targets,
|
|
446
500
|
`this.${fullPathStr}`,
|
|
447
501
|
this._domRender_config
|
|
448
502
|
);
|
|
503
|
+
// console.log(`๐ changeVar time: ${Date.now() - changeVarStartTime}ms`);
|
|
449
504
|
}
|
|
450
505
|
});
|
|
506
|
+
// console.log(`โก Event processing time: ${Date.now() - eventProcessStartTime}ms (${this._targets.size} targets)`);
|
|
507
|
+
|
|
508
|
+
// console.log(`๐ Promise inner total time: ${Date.now() - promiseInnerStartTime}ms`);
|
|
451
509
|
|
|
452
510
|
//๋๋๋์๋๊ฒ์์ผ๋ฉด
|
|
453
511
|
if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {
|
|
454
|
-
const propertyValue =
|
|
512
|
+
const propertyValue = ObjectUtils.Script.evaluateReturn(`this.${lastPropertyName}`, data);
|
|
455
513
|
data.onChildRenderedByProperty(lastPropertyName, propertyValue);
|
|
456
514
|
// data
|
|
457
515
|
}
|
|
458
516
|
resolve(rData);
|
|
459
517
|
}).then(it => {
|
|
460
518
|
// console.log('DonrenderProxy root RenderDone')
|
|
519
|
+
// console.timeEnd('root_render_wait');
|
|
520
|
+
// console.timeEnd('root_total');
|
|
461
521
|
});
|
|
462
522
|
}
|
|
463
523
|
fullPaths.push([{ path: fullPathStr, obj: this._domRender_proxy }]);
|
|
464
524
|
}
|
|
465
525
|
|
|
466
|
-
// console.log(
|
|
526
|
+
// console.log(`๐ Root method total time: ${Date.now() - rootStartTime}ms`);
|
|
527
|
+
// console.log('dddddd', fullPaths.flatMap(it => it).map(it => it.path))
|
|
528
|
+
// console.groupEnd();
|
|
467
529
|
return fullPaths;
|
|
468
530
|
}
|
|
469
531
|
|
|
@@ -494,15 +556,19 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
494
556
|
// return true;
|
|
495
557
|
// }
|
|
496
558
|
// console.log('set--?', p, target, value);
|
|
497
|
-
|
|
559
|
+
let start = performance.now()
|
|
498
560
|
if (typeof p === 'string') {
|
|
499
561
|
value = this.proxy(receiver, value, p);
|
|
500
562
|
}
|
|
563
|
+
// console.log('set proxy time', performance.now() - start, p);
|
|
564
|
+
// start = performance.now();
|
|
565
|
+
|
|
501
566
|
|
|
502
567
|
// console.log('set typeChecked', (target as any)[p] instanceof ComponentSet, value instanceof ComponentSet);
|
|
503
568
|
// if ((target as any)[p] instanceof ComponentSet) {
|
|
504
569
|
// (target as any)[p]?.obj?.onDrThisUnBind?.();
|
|
505
570
|
// }
|
|
571
|
+
// console.log('---', this._domRender_ref, p, this._domRender_proxy)
|
|
506
572
|
// is ComponentSet
|
|
507
573
|
if (value instanceof ComponentSet && (target as any)[p] instanceof ComponentSet) {
|
|
508
574
|
value.config.beforeComponentSet = (target as any)[p];
|
|
@@ -513,6 +579,10 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
513
579
|
fullPathInfo = this.root([[{ path: p, obj: this._domRender_proxy }]], value);
|
|
514
580
|
}
|
|
515
581
|
|
|
582
|
+
|
|
583
|
+
// console.log('set proxy root time', performance.now() - start, p);
|
|
584
|
+
// start = performance.now();
|
|
585
|
+
//
|
|
516
586
|
// console.log('setRooot', fullPathInfo);
|
|
517
587
|
|
|
518
588
|
//normal attribute ๋ํ ๋งํฌ๋ ๊ฐ์ ์ฆ์ธ๋ผ์ ์ด๋ ๊ฒ ํด์ค์ผํ๋ค!!
|
|
@@ -532,22 +602,36 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
532
602
|
.flatMap(([key, valueScript]) => {
|
|
533
603
|
return fullPathInfo
|
|
534
604
|
.flat()
|
|
535
|
-
.filter(it => valueScript.variablePaths?.some(vit=> vit.inner.includes(`this.${it.path}`)))
|
|
605
|
+
.filter(it => valueScript.variablePaths?.some(vit => vit.inner.includes(`this.${it.path}`)))
|
|
536
606
|
.flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));
|
|
537
607
|
})
|
|
538
608
|
.forEach(it => {
|
|
539
609
|
// const optionalPaths = it.valueScript.variablePaths.map(it => ObjectUtils.Path.toOptionalChainPath(it))
|
|
540
610
|
const variablePaths = it.valueScript.variablePaths;
|
|
541
611
|
let targetScript = it.valueScript.originalAttrValue;
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
612
|
+
let script: string;
|
|
613
|
+
if (it.valueScript.isStringTemplate) {
|
|
614
|
+
variablePaths.forEach(it => {
|
|
615
|
+
let r = ObjectUtils.Path.toOptionalChainPath(it.inner);
|
|
616
|
+
targetScript = targetScript.replaceAll(it.origin, `\${${r}}`);
|
|
617
|
+
})
|
|
618
|
+
script = '`' + targetScript + '`';
|
|
619
|
+
} else {
|
|
620
|
+
variablePaths.forEach(it => {
|
|
621
|
+
let r = ObjectUtils.Path.toOptionalChainPath(it.inner);
|
|
622
|
+
targetScript = targetScript.replaceAll(it.origin, `${r}`);
|
|
623
|
+
})
|
|
624
|
+
script = targetScript;
|
|
625
|
+
}
|
|
626
|
+
// variablePaths.forEach(it => {
|
|
627
|
+
// let r = ObjectUtils.Path.toOptionalChainPath(it.inner);
|
|
628
|
+
// targetScript = targetScript.replaceAll(it.origin,`\${${r}}`);
|
|
629
|
+
// })
|
|
630
|
+
const value1 = ObjectUtils.Script.evaluateReturn(script, it.pathInfo.obj);
|
|
547
631
|
// console.log('proxy set!Attribut======', it.key, value1)
|
|
548
|
-
if (value1 === null) {
|
|
632
|
+
if (value1 === null || value1 === undefined) {
|
|
549
633
|
elementInfo.element.removeAttribute(it.key);
|
|
550
|
-
elementInfo.element[it.key] = null;
|
|
634
|
+
// elementInfo.element[it.key] = null;
|
|
551
635
|
} else {
|
|
552
636
|
elementInfo.element.setAttribute(it.key, value1);
|
|
553
637
|
elementInfo.element[it.key] = value1;
|
|
@@ -556,11 +640,16 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
556
640
|
}
|
|
557
641
|
);
|
|
558
642
|
|
|
643
|
+
// console.log('set proxy normalAttrMapAttrName time', performance.now() - start, p);
|
|
644
|
+
// start = performance.now();
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
|
|
559
648
|
//์ฌ๊ธฐ์ ๋งํฌ ๊ฐ์๊ฑฐ ํด์ค์ผํจ *-link๋ก ๋ณ์๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ๊ทธ๊ฑธ ์ฐธ๊ณ ํ๊ณ ์๋ ๋ค๋ฅธ๊ฒ๋ค์๋ ํด์ค์ผํ๋ค.
|
|
560
649
|
DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(
|
|
561
650
|
elementInfo => {
|
|
562
651
|
// @ts-ignore
|
|
563
|
-
const targets = new Map<string, string>(
|
|
652
|
+
const targets = new Map<string, string>(ObjectUtils.Script.evaluateReturn<[string, string][]>(elementInfo.value));
|
|
564
653
|
|
|
565
654
|
Array.from(targets.entries())
|
|
566
655
|
.filter(([key, value]) => value.trim())
|
|
@@ -572,7 +661,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
572
661
|
.flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));
|
|
573
662
|
})
|
|
574
663
|
.forEach(info => {
|
|
575
|
-
const value1 =
|
|
664
|
+
const value1 = ObjectUtils.Script.evaluateReturn(info.valueScript, info.pathInfo.obj);
|
|
576
665
|
const applyAttributeName = EventManager.linkAttrs.find(it => it.name === info.key);
|
|
577
666
|
if (applyAttributeName) {
|
|
578
667
|
if (value1 === null) {
|
|
@@ -602,6 +691,9 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
602
691
|
}
|
|
603
692
|
);
|
|
604
693
|
|
|
694
|
+
// console.log('set proxy linkTargetMapAttrName time', performance.now() - start, p);
|
|
695
|
+
// start = performance.now();
|
|
696
|
+
|
|
605
697
|
// console.log('---end',receiver);
|
|
606
698
|
if (
|
|
607
699
|
'onBeforeReturnSet' in receiver &&
|
|
@@ -616,6 +708,8 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
616
708
|
);
|
|
617
709
|
}
|
|
618
710
|
}
|
|
711
|
+
|
|
712
|
+
// console.log('done!!')
|
|
619
713
|
return true;
|
|
620
714
|
}
|
|
621
715
|
|
|
@@ -703,7 +797,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
703
797
|
) {
|
|
704
798
|
return obj;
|
|
705
799
|
}
|
|
706
|
-
} catch (e) {}
|
|
800
|
+
} catch (e) { }
|
|
707
801
|
|
|
708
802
|
/*
|
|
709
803
|
const proxyTarget = (this._domRender_config.proxyExcludeTyps?.filter(it => obj instanceof it) ?? []).length <= 0;
|