@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
|
@@ -11,6 +11,7 @@ import { DomRenderNoProxy } from '../../decorators/DomRenderNoProxy';
|
|
|
11
11
|
import { OnCreateRender } from '../../lifecycle/OnCreateRender';
|
|
12
12
|
import { DomRenderConfig } from '../../configs/DomRenderConfig';
|
|
13
13
|
import { WindowUtils } from '@dooboostore/core-web/window/WindowUtils';
|
|
14
|
+
import { OnRawSetRenderedOtherData } from 'src/lifecycle';
|
|
14
15
|
|
|
15
16
|
/** 사용법
|
|
16
17
|
<dr-select class="card-select-container" changeSelected="${(data) => @this@.changeSelected(data)}$"> <!-- multiple attribute optional-->
|
|
@@ -137,6 +138,10 @@ export namespace Select {
|
|
|
137
138
|
// super.onCreatedThisChild(child, data);
|
|
138
139
|
// this.updateStatus();
|
|
139
140
|
// }
|
|
141
|
+
|
|
142
|
+
// async onRawSetRendered(rawSet:RawSet, otherData:OnRawSetRenderedOtherData):Promise<void>{
|
|
143
|
+
// await super.onRawSetRendered(rawSet, otherData);
|
|
144
|
+
// }
|
|
140
145
|
onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {
|
|
141
146
|
super.onCreatedThisChildDebounce(childrenSet);
|
|
142
147
|
this.updateStatus();
|
|
@@ -210,22 +215,20 @@ export namespace Select {
|
|
|
210
215
|
|
|
211
216
|
// --- Summary Component ---
|
|
212
217
|
export class Summary extends ComponentBase implements OnInitRender {
|
|
213
|
-
@attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;
|
|
218
|
+
@attribute({ name: 'class', converter: v => (v === '' ? null : v) }) public classAttr: string | null = null;
|
|
214
219
|
private options: Select.Option[] = [];
|
|
215
220
|
private disabled: boolean = false;
|
|
216
221
|
public element?: HTMLElement;
|
|
217
222
|
|
|
218
|
-
constructor() {
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
|
|
223
|
+
// constructor() {
|
|
224
|
+
// super({ onlyParentType: Select });
|
|
225
|
+
// }
|
|
222
226
|
|
|
223
227
|
setDisabled(disabled: boolean) {
|
|
224
228
|
this.disabled = disabled;
|
|
225
|
-
this.getChildren(SummaryPlaceholder).forEach(it => it.hidden = true);
|
|
226
|
-
this.getChildren(SummarySelected).forEach(it => it.hidden = true);
|
|
227
|
-
this.getChildren(SummaryDisabled).forEach(it => it.hidden = false);
|
|
228
|
-
|
|
229
|
+
this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));
|
|
230
|
+
this.getChildren(SummarySelected).forEach(it => (it.hidden = true));
|
|
231
|
+
this.getChildren(SummaryDisabled).forEach(it => (it.hidden = false));
|
|
229
232
|
}
|
|
230
233
|
|
|
231
234
|
setOptions(options: Option[] = []): void {
|
|
@@ -234,16 +237,16 @@ export namespace Select {
|
|
|
234
237
|
const selectedOptions = this.options.filter(it => it.selected && !it.disabled);
|
|
235
238
|
if (!this.disabled) {
|
|
236
239
|
if (selectedOptions.length > 0) {
|
|
237
|
-
this.getChildren(SummaryPlaceholder).forEach(it => it.hidden = true);
|
|
240
|
+
this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));
|
|
238
241
|
this.getChildren(SummarySelected).forEach(c => {
|
|
239
242
|
c.setOptions(options);
|
|
240
243
|
c.hidden = false;
|
|
241
244
|
});
|
|
242
|
-
this.getChildren(SummaryDisabled).forEach(it => it.hidden = true);
|
|
245
|
+
this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));
|
|
243
246
|
} else {
|
|
244
|
-
this.getChildren(SummaryDisabled).forEach(it => it.hidden = true);
|
|
245
|
-
this.getChildren(SummaryPlaceholder).forEach(it => it.hidden = false);
|
|
246
|
-
this.getChildren(SummarySelected).forEach(c => c.hidden = true);
|
|
247
|
+
this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));
|
|
248
|
+
this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = false));
|
|
249
|
+
this.getChildren(SummarySelected).forEach(c => (c.hidden = true));
|
|
247
250
|
}
|
|
248
251
|
}
|
|
249
252
|
}
|
|
@@ -261,19 +264,21 @@ export namespace Select {
|
|
|
261
264
|
}
|
|
262
265
|
|
|
263
266
|
updateView(hasSelection: boolean) {
|
|
264
|
-
this.getChildren(SummaryPlaceholder).forEach(c => c.hidden = hasSelection);
|
|
265
|
-
this.getChildren(SummarySelected).forEach(c => c.hidden = !hasSelection);
|
|
267
|
+
this.getChildren(SummaryPlaceholder).forEach(c => (c.hidden = hasSelection));
|
|
268
|
+
this.getChildren(SummarySelected).forEach(c => (c.hidden = !hasSelection));
|
|
266
269
|
}
|
|
267
270
|
|
|
268
271
|
// onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {
|
|
269
272
|
// super.onCreatedThisChild(child, data);
|
|
270
273
|
// }
|
|
274
|
+
// async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {
|
|
275
|
+
// await super.onRawSetRendered(rawSet, otherData);
|
|
276
|
+
// }
|
|
271
277
|
onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {
|
|
272
278
|
super.onCreatedThisChildDebounce(childrenSet);
|
|
273
|
-
this.updateView(this.getParentThis<Select>()?.selectedValues
|
|
279
|
+
this.updateView(this.getParentThis<Select>()?.selectedValues?.length > 0);
|
|
274
280
|
}
|
|
275
281
|
|
|
276
|
-
|
|
277
282
|
onSummaryClick(element: HTMLElement, event: Event) {
|
|
278
283
|
if (this.getParentThis<Select>()?.disabled) {
|
|
279
284
|
event.stopPropagation();
|
|
@@ -285,31 +290,40 @@ export namespace Select {
|
|
|
285
290
|
|
|
286
291
|
|
|
287
292
|
export class SelectBody extends ComponentBase<SelectBodyAttribute> {
|
|
288
|
-
@attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;
|
|
289
|
-
@attribute({name: 'float'}) public float: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | null = null;
|
|
293
|
+
@attribute({ name: 'class', converter: v => (v === '' ? null : v) }) public classAttr: string | null = null;
|
|
294
|
+
@attribute({ name: 'float' }) public float: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | null = null;
|
|
290
295
|
|
|
291
296
|
constructor() {
|
|
292
|
-
super({onlyParentType: Select});
|
|
297
|
+
super({ onlyParentType: Select });
|
|
293
298
|
}
|
|
294
299
|
|
|
295
|
-
|
|
300
|
+
async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {
|
|
301
|
+
await super.onRawSetRendered(rawSet, otherData);
|
|
302
|
+
// }
|
|
303
|
+
// onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {
|
|
304
|
+
// super.onCreatedThisChildDebounce(childrenSet);
|
|
296
305
|
this.changeOptionState();
|
|
297
306
|
}
|
|
298
307
|
|
|
299
308
|
changeOptionState(option?: Option) {
|
|
300
309
|
const options = this.getChildren(Option);
|
|
301
310
|
const select = this.getParentThis<Select>();
|
|
311
|
+
// console.log('------opti',option, select);
|
|
302
312
|
// // 멀티플이 아닐때에는 마지막 선택된값으로 처리
|
|
303
313
|
if (!select.multiple) {
|
|
304
314
|
// 내가 선택한게 있으면
|
|
305
315
|
if (option && option.selected) {
|
|
306
|
-
options.filter(it => it !== option).forEach(it =>
|
|
316
|
+
options.filter(it => it !== option).forEach(it => {
|
|
317
|
+
it.selected = false;
|
|
318
|
+
it.updateStatus();
|
|
319
|
+
});
|
|
307
320
|
} else {
|
|
308
|
-
const selectedOptions = options.filter(it => it.selected && !it.disabled)
|
|
321
|
+
const selectedOptions = options.filter(it => it.selected && !it.disabled);
|
|
309
322
|
selectedOptions.forEach((opt, idx) => {
|
|
310
323
|
const isLast = idx === selectedOptions.length - 1;
|
|
311
324
|
if (!isLast) {
|
|
312
325
|
opt.selected = false;
|
|
326
|
+
opt.updateStatus();
|
|
313
327
|
}
|
|
314
328
|
});
|
|
315
329
|
}
|
|
@@ -463,7 +477,7 @@ export default {
|
|
|
463
477
|
name: Select.selector,
|
|
464
478
|
styles:
|
|
465
479
|
'.dr-select-container {\n' +
|
|
466
|
-
'
|
|
480
|
+
' position: relative;\n' +
|
|
467
481
|
'\n' +
|
|
468
482
|
'}\n' +
|
|
469
483
|
'.dr-select-options-container {\n' +
|
|
@@ -535,7 +549,7 @@ export default {
|
|
|
535
549
|
'</details>\n' +
|
|
536
550
|
'<select hidden="hidden" name="${@this@.name}$" disabled="${@this@.disabled ? \'disabled\' : null}$" style="width: 1500px; height:500px" multiple>\n' +
|
|
537
551
|
' <option dr-for-of="@this@.options" value="${#it#.value}$" selected="${#it#.selected ? \'selected\' : null}$">#it# ${#it#.value}$</option>\n' +
|
|
538
|
-
'</select',
|
|
552
|
+
'</select>',
|
|
539
553
|
objFactory: (e, o, r2, constructorParam) => DomRender.run({ rootObject: new Select.Select(config), config })
|
|
540
554
|
});
|
|
541
555
|
},
|
|
@@ -8,53 +8,19 @@ import { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';
|
|
|
8
8
|
export namespace Timer {
|
|
9
9
|
export const selector = 'dr-timer';
|
|
10
10
|
export type Attribute = {
|
|
11
|
-
|
|
11
|
+
value?: string;
|
|
12
|
+
interval?: number;
|
|
13
|
+
onCreated?: (timer: Timer) => void;
|
|
12
14
|
}
|
|
13
|
-
|
|
14
|
-
// class RadioBase extends ComponentBase<Attribute> {
|
|
15
|
-
// public hidden = true;
|
|
16
|
-
//
|
|
17
|
-
// }
|
|
18
|
-
|
|
19
|
-
// @Component({
|
|
20
|
-
// template: '<div dr-if="!@this@.hidden" dr-strip="true">#innerHTML#</div>',
|
|
21
|
-
// styles: '',
|
|
22
|
-
// selector: `${selector}.Checked`
|
|
23
|
-
// })
|
|
24
|
-
// export class RadioChecked extends RadioBase {
|
|
25
|
-
// public name = 'Checked';
|
|
26
|
-
//
|
|
27
|
-
// constructor() {
|
|
28
|
-
// super({ onlyParentType: Radio });
|
|
29
|
-
// }
|
|
30
|
-
// }
|
|
31
|
-
//
|
|
32
|
-
// @Component({
|
|
33
|
-
// template: '<div dr-if="!@this@.hidden" dr-strip="true">#innerHTML#</div>',
|
|
34
|
-
// styles: '',
|
|
35
|
-
// selector: `${selector}.UnChecked`
|
|
36
|
-
// })
|
|
37
|
-
// export class UnChecked extends RadioBase {
|
|
38
|
-
// public name = 'unChecked';
|
|
39
|
-
//
|
|
40
|
-
// constructor() {
|
|
41
|
-
// super({ onlyParentType: Radio });
|
|
42
|
-
// }
|
|
43
|
-
// }
|
|
44
|
-
|
|
45
|
-
// @Component({
|
|
46
|
-
// template: '#innerHTML#',
|
|
47
|
-
// selector: `${selector}`,
|
|
48
|
-
// noStrip: true
|
|
49
|
-
// })
|
|
50
15
|
export class Timer extends ComponentBase<Attribute> {
|
|
51
16
|
private interval?: any;
|
|
52
|
-
private
|
|
17
|
+
private value?: number;
|
|
53
18
|
|
|
54
19
|
|
|
55
20
|
onInitRender(param: any, rawSet: RawSet) {
|
|
56
21
|
super.onInitRender(param, rawSet);
|
|
57
|
-
|
|
22
|
+
this.getAttribute('onCreated')?.(this);
|
|
23
|
+
// console.log('---2', this.getElement()?.isConnected)
|
|
58
24
|
// const element = this.getElement();
|
|
59
25
|
// if(element){
|
|
60
26
|
// (element as any).component = this;
|
|
@@ -62,23 +28,25 @@ export namespace Timer {
|
|
|
62
28
|
}
|
|
63
29
|
|
|
64
30
|
isRunning() {
|
|
65
|
-
return this.
|
|
31
|
+
return this.value !== undefined;
|
|
66
32
|
}
|
|
67
33
|
|
|
68
34
|
start() {
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
71
|
-
this.
|
|
35
|
+
const timems = this.getAttribute('value');
|
|
36
|
+
if (timems) {
|
|
37
|
+
this.value = parseInt(timems);
|
|
38
|
+
const intervalValue = this.getAttribute('interval') ?? 1000;
|
|
39
|
+
console.log('int', this.value, intervalValue);
|
|
72
40
|
this.interval = setInterval(() => {
|
|
73
|
-
|
|
74
|
-
if (this.
|
|
75
|
-
this.
|
|
41
|
+
console.log('--------->',this.value)
|
|
42
|
+
if (this.value) {
|
|
43
|
+
this.value--;
|
|
76
44
|
} else {
|
|
77
45
|
clearInterval(this.interval);
|
|
78
|
-
this.
|
|
46
|
+
this.value = undefined;
|
|
79
47
|
this.interval = undefined;
|
|
80
48
|
}
|
|
81
|
-
},
|
|
49
|
+
}, intervalValue)
|
|
82
50
|
}
|
|
83
51
|
}
|
|
84
52
|
|
|
@@ -87,7 +55,7 @@ export namespace Timer {
|
|
|
87
55
|
if (this.interval) {
|
|
88
56
|
clearInterval(this.interval);
|
|
89
57
|
this.interval = undefined;
|
|
90
|
-
this.
|
|
58
|
+
this.value = undefined;
|
|
91
59
|
}
|
|
92
60
|
}
|
|
93
61
|
|
|
@@ -107,7 +75,7 @@ export namespace Timer {
|
|
|
107
75
|
|
|
108
76
|
|
|
109
77
|
export default {
|
|
110
|
-
|
|
78
|
+
timer: (config?: DomRenderRunConfig) => {
|
|
111
79
|
return RawSet.createComponentTargetElement({
|
|
112
80
|
name: `${Timer.selector}`,
|
|
113
81
|
template: '#innerHTML#',
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ValidUtils } from '@dooboostore/core/valid/ValidUtils';
|
|
2
|
+
|
|
1
3
|
export const DomRenderNoProxyKey = 'DomRender:NoProxy'
|
|
2
4
|
export const DomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {
|
|
3
5
|
// 클래스 데코레이터로 사용된 경우
|
|
@@ -26,5 +28,5 @@ export const getDomRenderNoProxy = (target: any, propertyKey?: string | symbol)
|
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
export const isDomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {
|
|
29
|
-
return getDomRenderNoProxy(target, propertyKey) === true;
|
|
31
|
+
return ValidUtils.isNullOrUndefined(target) || getDomRenderNoProxy(target, propertyKey) === true;
|
|
30
32
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RawSet, RenderResult } from '../rawsets/RawSet';
|
|
2
|
+
|
|
3
|
+
export type OnRawSetRenderedOtherData = {
|
|
4
|
+
path?: string
|
|
5
|
+
renderResult?: RenderResult
|
|
6
|
+
// rawSet?: RawSet
|
|
7
|
+
}
|
|
8
|
+
export interface OnRawSetRendered {
|
|
9
|
+
// TODO: 호출된곳에서 또 변수를 수정하게되면 무한루프니깐 왠만하면 사용못하게 해야한다.
|
|
10
|
+
onRawSetRendered (rawSet: RawSet,otherData: OnRawSetRenderedOtherData): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const isOnRawSetRendered= (obj: any): obj is OnRawSetRendered => {
|
|
14
|
+
return typeof obj?.onRawSetRendered === 'function';
|
|
15
|
+
}
|
package/src/lifecycle/index.ts
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
Source
|
|
11
11
|
} from './OperatorExecuter';
|
|
12
12
|
import { Render } from '../rawsets/Render';
|
|
13
|
+
import { ElementUtils } from '@dooboostore/core-web/element/ElementUtils';
|
|
13
14
|
|
|
14
15
|
declare global {
|
|
15
16
|
interface Window {
|
|
@@ -96,6 +97,19 @@ export class DrTargetElement extends OperatorExecuter<void> {
|
|
|
96
97
|
}
|
|
97
98
|
// console.log('----------2', ElementUtils.toInnerHTML(targetFragment, {document: this.source.config.window.document}));
|
|
98
99
|
const rr = RawSet.checkPointCreates(targetFragment, this.source.obj, this.source.config);
|
|
100
|
+
rr.forEach((it, index) => {
|
|
101
|
+
|
|
102
|
+
// const z = ElementUtils.toInnerHTML(it.dataSet.fragment, {document: this.source.config.window.document});
|
|
103
|
+
// console.log('-z--z('+index+')', z, it);
|
|
104
|
+
// it.point.start;
|
|
105
|
+
// // 새로운 comment element 추가
|
|
106
|
+
// const comment = this.source.config.window.document.createComment('새로 만든 comment element');
|
|
107
|
+
// it.point.start.parentNode?.insertBefore(comment, it.point.start.nextSibling);
|
|
108
|
+
})
|
|
109
|
+
// for (let rawSet of rr) {
|
|
110
|
+
// await rawSet.render(this.source.obj, this.source.config)
|
|
111
|
+
// }
|
|
112
|
+
// console.log('cccccccccccccccccccccc', rr, typeof Window);
|
|
99
113
|
if (targetElement.noStrip) {
|
|
100
114
|
Array.from(targetFragment.childNodes || []).forEach(child => {
|
|
101
115
|
documentFragment.firstElementChild?.appendChild(child);
|
|
@@ -5,7 +5,6 @@ import { RawSet } from '../rawsets/RawSet';
|
|
|
5
5
|
import { Render } from '../rawsets/Render';
|
|
6
6
|
import { Attrs } from '../rawsets/Attrs';
|
|
7
7
|
import { DomRenderConfig } from '../configs/DomRenderConfig';
|
|
8
|
-
import { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';
|
|
9
8
|
import { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';
|
|
10
9
|
|
|
11
10
|
export interface OperatorAround {
|
|
@@ -51,7 +50,7 @@ export abstract class OperatorExecuter<T = any> {
|
|
|
51
50
|
let r = attrValue;
|
|
52
51
|
if (r && this.startingExecute) {
|
|
53
52
|
const optionalPath = ObjectUtils.Path.toOptionalChainPath(attrValue);
|
|
54
|
-
r =
|
|
53
|
+
r = ObjectUtils.Script.evaluate(` ${this.render.bindScript}; return ${optionalPath}`, Object.assign(this.source.obj, {__render: this.render}));
|
|
55
54
|
}
|
|
56
55
|
if (this.source.operatorAround?.before) {
|
|
57
56
|
r = this.source.operatorAround?.before(r, this);
|