@dooboostore/dom-render 1.0.108 → 1.0.109
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 +27 -1451
- package/dist/cjs/DomRender.js +41 -26
- package/dist/cjs/DomRender.js.map +2 -2
- package/dist/cjs/DomRenderProxy.js +12 -5
- package/dist/cjs/DomRenderProxy.js.map +2 -2
- package/dist/cjs/bundle-entry.js +32 -21
- package/dist/cjs/bundle-entry.js.map +2 -2
- package/dist/cjs/components/ComponentBase.js +20 -2
- package/dist/cjs/components/ComponentBase.js.map +2 -2
- package/dist/cjs/components/ComponentRouterBase.js +11 -1
- package/dist/cjs/components/ComponentRouterBase.js.map +2 -2
- package/dist/cjs/components/choose/Choose.js +4 -0
- package/dist/cjs/components/choose/Choose.js.map +2 -2
- package/dist/cjs/components/router/RouterOutlet.js +15 -1
- package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
- package/dist/cjs/components/select/Select.js +20 -6
- package/dist/cjs/components/select/Select.js.map +2 -2
- package/dist/cjs/components/timer/Timer.js +14 -11
- package/dist/cjs/components/timer/Timer.js.map +2 -2
- package/dist/cjs/decorators/DomRenderNoProxy.js +2 -1
- package/dist/cjs/decorators/DomRenderNoProxy.js.map +2 -2
- package/dist/cjs/lifecycle/OnRawSetRendered.js +26 -0
- package/dist/cjs/lifecycle/OnRawSetRendered.js.map +7 -0
- package/dist/cjs/lifecycle/index.js +1 -0
- package/dist/cjs/lifecycle/index.js.map +2 -2
- package/dist/cjs/operators/DrTargetElement.js +2 -0
- package/dist/cjs/operators/DrTargetElement.js.map +2 -2
- package/dist/cjs/operators/OperatorExecuter.js +1 -2
- package/dist/cjs/operators/OperatorExecuter.js.map +2 -2
- package/dist/cjs/package.json +5 -0
- package/dist/cjs/rawsets/RawSet.js +154 -74
- package/dist/cjs/rawsets/RawSet.js.map +3 -3
- package/dist/cjs/rawsets/Render.js.map +1 -1
- package/dist/cjs/routers/Router.js +31 -15
- package/dist/cjs/routers/Router.js.map +3 -3
- package/dist/esm/DomRender.js +41 -26
- package/dist/esm/DomRender.js.map +2 -2
- package/dist/esm/DomRenderProxy.js +12 -5
- package/dist/esm/DomRenderProxy.js.map +2 -2
- package/dist/esm/bundle-entry.js +22 -21
- package/dist/esm/bundle-entry.js.map +2 -2
- package/dist/esm/components/ComponentBase.js +20 -2
- package/dist/esm/components/ComponentBase.js.map +2 -2
- package/dist/esm/components/ComponentRouterBase.js +11 -1
- package/dist/esm/components/ComponentRouterBase.js.map +2 -2
- package/dist/esm/components/choose/Choose.js +4 -0
- package/dist/esm/components/choose/Choose.js.map +2 -2
- package/dist/esm/components/router/RouterOutlet.js +16 -2
- package/dist/esm/components/router/RouterOutlet.js.map +2 -2
- package/dist/esm/components/select/Select.js +20 -6
- package/dist/esm/components/select/Select.js.map +2 -2
- package/dist/esm/components/timer/Timer.js +14 -11
- package/dist/esm/components/timer/Timer.js.map +2 -2
- package/dist/esm/decorators/DomRenderNoProxy.js +2 -1
- package/dist/esm/decorators/DomRenderNoProxy.js.map +2 -2
- package/dist/esm/lifecycle/OnRawSetRendered.js +7 -0
- package/dist/esm/lifecycle/OnRawSetRendered.js.map +7 -0
- package/dist/esm/lifecycle/index.js +1 -0
- package/dist/esm/lifecycle/index.js.map +2 -2
- package/dist/esm/operators/DrTargetElement.js +2 -0
- package/dist/esm/operators/DrTargetElement.js.map +2 -2
- package/dist/esm/operators/OperatorExecuter.js +1 -2
- package/dist/esm/operators/OperatorExecuter.js.map +2 -2
- package/dist/esm/rawsets/RawSet.js +154 -74
- package/dist/esm/rawsets/RawSet.js.map +3 -3
- package/dist/esm/routers/Router.js +31 -15
- package/dist/esm/routers/Router.js.map +3 -3
- package/dist/esm-bundle/dooboostore-dom-render.esm.js +12586 -6496
- package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
- package/dist/types/DomRender.d.ts +11 -5
- package/dist/types/DomRender.d.ts.map +1 -1
- package/dist/types/DomRenderProxy.d.ts.map +1 -1
- package/dist/types/bundle-entry.d.ts +5 -2
- package/dist/types/bundle-entry.d.ts.map +1 -1
- package/dist/types/components/ComponentBase.d.ts +7 -1
- package/dist/types/components/ComponentBase.d.ts.map +1 -1
- package/dist/types/components/ComponentRouterBase.d.ts +8 -0
- package/dist/types/components/ComponentRouterBase.d.ts.map +1 -1
- package/dist/types/components/choose/Choose.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +2 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/router/RouterOutlet.d.ts +5 -1
- package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
- package/dist/types/components/select/Select.d.ts +2 -2
- package/dist/types/components/select/Select.d.ts.map +1 -1
- package/dist/types/components/timer/Timer.d.ts +5 -3
- package/dist/types/components/timer/Timer.d.ts.map +1 -1
- package/dist/types/decorators/DomRenderNoProxy.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/lifecycle/OnRawSetRendered.d.ts +10 -0
- package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -0
- package/dist/types/lifecycle/index.d.ts +1 -0
- package/dist/types/lifecycle/index.d.ts.map +1 -1
- package/dist/types/operators/DrTargetElement.d.ts.map +1 -1
- package/dist/types/operators/OperatorExecuter.d.ts.map +1 -1
- package/dist/types/rawsets/RawSet.d.ts +11 -4
- package/dist/types/rawsets/RawSet.d.ts.map +1 -1
- package/dist/types/rawsets/Render.d.ts +1 -0
- package/dist/types/rawsets/Render.d.ts.map +1 -1
- package/dist/types/routers/Router.d.ts +2 -3
- package/dist/types/routers/Router.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-dom-render.umd.js +12600 -6529
- package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
- package/package.json +6 -5
- package/src/DomRender.ts +62 -34
- package/src/DomRenderProxy.ts +20 -8
- package/src/bundle-entry.ts +5 -3
- package/src/components/ComponentBase.ts +29 -7
- package/src/components/ComponentRouterBase.ts +17 -2
- package/src/components/choose/Choose.ts +4 -0
- package/src/components/router/RouterOutlet.ts +25 -5
- package/src/components/select/Select.ts +40 -26
- package/src/components/timer/Timer.ts +19 -51
- package/src/decorators/DomRenderNoProxy.ts +3 -1
- package/src/lifecycle/OnRawSetRendered.ts +15 -0
- package/src/lifecycle/index.ts +1 -0
- package/src/operators/DrTargetElement.ts +14 -0
- package/src/operators/OperatorExecuter.ts +1 -2
- package/src/rawsets/RawSet.ts +572 -257
- package/src/rawsets/Render.ts +1 -0
- package/src/routers/Router.ts +40 -23
- package/types.d.ts +68 -20
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dooboostore/dom-render",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.109",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"reflect-metadata": "^0.2.2",
|
|
71
|
-
"@dooboostore/core
|
|
72
|
-
"@dooboostore/core": "1.0.
|
|
73
|
-
"@dooboostore/core-node": "1.0.
|
|
71
|
+
"@dooboostore/core": "1.0.22",
|
|
72
|
+
"@dooboostore/core-web": "1.0.7",
|
|
73
|
+
"@dooboostore/core-node": "1.0.8"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@babel/core": "^7.24.0",
|
|
@@ -98,13 +98,14 @@
|
|
|
98
98
|
"clean": "rm -rf dist",
|
|
99
99
|
"build:esm": "node build.mjs esm",
|
|
100
100
|
"watch:esm": "pnpm run build:esm && node build.mjs esm --watch",
|
|
101
|
-
"build:cjs": "node build.mjs cjs
|
|
101
|
+
"build:cjs": "node build.mjs cjs",
|
|
102
102
|
"watch:cjs": "pnpm run build:cjs && node build.mjs cjs --watch",
|
|
103
103
|
"build": "pnpm run clean && node build.mjs all",
|
|
104
104
|
"build:umd-bundle": "node build.mjs umd-bundle",
|
|
105
105
|
"watch:umd-bundle": "pnpm run build:umd-bundle && node build.mjs umd-bundle --watch",
|
|
106
106
|
"build:esm-bundle": "node build.mjs esm-bundle",
|
|
107
107
|
"watch:esm-bundle": "pnpm run build:esm-bundle && node build.mjs esm-bundle --watch",
|
|
108
|
+
"watch": "node build.mjs all --watch",
|
|
108
109
|
"publish:npm": "pnpm run build && cp package.json package.json.back && pnpm pack && TARBALL_NAME=$(ls dooboostore-dom-render-*.tgz | head -n 1) && tar -xzf \"$TARBALL_NAME\" -C . --strip-components=1 package/package.json && rm \"$TARBALL_NAME\" && (pnpm publish --no-git-checks || true) && cp package.json.back package.json && rm -rf package.json.back ",
|
|
109
110
|
"ts:clean": "find . -name '*.js' -o -name '*.map' -o -name '*.d.ts' | xargs rm -f",
|
|
110
111
|
"typecheck": "pnpm exec tsc --noEmit",
|
package/src/DomRender.ts
CHANGED
|
@@ -11,24 +11,30 @@ import { drComponent } from './components';
|
|
|
11
11
|
import { EventManager } from './events/EventManager';
|
|
12
12
|
import { RandomUtils } from '@dooboostore/core/random/RandomUtils';
|
|
13
13
|
|
|
14
|
-
export type DomRenderRunConfig<T = any> = Omit<DomRenderConfig<T>, 'router' | 'uuid' | 'eventManager' | 'messenger' | 'root' | 'rootElement'> & { routerType?: 'path' | 'hash' | ((obj: T,
|
|
14
|
+
export type DomRenderRunConfig<T = any> = Omit<DomRenderConfig<T>, 'router' | 'uuid' | 'eventManager' | 'messenger' | 'root' | 'rootElement'> & { routerType?: 'path' | 'hash' | ((obj: T, targetConfig: DomRenderConfig) => Router) | Router };
|
|
15
15
|
export type CreateComponentParam = { type: ConstructorType<any> | any, tagName?: string, noStrip?: boolean, template?: string, styles?: string[] | string };
|
|
16
16
|
let eventManager: EventManager | null = null;
|
|
17
17
|
export type DomRenderRunParameter<T extends object> = { rootObject: T | (() => T), target?: Element | null, config?: DomRenderRunConfig | DomRenderConfig };
|
|
18
18
|
|
|
19
|
+
export type ExecuteConfig = { firstUrl?: string };
|
|
20
|
+
|
|
19
21
|
export class DomRender<T extends object = any> {
|
|
20
22
|
private _config: DomRenderConfig;
|
|
21
23
|
private _target: Element | null | undefined;
|
|
22
24
|
private _rootObject: T;
|
|
25
|
+
private _router: Router;
|
|
26
|
+
private _eventManager: EventManager;
|
|
23
27
|
|
|
24
|
-
constructor(parameter: DomRenderRunParameter<T>, executeConfig?:
|
|
25
|
-
const s = DomRender.runSet(parameter);
|
|
28
|
+
constructor(parameter: DomRenderRunParameter<T>, executeConfig?: ExecuteConfig) {
|
|
29
|
+
const s = DomRender.runSet(parameter,executeConfig);
|
|
26
30
|
this._config = s.config;
|
|
27
31
|
this._target = s.target;
|
|
28
32
|
this._rootObject = s.rootObject;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
this._router = s.config.router;
|
|
34
|
+
this._eventManager = s.config.eventManager;
|
|
35
|
+
// if (executeConfig && executeConfig?.autoGo) {
|
|
36
|
+
// this._config.router?.go(executeConfig.autoGo);
|
|
37
|
+
// }
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
public get rootObject(): T {
|
|
@@ -38,8 +44,14 @@ export class DomRender<T extends object = any> {
|
|
|
38
44
|
public get config(): DomRenderConfig {
|
|
39
45
|
return this._config;
|
|
40
46
|
}
|
|
47
|
+
public get router(): Router {
|
|
48
|
+
return this._router;
|
|
49
|
+
}
|
|
41
50
|
|
|
42
|
-
public get
|
|
51
|
+
public get eventManager(): EventManager {
|
|
52
|
+
return this._eventManager;
|
|
53
|
+
}
|
|
54
|
+
public get target(): Element | null | undefined {
|
|
43
55
|
return this._target;
|
|
44
56
|
}
|
|
45
57
|
|
|
@@ -47,7 +59,11 @@ export class DomRender<T extends object = any> {
|
|
|
47
59
|
return DomRender.runSet(data).rootObject;
|
|
48
60
|
}
|
|
49
61
|
|
|
50
|
-
public static runSet<T extends object>({
|
|
62
|
+
public static runSet<T extends object>({
|
|
63
|
+
rootObject,
|
|
64
|
+
target,
|
|
65
|
+
config
|
|
66
|
+
}: DomRenderRunParameter<T>, executeConfig?: ExecuteConfig): { rootObject: T; target?: Element | null; config: DomRenderConfig } {
|
|
51
67
|
// public static run<T extends object>({rootObject, target, config}: DomRenderRunParameter<T>): T {
|
|
52
68
|
// console.log('runSet')
|
|
53
69
|
rootObject = typeof rootObject === 'function' ? rootObject() : rootObject;
|
|
@@ -58,7 +74,7 @@ export class DomRender<T extends object = any> {
|
|
|
58
74
|
}
|
|
59
75
|
targetObject = rootObject;
|
|
60
76
|
// return targetObject;
|
|
61
|
-
return {rootObject: targetObject, target, config: (rootObject as any)._domRender_config};
|
|
77
|
+
return { rootObject: targetObject, target, config: (rootObject as any)._domRender_config };
|
|
62
78
|
}
|
|
63
79
|
const targetConfig = Object.assign({}, config) as DomRenderConfig;
|
|
64
80
|
eventManager ??= new EventManager(targetConfig.window);
|
|
@@ -68,7 +84,6 @@ export class DomRender<T extends object = any> {
|
|
|
68
84
|
targetConfig.proxyExcludeTyps = targetConfig.proxyExcludeTyps ?? [];
|
|
69
85
|
targetConfig.targetElements ??= [];
|
|
70
86
|
|
|
71
|
-
|
|
72
87
|
if (typeof Window !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Window)) {
|
|
73
88
|
targetConfig.proxyExcludeTyps.push(Window);
|
|
74
89
|
}
|
|
@@ -87,12 +102,27 @@ export class DomRender<T extends object = any> {
|
|
|
87
102
|
if (typeof ImageBitmap !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === ImageBitmap)) {
|
|
88
103
|
targetConfig.proxyExcludeTyps.push(ImageBitmap);
|
|
89
104
|
}
|
|
90
|
-
if (typeof CanvasRenderingContext2D !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === CanvasRenderingContext2D)) {
|
|
105
|
+
if ( typeof CanvasRenderingContext2D !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === CanvasRenderingContext2D) ) {
|
|
91
106
|
targetConfig.proxyExcludeTyps.push(CanvasRenderingContext2D);
|
|
92
107
|
}
|
|
93
|
-
if (typeof
|
|
94
|
-
targetConfig.proxyExcludeTyps.push(
|
|
108
|
+
if ( typeof CSSStyleDeclaration !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === CSSStyleDeclaration) ) {
|
|
109
|
+
targetConfig.proxyExcludeTyps.push(CSSStyleDeclaration);
|
|
95
110
|
}
|
|
111
|
+
if ( typeof Date !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Date) ) {
|
|
112
|
+
targetConfig.proxyExcludeTyps.push(Date);
|
|
113
|
+
}
|
|
114
|
+
if ( typeof MutationObserver !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === IntersectionObserver) ) {
|
|
115
|
+
targetConfig.proxyExcludeTyps.push(IntersectionObserver);
|
|
116
|
+
}
|
|
117
|
+
if ( typeof IntersectionObserver !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === IntersectionObserver) ) {
|
|
118
|
+
targetConfig.proxyExcludeTyps.push(IntersectionObserver);
|
|
119
|
+
}
|
|
120
|
+
if (typeof HTMLElement !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === HTMLElement)) {
|
|
121
|
+
targetConfig.proxyExcludeTyps.push(HTMLElement);
|
|
122
|
+
}
|
|
123
|
+
// if (typeof HTMLCanvasElement !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === HTMLCanvasElement)) {
|
|
124
|
+
// targetConfig.proxyExcludeTyps.push(HTMLCanvasElement);
|
|
125
|
+
// }
|
|
96
126
|
if (!targetConfig.proxyExcludeTyps.some(it => it === RawSet)) {
|
|
97
127
|
targetConfig.proxyExcludeTyps.push(RawSet);
|
|
98
128
|
}
|
|
@@ -112,11 +142,11 @@ export class DomRender<T extends object = any> {
|
|
|
112
142
|
if (!targetConfig.router) {
|
|
113
143
|
let targetRouter: Router<any> | undefined;
|
|
114
144
|
if ('routerType' in config && config?.routerType === 'hash') {
|
|
115
|
-
targetRouter = new HashRouter({rootObject: targetObject, window: targetConfig.window});
|
|
145
|
+
targetRouter = new HashRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });
|
|
116
146
|
} else if ('routerType' in config && config?.routerType === 'path') {
|
|
117
|
-
targetRouter = new PathRouter({rootObject: targetObject, window: targetConfig.window});
|
|
147
|
+
targetRouter = new PathRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });
|
|
118
148
|
} else if ('routerType' in config && typeof config?.routerType === 'function') {
|
|
119
|
-
targetRouter = config.routerType(targetObject, targetConfig
|
|
149
|
+
targetRouter = config.routerType(targetObject, targetConfig);
|
|
120
150
|
} else if ('routerType' in config && typeof config?.routerType === 'object') {
|
|
121
151
|
targetRouter = config.routerType;
|
|
122
152
|
}
|
|
@@ -141,33 +171,31 @@ export class DomRender<T extends object = any> {
|
|
|
141
171
|
// }
|
|
142
172
|
// }
|
|
143
173
|
domRender.run(targetObject);
|
|
144
|
-
return {rootObject: targetObject, config: targetConfig, target};
|
|
174
|
+
return { rootObject: targetObject, config: targetConfig, target };
|
|
145
175
|
// return targetObject;
|
|
146
176
|
}
|
|
147
177
|
|
|
148
178
|
public static createComponent(param: CreateComponentParam) {
|
|
149
179
|
// console.log('===>', typeof param.type, param.type.name, param.type.constructor.name)
|
|
150
|
-
const component = RawSet.createComponentTargetElement(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
);
|
|
180
|
+
const component = RawSet.createComponentTargetElement({
|
|
181
|
+
name: param.tagName ?? (typeof param.type === 'function' ? param.type.name : param.type.constructor.name),
|
|
182
|
+
objFactory: (e, o, r2, counstructorParam) => {
|
|
183
|
+
return typeof param.type === 'function' ? new param.type(...counstructorParam) : param.type;
|
|
184
|
+
},
|
|
185
|
+
noStrip: param.noStrip,
|
|
186
|
+
template: param.template ?? '',
|
|
187
|
+
styles: Array.isArray(param.styles) ? param.styles : param.styles ? [param.styles] : undefined
|
|
188
|
+
});
|
|
161
189
|
return component;
|
|
162
190
|
}
|
|
163
191
|
|
|
164
192
|
// ?? 언제 쓰는거지?? 훔..
|
|
165
|
-
public static createAttribute(
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
);
|
|
193
|
+
public static createAttribute(
|
|
194
|
+
attrName: string,
|
|
195
|
+
getThisObj: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => any,
|
|
196
|
+
factory: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment
|
|
197
|
+
) {
|
|
198
|
+
const targetAttribute = RawSet.createComponentTargetAttribute(attrName, getThisObj, factory);
|
|
171
199
|
return targetAttribute;
|
|
172
200
|
}
|
|
173
201
|
}
|
package/src/DomRenderProxy.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RawSet } from './rawsets/RawSet';
|
|
1
|
+
import { RawSet, RenderResult } from './rawsets/RawSet';
|
|
2
2
|
import { EventManager } from './events/EventManager';
|
|
3
3
|
import { DomRenderConfig } from './configs/DomRenderConfig';
|
|
4
4
|
import { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';
|
|
@@ -19,6 +19,7 @@ import { isOnChildRenderedByProperty } from './lifecycle/OnChildRenderedByProper
|
|
|
19
19
|
import { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';
|
|
20
20
|
import {ValidUtils} from '@dooboostore/core/valid/ValidUtils'
|
|
21
21
|
import { isOnProxyDomRender } from './lifecycle/OnProxyDomRender';
|
|
22
|
+
import { isOnRawSetRendered } from './lifecycle/OnRawSetRendered';
|
|
22
23
|
|
|
23
24
|
const excludeGetSetPropertys = ['onBeforeReturnGet', 'onBeforeReturnSet', '__domrender_components', '__render', '_DomRender_isFinal', '_domRender_ref', '_rawSets', '_domRender_proxy', '_targets', '_DomRender_origin', '_DomRender_ref', '_DomRender_proxy'];
|
|
24
25
|
export const isWrapProxyDomRenderProxy = <T>(obj: T): boolean => {
|
|
@@ -75,7 +76,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
public static isFinal<T = any>(obj: T) {
|
|
78
|
-
return DomRenderFinalProxy.isFinal(obj);
|
|
79
|
+
return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
public run(objProxy: T) {
|
|
@@ -209,6 +210,8 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
209
210
|
// console.log('getUsingTriggerVariables->', path);
|
|
210
211
|
this.addRawSet(path, it);
|
|
211
212
|
});
|
|
213
|
+
|
|
214
|
+
let renderResult: RenderResult | undefined;
|
|
212
215
|
if (it.isConnected) {
|
|
213
216
|
// 중요 render될때 targetAttribute 체크 해야함.
|
|
214
217
|
const targetAttrMap = (it.point.node as Element)?.getAttribute?.(EventManager.normalAttrMapAttrName);
|
|
@@ -238,14 +241,22 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
238
241
|
// ------------------->
|
|
239
242
|
} else {
|
|
240
243
|
const rawSets = await it.render(this._domRender_proxy, this._domRender_config);
|
|
244
|
+
renderResult = rawSets;
|
|
241
245
|
// 그외 자식들 render
|
|
242
|
-
if (rawSets && rawSets.length > 0) {
|
|
243
|
-
await this.render(rawSets);
|
|
246
|
+
if (rawSets && rawSets.raws.length > 0) {
|
|
247
|
+
await this.render(rawSets.raws);
|
|
244
248
|
}
|
|
245
249
|
}
|
|
246
250
|
} else {
|
|
247
251
|
removeRawSets.push(it);
|
|
248
252
|
}
|
|
253
|
+
|
|
254
|
+
const t = it.findNearThis(this._domRender_proxy)
|
|
255
|
+
// TODO: 호출된곳에서 또 변수를 수정하게되면 무한루프니깐 왠만하면 사용못하게 해야한다.
|
|
256
|
+
if(isOnRawSetRendered(t)){
|
|
257
|
+
await t.onRawSetRendered(it, {path: fullPathStr, renderResult});
|
|
258
|
+
}
|
|
259
|
+
// console.log('----', it);
|
|
249
260
|
}
|
|
250
261
|
|
|
251
262
|
if (removeRawSets.length > 0) {
|
|
@@ -316,7 +327,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
316
327
|
const firstTargetDictionary: RawSet[] = [];
|
|
317
328
|
firstTargets?.forEach(it => {
|
|
318
329
|
// console.log('----forEach---', it);
|
|
319
|
-
const type = (it.point.start as Element)
|
|
330
|
+
const type = (it.point.start as Element)?.getAttribute?.('type');
|
|
320
331
|
if (type === RawSetOperatorType.DR_THIS_PROPERTY) {
|
|
321
332
|
firstTargetDictionary.push(it);
|
|
322
333
|
}
|
|
@@ -397,6 +408,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
397
408
|
|
|
398
409
|
public set(target: T, p: string | symbol, value: any, receiver: T): boolean {
|
|
399
410
|
// console.log('set------->', target, p, value, receiver, Date.now())
|
|
411
|
+
// console.log('set------->', p,value)
|
|
400
412
|
// console.log('set------->', target, p, value, receiver, Date.now())
|
|
401
413
|
// try {
|
|
402
414
|
// const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, target, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);
|
|
@@ -497,6 +509,8 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
497
509
|
}
|
|
498
510
|
})
|
|
499
511
|
})
|
|
512
|
+
|
|
513
|
+
// console.log('---end',receiver);
|
|
500
514
|
if (('onBeforeReturnSet' in receiver) && typeof p === 'string' && !(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)) {
|
|
501
515
|
if(isOnBeforeReturnSet(receiver)){
|
|
502
516
|
receiver.onBeforeReturnSet?.(p, value, fullPathInfo.map(it => it.map(it=>it.path).join()));
|
|
@@ -555,8 +569,6 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
555
569
|
}
|
|
556
570
|
|
|
557
571
|
proxy(parentProxy: T, obj: T | any, p: string) {
|
|
558
|
-
|
|
559
|
-
|
|
560
572
|
try {
|
|
561
573
|
// const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, obj, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);
|
|
562
574
|
const isObject = typeof obj === 'object';
|
|
@@ -565,7 +577,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
|
|
565
577
|
const isFinal = isObject && DomRenderProxy.isFinal(obj);
|
|
566
578
|
const isFrozen = Object.isFrozen(obj);
|
|
567
579
|
const isShield = obj instanceof Shield;
|
|
568
|
-
if (isNoProxy || isExclude || ValidUtils.isNullOrUndefined(obj) || !isObject || isFinal || isFrozen || isShield) {
|
|
580
|
+
if (obj === undefined || obj === null || isNoProxy || isExclude || ValidUtils.isNullOrUndefined(obj) || !isObject || isFinal || isFrozen || isShield) {
|
|
569
581
|
return obj;
|
|
570
582
|
}
|
|
571
583
|
} catch (e) {
|
package/src/bundle-entry.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
export * as Core from '@dooboostore/core/bundle-entry';
|
|
3
|
+
export * as CoreWeb from '@dooboostore/core-web/bundle-entry';
|
|
1
4
|
// export { DomRender, type DomRenderRunConfig, type CreateComponentParam } from './DomRender';
|
|
2
5
|
// export { DomRenderProxy, getDomRenderConfig, getDomRenderOriginObject, getDomRenderProxy, isWrapProxyDomRenderProxy } from './DomRenderProxy';
|
|
3
6
|
|
|
@@ -9,10 +12,9 @@ export * from './events';
|
|
|
9
12
|
export * from './iterators';
|
|
10
13
|
export * from './lifecycle';
|
|
11
14
|
export * from './messenger';
|
|
12
|
-
|
|
13
|
-
export { Appender as AppenderArray, Dr, DrAppender, DrFor, DrForOf, DrForm, DrIf, DrInnerHTML, DrInnerText, DrPre, DrRepeat, DrStripElement, DrTargetAttr, DrTargetElement, DrTargetElementIsElement, DrThis, DrThisProperty, OperatorExecuter, OperatorExecuterAttrRequire } from './operators';
|
|
15
|
+
export * from './operators';
|
|
14
16
|
export * from './rawsets';
|
|
15
17
|
export * from './routers';
|
|
16
18
|
export * from './types';
|
|
17
19
|
export * from './validators';
|
|
18
|
-
export
|
|
20
|
+
export { drComponent , If, This, Appender as AppenderComponent, PromiseSwitch, Choose, CheckBox, Radio, Select, Timer, Details, Input, Route, RouterOutlet, A } from './components';
|
|
@@ -16,6 +16,7 @@ import { DomRenderConfig } from '../configs/DomRenderConfig';
|
|
|
16
16
|
import { Subject } from '@dooboostore/core/message/Subject';
|
|
17
17
|
import { debounceTime } from '@dooboostore/core/message/operators/debounceTime';
|
|
18
18
|
import type { Subscription } from '@dooboostore/core/message/Subscription';
|
|
19
|
+
import { OnRawSetRendered, OnRawSetRenderedOtherData } from "../lifecycle/OnRawSetRendered";
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
export const ATTRIBUTE_METADATA_KEY = Symbol('attribute');
|
|
@@ -36,6 +37,7 @@ export interface QueryMetadata {
|
|
|
36
37
|
convert?: (e: Element) => any;
|
|
37
38
|
onDestroy?: (componentInstance: any, element: Element) => void;
|
|
38
39
|
refreshTime?: number; // milliseconds
|
|
40
|
+
refreshRawSetRendered?: boolean;
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
export interface EventMetadata {
|
|
@@ -44,6 +46,7 @@ export interface EventMetadata {
|
|
|
44
46
|
methodName: string | symbol;
|
|
45
47
|
onDestroy?: (componentInstance: any, element: Element) => void;
|
|
46
48
|
refreshTime?: number; // milliseconds
|
|
49
|
+
refreshRawSetRendered?: boolean;
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
export function attribute(nameOrOptions?: string | { name?: string, converter?: (value: any | string | null) => any }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {
|
|
@@ -74,7 +77,7 @@ export function attribute(nameOrOptions?: string | { name?: string, converter?:
|
|
|
74
77
|
};
|
|
75
78
|
}
|
|
76
79
|
|
|
77
|
-
export function query(selectorOrOptions: string | { selector: string, convert?: (e: Element) => any, onDestroy?: (componentInstance: any, element: Element) => void, refreshIntervalTime?: number }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {
|
|
80
|
+
export function query(selectorOrOptions: string | { selector: string, convert?: (e: Element) => any, onDestroy?: (componentInstance: any, element: Element) => void, refreshIntervalTime?: number, refreshRawSetRendered?: boolean }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {
|
|
78
81
|
return (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {
|
|
79
82
|
const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, target.constructor) || [];
|
|
80
83
|
|
|
@@ -82,7 +85,8 @@ export function query(selectorOrOptions: string | { selector: string, convert?:
|
|
|
82
85
|
let convert: ((e: Element) => any) | undefined;
|
|
83
86
|
let onDestroy: ((componentInstance: any, element: Element) => void) | undefined;
|
|
84
87
|
let refreshTime: number | undefined;
|
|
85
|
-
|
|
88
|
+
let refreshRawSetRendered: boolean | undefined;
|
|
89
|
+
|
|
86
90
|
if (typeof selectorOrOptions === 'string') {
|
|
87
91
|
selector = selectorOrOptions;
|
|
88
92
|
} else {
|
|
@@ -90,6 +94,7 @@ export function query(selectorOrOptions: string | { selector: string, convert?:
|
|
|
90
94
|
convert = selectorOrOptions.convert;
|
|
91
95
|
onDestroy = selectorOrOptions.onDestroy;
|
|
92
96
|
refreshTime = selectorOrOptions.refreshIntervalTime;
|
|
97
|
+
refreshRawSetRendered = selectorOrOptions.refreshRawSetRendered;
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
const queryMetadata: QueryMetadata = {
|
|
@@ -98,7 +103,8 @@ export function query(selectorOrOptions: string | { selector: string, convert?:
|
|
|
98
103
|
isMethod: !!descriptor,
|
|
99
104
|
convert: convert,
|
|
100
105
|
onDestroy: onDestroy,
|
|
101
|
-
refreshTime: refreshTime
|
|
106
|
+
refreshTime: refreshTime,
|
|
107
|
+
refreshRawSetRendered
|
|
102
108
|
};
|
|
103
109
|
|
|
104
110
|
queries.push(queryMetadata);
|
|
@@ -106,7 +112,7 @@ export function query(selectorOrOptions: string | { selector: string, convert?:
|
|
|
106
112
|
};
|
|
107
113
|
}
|
|
108
114
|
|
|
109
|
-
export function event(options: { query: string, name: string, onDestroy?: (componentInstance: any, element: Element) => void, refreshTime?: number }): MethodDecorator {
|
|
115
|
+
export function event(options: { query: string, name: string, onDestroy?: (componentInstance: any, element: Element) => void, refreshTime?: number, refreshRawSetRendered?: boolean }): MethodDecorator {
|
|
110
116
|
return (target: object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
|
|
111
117
|
const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, target.constructor) || [];
|
|
112
118
|
|
|
@@ -115,7 +121,8 @@ export function event(options: { query: string, name: string, onDestroy?: (compo
|
|
|
115
121
|
eventName: options.name,
|
|
116
122
|
methodName: propertyKey,
|
|
117
123
|
onDestroy: options.onDestroy,
|
|
118
|
-
refreshTime: options.refreshTime
|
|
124
|
+
refreshTime: options.refreshTime,
|
|
125
|
+
refreshRawSetRendered: options.refreshRawSetRendered
|
|
119
126
|
};
|
|
120
127
|
|
|
121
128
|
events.push(eventMetadata);
|
|
@@ -128,7 +135,7 @@ export type ComponentBaseConfig = { onlyParentType?: ConstructorType<any>[] | Co
|
|
|
128
135
|
|
|
129
136
|
export type ChildrenSet = { instance: any, data: OnCreateRenderDataParams };
|
|
130
137
|
|
|
131
|
-
export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBaseConfig> implements OnChangeAttrRender, OnCreateRenderData, OnCreatedThisChild, OnDrThisBind, OnDrThisUnBind, OnInitRender, OnDestroyRender {
|
|
138
|
+
export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBaseConfig> implements OnChangeAttrRender, OnCreateRenderData, OnCreatedThisChild, OnDrThisBind, OnDrThisUnBind, OnInitRender, OnDestroyRender, OnRawSetRendered {
|
|
132
139
|
@DomRenderNoProxy
|
|
133
140
|
private _rawSet?: RawSet;
|
|
134
141
|
@DomRenderNoProxy
|
|
@@ -366,6 +373,21 @@ export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBas
|
|
|
366
373
|
this._refreshTimers.clear();
|
|
367
374
|
}
|
|
368
375
|
|
|
376
|
+
async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {
|
|
377
|
+
const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);
|
|
378
|
+
if (queries) {
|
|
379
|
+
queries.filter(it => it.refreshRawSetRendered).forEach(queryInfo => {
|
|
380
|
+
this._updateQueryBinding(queryInfo, rawSet, true);
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);
|
|
385
|
+
if (events) {
|
|
386
|
+
events.filter(it => it.refreshRawSetRendered).forEach(eventInfo => {
|
|
387
|
+
this._updateEventBinding(eventInfo, rawSet, true);
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
}
|
|
369
391
|
/**
|
|
370
392
|
* Manually refresh all query and event decorators
|
|
371
393
|
* Useful when DOM elements are dynamically added/removed and you want to update bindings
|
|
@@ -587,7 +609,7 @@ export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBas
|
|
|
587
609
|
|
|
588
610
|
// TODO: rawSet isConnected로 체크해서 들어가있는것만 처리되도록 또는 이미들어가있는것도 뺴야될것같은데.. 적용하긴했음..지켜봐야될듯.
|
|
589
611
|
onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {
|
|
590
|
-
// console.log('------------------------',child, data, data.render?.rawSet?.isConnected)
|
|
612
|
+
// console.log('onCreatedThisChild------------------------',child, data, data.render?.rawSet?.isConnected)
|
|
591
613
|
const n = [...this._children];
|
|
592
614
|
n.push({instance:child, data});
|
|
593
615
|
this._children = n.filter(it=>it.data.render?.rawSet?.isConnected)
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import { ChildrenSet, ComponentBase, ComponentBaseConfig } from './ComponentBase';
|
|
2
2
|
import { ComponentSet } from './ComponentSet';
|
|
3
3
|
import { isOnDrThisUnBind } from '../lifecycle/dr-this/OnDrThisUnBind';
|
|
4
|
+
import {RouterOutlet} from '../components/router/RouterOutlet';
|
|
4
5
|
|
|
6
|
+
export interface OnCreatedOutlet {
|
|
7
|
+
onCreatedOutlet(child: any): void;
|
|
8
|
+
}
|
|
9
|
+
export const isOnCreatedOutlet = (obj: any): obj is OnCreatedOutlet =>
|
|
10
|
+
typeof obj?.onCreatedOutlet === 'function';
|
|
5
11
|
|
|
12
|
+
export interface OnCreatedOutletDebounce {
|
|
13
|
+
onCreatedOutletDebounce(child: any): void;
|
|
14
|
+
}
|
|
15
|
+
export const isOnCreatedOutletDebounce = (obj: any): obj is OnCreatedOutletDebounce =>
|
|
16
|
+
typeof obj?.onCreatedOutletDebounce === 'function';
|
|
6
17
|
export type ComponentRouterBaseConfig = ComponentBaseConfig & { sameRouteNoApply?: boolean };
|
|
7
18
|
|
|
8
19
|
export abstract class ComponentRouterBase<T = any>
|
|
@@ -19,17 +30,21 @@ export abstract class ComponentRouterBase<T = any>
|
|
|
19
30
|
// return this._child;
|
|
20
31
|
// }
|
|
21
32
|
|
|
33
|
+
|
|
22
34
|
setChild(child: ComponentSet) {
|
|
23
|
-
|
|
35
|
+
console.log('setChild!!', child, (this as any).name)
|
|
24
36
|
if (child) {
|
|
25
37
|
this.child = child;
|
|
26
38
|
} else {
|
|
27
39
|
this.child = undefined;
|
|
28
40
|
}
|
|
41
|
+
const routerOutletChildren = this.getChildren(RouterOutlet.RouterOutlet);
|
|
42
|
+
routerOutletChildren.forEach(it => {
|
|
43
|
+
it.setValue(this.child)
|
|
44
|
+
})
|
|
29
45
|
}
|
|
30
46
|
|
|
31
47
|
onDrThisUnBind(): void {
|
|
32
|
-
// console.log('--ComponentRouterBase--onDrThisUnBind-')
|
|
33
48
|
super.onDrThisUnBind();
|
|
34
49
|
if (this.child && isOnDrThisUnBind(this.child?.obj)) {
|
|
35
50
|
this.child.obj.onDrThisUnBind();
|
|
@@ -58,7 +58,9 @@ export namespace Choose {
|
|
|
58
58
|
child.data = this.getAttribute('data') as any;
|
|
59
59
|
// when.hidden = true;
|
|
60
60
|
|
|
61
|
+
console.log('eeeeeee?', child, child.getAttribute('test'), this.getAttribute('data'));
|
|
61
62
|
if (!this.choose && child instanceof When && child.getAttribute('test')?.(this.getAttribute('data'))) {
|
|
63
|
+
console.log('eeeeeee?2');
|
|
62
64
|
// console.log('------------', child.attribute?.test?.(this.attribute?.data))
|
|
63
65
|
this.choose = child;
|
|
64
66
|
if (child.hidden) {
|
|
@@ -69,12 +71,14 @@ export namespace Choose {
|
|
|
69
71
|
child.hidden = true;
|
|
70
72
|
}
|
|
71
73
|
|
|
74
|
+
console.log('eeeeeee?3');
|
|
72
75
|
if (!this.choose && child instanceof OtherWise) {
|
|
73
76
|
this.choose = child;
|
|
74
77
|
if (child.hidden) {
|
|
75
78
|
child.hidden = false;
|
|
76
79
|
}
|
|
77
80
|
}
|
|
81
|
+
console.log('eeeeeee?34');
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
84
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { ComponentBase } from '../ComponentBase';
|
|
1
|
+
import { ChildrenSet, ComponentBase } from '../ComponentBase';
|
|
2
2
|
import { DomRender, DomRenderRunConfig } from '../../DomRender';
|
|
3
3
|
import { RawSet } from '../../rawsets/RawSet';
|
|
4
4
|
import { OtherData } from '../../lifecycle/OnChangeAttrRender';
|
|
5
5
|
import { OnInitRender } from '../../lifecycle/OnInitRender';
|
|
6
6
|
import { ComponentSet } from '../../components/ComponentSet';
|
|
7
7
|
import { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';
|
|
8
|
-
import { ComponentRouterBase } from '../../components/ComponentRouterBase';
|
|
8
|
+
import { ComponentRouterBase, isOnCreatedOutletDebounce } from '../../components/ComponentRouterBase';
|
|
9
|
+
import { OnCreateRenderDataParams } from 'src/lifecycle';
|
|
9
10
|
export namespace RouterOutlet {
|
|
10
11
|
export const selector = 'dr-router-outlet';
|
|
11
12
|
export type Attribute = {
|
|
@@ -13,6 +14,7 @@ export namespace RouterOutlet {
|
|
|
13
14
|
if: boolean | null;
|
|
14
15
|
createArguments: any[];
|
|
15
16
|
onCreated?: (value: any) => void;
|
|
17
|
+
onCreatedDebounce?: (value: any) => void;
|
|
16
18
|
onDestroyRender?: () => void;
|
|
17
19
|
};
|
|
18
20
|
|
|
@@ -23,13 +25,17 @@ export namespace RouterOutlet {
|
|
|
23
25
|
|
|
24
26
|
setValue(value: ComponentSet) {
|
|
25
27
|
this.value = value;
|
|
28
|
+
// console.log('sssssssssss');
|
|
26
29
|
}
|
|
27
30
|
|
|
28
31
|
onInitRender(param: any, rawSet: RawSet) {
|
|
29
32
|
super.onInitRender(param, rawSet);
|
|
30
33
|
const c = this.getParentThis();
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
const userValue = this.getAttribute('value');
|
|
35
|
+
if (userValue) {
|
|
36
|
+
this.value = userValue;
|
|
37
|
+
} else if (c instanceof ComponentRouterBase) {
|
|
38
|
+
this.value = c.child;
|
|
33
39
|
}
|
|
34
40
|
// console.log('------',c);
|
|
35
41
|
}
|
|
@@ -51,6 +57,20 @@ export namespace RouterOutlet {
|
|
|
51
57
|
}
|
|
52
58
|
}
|
|
53
59
|
|
|
60
|
+
onCreatedThisChild(child:any, data:OnCreateRenderDataParams){
|
|
61
|
+
super.onCreatedThisChild(child, data);
|
|
62
|
+
// console.log('outlet--oncreatedThisChild',child);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {
|
|
66
|
+
super.onCreatedThisChildDebounce(childrenSet);
|
|
67
|
+
let parentThis = this.getParentThis();
|
|
68
|
+
// console.log('---', parentThis);
|
|
69
|
+
if (isOnCreatedOutletDebounce(parentThis)) {
|
|
70
|
+
parentThis.onCreatedOutletDebounce(this.value?.obj);
|
|
71
|
+
}
|
|
72
|
+
this.getAttribute('onCreatedDebounce')?.(this.value?.obj);
|
|
73
|
+
}
|
|
54
74
|
created(component: any) {
|
|
55
75
|
component ??= this.value?.obj;
|
|
56
76
|
this.getAttribute('onCreated')?.(component);
|
|
@@ -60,7 +80,7 @@ export namespace RouterOutlet {
|
|
|
60
80
|
|
|
61
81
|
export default {
|
|
62
82
|
// TODO: 왜 이놈만 webpack에서 순환참조 에러나는지모르겠다.. 왜 이놈만.. 그래서 이렇게 하긴함.
|
|
63
|
-
routerOutlet: (config?: DomRenderRunConfig, executer?: {run: (...data: any[])=>any}) => {
|
|
83
|
+
routerOutlet: (config?: DomRenderRunConfig, executer?: { run: (...data: any[]) => any }) => {
|
|
64
84
|
return RawSet.createComponentTargetElement({
|
|
65
85
|
name: RouterOutlet.selector,
|
|
66
86
|
template:
|