@dooboostore/simple-web-component 1.0.30 → 1.0.31
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 +220 -1
- package/dist/cjs/decorators/elementDefine.js +3 -3
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/elements/SwcAppEngine.js +3 -3
- package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
- package/dist/cjs/elements/SwcAppMixin.js +0 -7
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/cjs/elements/SwcAsync.js +35 -54
- package/dist/cjs/elements/SwcAsync.js.map +2 -2
- package/dist/cjs/elements/SwcChoose.js +2 -23
- package/dist/cjs/elements/SwcChoose.js.map +2 -2
- package/dist/cjs/elements/SwcIf.js +31 -60
- package/dist/cjs/elements/SwcIf.js.map +2 -2
- package/dist/cjs/elements/SwcLoop.js +20 -43
- package/dist/cjs/elements/SwcLoop.js.map +2 -2
- package/dist/cjs/elements/SwcSubTemplates.js +0 -27
- package/dist/cjs/elements/SwcSubTemplates.js.map +2 -2
- package/dist/cjs/elements/register.js +88 -92
- package/dist/cjs/elements/register.js.map +2 -2
- package/dist/cjs/router/ElementRouter.js +1 -8
- package/dist/cjs/router/ElementRouter.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/Utils.js +24 -11
- package/dist/cjs/utils/Utils.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +3 -3
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/elements/SwcAppEngine.js +3 -3
- package/dist/esm/elements/SwcAppEngine.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js +0 -7
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/elements/SwcAsync.js +35 -35
- package/dist/esm/elements/SwcAsync.js.map +2 -2
- package/dist/esm/elements/SwcChoose.js +2 -4
- package/dist/esm/elements/SwcChoose.js.map +2 -2
- package/dist/esm/elements/SwcIf.js +31 -41
- package/dist/esm/elements/SwcIf.js.map +2 -2
- package/dist/esm/elements/SwcLoop.js +20 -24
- package/dist/esm/elements/SwcLoop.js.map +2 -2
- package/dist/esm/elements/SwcSubTemplates.js +0 -8
- package/dist/esm/elements/SwcSubTemplates.js.map +2 -2
- package/dist/esm/elements/register.js +88 -92
- package/dist/esm/elements/register.js.map +2 -2
- package/dist/esm/router/ElementRouter.js +1 -8
- package/dist/esm/router/ElementRouter.js.map +2 -2
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/Utils.js +24 -11
- package/dist/esm/utils/Utils.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +27 -14
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +2 -2
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/types/elements/SwcAsync.d.ts +1 -11
- package/dist/types/elements/SwcAsync.d.ts.map +1 -1
- package/dist/types/elements/SwcChoose.d.ts +1 -13
- package/dist/types/elements/SwcChoose.d.ts.map +1 -1
- package/dist/types/elements/SwcIf.d.ts +1 -13
- package/dist/types/elements/SwcIf.d.ts.map +1 -1
- package/dist/types/elements/SwcLoop.d.ts +1 -13
- package/dist/types/elements/SwcLoop.d.ts.map +1 -1
- package/dist/types/elements/SwcSubTemplates.d.ts +6 -6
- package/dist/types/elements/SwcSubTemplates.d.ts.map +1 -1
- package/dist/types/elements/register.d.ts.map +1 -1
- package/dist/types/router/ElementRouter.d.ts.map +1 -1
- package/dist/types/types.d.ts +3 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/Utils.d.ts +10 -0
- package/dist/types/utils/Utils.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +27 -14
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +2 -2
- package/package.json +3 -3
- package/src/decorators/elementDefine.ts +6 -3
- package/src/elements/SwcAppEngine.ts +3 -3
- package/src/elements/SwcAppMixin.ts +5 -26
- package/src/elements/SwcAsync.ts +43 -31
- package/src/elements/SwcChoose.ts +8 -3
- package/src/elements/SwcIf.ts +38 -38
- package/src/elements/SwcLoop.ts +24 -19
- package/src/elements/SwcSubTemplates.ts +6 -6
- package/src/elements/register.ts +107 -86
- package/src/router/ElementRouter.ts +1 -12
- package/src/types.ts +3 -1
- package/src/utils/Utils.ts +37 -20
|
@@ -123,49 +123,34 @@ const registerAllElements = (w) => {
|
|
|
123
123
|
this._value = Boolean(nv);
|
|
124
124
|
this.render();
|
|
125
125
|
}
|
|
126
|
-
_resolvePortal() {
|
|
127
|
-
const portalScript = this.getAttribute("on-get-portal");
|
|
128
|
-
if (!portalScript)
|
|
129
|
-
return this.parentElement;
|
|
130
|
-
const win = this.ownerDocument?.defaultView || window;
|
|
131
|
-
const res = FunctionUtils.executeReturn({
|
|
132
|
-
script: portalScript,
|
|
133
|
-
context: this,
|
|
134
|
-
args: SwcUtils.getHelperAndHostSet(win, this)
|
|
135
|
-
});
|
|
136
|
-
if (res instanceof HTMLElement)
|
|
137
|
-
return res;
|
|
138
|
-
if (typeof res === "string")
|
|
139
|
-
return win.document.querySelector(res);
|
|
140
|
-
return this.parentElement;
|
|
141
|
-
}
|
|
142
126
|
_executeCloneCallback(attr, args) {
|
|
143
127
|
const script = this.getAttribute(attr);
|
|
144
128
|
if (!script)
|
|
145
129
|
return;
|
|
146
130
|
FunctionUtils.execute({ script, context: this, args });
|
|
147
131
|
}
|
|
148
|
-
refreshValue() {
|
|
149
|
-
|
|
150
|
-
if (
|
|
132
|
+
refreshValue(valueAttr) {
|
|
133
|
+
valueAttr ?? (valueAttr = this.getAttribute("value"));
|
|
134
|
+
if (valueAttr === null) {
|
|
151
135
|
this.value = false;
|
|
152
136
|
return;
|
|
153
137
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
138
|
+
if (valueAttr.startsWith("{{") && valueAttr.endsWith("}}")) {
|
|
139
|
+
const script = valueAttr.slice(2, -2).trim();
|
|
140
|
+
const win = this.ownerDocument?.defaultView || window;
|
|
141
|
+
const result = FunctionUtils.executeReturn({
|
|
142
|
+
script,
|
|
143
|
+
context: this,
|
|
144
|
+
args: SwcUtils.getHelperAndHostSet(win, this)
|
|
145
|
+
});
|
|
146
|
+
this.value = result;
|
|
162
147
|
} else {
|
|
163
|
-
this.value =
|
|
148
|
+
this.value = Boolean(valueAttr);
|
|
164
149
|
}
|
|
165
150
|
}
|
|
166
151
|
render() {
|
|
167
152
|
this.cleanup();
|
|
168
|
-
const portal = this.
|
|
153
|
+
const portal = this.parentElement;
|
|
169
154
|
if (!portal)
|
|
170
155
|
return;
|
|
171
156
|
const win = this.ownerDocument?.defaultView || window;
|
|
@@ -185,16 +170,24 @@ const registerAllElements = (w) => {
|
|
|
185
170
|
const elements = this._nodes.filter((n) => n.nodeType === 1);
|
|
186
171
|
const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };
|
|
187
172
|
this._nodes.forEach((node, nodeIdx) => {
|
|
188
|
-
if (node instanceof HTMLElement)
|
|
189
|
-
node.__swc_host = this;
|
|
190
173
|
this._executeCloneCallback("on-clone-node", { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });
|
|
174
|
+
if (node instanceof HTMLElement) {
|
|
175
|
+
Array.from(node.attributes).forEach((attr) => {
|
|
176
|
+
const value = attr.value || "";
|
|
177
|
+
if (value.startsWith("{{") && value.endsWith("}}")) {
|
|
178
|
+
const script = value.slice(2, -2).trim();
|
|
179
|
+
const result = FunctionUtils.executeReturn({
|
|
180
|
+
script,
|
|
181
|
+
context: node,
|
|
182
|
+
args: { ...groupArgs, $value: this._value }
|
|
183
|
+
});
|
|
184
|
+
node.setAttribute(attr.name, String(result));
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}
|
|
191
188
|
});
|
|
192
189
|
this._executeCloneCallback("on-clone-nodes", groupArgs);
|
|
193
|
-
|
|
194
|
-
portal.insertBefore(clone, this.nextSibling);
|
|
195
|
-
} else {
|
|
196
|
-
portal.appendChild(clone);
|
|
197
|
-
}
|
|
190
|
+
portal.insertBefore(clone, this.nextSibling);
|
|
198
191
|
}
|
|
199
192
|
}
|
|
200
193
|
cleanup() {
|
|
@@ -209,9 +202,9 @@ const registerAllElements = (w) => {
|
|
|
209
202
|
}
|
|
210
203
|
};
|
|
211
204
|
__decorate([
|
|
212
|
-
changedAttributeHost("
|
|
205
|
+
changedAttributeHost("value"),
|
|
213
206
|
__metadata("design:type", Function),
|
|
214
|
-
__metadata("design:paramtypes", []),
|
|
207
|
+
__metadata("design:paramtypes", [String]),
|
|
215
208
|
__metadata("design:returntype", void 0)
|
|
216
209
|
], SwcIf.prototype, "refreshValue", null);
|
|
217
210
|
SwcIf = __decorate([
|
|
@@ -230,22 +223,6 @@ const registerAllElements = (w) => {
|
|
|
230
223
|
this._value = Array.isArray(nv) ? [...nv] : [];
|
|
231
224
|
this.render();
|
|
232
225
|
}
|
|
233
|
-
_resolvePortal() {
|
|
234
|
-
const portalScript = this.getAttribute("on-get-portal");
|
|
235
|
-
if (!portalScript)
|
|
236
|
-
return this.parentElement;
|
|
237
|
-
const win = this.ownerDocument?.defaultView || window;
|
|
238
|
-
const res = FunctionUtils.executeReturn({
|
|
239
|
-
script: portalScript,
|
|
240
|
-
context: this,
|
|
241
|
-
args: SwcUtils.getHelperAndHostSet(win, this)
|
|
242
|
-
});
|
|
243
|
-
if (res instanceof HTMLElement)
|
|
244
|
-
return res;
|
|
245
|
-
if (typeof res === "string")
|
|
246
|
-
return win.document.querySelector(res);
|
|
247
|
-
return this.parentElement;
|
|
248
|
-
}
|
|
249
226
|
_executeCloneCallback(attr, args) {
|
|
250
227
|
const script = this.getAttribute(attr);
|
|
251
228
|
if (!script)
|
|
@@ -257,11 +234,14 @@ const registerAllElements = (w) => {
|
|
|
257
234
|
this._nodeGroups = [];
|
|
258
235
|
}
|
|
259
236
|
refreshValue() {
|
|
260
|
-
|
|
237
|
+
let script = this.getAttribute("value");
|
|
261
238
|
if (!script) {
|
|
262
239
|
this.value = [];
|
|
263
240
|
return;
|
|
264
241
|
}
|
|
242
|
+
if (script.startsWith("{{") && script.endsWith("}}")) {
|
|
243
|
+
script = script.slice(2, -2).trim();
|
|
244
|
+
}
|
|
265
245
|
const win = this.ownerDocument?.defaultView || window;
|
|
266
246
|
const res = FunctionUtils.executeReturn({
|
|
267
247
|
script,
|
|
@@ -276,7 +256,7 @@ const registerAllElements = (w) => {
|
|
|
276
256
|
}
|
|
277
257
|
render() {
|
|
278
258
|
this._cleanup();
|
|
279
|
-
const portal = this.
|
|
259
|
+
const portal = this.parentElement;
|
|
280
260
|
if (!portal)
|
|
281
261
|
return;
|
|
282
262
|
const win = this.ownerDocument?.defaultView || window;
|
|
@@ -299,9 +279,21 @@ const registerAllElements = (w) => {
|
|
|
299
279
|
const elements = nodes.filter((n) => n.nodeType === 1);
|
|
300
280
|
const groupArgs = { ...helperSet, $item: item, $index: index, $value: this._value, $nodes: nodes, $elements: elements, $firstElement: elements[0] };
|
|
301
281
|
nodes.forEach((node, nodeIdx) => {
|
|
302
|
-
if (node instanceof HTMLElement)
|
|
303
|
-
node.__swc_host = this;
|
|
304
282
|
this._executeCloneCallback("on-clone-node", { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });
|
|
283
|
+
if (node instanceof HTMLElement) {
|
|
284
|
+
Array.from(node.attributes).forEach((attr) => {
|
|
285
|
+
const value = attr.value || "";
|
|
286
|
+
if (value.startsWith("{{") && value.endsWith("}}")) {
|
|
287
|
+
const script = value.slice(2, -2).trim();
|
|
288
|
+
const result = FunctionUtils.executeReturn({
|
|
289
|
+
script,
|
|
290
|
+
context: node,
|
|
291
|
+
args: groupArgs
|
|
292
|
+
});
|
|
293
|
+
node.setAttribute(attr.name, String(result));
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
}
|
|
305
297
|
});
|
|
306
298
|
this._executeCloneCallback("on-clone-nodes", groupArgs);
|
|
307
299
|
this._nodeGroups.push(nodes);
|
|
@@ -322,7 +314,7 @@ const registerAllElements = (w) => {
|
|
|
322
314
|
}
|
|
323
315
|
};
|
|
324
316
|
__decorate([
|
|
325
|
-
changedAttributeHost("
|
|
317
|
+
changedAttributeHost("value"),
|
|
326
318
|
__metadata("design:type", Function),
|
|
327
319
|
__metadata("design:paramtypes", []),
|
|
328
320
|
__metadata("design:returntype", void 0)
|
|
@@ -359,7 +351,8 @@ const registerAllElements = (w) => {
|
|
|
359
351
|
if (valueAttr.startsWith("{{") && valueAttr.endsWith("}}")) {
|
|
360
352
|
const script = valueAttr.slice(2, -2).trim();
|
|
361
353
|
const win = this.ownerDocument?.defaultView || window;
|
|
362
|
-
const
|
|
354
|
+
const helperAndHostSet = SwcUtils.getHelperAndHostSet(win, SwcUtils.findNearestSwcHost(this));
|
|
355
|
+
const result = FunctionUtils.executeReturn({ script, context: this, args: helperAndHostSet });
|
|
363
356
|
this.value = result;
|
|
364
357
|
} else {
|
|
365
358
|
this.value = valueAttr;
|
|
@@ -451,36 +444,32 @@ const registerAllElements = (w) => {
|
|
|
451
444
|
this._nodes = [];
|
|
452
445
|
this._value = null;
|
|
453
446
|
}
|
|
454
|
-
_resolvePortal() {
|
|
455
|
-
const portalScript = this.getAttribute("on-get-portal");
|
|
456
|
-
if (!portalScript)
|
|
457
|
-
return this.parentElement;
|
|
458
|
-
const win = this.ownerDocument?.defaultView || window;
|
|
459
|
-
const res = FunctionUtils.executeReturn({
|
|
460
|
-
script: portalScript,
|
|
461
|
-
context: this,
|
|
462
|
-
args: SwcUtils.getHelperAndHostSet(win, this)
|
|
463
|
-
});
|
|
464
|
-
if (res instanceof HTMLElement)
|
|
465
|
-
return res;
|
|
466
|
-
if (typeof res === "string")
|
|
467
|
-
return win.document.querySelector(res);
|
|
468
|
-
return this.parentElement;
|
|
469
|
-
}
|
|
470
447
|
_executeCloneCallback(attr, args) {
|
|
471
448
|
const script = this.getAttribute(attr);
|
|
472
449
|
if (!script)
|
|
473
450
|
return;
|
|
474
451
|
FunctionUtils.execute({ script, context: this, args });
|
|
475
452
|
}
|
|
476
|
-
refresh() {
|
|
477
|
-
|
|
478
|
-
if (!
|
|
453
|
+
refresh(valueAttr) {
|
|
454
|
+
valueAttr ?? (valueAttr = this.getAttribute("value"));
|
|
455
|
+
if (!valueAttr) {
|
|
479
456
|
this.render("default");
|
|
480
457
|
return;
|
|
481
458
|
}
|
|
482
|
-
|
|
483
|
-
|
|
459
|
+
if (valueAttr.startsWith("{{") && valueAttr.endsWith("}}")) {
|
|
460
|
+
const script = valueAttr.slice(2, -2).trim();
|
|
461
|
+
const win = this.ownerDocument?.defaultView || window;
|
|
462
|
+
const result = FunctionUtils.executeReturn({
|
|
463
|
+
script,
|
|
464
|
+
context: this,
|
|
465
|
+
args: SwcUtils.getHelperAndHostSet(win, this)
|
|
466
|
+
});
|
|
467
|
+
this.executeAsync(result);
|
|
468
|
+
} else {
|
|
469
|
+
this.executeAsync(valueAttr);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
executeAsync(result) {
|
|
484
473
|
if (result instanceof Promise) {
|
|
485
474
|
this.render("loading");
|
|
486
475
|
result.then((v) => {
|
|
@@ -494,7 +483,7 @@ const registerAllElements = (w) => {
|
|
|
494
483
|
}
|
|
495
484
|
render(state) {
|
|
496
485
|
this.cleanup();
|
|
497
|
-
const portal = this.
|
|
486
|
+
const portal = this.parentElement;
|
|
498
487
|
if (!portal)
|
|
499
488
|
return;
|
|
500
489
|
const win = this.ownerDocument?.defaultView || window;
|
|
@@ -506,16 +495,24 @@ const registerAllElements = (w) => {
|
|
|
506
495
|
const elements = this._nodes.filter((n) => n.nodeType === 1);
|
|
507
496
|
const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0], $state: state };
|
|
508
497
|
this._nodes.forEach((n, nodeIdx) => {
|
|
509
|
-
if (n instanceof HTMLElement)
|
|
510
|
-
n.__swc_host = this;
|
|
511
498
|
this._executeCloneCallback("on-clone-node", { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });
|
|
499
|
+
if (n instanceof HTMLElement) {
|
|
500
|
+
Array.from(n.attributes).forEach((attr) => {
|
|
501
|
+
const value = attr.value || "";
|
|
502
|
+
if (value.startsWith("{{") && value.endsWith("}}")) {
|
|
503
|
+
const script = value.slice(2, -2).trim();
|
|
504
|
+
const result = FunctionUtils.executeReturn({
|
|
505
|
+
script,
|
|
506
|
+
context: n,
|
|
507
|
+
args: groupArgs
|
|
508
|
+
});
|
|
509
|
+
n.setAttribute(attr.name, String(result));
|
|
510
|
+
}
|
|
511
|
+
});
|
|
512
|
+
}
|
|
512
513
|
});
|
|
513
514
|
this._executeCloneCallback("on-clone-nodes", groupArgs);
|
|
514
|
-
|
|
515
|
-
portal.insertBefore(clone, this.nextSibling);
|
|
516
|
-
} else {
|
|
517
|
-
portal.appendChild(clone);
|
|
518
|
-
}
|
|
515
|
+
portal.insertBefore(clone, this.nextSibling);
|
|
519
516
|
}
|
|
520
517
|
}
|
|
521
518
|
cleanup() {
|
|
@@ -523,7 +520,6 @@ const registerAllElements = (w) => {
|
|
|
523
520
|
this._nodes = [];
|
|
524
521
|
}
|
|
525
522
|
connectedCallback() {
|
|
526
|
-
console.log("[SwcAsync] connectedCallback called");
|
|
527
523
|
this.refresh();
|
|
528
524
|
}
|
|
529
525
|
disconnectedCallback() {
|
|
@@ -531,9 +527,9 @@ const registerAllElements = (w) => {
|
|
|
531
527
|
}
|
|
532
528
|
};
|
|
533
529
|
__decorate([
|
|
534
|
-
changedAttributeHost("
|
|
530
|
+
changedAttributeHost("value"),
|
|
535
531
|
__metadata("design:type", Function),
|
|
536
|
-
__metadata("design:paramtypes", []),
|
|
532
|
+
__metadata("design:paramtypes", [String]),
|
|
537
533
|
__metadata("design:returntype", void 0)
|
|
538
534
|
], SwcAsync.prototype, "refresh", null);
|
|
539
535
|
SwcAsync = __decorate([
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/elements/register.ts"],
|
|
4
|
-
"sourcesContent": ["import { elementDefine } from '../decorators/elementDefine';\nimport { SwcAppMixin } from './SwcAppMixin';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { changedAttributeHost } from '../decorators/changedAttributeHost';\n\ntype Constructor<T> = new (...args: any[]) => T;\n\nexport const registerAllElements = (w: any): Record<string, Constructor<HTMLElement>> => {\n const {\n HTMLElement: _HTMLElement,\n HTMLTemplateElement: _HTMLTemplateElement,\n DocumentFragment: _DocumentFragment,\n Node: _Node,\n Element: _Element,\n HTMLAnchorElement: _HTMLAnchorElement,\n HTMLAreaElement: _HTMLAreaElement,\n HTMLAudioElement: _HTMLAudioElement,\n HTMLBaseElement: _HTMLBaseElement,\n HTMLButtonElement: _HTMLButtonElement,\n HTMLCanvasElement: _HTMLCanvasElement,\n HTMLDataElement: _HTMLDataElement,\n HTMLDataListElement: _HTMLDataListElement,\n HTMLDetailsElement: _HTMLDetailsElement,\n HTMLDialogElement: _HTMLDialogElement,\n HTMLDivElement: _HTMLDivElement,\n HTMLDListElement: _HTMLDListElement,\n HTMLEmbedElement: _HTMLEmbedElement,\n HTMLFieldSetElement: _HTMLFieldSetElement,\n HTMLFormElement: _HTMLFormElement,\n HTMLHRElement: _HTMLHRElement,\n HTMLIFrameElement: _HTMLIFrameElement,\n HTMLImageElement: _HTMLImageElement,\n HTMLInputElement: _HTMLInputElement,\n HTMLLabelElement: _HTMLLabelElement,\n HTMLLegendElement: _HTMLLegendElement,\n HTMLLIElement: _HTMLLIElement,\n HTMLLinkElement: _HTMLLinkElement,\n HTMLMapElement: _HTMLMapElement,\n HTMLMetaElement: _HTMLMetaElement,\n HTMLMeterElement: _HTMLMeterElement,\n HTMLModElement: _HTMLModElement,\n HTMLObjectElement: _HTMLObjectElement,\n HTMLOListElement: _HTMLOListElement,\n HTMLOptGroupElement: _HTMLOptGroupElement,\n HTMLOptionElement: _HTMLOptionElement,\n HTMLOutputElement: _HTMLOutputElement,\n HTMLParagraphElement: _HTMLParagraphElement,\n HTMLParamElement: _HTMLParamElement,\n HTMLPictureElement: _HTMLPictureElement,\n HTMLPreElement: _HTMLPreElement,\n HTMLProgressElement: _HTMLProgressElement,\n HTMLQuoteElement: _HTMLQuoteElement,\n HTMLScriptElement: _HTMLScriptElement,\n HTMLSelectElement: _HTMLSelectElement,\n HTMLSlotElement: _HTMLSlotElement,\n HTMLSourceElement: _HTMLSourceElement,\n HTMLSpanElement: _HTMLSpanElement,\n HTMLStyleElement: _HTMLStyleElement,\n HTMLTableElement: _HTMLTableElement,\n HTMLTableSectionElement: _HTMLTableSectionElement,\n HTMLTableCellElement: _HTMLTableCellElement,\n HTMLTextAreaElement: _HTMLTextAreaElement,\n HTMLTimeElement: _HTMLTimeElement,\n HTMLTitleElement: _HTMLTitleElement,\n HTMLTableRowElement: _HTMLTableRowElement,\n HTMLTrackElement: _HTMLTrackElement,\n HTMLUListElement: _HTMLUListElement,\n HTMLVideoElement: _HTMLVideoElement,\n HTMLHeadingElement: _HTMLHeadingElement,\n HTMLBodyElement: _HTMLBodyElement,\n } = w as any;\n\n const HTMLElement = _HTMLElement as typeof globalThis.HTMLElement;\n const HTMLTemplateElement = _HTMLTemplateElement as typeof globalThis.HTMLTemplateElement;\n const DocumentFragment = _DocumentFragment as typeof globalThis.DocumentFragment;\n const Node = _Node as typeof globalThis.Node;\n const Element = _Element as typeof globalThis.Element;\n const HTMLAnchorElement = _HTMLAnchorElement as typeof globalThis.HTMLAnchorElement;\n const HTMLAreaElement = _HTMLAreaElement as typeof globalThis.HTMLAreaElement;\n const HTMLAudioElement = _HTMLAudioElement as typeof globalThis.HTMLAudioElement;\n const HTMLBaseElement = _HTMLBaseElement as typeof globalThis.HTMLBaseElement;\n const HTMLButtonElement = _HTMLButtonElement as typeof globalThis.HTMLButtonElement;\n const HTMLCanvasElement = _HTMLCanvasElement as typeof globalThis.HTMLCanvasElement;\n const HTMLDataElement = _HTMLDataElement as typeof globalThis.HTMLDataElement;\n const HTMLDataListElement = _HTMLDataListElement as typeof globalThis.HTMLDataListElement;\n const HTMLDetailsElement = _HTMLDetailsElement as typeof globalThis.HTMLDetailsElement;\n const HTMLDialogElement = _HTMLDialogElement as typeof globalThis.HTMLDialogElement;\n const HTMLDivElement = _HTMLDivElement as typeof globalThis.HTMLDivElement;\n const HTMLDListElement = _HTMLDListElement as typeof globalThis.HTMLDListElement;\n const HTMLEmbedElement = _HTMLEmbedElement as typeof globalThis.HTMLEmbedElement;\n const HTMLFieldSetElement = _HTMLFieldSetElement as typeof globalThis.HTMLFieldSetElement;\n const HTMLFormElement = _HTMLFormElement as typeof globalThis.HTMLFormElement;\n const HTMLHRElement = _HTMLHRElement as typeof globalThis.HTMLHRElement;\n const HTMLIFrameElement = _HTMLIFrameElement as typeof globalThis.HTMLIFrameElement;\n const HTMLImageElement = _HTMLImageElement as typeof globalThis.HTMLImageElement;\n const HTMLInputElement = _HTMLInputElement as typeof globalThis.HTMLInputElement;\n const HTMLLabelElement = _HTMLLabelElement as typeof globalThis.HTMLLabelElement;\n const HTMLLegendElement = _HTMLLegendElement as typeof globalThis.HTMLLegendElement;\n const HTMLLIElement = _HTMLLIElement as typeof globalThis.HTMLLIElement;\n const HTMLLinkElement = _HTMLLinkElement as typeof globalThis.HTMLLinkElement;\n const HTMLMapElement = _HTMLMapElement as typeof globalThis.HTMLMapElement;\n const HTMLMetaElement = _HTMLMetaElement as typeof globalThis.HTMLMetaElement;\n const HTMLMeterElement = _HTMLMeterElement as typeof globalThis.HTMLMeterElement;\n const HTMLModElement = _HTMLModElement as typeof globalThis.HTMLModElement;\n const HTMLObjectElement = _HTMLObjectElement as typeof globalThis.HTMLObjectElement;\n const HTMLOListElement = _HTMLOListElement as typeof globalThis.HTMLOListElement;\n const HTMLOptGroupElement = _HTMLOptGroupElement as typeof globalThis.HTMLOptGroupElement;\n const HTMLOptionElement = _HTMLOptionElement as typeof globalThis.HTMLOptionElement;\n const HTMLOutputElement = _HTMLOutputElement as typeof globalThis.HTMLOutputElement;\n const HTMLParagraphElement = _HTMLParagraphElement as typeof globalThis.HTMLParagraphElement;\n const HTMLParamElement = _HTMLParamElement as typeof globalThis.HTMLParamElement;\n const HTMLPictureElement = _HTMLPictureElement as typeof globalThis.HTMLPictureElement;\n const HTMLPreElement = _HTMLPreElement as typeof globalThis.HTMLPreElement;\n const HTMLProgressElement = _HTMLProgressElement as typeof globalThis.HTMLProgressElement;\n const HTMLQuoteElement = _HTMLQuoteElement as typeof globalThis.HTMLQuoteElement;\n const HTMLScriptElement = _HTMLScriptElement as typeof globalThis.HTMLScriptElement;\n const HTMLSelectElement = _HTMLSelectElement as typeof globalThis.HTMLSelectElement;\n const HTMLSlotElement = _HTMLSlotElement as typeof globalThis.HTMLSlotElement;\n const HTMLSourceElement = _HTMLSourceElement as typeof globalThis.HTMLSourceElement;\n const HTMLSpanElement = _HTMLSpanElement as typeof globalThis.HTMLSpanElement;\n const HTMLStyleElement = _HTMLStyleElement as typeof globalThis.HTMLStyleElement;\n const HTMLTableElement = _HTMLTableElement as typeof globalThis.HTMLTableElement;\n const HTMLTableSectionElement = _HTMLTableSectionElement as typeof globalThis.HTMLTableSectionElement;\n const HTMLTableCellElement = _HTMLTableCellElement as typeof globalThis.HTMLTableCellElement;\n const HTMLTextAreaElement = _HTMLTextAreaElement as typeof globalThis.HTMLTextAreaElement;\n const HTMLTimeElement = _HTMLTimeElement as typeof globalThis.HTMLTimeElement;\n const HTMLTitleElement = _HTMLTitleElement as typeof globalThis.HTMLTitleElement;\n const HTMLTableRowElement = _HTMLTableRowElement as typeof globalThis.HTMLTableRowElement;\n const HTMLTrackElement = _HTMLTrackElement as typeof globalThis.HTMLTrackElement;\n const HTMLUListElement = _HTMLUListElement as typeof globalThis.HTMLUListElement;\n const HTMLVideoElement = _HTMLVideoElement as typeof globalThis.HTMLVideoElement;\n const HTMLHeadingElement = _HTMLHeadingElement as typeof globalThis.HTMLHeadingElement;\n const HTMLBodyElement = _HTMLBodyElement as typeof globalThis.HTMLBodyElement;\n\n\n // --- Sub Templates ---\n @elementDefine('swc-loading', { extends: 'template', window: w }) class SwcLoading extends HTMLTemplateElement {}\n @elementDefine('swc-error', { extends: 'template', window: w }) class SwcError extends HTMLTemplateElement {}\n @elementDefine('swc-success', { extends: 'template', window: w }) class SwcSuccess extends HTMLTemplateElement {}\n @elementDefine('swc-when', { extends: 'template', window: w }) class SwcWhen extends HTMLTemplateElement {}\n @elementDefine('swc-otherwise', { extends: 'template', window: w }) class SwcOtherwise extends HTMLTemplateElement {}\n @elementDefine('swc-default', { extends: 'template', window: w }) class SwcDefault extends HTMLTemplateElement {}\n\n // --- Core Elements ---\n @elementDefine('swc-app', { window: w })\n class SwcApp extends SwcAppMixin(HTMLElement) {}\n\n @elementDefine('swc-if', { extends: 'template', window: w })\n class SwcIf extends HTMLTemplateElement {\n private _value = false;\n private _nodes: Node[] = [];\n\n get value(): boolean {\n return this._value;\n }\n set value(nv: any) {\n this._value = Boolean(nv);\n this.render();\n }\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('on-get-value')\n private refreshValue() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.value = false;\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof Promise) {\n res.then(v => (this.value = v)).catch(() => (this.value = false));\n } else {\n this.value = res;\n }\n }\n\n private render() {\n this.cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n let targetTpl: HTMLTemplateElement | null = null;\n if (this._value) {\n targetTpl = this;\n } else {\n targetTpl = this.content.querySelector('template[is=\"swc-default\"]') as HTMLTemplateElement;\n }\n\n if (targetTpl) {\n const clone = targetTpl.content.cloneNode(true) as DocumentFragment;\n // If it's the host template, remove sub-templates from clone\n if (targetTpl === this) {\n clone.querySelectorAll('template[is^=\"swc-\"]').forEach(t => t.remove());\n }\n\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };\n\n this._nodes.forEach((node, nodeIdx) => {\n if (node instanceof HTMLElement) (node as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n if (portal === this.parentElement) {\n portal.insertBefore(clone, this.nextSibling);\n } else {\n portal.appendChild(clone);\n }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refreshValue();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-loop', { extends: 'template', window: w })\n class SwcLoop extends HTMLTemplateElement {\n private _value: any[] = [];\n private _nodeGroups: Node[][] = [];\n\n get value(): any[] {\n return this._value;\n }\n set value(nv: any[]) {\n this._value = Array.isArray(nv) ? [...nv] : [];\n this.render();\n }\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n private _cleanup() {\n this._nodeGroups.forEach(nodes => nodes.forEach(n => n.parentElement?.removeChild(n)));\n this._nodeGroups = [];\n }\n\n @changedAttributeHost('on-get-value')\n private refreshValue() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.value = [];\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof Promise) {\n res.then(v => (this.value = v)).catch(() => (this.value = []));\n } else {\n this.value = res;\n }\n }\n\n render() {\n this._cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n const fragment = win.document.createDocumentFragment();\n\n if (this._value.length === 0) {\n const defaultTpl = this.content.querySelector('template[is=\"swc-default\"]') as HTMLTemplateElement;\n if (defaultTpl) {\n const clone = defaultTpl.content.cloneNode(true);\n const nodes = Array.from(clone.childNodes);\n this._nodeGroups.push(nodes);\n fragment.appendChild(clone);\n }\n } else {\n this._value.forEach((item, index) => {\n const clone = this.content.cloneNode(true) as DocumentFragment;\n // Filter out sub-templates\n const subTemplates = clone.querySelectorAll('template[is^=\"swc-\"]');\n subTemplates.forEach(t => t.remove());\n\n const nodes = Array.from(clone.childNodes);\n const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n\n const groupArgs = { ...helperSet, $item: item, $index: index, $value: this._value, $nodes: nodes, $elements: elements, $firstElement: elements[0] };\n\n nodes.forEach((node, nodeIdx) => {\n if (node instanceof HTMLElement) (node as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n this._nodeGroups.push(nodes);\n fragment.appendChild(clone);\n });\n }\n\n if (portal === this.parentElement) {\n portal.insertBefore(fragment, this.nextSibling);\n } else {\n portal.appendChild(fragment);\n }\n }\n\n connectedCallback() {\n this.refreshValue();\n }\n disconnectedCallback() {\n this._cleanup();\n }\n }\n\n @elementDefine('swc-choose', { extends: 'template', window: w })\n class SwcChoose extends HTMLTemplateElement {\n private _nodes: Node[] = [];\n private _value: any = null;\n private _previousTemplate: HTMLTemplateElement | null = null;\n\n get value(): any {\n return this._value;\n }\n set value(nv: any) {\n this._value = nv;\n this.render();\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('value')\n private refresh(valueAttr?: string | null) {\n valueAttr ??= this.getAttribute('value');\n if (valueAttr === null) {\n this.value = null;\n return;\n }\n\n // {{ }} 브레이스로 감싸진 값은 스크립트 실행\n if (valueAttr.startsWith('{{') && valueAttr.endsWith('}}')) {\n const script = valueAttr.slice(2, -2).trim();\n const win = this.ownerDocument?.defaultView || window;\n const result = FunctionUtils.executeReturn({ script, context: this, args: SwcUtils.getHelperAndHostSet(win, this) });\n this.value = result;\n } else {\n // 일반 문자열 값\n this.value = valueAttr;\n }\n }\n\n private render() {\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n const templates = Array.from(this.content.querySelectorAll('template'));\n let selected: HTMLTemplateElement | null = null;\n\n for (const t of templates) {\n if (t.getAttribute('is') === 'swc-when') {\n let matches = false;\n const value = t.getAttribute('value') || '';\n\n // {{ }} 브레이스로 감싸진 값은 스크립트 실행\n if (value.startsWith('{{') && value.endsWith('}}')) {\n const script = value.slice(2, -2).trim();\n const result = FunctionUtils.executeReturn({\n script,\n context: t,\n args: { ...helperSet, $value: this._value }\n });\n // console.log('rrrrrrrrrrrrrr', result);\n matches = result === true;\n } else {\n // 일반 문자열 비교 (기존 방식)\n matches = String(value) === String(this._value);\n }\n\n if (matches) {\n selected = t;\n break;\n }\n }\n }\n\n const target = selected || (this.content.querySelector('template[is=\"swc-otherwise\"]') as HTMLTemplateElement);\n\n // skip-if-same attribute가 있고 이전과 같은 template이면 렌더링 스킵\n // 최상위 skip-if-same 또는 각 when/otherwise의 skip-if-same 체크\n const targetHasSkipIfSame = target?.hasAttribute('skip-if-same');\n const shouldSkip = (this.hasAttribute('skip-if-same') || targetHasSkipIfSame) && this._previousTemplate === target;\n if (shouldSkip) {\n return;\n }\n\n this.cleanup();\n this._previousTemplate = target;\n\n if (target) {\n const clone = target.content.cloneNode(true) as DocumentFragment;\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };\n\n // 복제된 최상위 요소들은 SwcChoose의 직접 자식이 될 것이므로 __swc_host 설정 안 함\n this._nodes.forEach((n, nodeIdx) => {\n // if (n instanceof HTMLElement) (n as any).__swc_host = this; // 제거: 부모 체인 유지\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });\n\n // Attribute {{ }} 치환 - HTML string 차원에서 동적 치환\n if (n instanceof HTMLElement) {\n Array.from(n.attributes).forEach(attr => {\n const value = attr.value || '';\n if (value.startsWith('{{') && value.endsWith('}}')) {\n const script = value.slice(2, -2).trim();\n const result = FunctionUtils.executeReturn({\n script,\n context: n,\n args: { ...groupArgs, $value: this._value }\n });\n n.setAttribute(attr.name, String(result));\n }\n });\n }\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n this.parentElement?.insertBefore(clone, this.nextSibling);\n // if (portal === this.parentElement) {\n // portal.insertBefore(clone, this.nextSibling);\n // } else {\n // portal.appendChild(clone);\n // }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-async', { extends: 'template', window: w })\n class SwcAsync extends HTMLTemplateElement {\n private _nodes: Node[] = [];\n private _value: any = null;\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('on-get-value')\n private refresh() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.render('default');\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const result = FunctionUtils.executeReturn({ script, context: this, args: SwcUtils.getHelperAndHostSet(win, this) });\n\n if (result instanceof Promise) {\n this.render('loading');\n result\n .then(v => {\n this._value = v;\n this.render('success');\n })\n .catch(e => this.render('error'));\n } else {\n this._value = result;\n this.render('success');\n }\n }\n\n private render(state: string) {\n this.cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n const t = this.content.querySelector(`template[is=\"swc-${state}\"]`) as HTMLTemplateElement;\n if (t) {\n const clone = t.content.cloneNode(true) as DocumentFragment;\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0], $state: state };\n\n this._nodes.forEach((n, nodeIdx) => {\n if (n instanceof HTMLElement) (n as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n if (portal === this.parentElement) {\n portal.insertBefore(clone, this.nextSibling);\n } else {\n portal.appendChild(clone);\n }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n console.log('[SwcAsync] connectedCallback called');\n this.refresh();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n // --- \"is\" Elements ---\n @elementDefine('swc-app-a', { extends: 'a', window: w })\n class SwcAppAnchor extends SwcAppMixin(HTMLAnchorElement) {}\n\n @elementDefine('swc-app-area', { extends: 'area', window: w })\n class SwcAppArea extends SwcAppMixin(HTMLAreaElement) {}\n\n @elementDefine('swc-app-audio', { extends: 'audio', window: w })\n class SwcAppAudio extends SwcAppMixin(HTMLAudioElement) {}\n\n @elementDefine('swc-app-base', { extends: 'base', window: w })\n class SwcAppBase extends SwcAppMixin(HTMLBaseElement) {}\n\n @elementDefine('swc-app-button', { extends: 'button', window: w })\n class SwcAppButton extends SwcAppMixin(HTMLButtonElement) {}\n\n @elementDefine('swc-app-canvas', { extends: 'canvas', window: w })\n class SwcAppCanvas extends SwcAppMixin(HTMLCanvasElement) {}\n\n @elementDefine('swc-app-data', { extends: 'data', window: w })\n class SwcAppData extends SwcAppMixin(HTMLDataElement) {}\n\n @elementDefine('swc-app-datalist', { extends: 'datalist', window: w })\n class SwcAppDataList extends SwcAppMixin(HTMLDataListElement) {}\n\n @elementDefine('swc-app-details', { extends: 'details', window: w })\n class SwcAppDetails extends SwcAppMixin(HTMLDetailsElement) {}\n\n @elementDefine('swc-app-dialog', { extends: 'dialog', window: w })\n class SwcAppDialog extends SwcAppMixin(HTMLDialogElement) {}\n\n @elementDefine('swc-app-div', { extends: 'div', window: w })\n class SwcAppDiv extends SwcAppMixin(HTMLDivElement) {}\n\n @elementDefine('swc-app-dl', { extends: 'dl', window: w })\n class SwcAppDList extends SwcAppMixin(HTMLDListElement) {}\n\n @elementDefine('swc-app-embed', { extends: 'embed', window: w })\n class SwcAppEmbed extends SwcAppMixin(HTMLEmbedElement) {}\n\n @elementDefine('swc-app-fieldset', { extends: 'fieldset', window: w })\n class SwcAppFieldSet extends SwcAppMixin(HTMLFieldSetElement) {}\n\n @elementDefine('swc-app-form', { extends: 'form', window: w })\n class SwcAppForm extends SwcAppMixin(HTMLFormElement) {}\n\n @elementDefine('swc-app-hr', { extends: 'hr', window: w })\n class SwcAppHR extends SwcAppMixin(HTMLHRElement) {}\n\n @elementDefine('swc-app-iframe', { extends: 'iframe', window: w })\n class SwcAppIFrame extends SwcAppMixin(HTMLIFrameElement) {}\n\n @elementDefine('swc-app-img', { extends: 'img', window: w })\n class SwcAppImage extends SwcAppMixin(HTMLImageElement) {}\n\n @elementDefine('swc-app-input', { extends: 'input', window: w })\n class SwcAppInput extends SwcAppMixin(HTMLInputElement) {}\n\n @elementDefine('swc-app-label', { extends: 'label', window: w })\n class SwcAppLabel extends SwcAppMixin(HTMLLabelElement) {}\n\n @elementDefine('swc-app-legend', { extends: 'legend', window: w })\n class SwcAppLegend extends SwcAppMixin(HTMLLegendElement) {}\n\n @elementDefine('swc-app-li', { extends: 'li', window: w })\n class SwcAppLI extends SwcAppMixin(HTMLLIElement) {}\n\n @elementDefine('swc-app-link', { extends: 'link', window: w })\n class SwcAppLink extends SwcAppMixin(HTMLLinkElement) {}\n\n @elementDefine('swc-app-map', { extends: 'map', window: w })\n class SwcAppMap extends SwcAppMixin(HTMLMapElement) {}\n\n @elementDefine('swc-app-meta', { extends: 'meta', window: w })\n class SwcAppMeta extends SwcAppMixin(HTMLMetaElement) {}\n\n @elementDefine('swc-app-meter', { extends: 'meter', window: w })\n class SwcAppMeter extends SwcAppMixin(HTMLMeterElement) {}\n\n @elementDefine('swc-app-del', { extends: 'del', window: w })\n class SwcAppMod extends SwcAppMixin(HTMLModElement) {}\n\n @elementDefine('swc-app-object', { extends: 'object', window: w })\n class SwcAppObject extends SwcAppMixin(HTMLObjectElement) {}\n\n @elementDefine('swc-app-ol', { extends: 'ol', window: w })\n class SwcAppOList extends SwcAppMixin(HTMLOListElement) {}\n\n @elementDefine('swc-app-optgroup', { extends: 'optgroup', window: w })\n class SwcAppOptGroup extends SwcAppMixin(HTMLOptGroupElement) {}\n\n @elementDefine('swc-app-option', { extends: 'option', window: w })\n class SwcAppOption extends SwcAppMixin(HTMLOptionElement) {}\n\n @elementDefine('swc-app-output', { extends: 'output', window: w })\n class SwcAppOutput extends SwcAppMixin(HTMLOutputElement) {}\n\n @elementDefine('swc-app-p', { extends: 'p', window: w })\n class SwcAppParagraph extends SwcAppMixin(HTMLParagraphElement) {}\n\n @elementDefine('swc-app-param', { extends: 'param', window: w })\n class SwcAppParam extends SwcAppMixin(HTMLParamElement) {}\n\n @elementDefine('swc-app-picture', { extends: 'picture', window: w })\n class SwcAppPicture extends SwcAppMixin(HTMLPictureElement) {}\n\n @elementDefine('swc-app-pre', { extends: 'pre', window: w })\n class SwcAppPre extends SwcAppMixin(HTMLPreElement) {}\n\n @elementDefine('swc-app-progress', { extends: 'progress', window: w })\n class SwcAppProgress extends SwcAppMixin(HTMLProgressElement) {}\n\n @elementDefine('swc-app-blockquote', { extends: 'blockquote', window: w })\n class SwcAppQuote extends SwcAppMixin(HTMLQuoteElement) {}\n\n @elementDefine('swc-app-script', { extends: 'script', window: w })\n class SwcAppScript extends SwcAppMixin(HTMLScriptElement) {}\n\n @elementDefine('swc-app-select', { extends: 'select', window: w })\n class SwcAppSelect extends SwcAppMixin(HTMLSelectElement) {}\n\n @elementDefine('swc-app-slot', { extends: 'slot', window: w })\n class SwcAppSlot extends SwcAppMixin(HTMLSlotElement) {}\n\n @elementDefine('swc-app-source', { extends: 'source', window: w })\n class SwcAppSource extends SwcAppMixin(HTMLSourceElement) {}\n\n @elementDefine('swc-app-span', { extends: 'span', window: w })\n class SwcAppSpan extends SwcAppMixin(HTMLSpanElement) {}\n\n @elementDefine('swc-app-style', { extends: 'style', window: w })\n class SwcAppStyle extends SwcAppMixin(HTMLStyleElement) {}\n\n @elementDefine('swc-app-table', { extends: 'table', window: w })\n class SwcAppTable extends SwcAppMixin(HTMLTableElement) {}\n\n @elementDefine('swc-app-tbody', { extends: 'tbody', window: w })\n class SwcAppTableSection extends SwcAppMixin(HTMLTableSectionElement) {}\n\n @elementDefine('swc-app-td', { extends: 'td', window: w })\n class SwcAppTableCell extends SwcAppMixin(HTMLTableCellElement) {}\n\n @elementDefine('swc-app-template', { extends: 'template', window: w })\n class SwcAppTemplate extends SwcAppMixin(HTMLTemplateElement) {}\n\n @elementDefine('swc-app-textarea', { extends: 'textarea', window: w })\n class SwcAppTextArea extends SwcAppMixin(HTMLTextAreaElement) {}\n\n @elementDefine('swc-app-time', { extends: 'time', window: w })\n class SwcAppTime extends SwcAppMixin(HTMLTimeElement) {}\n\n @elementDefine('swc-app-title', { extends: 'title', window: w })\n class SwcAppTitle extends SwcAppMixin(HTMLTitleElement) {}\n\n @elementDefine('swc-app-tr', { extends: 'tr', window: w })\n class SwcAppTableRow extends SwcAppMixin(HTMLTableRowElement) {}\n\n @elementDefine('swc-app-track', { extends: 'track', window: w })\n class SwcAppTrack extends SwcAppMixin(HTMLTrackElement) {}\n\n @elementDefine('swc-app-ul', { extends: 'ul', window: w })\n class SwcAppUList extends SwcAppMixin(HTMLUListElement) {}\n\n @elementDefine('swc-app-video', { extends: 'video', window: w })\n class SwcAppVideo extends SwcAppMixin(HTMLVideoElement) {}\n\n @elementDefine('swc-app-h1', { extends: 'h1', window: w })\n class SwcAppHeading extends SwcAppMixin(HTMLHeadingElement) {}\n\n @elementDefine('swc-app-body', { extends: 'body', window: w })\n class SwcAppBody extends SwcAppMixin(HTMLBodyElement) {}\n\n\n return {\n // Sub Templates\n SwcLoading,\n SwcError,\n SwcSuccess,\n SwcWhen,\n SwcOtherwise,\n SwcDefault,\n // Core Elements\n SwcApp,\n SwcIf,\n SwcLoop,\n SwcChoose,\n SwcAsync,\n // App Elements\n SwcAppAnchor,\n SwcAppArea,\n SwcAppAudio,\n SwcAppBase,\n SwcAppButton,\n SwcAppCanvas,\n SwcAppData,\n SwcAppDataList,\n SwcAppDetails,\n SwcAppDialog,\n SwcAppDiv,\n SwcAppDList,\n SwcAppEmbed,\n SwcAppFieldSet,\n SwcAppForm,\n SwcAppHR,\n SwcAppIFrame,\n SwcAppImage,\n SwcAppInput,\n SwcAppLabel,\n SwcAppLegend,\n SwcAppLI,\n SwcAppLink,\n SwcAppMap,\n SwcAppMeta,\n SwcAppMeter,\n SwcAppMod,\n SwcAppObject,\n SwcAppOList,\n SwcAppOptGroup,\n SwcAppOption,\n SwcAppOutput,\n SwcAppParagraph,\n SwcAppParam,\n SwcAppPicture,\n SwcAppPre,\n SwcAppProgress,\n SwcAppQuote,\n SwcAppScript,\n SwcAppSelect,\n SwcAppSlot,\n SwcAppSource,\n SwcAppSpan,\n SwcAppStyle,\n SwcAppTable,\n SwcAppTableSection,\n SwcAppTableCell,\n SwcAppTemplate,\n SwcAppTextArea,\n SwcAppTime,\n SwcAppTitle,\n SwcAppTableRow,\n SwcAppTrack,\n SwcAppUList,\n SwcAppVideo,\n SwcAppHeading,\n SwcAppBody,\n };\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { elementDefine } from '../decorators/elementDefine';\nimport { SwcAppMixin } from './SwcAppMixin';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { changedAttributeHost } from '../decorators/changedAttributeHost';\n\ntype Constructor<T> = new (...args: any[]) => T;\n\nexport const registerAllElements = (w: any): Record<string, Constructor<HTMLElement>> => {\n const {\n HTMLElement: _HTMLElement,\n HTMLTemplateElement: _HTMLTemplateElement,\n DocumentFragment: _DocumentFragment,\n Node: _Node,\n Element: _Element,\n HTMLAnchorElement: _HTMLAnchorElement,\n HTMLAreaElement: _HTMLAreaElement,\n HTMLAudioElement: _HTMLAudioElement,\n HTMLBaseElement: _HTMLBaseElement,\n HTMLButtonElement: _HTMLButtonElement,\n HTMLCanvasElement: _HTMLCanvasElement,\n HTMLDataElement: _HTMLDataElement,\n HTMLDataListElement: _HTMLDataListElement,\n HTMLDetailsElement: _HTMLDetailsElement,\n HTMLDialogElement: _HTMLDialogElement,\n HTMLDivElement: _HTMLDivElement,\n HTMLDListElement: _HTMLDListElement,\n HTMLEmbedElement: _HTMLEmbedElement,\n HTMLFieldSetElement: _HTMLFieldSetElement,\n HTMLFormElement: _HTMLFormElement,\n HTMLHRElement: _HTMLHRElement,\n HTMLIFrameElement: _HTMLIFrameElement,\n HTMLImageElement: _HTMLImageElement,\n HTMLInputElement: _HTMLInputElement,\n HTMLLabelElement: _HTMLLabelElement,\n HTMLLegendElement: _HTMLLegendElement,\n HTMLLIElement: _HTMLLIElement,\n HTMLLinkElement: _HTMLLinkElement,\n HTMLMapElement: _HTMLMapElement,\n HTMLMetaElement: _HTMLMetaElement,\n HTMLMeterElement: _HTMLMeterElement,\n HTMLModElement: _HTMLModElement,\n HTMLObjectElement: _HTMLObjectElement,\n HTMLOListElement: _HTMLOListElement,\n HTMLOptGroupElement: _HTMLOptGroupElement,\n HTMLOptionElement: _HTMLOptionElement,\n HTMLOutputElement: _HTMLOutputElement,\n HTMLParagraphElement: _HTMLParagraphElement,\n HTMLParamElement: _HTMLParamElement,\n HTMLPictureElement: _HTMLPictureElement,\n HTMLPreElement: _HTMLPreElement,\n HTMLProgressElement: _HTMLProgressElement,\n HTMLQuoteElement: _HTMLQuoteElement,\n HTMLScriptElement: _HTMLScriptElement,\n HTMLSelectElement: _HTMLSelectElement,\n HTMLSlotElement: _HTMLSlotElement,\n HTMLSourceElement: _HTMLSourceElement,\n HTMLSpanElement: _HTMLSpanElement,\n HTMLStyleElement: _HTMLStyleElement,\n HTMLTableElement: _HTMLTableElement,\n HTMLTableSectionElement: _HTMLTableSectionElement,\n HTMLTableCellElement: _HTMLTableCellElement,\n HTMLTextAreaElement: _HTMLTextAreaElement,\n HTMLTimeElement: _HTMLTimeElement,\n HTMLTitleElement: _HTMLTitleElement,\n HTMLTableRowElement: _HTMLTableRowElement,\n HTMLTrackElement: _HTMLTrackElement,\n HTMLUListElement: _HTMLUListElement,\n HTMLVideoElement: _HTMLVideoElement,\n HTMLHeadingElement: _HTMLHeadingElement,\n HTMLBodyElement: _HTMLBodyElement,\n } = w as any;\n\n const HTMLElement = _HTMLElement as typeof globalThis.HTMLElement;\n const HTMLTemplateElement = _HTMLTemplateElement as typeof globalThis.HTMLTemplateElement;\n const DocumentFragment = _DocumentFragment as typeof globalThis.DocumentFragment;\n const Node = _Node as typeof globalThis.Node;\n const Element = _Element as typeof globalThis.Element;\n const HTMLAnchorElement = _HTMLAnchorElement as typeof globalThis.HTMLAnchorElement;\n const HTMLAreaElement = _HTMLAreaElement as typeof globalThis.HTMLAreaElement;\n const HTMLAudioElement = _HTMLAudioElement as typeof globalThis.HTMLAudioElement;\n const HTMLBaseElement = _HTMLBaseElement as typeof globalThis.HTMLBaseElement;\n const HTMLButtonElement = _HTMLButtonElement as typeof globalThis.HTMLButtonElement;\n const HTMLCanvasElement = _HTMLCanvasElement as typeof globalThis.HTMLCanvasElement;\n const HTMLDataElement = _HTMLDataElement as typeof globalThis.HTMLDataElement;\n const HTMLDataListElement = _HTMLDataListElement as typeof globalThis.HTMLDataListElement;\n const HTMLDetailsElement = _HTMLDetailsElement as typeof globalThis.HTMLDetailsElement;\n const HTMLDialogElement = _HTMLDialogElement as typeof globalThis.HTMLDialogElement;\n const HTMLDivElement = _HTMLDivElement as typeof globalThis.HTMLDivElement;\n const HTMLDListElement = _HTMLDListElement as typeof globalThis.HTMLDListElement;\n const HTMLEmbedElement = _HTMLEmbedElement as typeof globalThis.HTMLEmbedElement;\n const HTMLFieldSetElement = _HTMLFieldSetElement as typeof globalThis.HTMLFieldSetElement;\n const HTMLFormElement = _HTMLFormElement as typeof globalThis.HTMLFormElement;\n const HTMLHRElement = _HTMLHRElement as typeof globalThis.HTMLHRElement;\n const HTMLIFrameElement = _HTMLIFrameElement as typeof globalThis.HTMLIFrameElement;\n const HTMLImageElement = _HTMLImageElement as typeof globalThis.HTMLImageElement;\n const HTMLInputElement = _HTMLInputElement as typeof globalThis.HTMLInputElement;\n const HTMLLabelElement = _HTMLLabelElement as typeof globalThis.HTMLLabelElement;\n const HTMLLegendElement = _HTMLLegendElement as typeof globalThis.HTMLLegendElement;\n const HTMLLIElement = _HTMLLIElement as typeof globalThis.HTMLLIElement;\n const HTMLLinkElement = _HTMLLinkElement as typeof globalThis.HTMLLinkElement;\n const HTMLMapElement = _HTMLMapElement as typeof globalThis.HTMLMapElement;\n const HTMLMetaElement = _HTMLMetaElement as typeof globalThis.HTMLMetaElement;\n const HTMLMeterElement = _HTMLMeterElement as typeof globalThis.HTMLMeterElement;\n const HTMLModElement = _HTMLModElement as typeof globalThis.HTMLModElement;\n const HTMLObjectElement = _HTMLObjectElement as typeof globalThis.HTMLObjectElement;\n const HTMLOListElement = _HTMLOListElement as typeof globalThis.HTMLOListElement;\n const HTMLOptGroupElement = _HTMLOptGroupElement as typeof globalThis.HTMLOptGroupElement;\n const HTMLOptionElement = _HTMLOptionElement as typeof globalThis.HTMLOptionElement;\n const HTMLOutputElement = _HTMLOutputElement as typeof globalThis.HTMLOutputElement;\n const HTMLParagraphElement = _HTMLParagraphElement as typeof globalThis.HTMLParagraphElement;\n const HTMLParamElement = _HTMLParamElement as typeof globalThis.HTMLParamElement;\n const HTMLPictureElement = _HTMLPictureElement as typeof globalThis.HTMLPictureElement;\n const HTMLPreElement = _HTMLPreElement as typeof globalThis.HTMLPreElement;\n const HTMLProgressElement = _HTMLProgressElement as typeof globalThis.HTMLProgressElement;\n const HTMLQuoteElement = _HTMLQuoteElement as typeof globalThis.HTMLQuoteElement;\n const HTMLScriptElement = _HTMLScriptElement as typeof globalThis.HTMLScriptElement;\n const HTMLSelectElement = _HTMLSelectElement as typeof globalThis.HTMLSelectElement;\n const HTMLSlotElement = _HTMLSlotElement as typeof globalThis.HTMLSlotElement;\n const HTMLSourceElement = _HTMLSourceElement as typeof globalThis.HTMLSourceElement;\n const HTMLSpanElement = _HTMLSpanElement as typeof globalThis.HTMLSpanElement;\n const HTMLStyleElement = _HTMLStyleElement as typeof globalThis.HTMLStyleElement;\n const HTMLTableElement = _HTMLTableElement as typeof globalThis.HTMLTableElement;\n const HTMLTableSectionElement = _HTMLTableSectionElement as typeof globalThis.HTMLTableSectionElement;\n const HTMLTableCellElement = _HTMLTableCellElement as typeof globalThis.HTMLTableCellElement;\n const HTMLTextAreaElement = _HTMLTextAreaElement as typeof globalThis.HTMLTextAreaElement;\n const HTMLTimeElement = _HTMLTimeElement as typeof globalThis.HTMLTimeElement;\n const HTMLTitleElement = _HTMLTitleElement as typeof globalThis.HTMLTitleElement;\n const HTMLTableRowElement = _HTMLTableRowElement as typeof globalThis.HTMLTableRowElement;\n const HTMLTrackElement = _HTMLTrackElement as typeof globalThis.HTMLTrackElement;\n const HTMLUListElement = _HTMLUListElement as typeof globalThis.HTMLUListElement;\n const HTMLVideoElement = _HTMLVideoElement as typeof globalThis.HTMLVideoElement;\n const HTMLHeadingElement = _HTMLHeadingElement as typeof globalThis.HTMLHeadingElement;\n const HTMLBodyElement = _HTMLBodyElement as typeof globalThis.HTMLBodyElement;\n\n\n // --- Sub Templates ---\n @elementDefine('swc-loading', { extends: 'template', window: w }) class SwcLoading extends HTMLTemplateElement {}\n @elementDefine('swc-error', { extends: 'template', window: w }) class SwcError extends HTMLTemplateElement {}\n @elementDefine('swc-success', { extends: 'template', window: w }) class SwcSuccess extends HTMLTemplateElement {}\n @elementDefine('swc-when', { extends: 'template', window: w }) class SwcWhen extends HTMLTemplateElement {}\n @elementDefine('swc-otherwise', { extends: 'template', window: w }) class SwcOtherwise extends HTMLTemplateElement {}\n @elementDefine('swc-default', { extends: 'template', window: w }) class SwcDefault extends HTMLTemplateElement {}\n\n // --- Core Elements ---\n @elementDefine('swc-app', { window: w })\n class SwcApp extends SwcAppMixin(HTMLElement) {}\n\n @elementDefine('swc-if', { extends: 'template', window: w })\n class SwcIf extends HTMLTemplateElement {\n private _value = false;\n private _nodes: Node[] = [];\n\n get value(): boolean {\n return this._value;\n }\n set value(nv: any) {\n this._value = Boolean(nv);\n this.render();\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('value')\n private refreshValue(valueAttr?: string | null) {\n valueAttr ??= this.getAttribute('value');\n if (valueAttr === null) {\n this.value = false;\n return;\n }\n\n // {{ }} 브레이스로 감싸진 값은 스크립트 실행\n if (valueAttr.startsWith('{{') && valueAttr.endsWith('}}')) {\n const script = valueAttr.slice(2, -2).trim();\n const win = this.ownerDocument?.defaultView || window;\n const result = FunctionUtils.executeReturn({\n script,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n this.value = result;\n } else {\n // 일반 문자열 값\n this.value = Boolean(valueAttr);\n }\n }\n\n private render() {\n this.cleanup();\n const portal = this.parentElement;\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n let targetTpl: HTMLTemplateElement | null = null;\n if (this._value) {\n targetTpl = this;\n } else {\n targetTpl = this.content.querySelector('template[is=\"swc-default\"]') as HTMLTemplateElement;\n }\n\n if (targetTpl) {\n const clone = targetTpl.content.cloneNode(true) as DocumentFragment;\n // If it's the host template, remove sub-templates from clone\n if (targetTpl === this) {\n clone.querySelectorAll('template[is^=\"swc-\"]').forEach(t => t.remove());\n }\n\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };\n\n // 부모 체인을 정상적으로 유지하기 위해 __swc_host 할당 제거\n this._nodes.forEach((node, nodeIdx) => {\n // if (node instanceof HTMLElement) (node as any).__swc_host = this; // 제거: 부모 체인 유지\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });\n\n // Attribute {{ }} 치환 - SwcChoose처럼 동적 치환\n if (node instanceof HTMLElement) {\n Array.from(node.attributes).forEach(attr => {\n const value = attr.value || '';\n if (value.startsWith('{{') && value.endsWith('}}')) {\n const script = value.slice(2, -2).trim();\n const result = FunctionUtils.executeReturn({\n script,\n context: node,\n args: { ...groupArgs, $value: this._value }\n });\n node.setAttribute(attr.name, String(result));\n }\n });\n }\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n portal.insertBefore(clone, this.nextSibling);\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refreshValue();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-loop', { extends: 'template', window: w })\n class SwcLoop extends HTMLTemplateElement {\n private _value: any[] = [];\n private _nodeGroups: Node[][] = [];\n\n get value(): any[] {\n return this._value;\n }\n set value(nv: any[]) {\n this._value = Array.isArray(nv) ? [...nv] : [];\n this.render();\n }\n\n\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n private _cleanup() {\n this._nodeGroups.forEach(nodes => nodes.forEach(n => n.parentElement?.removeChild(n)));\n this._nodeGroups = [];\n }\n\n @changedAttributeHost('value')\n private refreshValue() {\n let script = this.getAttribute('value');\n if (!script) {\n this.value = [];\n return;\n }\n // Parse {{ }} braces\n if (script.startsWith('{{') && script.endsWith('}}')) {\n script = script.slice(2, -2).trim();\n }\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof Promise) {\n res.then(v => (this.value = v)).catch(() => (this.value = []));\n } else {\n this.value = res;\n }\n }\n\n render() {\n this._cleanup();\n const portal = this.parentElement;\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n const fragment = win.document.createDocumentFragment();\n\n if (this._value.length === 0) {\n const defaultTpl = this.content.querySelector('template[is=\"swc-default\"]') as HTMLTemplateElement;\n if (defaultTpl) {\n const clone = defaultTpl.content.cloneNode(true);\n const nodes = Array.from(clone.childNodes);\n this._nodeGroups.push(nodes);\n fragment.appendChild(clone);\n }\n } else {\n this._value.forEach((item, index) => {\n const clone = this.content.cloneNode(true) as DocumentFragment;\n // Filter out sub-templates\n const subTemplates = clone.querySelectorAll('template[is^=\"swc-\"]');\n subTemplates.forEach(t => t.remove());\n\n const nodes = Array.from(clone.childNodes);\n const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n\n const groupArgs = { ...helperSet, $item: item, $index: index, $value: this._value, $nodes: nodes, $elements: elements, $firstElement: elements[0] };\n\n nodes.forEach((node, nodeIdx) => {\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });\n\n // Attribute {{ }} 치환 - SwcChoose처럼 동적 치환\n if (node instanceof HTMLElement) {\n Array.from(node.attributes).forEach(attr => {\n const value = attr.value || '';\n if (value.startsWith('{{') && value.endsWith('}}')) {\n const script = value.slice(2, -2).trim();\n const result = FunctionUtils.executeReturn({\n script,\n context: node,\n args: groupArgs\n });\n node.setAttribute(attr.name, String(result));\n }\n });\n }\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n this._nodeGroups.push(nodes);\n fragment.appendChild(clone);\n });\n }\n\n if (portal === this.parentElement) {\n portal.insertBefore(fragment, this.nextSibling);\n } else {\n portal.appendChild(fragment);\n }\n }\n\n connectedCallback() {\n this.refreshValue();\n }\n disconnectedCallback() {\n this._cleanup();\n }\n }\n\n @elementDefine('swc-choose', { extends: 'template', window: w })\n class SwcChoose extends HTMLTemplateElement {\n private _nodes: Node[] = [];\n private _value: any = null;\n private _previousTemplate: HTMLTemplateElement | null = null;\n\n get value(): any {\n return this._value;\n }\n set value(nv: any) {\n this._value = nv;\n this.render();\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('value')\n refresh(valueAttr?: string | null) {\n valueAttr ??= this.getAttribute('value');\n if (valueAttr === null) {\n this.value = null;\n return;\n }\n\n // {{ }} 브레이스로 감싸진 값은 스크립트 실행\n if (valueAttr.startsWith('{{') && valueAttr.endsWith('}}')) {\n const script = valueAttr.slice(2, -2).trim();\n const win = this.ownerDocument?.defaultView || window;\n const helperAndHostSet = SwcUtils.getHelperAndHostSet(win, SwcUtils.findNearestSwcHost(this));\n // console.log('vvvvvvvvvvvvvvvvvv323', helperAndHostSet);\n const result = FunctionUtils.executeReturn({ script, context: this, args: helperAndHostSet });\n this.value = result;\n // console.log('----------vv', this.value);\n } else {\n // 일반 문자열 값\n this.value = valueAttr;\n }\n }\n\n private render() {\n // console.log('-------------', this.value);\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n const templates = Array.from(this.content.querySelectorAll('template'));\n let selected: HTMLTemplateElement | null = null;\n\n for (const t of templates) {\n if (t.getAttribute('is') === 'swc-when') {\n let matches = false;\n const value = t.getAttribute('value') || '';\n\n // {{ }} 브레이스로 감싸진 값은 스크립트 실행\n if (value.startsWith('{{') && value.endsWith('}}')) {\n const script = value.slice(2, -2).trim();\n const result = FunctionUtils.executeReturn({\n script,\n context: t,\n args: { ...helperSet, $value: this._value }\n });\n // console.log('rrrrrrrrrrrrrr', result);\n matches = result === true;\n } else {\n // 일반 문자열 비교 (기존 방식)\n matches = String(value) === String(this._value);\n }\n\n if (matches) {\n selected = t;\n break;\n }\n }\n }\n\n const target = selected || (this.content.querySelector('template[is=\"swc-otherwise\"]') as HTMLTemplateElement);\n\n // skip-if-same attribute가 있고 이전과 같은 template이면 렌더링 스킵\n // 최상위 skip-if-same 또는 각 when/otherwise의 skip-if-same 체크\n const targetHasSkipIfSame = target?.hasAttribute('skip-if-same');\n const shouldSkip = (this.hasAttribute('skip-if-same') || targetHasSkipIfSame) && this._previousTemplate === target;\n if (shouldSkip) {\n return;\n }\n\n this.cleanup();\n this._previousTemplate = target;\n\n if (target) {\n const clone = target.content.cloneNode(true) as DocumentFragment;\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };\n\n // 복제된 최상위 요소들은 SwcChoose의 직접 자식이 될 것이므로 __swc_host 설정 안 함\n this._nodes.forEach((n, nodeIdx) => {\n // if (n instanceof HTMLElement) (n as any).__swc_host = this; // 제거: 부모 체인 유지\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });\n\n // Attribute {{ }} 치환 - HTML string 차원에서 동적 치환\n if (n instanceof HTMLElement) {\n Array.from(n.attributes).forEach(attr => {\n const value = attr.value || '';\n if (value.startsWith('{{') && value.endsWith('}}')) {\n const script = value.slice(2, -2).trim();\n const result = FunctionUtils.executeReturn({\n script,\n context: n,\n args: { ...groupArgs, $value: this._value }\n });\n n.setAttribute(attr.name, String(result));\n }\n });\n }\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n this.parentElement?.insertBefore(clone, this.nextSibling);\n // if (portal === this.parentElement) {\n // portal.insertBefore(clone, this.nextSibling);\n // } else {\n // portal.appendChild(clone);\n // }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-async', { extends: 'template', window: w })\n class SwcAsync extends HTMLTemplateElement {\n private _nodes: Node[] = [];\n private _value: any = null;\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('value')\n private refresh(valueAttr?: string | null) {\n valueAttr ??= this.getAttribute('value');\n if (!valueAttr) {\n this.render('default');\n return;\n }\n\n // {{ }} 브레이스로 감싸진 값은 스크립트 실행\n if (valueAttr.startsWith('{{') && valueAttr.endsWith('}}')) {\n const script = valueAttr.slice(2, -2).trim();\n const win = this.ownerDocument?.defaultView || window;\n const result = FunctionUtils.executeReturn({ \n script, \n context: this, \n args: SwcUtils.getHelperAndHostSet(win, this) \n });\n\n this.executeAsync(result);\n } else {\n // 일반 문자열 값 또는 직접 Promise 속성\n this.executeAsync(valueAttr);\n }\n }\n\n private executeAsync(result: any) {\n if (result instanceof Promise) {\n this.render('loading');\n result\n .then(v => {\n this._value = v;\n this.render('success');\n })\n .catch(e => this.render('error'));\n } else {\n this._value = result;\n this.render('success');\n }\n }\n\n private render(state: string) {\n this.cleanup();\n const portal = this.parentElement;\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n const t = this.content.querySelector(`template[is=\"swc-${state}\"]`) as HTMLTemplateElement;\n if (t) {\n const clone = t.content.cloneNode(true) as DocumentFragment;\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0], $state: state };\n\n // 부모 체인을 정상적으로 유지하기 위해 __swc_host 할당 제거\n this._nodes.forEach((n, nodeIdx) => {\n // if (n instanceof HTMLElement) (n as any).__swc_host = this; // 제거: 부모 체인 유지\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });\n\n // Attribute {{ }} 치환 - SwcChoose처럼 동적 치환\n if (n instanceof HTMLElement) {\n Array.from(n.attributes).forEach(attr => {\n const value = attr.value || '';\n if (value.startsWith('{{') && value.endsWith('}}')) {\n const script = value.slice(2, -2).trim();\n const result = FunctionUtils.executeReturn({\n script,\n context: n,\n args: groupArgs\n });\n n.setAttribute(attr.name, String(result));\n }\n });\n }\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n portal.insertBefore(clone, this.nextSibling);\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n // --- \"is\" Elements ---\n @elementDefine('swc-app-a', { extends: 'a', window: w })\n class SwcAppAnchor extends SwcAppMixin(HTMLAnchorElement) {}\n\n @elementDefine('swc-app-area', { extends: 'area', window: w })\n class SwcAppArea extends SwcAppMixin(HTMLAreaElement) {}\n\n @elementDefine('swc-app-audio', { extends: 'audio', window: w })\n class SwcAppAudio extends SwcAppMixin(HTMLAudioElement) {}\n\n @elementDefine('swc-app-base', { extends: 'base', window: w })\n class SwcAppBase extends SwcAppMixin(HTMLBaseElement) {}\n\n @elementDefine('swc-app-button', { extends: 'button', window: w })\n class SwcAppButton extends SwcAppMixin(HTMLButtonElement) {}\n\n @elementDefine('swc-app-canvas', { extends: 'canvas', window: w })\n class SwcAppCanvas extends SwcAppMixin(HTMLCanvasElement) {}\n\n @elementDefine('swc-app-data', { extends: 'data', window: w })\n class SwcAppData extends SwcAppMixin(HTMLDataElement) {}\n\n @elementDefine('swc-app-datalist', { extends: 'datalist', window: w })\n class SwcAppDataList extends SwcAppMixin(HTMLDataListElement) {}\n\n @elementDefine('swc-app-details', { extends: 'details', window: w })\n class SwcAppDetails extends SwcAppMixin(HTMLDetailsElement) {}\n\n @elementDefine('swc-app-dialog', { extends: 'dialog', window: w })\n class SwcAppDialog extends SwcAppMixin(HTMLDialogElement) {}\n\n @elementDefine('swc-app-div', { extends: 'div', window: w })\n class SwcAppDiv extends SwcAppMixin(HTMLDivElement) {}\n\n @elementDefine('swc-app-dl', { extends: 'dl', window: w })\n class SwcAppDList extends SwcAppMixin(HTMLDListElement) {}\n\n @elementDefine('swc-app-embed', { extends: 'embed', window: w })\n class SwcAppEmbed extends SwcAppMixin(HTMLEmbedElement) {}\n\n @elementDefine('swc-app-fieldset', { extends: 'fieldset', window: w })\n class SwcAppFieldSet extends SwcAppMixin(HTMLFieldSetElement) {}\n\n @elementDefine('swc-app-form', { extends: 'form', window: w })\n class SwcAppForm extends SwcAppMixin(HTMLFormElement) {}\n\n @elementDefine('swc-app-hr', { extends: 'hr', window: w })\n class SwcAppHR extends SwcAppMixin(HTMLHRElement) {}\n\n @elementDefine('swc-app-iframe', { extends: 'iframe', window: w })\n class SwcAppIFrame extends SwcAppMixin(HTMLIFrameElement) {}\n\n @elementDefine('swc-app-img', { extends: 'img', window: w })\n class SwcAppImage extends SwcAppMixin(HTMLImageElement) {}\n\n @elementDefine('swc-app-input', { extends: 'input', window: w })\n class SwcAppInput extends SwcAppMixin(HTMLInputElement) {}\n\n @elementDefine('swc-app-label', { extends: 'label', window: w })\n class SwcAppLabel extends SwcAppMixin(HTMLLabelElement) {}\n\n @elementDefine('swc-app-legend', { extends: 'legend', window: w })\n class SwcAppLegend extends SwcAppMixin(HTMLLegendElement) {}\n\n @elementDefine('swc-app-li', { extends: 'li', window: w })\n class SwcAppLI extends SwcAppMixin(HTMLLIElement) {}\n\n @elementDefine('swc-app-link', { extends: 'link', window: w })\n class SwcAppLink extends SwcAppMixin(HTMLLinkElement) {}\n\n @elementDefine('swc-app-map', { extends: 'map', window: w })\n class SwcAppMap extends SwcAppMixin(HTMLMapElement) {}\n\n @elementDefine('swc-app-meta', { extends: 'meta', window: w })\n class SwcAppMeta extends SwcAppMixin(HTMLMetaElement) {}\n\n @elementDefine('swc-app-meter', { extends: 'meter', window: w })\n class SwcAppMeter extends SwcAppMixin(HTMLMeterElement) {}\n\n @elementDefine('swc-app-del', { extends: 'del', window: w })\n class SwcAppMod extends SwcAppMixin(HTMLModElement) {}\n\n @elementDefine('swc-app-object', { extends: 'object', window: w })\n class SwcAppObject extends SwcAppMixin(HTMLObjectElement) {}\n\n @elementDefine('swc-app-ol', { extends: 'ol', window: w })\n class SwcAppOList extends SwcAppMixin(HTMLOListElement) {}\n\n @elementDefine('swc-app-optgroup', { extends: 'optgroup', window: w })\n class SwcAppOptGroup extends SwcAppMixin(HTMLOptGroupElement) {}\n\n @elementDefine('swc-app-option', { extends: 'option', window: w })\n class SwcAppOption extends SwcAppMixin(HTMLOptionElement) {}\n\n @elementDefine('swc-app-output', { extends: 'output', window: w })\n class SwcAppOutput extends SwcAppMixin(HTMLOutputElement) {}\n\n @elementDefine('swc-app-p', { extends: 'p', window: w })\n class SwcAppParagraph extends SwcAppMixin(HTMLParagraphElement) {}\n\n @elementDefine('swc-app-param', { extends: 'param', window: w })\n class SwcAppParam extends SwcAppMixin(HTMLParamElement) {}\n\n @elementDefine('swc-app-picture', { extends: 'picture', window: w })\n class SwcAppPicture extends SwcAppMixin(HTMLPictureElement) {}\n\n @elementDefine('swc-app-pre', { extends: 'pre', window: w })\n class SwcAppPre extends SwcAppMixin(HTMLPreElement) {}\n\n @elementDefine('swc-app-progress', { extends: 'progress', window: w })\n class SwcAppProgress extends SwcAppMixin(HTMLProgressElement) {}\n\n @elementDefine('swc-app-blockquote', { extends: 'blockquote', window: w })\n class SwcAppQuote extends SwcAppMixin(HTMLQuoteElement) {}\n\n @elementDefine('swc-app-script', { extends: 'script', window: w })\n class SwcAppScript extends SwcAppMixin(HTMLScriptElement) {}\n\n @elementDefine('swc-app-select', { extends: 'select', window: w })\n class SwcAppSelect extends SwcAppMixin(HTMLSelectElement) {}\n\n @elementDefine('swc-app-slot', { extends: 'slot', window: w })\n class SwcAppSlot extends SwcAppMixin(HTMLSlotElement) {}\n\n @elementDefine('swc-app-source', { extends: 'source', window: w })\n class SwcAppSource extends SwcAppMixin(HTMLSourceElement) {}\n\n @elementDefine('swc-app-span', { extends: 'span', window: w })\n class SwcAppSpan extends SwcAppMixin(HTMLSpanElement) {}\n\n @elementDefine('swc-app-style', { extends: 'style', window: w })\n class SwcAppStyle extends SwcAppMixin(HTMLStyleElement) {}\n\n @elementDefine('swc-app-table', { extends: 'table', window: w })\n class SwcAppTable extends SwcAppMixin(HTMLTableElement) {}\n\n @elementDefine('swc-app-tbody', { extends: 'tbody', window: w })\n class SwcAppTableSection extends SwcAppMixin(HTMLTableSectionElement) {}\n\n @elementDefine('swc-app-td', { extends: 'td', window: w })\n class SwcAppTableCell extends SwcAppMixin(HTMLTableCellElement) {}\n\n @elementDefine('swc-app-template', { extends: 'template', window: w })\n class SwcAppTemplate extends SwcAppMixin(HTMLTemplateElement) {}\n\n @elementDefine('swc-app-textarea', { extends: 'textarea', window: w })\n class SwcAppTextArea extends SwcAppMixin(HTMLTextAreaElement) {}\n\n @elementDefine('swc-app-time', { extends: 'time', window: w })\n class SwcAppTime extends SwcAppMixin(HTMLTimeElement) {}\n\n @elementDefine('swc-app-title', { extends: 'title', window: w })\n class SwcAppTitle extends SwcAppMixin(HTMLTitleElement) {}\n\n @elementDefine('swc-app-tr', { extends: 'tr', window: w })\n class SwcAppTableRow extends SwcAppMixin(HTMLTableRowElement) {}\n\n @elementDefine('swc-app-track', { extends: 'track', window: w })\n class SwcAppTrack extends SwcAppMixin(HTMLTrackElement) {}\n\n @elementDefine('swc-app-ul', { extends: 'ul', window: w })\n class SwcAppUList extends SwcAppMixin(HTMLUListElement) {}\n\n @elementDefine('swc-app-video', { extends: 'video', window: w })\n class SwcAppVideo extends SwcAppMixin(HTMLVideoElement) {}\n\n @elementDefine('swc-app-h1', { extends: 'h1', window: w })\n class SwcAppHeading extends SwcAppMixin(HTMLHeadingElement) {}\n\n @elementDefine('swc-app-body', { extends: 'body', window: w })\n class SwcAppBody extends SwcAppMixin(HTMLBodyElement) {}\n\n\n return {\n // Sub Templates\n SwcLoading,\n SwcError,\n SwcSuccess,\n SwcWhen,\n SwcOtherwise,\n SwcDefault,\n // Core Elements\n SwcApp,\n SwcIf,\n SwcLoop,\n SwcChoose,\n SwcAsync,\n // App Elements\n SwcAppAnchor,\n SwcAppArea,\n SwcAppAudio,\n SwcAppBase,\n SwcAppButton,\n SwcAppCanvas,\n SwcAppData,\n SwcAppDataList,\n SwcAppDetails,\n SwcAppDialog,\n SwcAppDiv,\n SwcAppDList,\n SwcAppEmbed,\n SwcAppFieldSet,\n SwcAppForm,\n SwcAppHR,\n SwcAppIFrame,\n SwcAppImage,\n SwcAppInput,\n SwcAppLabel,\n SwcAppLegend,\n SwcAppLI,\n SwcAppLink,\n SwcAppMap,\n SwcAppMeta,\n SwcAppMeter,\n SwcAppMod,\n SwcAppObject,\n SwcAppOList,\n SwcAppOptGroup,\n SwcAppOption,\n SwcAppOutput,\n SwcAppParagraph,\n SwcAppParam,\n SwcAppPicture,\n SwcAppPre,\n SwcAppProgress,\n SwcAppQuote,\n SwcAppScript,\n SwcAppSelect,\n SwcAppSlot,\n SwcAppSource,\n SwcAppSpan,\n SwcAppStyle,\n SwcAppTable,\n SwcAppTableSection,\n SwcAppTableCell,\n SwcAppTemplate,\n SwcAppTextArea,\n SwcAppTime,\n SwcAppTitle,\n SwcAppTableRow,\n SwcAppTrack,\n SwcAppUList,\n SwcAppVideo,\n SwcAppHeading,\n SwcAppBody,\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,16 +2,9 @@ import { Router } from "@dooboostore/core-web";
|
|
|
2
2
|
import { UrlUtils } from "@dooboostore/core";
|
|
3
3
|
class ElementRouter extends Router {
|
|
4
4
|
constructor(config) {
|
|
5
|
-
|
|
6
|
-
super(rest);
|
|
5
|
+
super(config);
|
|
7
6
|
this._history = [];
|
|
8
7
|
this._currentIndex = -1;
|
|
9
|
-
const startUrl = firstUrl ?? "/";
|
|
10
|
-
this._history = [{ url: startUrl, data: null }];
|
|
11
|
-
this._currentIndex = 0;
|
|
12
|
-
if (firstUrl) {
|
|
13
|
-
this.replace(firstUrl, { config: { noEventAndPublish: true } });
|
|
14
|
-
}
|
|
15
8
|
}
|
|
16
9
|
// Override pushState to manage internal history
|
|
17
10
|
pushState(data, title, path, config) {
|