@dooboostore/simple-web-component 1.0.43 → 1.0.45
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 +312 -63
- package/dist/cjs/SwcAppEngine.js +3 -1
- package/dist/cjs/SwcAppEngine.js.map +2 -2
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/applyAttribute.js +66 -43
- package/dist/cjs/decorators/applyAttribute.js.map +2 -2
- package/dist/cjs/decorators/applyClass.js +110 -43
- package/dist/cjs/decorators/applyClass.js.map +3 -3
- package/dist/cjs/decorators/applyNode.js +200 -112
- package/dist/cjs/decorators/applyNode.js.map +2 -2
- package/dist/cjs/decorators/applyProperty.js +49 -45
- package/dist/cjs/decorators/applyProperty.js.map +2 -2
- package/dist/cjs/decorators/applyStyle.js +92 -37
- package/dist/cjs/decorators/applyStyle.js.map +3 -3
- package/dist/cjs/decorators/{changedAttributeThis.js → changedAttribute.js} +6 -6
- package/dist/cjs/decorators/changedAttribute.js.map +7 -0
- package/dist/cjs/decorators/elementDefine.js +81 -31
- package/dist/cjs/decorators/elementDefine.js.map +3 -3
- package/dist/cjs/decorators/emitCustomEvent.js +80 -52
- package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
- package/dist/cjs/decorators/index.js +1 -1
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/publishSwcAppMessage.js +5 -5
- package/dist/cjs/decorators/publishSwcAppMessage.js.map +3 -3
- package/dist/cjs/decorators/query.js +133 -147
- package/dist/cjs/decorators/query.js.map +3 -3
- package/dist/cjs/decorators/queryAll.js +143 -132
- package/dist/cjs/decorators/queryAll.js.map +3 -3
- package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js +2 -0
- package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js.map +2 -2
- package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js +2 -0
- package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
- package/dist/cjs/elements/SwcAppMixin.js +17 -2
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/cjs/examples/RxJSOperatorsExample.js +285 -0
- package/dist/cjs/examples/RxJSOperatorsExample.js.map +7 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/router/ElementRouter.js +4 -0
- package/dist/cjs/router/ElementRouter.js.map +2 -2
- package/dist/cjs/types/window.d.js.map +1 -1
- package/dist/esm/SwcAppEngine.js +3 -1
- package/dist/esm/SwcAppEngine.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/applyAttribute.js +66 -43
- package/dist/esm/decorators/applyAttribute.js.map +2 -2
- package/dist/esm/decorators/applyClass.js +110 -43
- package/dist/esm/decorators/applyClass.js.map +3 -3
- package/dist/esm/decorators/applyNode.js +200 -112
- package/dist/esm/decorators/applyNode.js.map +2 -2
- package/dist/esm/decorators/applyProperty.js +49 -45
- package/dist/esm/decorators/applyProperty.js.map +2 -2
- package/dist/esm/decorators/applyStyle.js +92 -37
- package/dist/esm/decorators/applyStyle.js.map +3 -3
- package/dist/esm/decorators/{changedAttributeThis.js → changedAttribute.js} +3 -3
- package/dist/esm/decorators/changedAttribute.js.map +7 -0
- package/dist/esm/decorators/elementDefine.js +79 -29
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/emitCustomEvent.js +80 -52
- package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
- package/dist/esm/decorators/index.js +1 -1
- package/dist/esm/decorators/index.js.map +1 -1
- package/dist/esm/decorators/publishSwcAppMessage.js +5 -5
- package/dist/esm/decorators/publishSwcAppMessage.js.map +3 -3
- package/dist/esm/decorators/query.js +133 -147
- package/dist/esm/decorators/query.js.map +3 -3
- package/dist/esm/decorators/queryAll.js +143 -132
- package/dist/esm/decorators/queryAll.js.map +3 -3
- package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js +2 -0
- package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js.map +2 -2
- package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js +2 -0
- package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js +18 -3
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/examples/RxJSOperatorsExample.js +266 -0
- package/dist/esm/examples/RxJSOperatorsExample.js.map +7 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/router/ElementRouter.js +4 -0
- package/dist/esm/router/ElementRouter.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +1118 -633
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/SwcAppEngine.d.ts.map +1 -1
- package/dist/types/decorators/addEventListener.d.ts +19 -15
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/applyAttribute.d.ts +45 -26
- package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
- package/dist/types/decorators/applyClass.d.ts +19 -38
- package/dist/types/decorators/applyClass.d.ts.map +1 -1
- package/dist/types/decorators/applyNode.d.ts +175 -32
- package/dist/types/decorators/applyNode.d.ts.map +1 -1
- package/dist/types/decorators/applyProperty.d.ts +38 -25
- package/dist/types/decorators/applyProperty.d.ts.map +1 -1
- package/dist/types/decorators/applyStyle.d.ts +10 -9
- package/dist/types/decorators/applyStyle.d.ts.map +1 -1
- package/dist/types/decorators/{changedAttributeThis.d.ts → changedAttribute.d.ts} +2 -2
- package/dist/types/decorators/changedAttribute.d.ts.map +1 -0
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts +6 -12
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +1 -1
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/publishSwcAppMessage.d.ts +1 -1
- package/dist/types/decorators/publishSwcAppMessage.d.ts.map +1 -1
- package/dist/types/decorators/query.d.ts +16 -29
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/queryAll.d.ts +16 -23
- package/dist/types/decorators/queryAll.d.ts.map +1 -1
- package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts +1 -0
- package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts.map +1 -1
- package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts +2 -0
- package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts +4 -4
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/types/examples/RxJSOperatorsExample.d.ts +94 -0
- package/dist/types/examples/RxJSOperatorsExample.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/router/ElementRouter.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +1118 -633
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +1 -1
- package/src/SwcAppEngine.ts +3 -1
- package/src/decorators/addEventListener.ts +31 -25
- package/src/decorators/applyAttribute.ts +164 -86
- package/src/decorators/applyClass.ts +161 -41
- package/src/decorators/applyNode.ts +408 -108
- package/src/decorators/applyProperty.ts +100 -89
- package/src/decorators/applyStyle.ts +131 -37
- package/src/decorators/{changedAttributeThis.ts → changedAttribute.ts} +1 -1
- package/src/decorators/elementDefine.ts +96 -30
- package/src/decorators/emitCustomEvent.ts +92 -60
- package/src/decorators/index.ts +1 -1
- package/src/decorators/publishSwcAppMessage.ts +1 -1
- package/src/decorators/query.ts +155 -162
- package/src/decorators/queryAll.ts +157 -139
- package/src/decorators/subscribeSwcAppMessageWhileConnected.ts +1 -0
- package/src/decorators/subscribeSwcAppRouteChangeWhileConnected.ts +3 -1
- package/src/elements/SwcAppMixin.ts +43 -24
- package/src/examples/RxJSOperatorsExample.ts +279 -0
- package/src/index.ts +2 -0
- package/src/router/ElementRouter.ts +4 -0
- package/src/types/window.d.ts +3 -0
- package/dist/cjs/decorators/changedAttributeThis.js.map +0 -7
- package/dist/esm/decorators/changedAttributeThis.js.map +0 -7
- package/dist/types/decorators/changedAttributeThis.d.ts.map +0 -1
|
@@ -24,10 +24,12 @@ __export(elementDefine_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(elementDefine_exports);
|
|
26
26
|
var import_core = require("@dooboostore/core");
|
|
27
|
+
var import_core2 = require("@dooboostore/core");
|
|
28
|
+
var import_operators = require("@dooboostore/core/message/operators");
|
|
27
29
|
var import_addEventListener = require("./addEventListener");
|
|
28
30
|
var import_lifecycles = require("./lifecycles");
|
|
29
31
|
var import_emitCustomEvent = require("./emitCustomEvent");
|
|
30
|
-
var
|
|
32
|
+
var import_changedAttribute = require("./changedAttribute");
|
|
31
33
|
var import_applyAttribute = require("./applyAttribute");
|
|
32
34
|
var import_query = require("./query");
|
|
33
35
|
var import_queryAll = require("./queryAll");
|
|
@@ -250,7 +252,7 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
250
252
|
const emitCustomEventList = (0, import_emitCustomEvent.getEmitCustomEventMetadataList)(constructor) || [];
|
|
251
253
|
const emitHostCustomEventList = emitCustomEventList.filter((meta) => meta.selector === "$this" || meta.selector === "");
|
|
252
254
|
const addEventListenerList = (0, import_addEventListener.getAddEventListenerMetadata)(constructor) || [];
|
|
253
|
-
const attrChangeMap = (0,
|
|
255
|
+
const attrChangeMap = (0, import_changedAttribute.findAllAttributeChangedMetadata)(constructor);
|
|
254
256
|
const attributeList = (0, import_applyAttribute.findAllAttributeMetadata)(constructor);
|
|
255
257
|
const applyAttributeMap = (0, import_applyAttribute.findAllAttributeApplyMetadata)(constructor);
|
|
256
258
|
const swcLifecycleAttributes = ["swc-on-constructor", "swc-on-connected", "swc-on-disconnected", "swc-on-before-connected", "swc-on-after-connected", "swc-on-before-disconnected", "swc-on-after-disconnected", "swc-on-before-adopted", "swc-on-after-adopted", "swc-on-attribute-changed"];
|
|
@@ -337,7 +339,8 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
337
339
|
const delegateListeners = [];
|
|
338
340
|
const nonDelegateListeners = [];
|
|
339
341
|
addEventListenerList.forEach((meta) => {
|
|
340
|
-
|
|
342
|
+
const isStringSelector = typeof meta.selector === "string";
|
|
343
|
+
if (meta.options.delegate && isStringSelector && meta.selector !== "$window" && meta.selector !== "$document" && meta.selector !== "$host" && meta.selector !== "$appHost" && meta.selector !== "$firstHost" && meta.selector !== "$lastHost" && meta.selector !== "$firstAppHost" && meta.selector !== "$lastAppHost" && meta.selector !== "$hosts" && meta.selector !== "$appHosts" && meta.selector !== "$this" && meta.selector !== "") {
|
|
341
344
|
delegateListeners.push(meta);
|
|
342
345
|
} else {
|
|
343
346
|
nonDelegateListeners.push(meta);
|
|
@@ -400,6 +403,22 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
400
403
|
const opts = { capture: options.capture, once: options.once, passive: options.passive };
|
|
401
404
|
const bindTargets = [];
|
|
402
405
|
const r = options.root || "auto";
|
|
406
|
+
let resolvedSelector = null;
|
|
407
|
+
if (typeof selector === "function") {
|
|
408
|
+
const hostSet = import_Utils.SwcUtils.getHelperAndHostSet(currentWin, this);
|
|
409
|
+
const result = selector(this, hostSet);
|
|
410
|
+
if (typeof result === "string") {
|
|
411
|
+
resolvedSelector = result;
|
|
412
|
+
} else if (result instanceof currentWin.Element) {
|
|
413
|
+
bindTargets.push(result);
|
|
414
|
+
} else if (result instanceof currentWin.NodeList) {
|
|
415
|
+
bindTargets.push(...Array.from(result));
|
|
416
|
+
} else if (Array.isArray(result)) {
|
|
417
|
+
bindTargets.push(...result);
|
|
418
|
+
}
|
|
419
|
+
} else {
|
|
420
|
+
resolvedSelector = selector;
|
|
421
|
+
}
|
|
403
422
|
const applyRootOption = (target) => {
|
|
404
423
|
if (!target) return;
|
|
405
424
|
if (r === "auto") {
|
|
@@ -409,30 +428,32 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
409
428
|
if ((r === "shadow" || r === "all") && target.shadowRoot) bindTargets.push(target.shadowRoot);
|
|
410
429
|
}
|
|
411
430
|
};
|
|
412
|
-
if (
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
431
|
+
if (resolvedSelector) {
|
|
432
|
+
if (resolvedSelector === "$window") bindTargets.push(currentWin);
|
|
433
|
+
else if (resolvedSelector === "$document") bindTargets.push(currentWin.document);
|
|
434
|
+
else if (resolvedSelector === "$host") applyRootOption(helperHostSet.$host);
|
|
435
|
+
else if (resolvedSelector === "$parentHost") applyRootOption(helperHostSet.$parentHost);
|
|
436
|
+
else if (resolvedSelector === "$appHost") applyRootOption(helperHostSet.$appHost);
|
|
437
|
+
else if (resolvedSelector === "$firstHost") applyRootOption(helperHostSet.$firstHost);
|
|
438
|
+
else if (resolvedSelector === "$lastHost") applyRootOption(helperHostSet.$lastHost);
|
|
439
|
+
else if (resolvedSelector === "$firstAppHost") applyRootOption(helperHostSet.$firstAppHost);
|
|
440
|
+
else if (resolvedSelector === "$lastAppHost") applyRootOption(helperHostSet.$lastAppHost);
|
|
441
|
+
else if (resolvedSelector === "$hosts") helperHostSet.$hosts.forEach(applyRootOption);
|
|
442
|
+
else if (resolvedSelector === "$appHosts") helperHostSet.$appHosts.forEach(applyRootOption);
|
|
443
|
+
else if (resolvedSelector === "$this" || !resolvedSelector) applyRootOption(this);
|
|
444
|
+
else {
|
|
445
|
+
const searchRoots = [];
|
|
446
|
+
if (r === "auto") searchRoots.push(this.shadowRoot || this);
|
|
447
|
+
else if (r === "light") searchRoots.push(this);
|
|
448
|
+
else if (r === "shadow" && this.shadowRoot) searchRoots.push(this.shadowRoot);
|
|
449
|
+
else if (r === "all") {
|
|
450
|
+
searchRoots.push(this);
|
|
451
|
+
if (this.shadowRoot) searchRoots.push(this.shadowRoot);
|
|
452
|
+
}
|
|
453
|
+
searchRoots.forEach((sr) => {
|
|
454
|
+
sr.querySelectorAll(resolvedSelector).forEach((el) => bindTargets.push(el));
|
|
455
|
+
});
|
|
432
456
|
}
|
|
433
|
-
searchRoots.forEach((sr) => {
|
|
434
|
-
sr.querySelectorAll(selector).forEach((el) => bindTargets.push(el));
|
|
435
|
-
});
|
|
436
457
|
}
|
|
437
458
|
bindTargets.forEach((t) => {
|
|
438
459
|
const handler = async (event) => {
|
|
@@ -447,10 +468,34 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
447
468
|
if (options.preventDefault) event.preventDefault();
|
|
448
469
|
const currentHostSet = import_Utils.SwcUtils.getHostSet(this);
|
|
449
470
|
const args = { event, ...currentHostSet, $el: t, $root: t };
|
|
450
|
-
await this[meta.propertyKey](event, { currentHostSet,
|
|
471
|
+
await this[meta.propertyKey](event, { currentHostSet, $matchedElement: event.currentTarget }, args);
|
|
472
|
+
};
|
|
473
|
+
const eventSubject = new import_core2.Subject();
|
|
474
|
+
let eventStream = eventSubject;
|
|
475
|
+
if (options.debounceTime !== void 0 && options.debounceTime > 0) {
|
|
476
|
+
eventStream = eventStream.pipe((0, import_operators.debounceTime)(options.debounceTime));
|
|
477
|
+
}
|
|
478
|
+
if (options.throttleTime !== void 0 && options.throttleTime > 0) {
|
|
479
|
+
eventStream = eventStream.pipe((0, import_operators.throttleTime)(options.throttleTime));
|
|
480
|
+
}
|
|
481
|
+
if (options.distinctUntilChanged !== void 0 && options.distinctUntilChanged !== false) {
|
|
482
|
+
if (typeof options.distinctUntilChanged === "function") {
|
|
483
|
+
eventStream = eventStream.pipe((0, import_operators.distinctUntilChanged)(options.distinctUntilChanged));
|
|
484
|
+
} else {
|
|
485
|
+
eventStream = eventStream.pipe((0, import_operators.distinctUntilChanged)());
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
const subscription = eventStream.subscribe({
|
|
489
|
+
next: (event) => {
|
|
490
|
+
handler(event).catch((err) => console.error("Event handler error:", err));
|
|
491
|
+
},
|
|
492
|
+
error: (err) => console.error("Event stream error:", err)
|
|
493
|
+
});
|
|
494
|
+
const wrappedHandler = (event) => {
|
|
495
|
+
eventSubject.next(event);
|
|
451
496
|
};
|
|
452
|
-
t.addEventListener(type,
|
|
453
|
-
this._boundListeners.push({ target: t, type, handler, options: opts });
|
|
497
|
+
t.addEventListener(type, wrappedHandler, opts);
|
|
498
|
+
this._boundListeners.push({ target: t, type, handler: wrappedHandler, options: opts, subscription });
|
|
454
499
|
});
|
|
455
500
|
});
|
|
456
501
|
if (originalConnected) await originalConnected.apply(this);
|
|
@@ -490,7 +535,12 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
490
535
|
const bMethods = (0, import_lifecycles.findAllLifecycleMetadata)(this, import_lifecycles.ON_BEFORE_DISCONNECTED_METADATA_KEY);
|
|
491
536
|
for (const m of bMethods) this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
492
537
|
if (this._boundListeners) {
|
|
493
|
-
this._boundListeners.forEach((l) =>
|
|
538
|
+
this._boundListeners.forEach((l) => {
|
|
539
|
+
l.target.removeEventListener(l.type, l.handler, l.options);
|
|
540
|
+
if (l.subscription && typeof l.subscription.unsubscribe === "function") {
|
|
541
|
+
l.subscription.unsubscribe();
|
|
542
|
+
}
|
|
543
|
+
});
|
|
494
544
|
this._boundListeners = [];
|
|
495
545
|
}
|
|
496
546
|
new import_core_web.ElementApply(this, { id: this._swcId }).removeAllEventListener();
|
|
@@ -554,7 +604,7 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
554
604
|
if (meta.options.while === "connected" && !this.__swc_connected) {
|
|
555
605
|
continue;
|
|
556
606
|
}
|
|
557
|
-
const convertedVal = (0,
|
|
607
|
+
const convertedVal = (0, import_changedAttribute.convertAttributeValue)(processedVal, meta.options.type);
|
|
558
608
|
this[meta.propertyKey](convertedVal, old, name2, hSet);
|
|
559
609
|
}
|
|
560
610
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/elementDefine.ts"],
|
|
4
|
-
"sourcesContent": ["import {ActionExpression, FunctionUtils, ReflectUtils} from '@dooboostore/core';\nimport {getAddEventListenerMetadata} from './addEventListener';\nimport {findAllLifecycleMetadata, findAllOnConnectedAfterMetadata, findAllOnConnectedBeforeMetadata, findAllOnConnectedMetadata, ON_AFTER_ADOPTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_CONNECTED_COMPLETED_METADATA_KEY, ON_INITIALIZE_METADATA_KEY} from './lifecycles';\nimport {getEmitCustomEventMetadataList} from './emitCustomEvent';\nimport {convertAttributeValue, findAllAttributeChangedMetadata} from './changedAttributeThis';\nimport {findAllAttributeApplyMetadata, findAllAttributeMetadata, getAttributeValue} from './applyAttribute';\nimport {getQueryMetadata} from './query';\nimport {getQueryAllMetadata} from './queryAll';\nimport {SwcUtils} from '../utils/Utils';\nimport {DOM_EVENT_NAMES, HTML_TAG_ENTRIES} from '../config/config';\nimport {SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport {HelperHostSet, HostSet, InjectSituationType} from '../types';\nimport {ConvertUtils, ElementApply, NodeSlot} from '@dooboostore/core-web';\nimport {isSSR} from \"../elements/SwcAppMixin\";\nimport {findAllApplySlotMetadata} from \"./applySlot\";\nimport {findAllStateMetadata} from \"./state\";\nimport {findAllPropertyMetadata} from \"./applyProperty\";\n\n// --- Core Interfaces & Types ---\n\nexport const ELEMENT_CONFIG_KEY = Symbol.for('simple-web-component:element-config');\n\nexport interface ElementConfig {\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: any;\n window?: Window;\n useShadow?: boolean | 'open' | 'closed';\n}\n\nexport interface ElementMetadata extends Omit<ElementConfig, 'window'> {\n name: string;\n window: Window;\n}\n\nexport const getElementConfig = (target: any): ElementMetadata | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n\nexport const ensureInit = (inst: any) => { // HTMLElement\n if (!inst.__swc_initialized) {\n inst._swcId = inst?.getAttribute?.('swc-use-ssr') ?? 's' + Math.random().toString(36).substring(2, 11).toLowerCase();\n inst._emitHandlers = new Map();\n inst._boundListeners = [];\n inst.__swc_initialized = true;\n // const attributeList = findAllQ(inst);\n // attributeList.forEach(meta => {\n // delete (inst as any)[meta.propertyKey];\n // });\n\n const target = inst instanceof Function ? inst : inst.constructor;\n\n // \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n // \u2551 decorator \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2551\n // \u2551 \u2551\n // \u2551 \uC774\uC720: own property\uAC00 \uC788\uC73C\uBA74 prototype\uC758 getter/setter\uB294 \uC808\uB300 \uC548 \uD0C4\uB2E4 \u2551\n // \u2551 1. TypeScript\uB294 \uCD08\uAE30\uAC12\uC774 \uC788\uB294 \uD544\uB4DC\uB97C constructor\uC5D0\uC11C own property\uB85C \uC0DD\uC131 \u2551\n // \u2551 @attributeThis('id') myId: string = \"default\" \u2192 this.myId = \"default\" \u2551\n // \u2551 \u2551\n // \u2551 2. JavaScript\uC758 property lookup\uC740 own property\uB97C \uBA3C\uC800 \uCC3E\uC74C \u2551\n // \u2551 - this.myId \uC811\uADFC \u2551\n // \u2551 - 1\uC21C\uC704: instance\uC758 own property \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uADF8\uAC83 \uBC18\uD658 \u2551\n // \u2551 - 2\uC21C\uC704: prototype\uC758 getter \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uD638\uCD9C \u2551\n // \u2551 \u2551\n // \u2551 3. own property\uAC00 \uC788\uC73C\uBA74 prototype\uC758 getter\uB294 \uC808\uB300 \uD638\uCD9C\uB418\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \uB530\uB77C\uC11C getter\uC5D0\uC11C \uC815\uC758\uB41C DOM \uB3D9\uAE30\uD654 \uB85C\uC9C1\uC774 \uC791\uB3D9\uD558\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \u2551\n // \u2551 4. own property\uB97C \uC0AD\uC81C\uD558\uBA74 JavaScript\uAC00 prototype\uC758 getter\uB97C \uCC3E\uAC8C \uB428 \u2551\n // \u2551 \u2192 getter \uD638\uCD9C\uB428 \u2192 DOM \uC18D\uC131 \uAC12 \uB3D9\uAE30\uD654\uB428 \u2551\n // \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n // \uD568\uC218\uB294 decorator\uC5D0\uC11C \uAC12\uC790\uCCB4\uB97C descriptor.value = function (...args: any[]) {...\n\n // @attribute \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter/setter \uC791\uB3D9\n // const attributeList = findAllAttributeMetadata(target);\n const attributeAllList = findAllAttributeMetadata(target).filter(it => it.type === 'property');\n if (attributeAllList) {\n attributeAllList.forEach(meta => {\n // const initUserData = (inst as any)[meta.propertyKey];\n delete (inst as any)[meta.propertyKey];\n // (inst as any)[meta.propertyKey] = initUserData;\n });\n }\n\n // @query \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryList = getQueryMetadata(target);\n if (queryList) {\n queryList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n\n // @queryAll \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryAllList = getQueryAllMetadata(target);\n if (queryAllList) {\n queryAllList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n // const slotAllList = findAllApplySlotMetadata(target);\n // if (slotAllList) {\n // slotAllList.filter(it => it.type === 'property').forEach(meta => {\n // delete (inst as any)[meta.propertyKey];\n // });\n // }\n\n\n const propertyAllList = findAllPropertyMetadata(target).filter(it => it.type === 'property');\n if (propertyAllList) {\n propertyAllList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n\n const stateAllList = findAllStateMetadata(target);\n if (stateAllList) {\n stateAllList.forEach(meta => {\n const initUserData = (inst as any)[meta.propertyKey];\n delete (inst as any)[meta.propertyKey];\n (inst as any)[meta.propertyKey] = initUserData;\n });\n }\n\n // Call constructor script if present\n const hostSet = SwcUtils.getHostSet(inst);\n const appHosts = SwcUtils.findAllAppHostsIncludingSelfDirect(inst);\n inst._executeSwcScript?.('swc-on-constructor', hostSet);\n\n // Call @onInitialize lifecycle methods\n const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);\n for (const m of cMethods) inst._invokeLifecycleMethod(m.propertyKey, hostSet);\n }\n};\n\n\n// \uD6D4 \uC774\uAC8C\uB9DE\uB098?? global\uB85C \uAD00\uB9AC\uD558\uB294\uAC8C..\uD6D4... \uC65C\uC774\uB807\uAC8C \uD588\uC744\uAE4C..\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n// \uC5EC\uAE30\uC5D0\uC11C \uC911\uBCF5 \uD638\uCD9C\uC548\uB418\uAC8C \uC798\uB9C9\uC544\uC900\uB2E4 ..\nconst handleGlobalSwcEvent = async (event: Event) => {\n if ((event as any).__swc_handled) return;\n const path = event.composedPath();\n const type = event.type;\n const attrName = `swc-on-${type}`;\n\n for (const node of path) {\n if (!(node instanceof HTMLElement)) continue;\n const script = node.getAttribute?.(attrName);\n if (script && !getElementConfig(node)) {\n const host: any = SwcUtils.findNearestSwcHostIncludingSelf(node);\n if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === 'function') {\n await host.__swc_executeAttributeEvent(node, attrName, script, event);\n (event as any).__swc_handled = true;\n break;\n }\n }\n }\n};\n\nfunction buildEnv(configWindow: Window) {\n const win: Window = configWindow;\n const doc: Document = win?.document;\n const builtInTagMap = new Map<any, string>();\n for (const [cls, tag] of HTML_TAG_ENTRIES) {\n if ((win as any)?.[cls]) builtInTagMap.set((win as any)[cls], tag);\n }\n const domHelpers = SwcUtils.getHelperSet(win);\n\n return {win, doc, builtInTagMap, domHelpers};\n}\n\nconst getHandlers = (inst: any) => {\n if (!inst.__swc_attributeEventHandlers) inst.__swc_attributeEventHandlers = new Map();\n return inst.__swc_attributeEventHandlers;\n};\n\nconst setupPrototype = (proto: any, win: Window) => {\n if (proto.__swc_proto_setup) return;\n proto.__swc_proto_setup = true;\n\n\n // proto.createSlotString = function (id: string) {\n // return NodeSlot.slot(`${this._swcId}-${id}`);\n // }\n // proto.createEaHtml = function (id: string, script: string) {\n // return ElementApply.html(id, script);\n // }\n // proto.createEaText = function (id: string, script: string) {\n // return ElementApply.text(id, script);\n // }\n // proto.createEaAttribute = function (id: string, name: string, script: string) {\n // return ElementApply.attribute(id, name, script);\n // }\n // proto.createEaEvent = function (id: string, name: string, script: string) {\n // return ElementApply.event(id, name, script);\n // }\n // proto.createEaProperty = function (id: string, name: string, script: string) {\n // return ElementApply.property(id, name, script);\n // }\n\n // swc-id-asdasdasdasd-click=\" :value=\"\" {: value fsdfsdafsad :} {html: aaa :} {text: asdas :}\n\n proto._executeSwcScript = function (attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {\n ensureInit(this);\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {...hostSet, ...helpers, ...extraArgs, $el: this, $root: this.getRootNode()};\n FunctionUtils.execute({script, context: this, args});\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName}:`, e);\n }\n }\n };\n\n proto._resolveWindow = function (localConfig?: ElementConfig): Window {\n ensureInit(this);\n if (localConfig?.window) return localConfig.window;\n const ancestors = SwcUtils.findAllSwcHostsIncludingSelf(this as any);\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const aConf = getElementConfig(ancestors[i]);\n if (aConf?.window) return aConf.window;\n }\n return getElementConfig(this).window ?? ((typeof window !== 'undefined' ? window : undefined) as Window);\n };\n\n proto._invokeLifecycleMethod = function (methodName: string | symbol, hostSet?: HostSet, extraArgs: any[] = []) {\n ensureInit(this);\n if (typeof (this as any)[methodName] !== 'function') return;\n const useHostSet = hostSet ?? SwcUtils.getHelperAndHostSet(win, this);\n const app = useHostSet?.$appHost?.simpleApplication;\n // console.log('---->hh',app, this, methodName);\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({situationType: InjectSituationType.HOST_SET, data: useHostSet}), new SituationTypeContainer({situationType: InjectSituationType.APP_HOST, data: useHostSet.$appHost}), new SituationTypeContainer({situationType: InjectSituationType.APP_HOSTS, data: useHostSet.$appHosts}), new SituationTypeContainer({\n situationType: InjectSituationType.HOST,\n data: useHostSet.$host\n }), new SituationTypeContainer({situationType: InjectSituationType.HOSTS, data: useHostSet.$hosts}), new SituationTypeContainer({situationType: InjectSituationType.FIRST_HOST, data: useHostSet.$firstHost}), new SituationTypeContainer({situationType: InjectSituationType.LAST_HOST, data: useHostSet.$lastHost}), new SituationTypeContainer({\n situationType: InjectSituationType.FIRST_APP_HOST,\n data: useHostSet.$firstAppHost\n }), new SituationTypeContainer({situationType: InjectSituationType.LAST_APP_HOST, data: useHostSet.$lastAppHost})]);\n otherStorage.set(SituationTypeContainers, situations);\n\n return app.simstanceManager.executeBindParameterSim(\n {\n target: this,\n targetKey: methodName,\n inputParameters: extraArgs\n },\n otherStorage\n );\n } else {\n return (this as any)[methodName](...extraArgs);\n }\n };\n\n proto._bindAttributeEvent = function (el: HTMLElement, attrName: string, script: string, eventName?: string) {\n ensureInit(this);\n if (!eventName) {\n if (!attrName.startsWith('swc-on-')) return;\n eventName = attrName.substring(7);\n }\n const elHandlers = getHandlers(this);\n let handlers = elHandlers.get(el);\n if (!handlers) {\n handlers = new Map();\n elHandlers.set(el, handlers);\n }\n\n const oldHandler = handlers.get(attrName);\n if (oldHandler) el.removeEventListener(eventName, oldHandler);\n\n const handler = async (event: any) => {\n const hostSet = SwcUtils.getHostSet(el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {\n event,\n $data: (event as CustomEvent).detail,\n ...hostSet,\n ...helpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({script, context: el, args});\n };\n\n el.addEventListener(eventName, handler);\n handlers.set(attrName, handler);\n };\n\n proto.__swc_executeAttributeEvent = async function (el: HTMLElement, attrName: string, script: string, event: Event) {\n ensureInit(this);\n\n const hostSet = SwcUtils.getHostSet(el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const currentHelpers = SwcUtils.getHelperSet(currentWin);\n const detail = (event as CustomEvent).detail;\n const args = {\n event,\n $event: event,\n $data: detail,\n $detail: detail,\n ...hostSet,\n ...currentHelpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({script, context: el, args});\n };\n};\n\nexport const elementDefine =\n (name: string, config: Partial<ElementConfig> = {}): ClassDecorator =>\n (constructor: any) => {\n const {win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS} = buildEnv(config.window);\n const metadata: ElementMetadata = {...config, name, window: win};\n\n if (!metadata.window) {\n throw new Error('window is required');\n }\n\n let extendsTagName = metadata.extends;\n if (!extendsTagName) {\n let proto = constructor;\n const BaseHTMLElement = (win as any).HTMLElement;\n while (proto && proto !== BaseHTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n metadata.extends = extendsTagName;\n }\n\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor) || [];\n const emitHostCustomEventList = emitCustomEventList.filter(meta => meta.selector === '$this' || meta.selector === '');\n const addEventListenerList = getAddEventListenerMetadata(constructor) || [];\n const attrChangeMap = findAllAttributeChangedMetadata(constructor);\n const attributeList = findAllAttributeMetadata(constructor);\n const applyAttributeMap = findAllAttributeApplyMetadata(constructor);\n\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-connected', 'swc-on-disconnected', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const swcOnEvents = DOM_EVENT_NAMES.map(e => `swc-on-${e}`);\n\n const attributeApplyNames = Array.from(applyAttributeMap.values())\n .map(it => it.targetAttributeName)\n .filter(Boolean) as string[];\n const hostAttributes = attributeList.filter(it => it.selector === '$this').map(it => it.propertyKey || String(it.propertyKey));\n // Get original static observedAttributes before they're overwritten by Object.defineProperty\n const originalStaticObservedAttributes = (constructor.observedAttributes ?? []) as string[];\n const mergedObservedAttributes = [...new Set([...(metadata.observedAttributes ?? []), ...originalStaticObservedAttributes, ...attrChangeMap.keys(), ...attributeApplyNames, ...hostAttributes, ...emitHostCustomEventList.map(it => (it.options as any).attributeName).filter(Boolean), ...swcLifecycleAttributes, ...swcOnEvents])];\n // const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];\n\n const proto = constructor.prototype;\n setupPrototype(proto, win);\n\n // \uAC12\uC744 \uAE30\uB300\uD558\uC9C0\uC54A\uB294\uB2E4.\n let helperHostSet: HelperHostSet | null = null;\n const originalConnected = proto.connectedCallback;\n proto.connectedCallback = async function () {\n ensureInit(this);\n // connected \uB410\uC744\uC2DC \uCD5C\uC2E0\uD654\n helperHostSet = SwcUtils.getHelperAndHostSet(win, this as any);\n const appHost = helperHostSet.$appHost;\n const useSsr = isSSR(this);\n // console.log('isSsr', useSsr, this);\n // console.log('----helperHostSet--->', this, helperHostSet, useSsr)\n // let connectedApp: SwcAppInterface |undefined;\n try {\n if (appHost && typeof (appHost as any)._connected === 'function') {\n await (appHost as any)._connected(this);\n } else if (appHost && typeof (appHost as any)) {\n (appHost as any)._connected_safari_and_standby ??= [];\n (appHost as any)._connected_safari_and_standby.push(this);\n }\n\n // const hostSet = SwcUtils.getHostSet(this as any);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n\n const bMethods = findAllOnConnectedBeforeMetadata(this).filter(it => useSsr ? !it.options.ssrFirst : true);\n // console.log('beforeConnected', bMethods)\n for (const m of bMethods) await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n (this as any)._executeSwcScript('swc-on-before-connected', helperHostSet);\n\n // console.log('vvvvvvvvvvvvvvvu-seSsr-vvvvvvvvvv>', useSsr, this.tagName, this.getAttribute('seq'))\n // // ssr \uCC98\uB9AC\uB77C\uC11C \uC774\uBBF8 \uB0B4\uB824\uC900\uAC70\uADF8\uB300\uB85C \uC0C1\uC694\uD558\uBA74\uB41C\uB2E4 \uB530\uB77C\uC11C \uD638\uCD9C\uC548\uD55C\uB2E4\n const targetConnectedList = findAllOnConnectedMetadata(constructor).filter(it => useSsr ? !it.options.ssrFirst : true);\n const shadowMode = conf?.useShadow || targetConnectedList.find(it => it.options.useShadow)?.options.useShadow;\n // console.log('--------->', this.tagName, shadowMode && !this.shadowRoot)\n if (shadowMode && !this.shadowRoot) {\n const mode = shadowMode === true ? 'open' : shadowMode;\n console.log('tagName=', this.tagName, 'mode', mode, this.shadowRoot);\n // if (this.tagName!=='INDEX-ROUTER') {\n this.attachShadow({mode: mode as ShadowRootMode});\n // }\n }\n\n const stateContext: any = {...helperHostSet};\n findAllStateMetadata(this).forEach(it => {\n stateContext[it.name] = this[it.propertyKey]\n })\n\n const shadowChildren: Node[] = [];\n const lightChildren: Node[] = [];\n\n console.log('targetConnectList', this.tagName, targetConnectedList.length)\n if (targetConnectedList.length > 0) {\n // let sContent = '',\n // lContent = '';\n for (const meta of targetConnectedList) {\n // const res = (this as any)[meta.propertyKey]();\n let res = await (this as any)._invokeLifecycleMethod(meta.propertyKey, helperHostSet);\n // res = SwcUtils.projectProcessHtml(this, res);\n if (typeof res === 'string') {\n const htmlTemplateElement = doc.createElement('template');\n htmlTemplateElement.innerHTML = res;//SwcUtils.projectProcessHtml(this._swcId, res, doc);\n res = htmlTemplateElement.content;\n }\n\n if (res) {\n const nodes = Array.isArray(res) ? res : [res];\n if (meta.options.useShadow || conf?.useShadow) {\n shadowChildren.push(...nodes);\n }else {\n lightChildren.push(...nodes);\n }\n }\n }\n try {\n if (this.shadowRoot) {\n const applyShadowChildren = SwcUtils.projectProcessHtml(this._swcId, shadowChildren, doc);\n this.shadowRoot.replaceChildren(...applyShadowChildren)\n }\n if (lightChildren.length) {\n const applyLightChildren = SwcUtils.projectProcessHtml(this._swcId, lightChildren, doc);\n this.replaceChildren(...applyLightChildren)\n }\n\n } catch (e) {\n console.error('[ElementDefine] innerHTML setting error:', e);\n }\n new ElementApply(this, {id: this._swcId}).apply({context: stateContext, bind: this});\n } else {\n new ElementApply(this, {id: this._swcId}).apply({exclude: {html: true, text: true, attribute: true}, context: stateContext, bind: this});\n }\n\n // global delegate event\n const root = this.getRootNode()\n if (!globalDelegatedRoots.has(root)) {\n DOM_EVENT_NAMES.forEach(type => {\n root.addEventListener(type, handleGlobalSwcEvent);\n });\n globalDelegatedRoots.add(root);\n }\n\n\n // Separate delegate and non-delegate listeners\n const delegateListeners: typeof addEventListenerList = [];\n const nonDelegateListeners: typeof addEventListenerList = [];\n\n addEventListenerList.forEach(meta => {\n if (meta.options.delegate && meta.selector !== '$window' && meta.selector !== '$document' && meta.selector !== '$host' && meta.selector !== '$appHost' && meta.selector !== '$firstHost' && meta.selector !== '$lastHost' && meta.selector !== '$firstAppHost' && meta.selector !== '$lastAppHost' && meta.selector !== '$hosts' && meta.selector !== '$appHosts' && meta.selector !== '$this' && meta.selector !== '') {\n delegateListeners.push(meta);\n } else {\n nonDelegateListeners.push(meta);\n }\n });\n\n const delegatesByTypeAndRoot = new Map<string, any[]>();\n delegateListeners.forEach(meta => {\n const r = meta.options.root || 'auto';\n const rootKey = `${meta.type}:${r}`;\n if (!delegatesByTypeAndRoot.has(rootKey)) {\n delegatesByTypeAndRoot.set(rootKey, []);\n }\n delegatesByTypeAndRoot.get(rootKey)!.push(meta);\n });\n\n delegatesByTypeAndRoot.forEach((metaList, typeRootKey) => {\n const [type, rStr] = typeRootKey.split(':');\n const r = rStr === 'auto' ? 'auto' : rStr;\n const opts = {capture: metaList[0].options.capture, once: metaList[0].options.once, passive: metaList[0].options.passive};\n\n const bindRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') bindRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') bindRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) bindRoots.push(this.shadowRoot);\n else if (r === 'all') {\n bindRoots.push(this as any);\n if (this.shadowRoot) bindRoots.push(this.shadowRoot);\n }\n\n bindRoots.forEach(br => {\n const sortedMetaList = [...metaList].sort((a, b) => {\n const aStop = a.options.stopPropagation ? 1 : 0;\n const bStop = b.options.stopPropagation ? 1 : 0;\n return bStop - aStop;\n });\n\n const unifiedHandler = async (event: Event) => {\n for (const meta of sortedMetaList) {\n const {selector, options} = meta;\n const matchedEl = (event.target as HTMLElement).closest(selector);\n if (matchedEl && (br as any).contains(matchedEl)) {\n // Apply filter if specified\n if (options.filter) {\n const helper = SwcUtils.getHelperAndHostSet(currentWin, matchedEl);\n if (!options.filter(event, helper)) {\n continue; // Skip this listener if filter returns false\n }\n }\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = {event, ...currentHostSet, $el: matchedEl, $root: br};\n await (this as any)[meta.propertyKey](event, {...currentHostSet, $matchedElement: matchedEl}, args);\n if ((event as any).cancelBubble) break;\n }\n }\n };\n br.addEventListener(type, unifiedHandler, opts);\n (this as any)._boundListeners.push({target: br, type, handler: unifiedHandler, options: opts});\n });\n });\n\n nonDelegateListeners.forEach(meta => {\n const {selector, type, options} = meta;\n const opts = {capture: options.capture, once: options.once, passive: options.passive};\n const bindTargets: EventTarget[] = [];\n const r = options.root || 'auto';\n const applyRootOption = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n bindTargets.push(target.shadowRoot || target);\n } else {\n if (r === 'light' || r === 'all') bindTargets.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) bindTargets.push(target.shadowRoot);\n }\n };\n\n if (selector === '$window') bindTargets.push(currentWin);\n else if (selector === '$document') bindTargets.push(currentWin.document);\n else if (selector === '$host') applyRootOption(helperHostSet.$host);\n else if (selector === '$parentHost') applyRootOption(helperHostSet.$parentHost);\n else if (selector === '$appHost') applyRootOption(helperHostSet.$appHost);\n else if (selector === '$firstHost') applyRootOption(helperHostSet.$firstHost);\n else if (selector === '$lastHost') applyRootOption(helperHostSet.$lastHost);\n else if (selector === '$firstAppHost') applyRootOption(helperHostSet.$firstAppHost);\n else if (selector === '$lastAppHost') applyRootOption(helperHostSet.$lastAppHost);\n else if (selector === '$hosts') helperHostSet.$hosts.forEach(applyRootOption);\n else if (selector === '$appHosts') helperHostSet.$appHosts.forEach(applyRootOption);\n else if (selector === '$this' || !selector) applyRootOption(this);\n else {\n const searchRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') searchRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') searchRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) searchRoots.push(this.shadowRoot);\n else if (r === 'all') {\n searchRoots.push(this as any);\n if (this.shadowRoot) searchRoots.push(this.shadowRoot);\n }\n\n searchRoots.forEach(sr => {\n sr.querySelectorAll(selector).forEach(el => bindTargets.push(el));\n });\n }\n\n bindTargets.forEach(t => {\n const handler = async (event: Event) => {\n // Apply filter if specified\n if (options.filter) {\n const helper = SwcUtils.getHelperAndHostSet(currentWin, t as HTMLElement);\n if (!options.filter(event, {currentThis: this, helper})) {\n return; // Skip if filter returns false\n }\n }\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = {event, ...currentHostSet, $el: t, $root: t};\n await (this as any)[meta.propertyKey](event, {currentHostSet, $$matchedElement: event.currentTarget}, args);\n };\n t.addEventListener(type, handler, opts);\n (this as any)._boundListeners.push({target: t, type, handler, options: opts});\n });\n });\n\n if (originalConnected) await (originalConnected.apply(this));\n\n const aMethods = findAllOnConnectedAfterMetadata(this).filter(it => {\n return useSsr ? !it.options.ssrFirst : true;\n });\n // console.log('afterConnected', this.tagName, aMethods, getOnConnectedAfterMetadata(this))\n for (const m of aMethods) await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n (this as any)._executeSwcScript('swc-on-connected', helperHostSet);\n (this as any)._executeSwcScript('swc-on-after-connected', helperHostSet);\n (this as any).__swc_connected = true;\n\n // Trigger @changedAttributeThis with while: 'connected'\n for (let [name, metaList] of Array.from(attrChangeMap)) {\n for (const meta of metaList) {\n if (meta.options.while === 'connected') {\n const val = getAttributeValue(this, name, {type: meta.options.type});\n if (val !== null) {\n await ((this as any)[meta.propertyKey](val, null, name, helperHostSet));\n }\n }\n }\n }\n } finally {\n for (let m of findAllLifecycleMetadata(this, ON_CONNECTED_COMPLETED_METADATA_KEY)) {\n await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n }\n if (appHost && typeof (appHost as any)._connectedDone === 'function') {\n await (appHost as any)._connectedDone(this);\n }\n }\n };\n\n const originalDisconnected = proto.disconnectedCallback;\n proto.disconnectedCallback = function () {\n // const helperHostSet = SwcUtils.getHelperAndHostSet(win, this as any);\n // Remove from appHost LAST when disconnected\n // console.log('disconnnnnnnnnnnnnnnnnnn', helperHostSet, this)\n const appHost = helperHostSet.$appHost;\n if (appHost && typeof (appHost as any)._disconnected === 'function') {\n (appHost as any)._disconnected(this);\n }\n\n (this as any)._executeSwcScript('swc-on-before-disconnected', helperHostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n\n if ((this as any)._boundListeners) {\n (this as any)._boundListeners.forEach((l: any) => l.target.removeEventListener(l.type, l.handler, l.options));\n (this as any)._boundListeners = [];\n }\n\n new ElementApply(this, {id: this._swcId}).removeAllEventListener();\n\n // globalDelegatedRoots remove\n // const roots = [this, this.getRootNode()];\n // if (this.shadowRoot) {\n // roots.push(this.shadowRoot);\n // }\n // roots.forEach(root => {\n // DOM_EVENT_NAMES.forEach(type => {\n // root.removeEventListener(type, handleGlobalSwcEvent);\n // });\n // }\n // )\n\n if (originalDisconnected) originalDisconnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n (this as any)._executeSwcScript('swc-on-disconnected', helperHostSet);\n (this as any)._executeSwcScript('swc-on-after-disconnected', helperHostSet);\n (this as any).__swc_connected = false;\n };\n\n const originalAdopted = proto.adoptedCallback;\n proto.adoptedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-adopted', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m.propertyKey, hostSet);\n\n if (originalAdopted) originalAdopted.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m.propertyKey, hostSet);\n (this as any)._executeSwcScript('swc-on-adopted', hostSet);\n (this as any)._executeSwcScript('swc-on-after-adopted', hostSet);\n };\n\n const originalAttributeChanged = proto.attributeChangedCallback;\n proto.attributeChangedCallback = function (name: string, old: string | null, newVal: string | null) {\n if (originalAttributeChanged) originalAttributeChanged.apply(this, [name, old, newVal]);\n\n const hSet = SwcUtils.getHostSet(this as any);\n\n // Process expression directive before passing to handlers\n let processedVal: any = newVal;\n if (newVal !== null) {\n const ae = new ActionExpression(newVal);\n const expr = ae.getFirstExpression('callReturn');\n if (expr) {\n const win = (this as any)._resolveWindow?.() || ((typeof window !== 'undefined' ? window : undefined) as any);\n const helperAndHostSet = SwcUtils.getHelperAndHostSet(win, this as any);\n const script = ConvertUtils.decodeHtmlEntity(expr.script, win.document);\n try {\n const result = FunctionUtils.executeReturn({\n script: script,\n context: this,\n args: helperAndHostSet\n });\n // Pass the result object directly without serialization\n processedVal = result;\n } catch (e) {\n console.error(`[SWC] Failed to execute directive {{= ${expr.script} }} on attribute ${name}: ${helperAndHostSet}`, e);\n processedVal = newVal;\n }\n }\n }\n\n if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {\n if (newVal !== null) {\n const eventName = name.substring(7);\n (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);\n }\n }\n\n const hostCustomEventMeta = emitHostCustomEventList.find(it => (it.options as any).attributeName === name);\n if (hostCustomEventMeta && newVal !== null) {\n (this as any)._bindAttributeEvent(this as any, name, newVal, hostCustomEventMeta.type);\n }\n\n const metaList = attrChangeMap.get(name);\n if (metaList && Array.isArray(metaList)) {\n for (const meta of metaList) {\n if (meta.options.while === 'connected' && !(this as any).__swc_connected) {\n continue;\n }\n const convertedVal = convertAttributeValue(processedVal, meta.options.type);\n (this as any)[meta.propertyKey](convertedVal, old, name, hSet);\n }\n }\n };\n\n Object.defineProperty(constructor, 'observedAttributes', {\n get: () => mergedObservedAttributes,\n configurable: true\n });\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, metadata, constructor);\n const registry = metadata.customElementRegistry || (win as any)?.customElements;\n if (registry && !registry.get(metadata.name)) {\n registry.define(metadata.name, constructor as any, metadata.extends ? {extends: metadata.extends} : undefined);\n }\n return constructor;\n };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["proto", "name", "win"]
|
|
4
|
+
"sourcesContent": ["import {ActionExpression, FunctionUtils, ReflectUtils} from '@dooboostore/core';\nimport {Observable, Subject} from '@dooboostore/core';\nimport {debounceTime, throttleTime, distinctUntilChanged} from '@dooboostore/core/message/operators';\nimport {getAddEventListenerMetadata} from './addEventListener';\nimport {findAllLifecycleMetadata, findAllOnConnectedAfterMetadata, findAllOnConnectedBeforeMetadata, findAllOnConnectedMetadata, ON_AFTER_ADOPTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_CONNECTED_COMPLETED_METADATA_KEY, ON_INITIALIZE_METADATA_KEY} from './lifecycles';\nimport {getEmitCustomEventMetadataList} from './emitCustomEvent';\nimport {convertAttributeValue, findAllAttributeChangedMetadata} from './changedAttribute';\nimport {findAllAttributeApplyMetadata, findAllAttributeMetadata, getAttributeValue} from './applyAttribute';\nimport {getQueryMetadata} from './query';\nimport {getQueryAllMetadata} from './queryAll';\nimport {SwcUtils} from '../utils/Utils';\nimport {DOM_EVENT_NAMES, HTML_TAG_ENTRIES} from '../config/config';\nimport {SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport {HelperHostSet, HostSet, InjectSituationType} from '../types';\nimport {ConvertUtils, ElementApply, NodeSlot} from '@dooboostore/core-web';\nimport {isSSR} from \"../elements/SwcAppMixin\";\nimport {findAllApplySlotMetadata} from \"./applySlot\";\nimport {findAllStateMetadata} from \"./state\";\nimport {findAllPropertyMetadata} from \"./applyProperty\";\n\n// --- Core Interfaces & Types ---\n\nexport const ELEMENT_CONFIG_KEY = Symbol.for('simple-web-component:element-config');\n\nexport interface ElementConfig {\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: any;\n window?: Window;\n useShadow?: boolean | 'open' | 'closed';\n}\n\nexport interface ElementMetadata extends Omit<ElementConfig, 'window'> {\n name: string;\n window: Window;\n}\n\nexport const getElementConfig = (target: any): ElementMetadata | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n\nexport const ensureInit = (inst: any) => { // HTMLElement\n if (!inst.__swc_initialized) {\n inst._swcId = inst?.getAttribute?.('swc-use-ssr') ?? 's' + Math.random().toString(36).substring(2, 11).toLowerCase();\n inst._emitHandlers = new Map();\n inst._boundListeners = [];\n inst.__swc_initialized = true;\n // const attributeList = findAllQ(inst);\n // attributeList.forEach(meta => {\n // delete (inst as any)[meta.propertyKey];\n // });\n\n const target = inst instanceof Function ? inst : inst.constructor;\n\n // \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n // \u2551 decorator \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2551\n // \u2551 \u2551\n // \u2551 \uC774\uC720: own property\uAC00 \uC788\uC73C\uBA74 prototype\uC758 getter/setter\uB294 \uC808\uB300 \uC548 \uD0C4\uB2E4 \u2551\n // \u2551 1. TypeScript\uB294 \uCD08\uAE30\uAC12\uC774 \uC788\uB294 \uD544\uB4DC\uB97C constructor\uC5D0\uC11C own property\uB85C \uC0DD\uC131 \u2551\n // \u2551 @attributeThis('id') myId: string = \"default\" \u2192 this.myId = \"default\" \u2551\n // \u2551 \u2551\n // \u2551 2. JavaScript\uC758 property lookup\uC740 own property\uB97C \uBA3C\uC800 \uCC3E\uC74C \u2551\n // \u2551 - this.myId \uC811\uADFC \u2551\n // \u2551 - 1\uC21C\uC704: instance\uC758 own property \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uADF8\uAC83 \uBC18\uD658 \u2551\n // \u2551 - 2\uC21C\uC704: prototype\uC758 getter \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uD638\uCD9C \u2551\n // \u2551 \u2551\n // \u2551 3. own property\uAC00 \uC788\uC73C\uBA74 prototype\uC758 getter\uB294 \uC808\uB300 \uD638\uCD9C\uB418\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \uB530\uB77C\uC11C getter\uC5D0\uC11C \uC815\uC758\uB41C DOM \uB3D9\uAE30\uD654 \uB85C\uC9C1\uC774 \uC791\uB3D9\uD558\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \u2551\n // \u2551 4. own property\uB97C \uC0AD\uC81C\uD558\uBA74 JavaScript\uAC00 prototype\uC758 getter\uB97C \uCC3E\uAC8C \uB428 \u2551\n // \u2551 \u2192 getter \uD638\uCD9C\uB428 \u2192 DOM \uC18D\uC131 \uAC12 \uB3D9\uAE30\uD654\uB428 \u2551\n // \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n // \uD568\uC218\uB294 decorator\uC5D0\uC11C \uAC12\uC790\uCCB4\uB97C descriptor.value = function (...args: any[]) {...\n\n // @attribute \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter/setter \uC791\uB3D9\n // const attributeList = findAllAttributeMetadata(target);\n const attributeAllList = findAllAttributeMetadata(target).filter(it => it.type === 'property');\n if (attributeAllList) {\n attributeAllList.forEach(meta => {\n // const initUserData = (inst as any)[meta.propertyKey];\n delete (inst as any)[meta.propertyKey];\n // (inst as any)[meta.propertyKey] = initUserData;\n });\n }\n\n // @query \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryList = getQueryMetadata(target);\n if (queryList) {\n queryList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n\n // @queryAll \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryAllList = getQueryAllMetadata(target);\n if (queryAllList) {\n queryAllList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n // const slotAllList = findAllApplySlotMetadata(target);\n // if (slotAllList) {\n // slotAllList.filter(it => it.type === 'property').forEach(meta => {\n // delete (inst as any)[meta.propertyKey];\n // });\n // }\n\n\n const propertyAllList = findAllPropertyMetadata(target).filter(it => it.type === 'property');\n if (propertyAllList) {\n propertyAllList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n\n const stateAllList = findAllStateMetadata(target);\n if (stateAllList) {\n stateAllList.forEach(meta => {\n const initUserData = (inst as any)[meta.propertyKey];\n delete (inst as any)[meta.propertyKey];\n (inst as any)[meta.propertyKey] = initUserData;\n });\n }\n\n // Call constructor script if present\n const hostSet = SwcUtils.getHostSet(inst);\n const appHosts = SwcUtils.findAllAppHostsIncludingSelfDirect(inst);\n inst._executeSwcScript?.('swc-on-constructor', hostSet);\n\n // Call @onInitialize lifecycle methods\n const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);\n for (const m of cMethods) inst._invokeLifecycleMethod(m.propertyKey, hostSet);\n }\n};\n\n\n// \uD6D4 \uC774\uAC8C\uB9DE\uB098?? global\uB85C \uAD00\uB9AC\uD558\uB294\uAC8C..\uD6D4... \uC65C\uC774\uB807\uAC8C \uD588\uC744\uAE4C..\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n// \uC5EC\uAE30\uC5D0\uC11C \uC911\uBCF5 \uD638\uCD9C\uC548\uB418\uAC8C \uC798\uB9C9\uC544\uC900\uB2E4 ..\nconst handleGlobalSwcEvent = async (event: Event) => {\n if ((event as any).__swc_handled) return;\n const path = event.composedPath();\n const type = event.type;\n const attrName = `swc-on-${type}`;\n\n for (const node of path) {\n if (!(node instanceof HTMLElement)) continue;\n const script = node.getAttribute?.(attrName);\n if (script && !getElementConfig(node)) {\n const host: any = SwcUtils.findNearestSwcHostIncludingSelf(node);\n if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === 'function') {\n await host.__swc_executeAttributeEvent(node, attrName, script, event);\n (event as any).__swc_handled = true;\n break;\n }\n }\n }\n};\n\nfunction buildEnv(configWindow: Window) {\n const win: Window = configWindow;\n const doc: Document = win?.document;\n const builtInTagMap = new Map<any, string>();\n for (const [cls, tag] of HTML_TAG_ENTRIES) {\n if ((win as any)?.[cls]) builtInTagMap.set((win as any)[cls], tag);\n }\n const domHelpers = SwcUtils.getHelperSet(win);\n\n return {win, doc, builtInTagMap, domHelpers};\n}\n\nconst getHandlers = (inst: any) => {\n if (!inst.__swc_attributeEventHandlers) inst.__swc_attributeEventHandlers = new Map();\n return inst.__swc_attributeEventHandlers;\n};\n\nconst setupPrototype = (proto: any, win: Window) => {\n if (proto.__swc_proto_setup) return;\n proto.__swc_proto_setup = true;\n\n\n // proto.createSlotString = function (id: string) {\n // return NodeSlot.slot(`${this._swcId}-${id}`);\n // }\n // proto.createEaHtml = function (id: string, script: string) {\n // return ElementApply.html(id, script);\n // }\n // proto.createEaText = function (id: string, script: string) {\n // return ElementApply.text(id, script);\n // }\n // proto.createEaAttribute = function (id: string, name: string, script: string) {\n // return ElementApply.attribute(id, name, script);\n // }\n // proto.createEaEvent = function (id: string, name: string, script: string) {\n // return ElementApply.event(id, name, script);\n // }\n // proto.createEaProperty = function (id: string, name: string, script: string) {\n // return ElementApply.property(id, name, script);\n // }\n\n // swc-id-asdasdasdasd-click=\" :value=\"\" {: value fsdfsdafsad :} {html: aaa :} {text: asdas :}\n\n proto._executeSwcScript = function (attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {\n ensureInit(this);\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {...hostSet, ...helpers, ...extraArgs, $el: this, $root: this.getRootNode()};\n FunctionUtils.execute({script, context: this, args});\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName}:`, e);\n }\n }\n };\n\n proto._resolveWindow = function (localConfig?: ElementConfig): Window {\n ensureInit(this);\n if (localConfig?.window) return localConfig.window;\n const ancestors = SwcUtils.findAllSwcHostsIncludingSelf(this as any);\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const aConf = getElementConfig(ancestors[i]);\n if (aConf?.window) return aConf.window;\n }\n return getElementConfig(this).window ?? ((typeof window !== 'undefined' ? window : undefined) as Window);\n };\n\n proto._invokeLifecycleMethod = function (methodName: string | symbol, hostSet?: HostSet, extraArgs: any[] = []) {\n ensureInit(this);\n if (typeof (this as any)[methodName] !== 'function') return;\n const useHostSet = hostSet ?? SwcUtils.getHelperAndHostSet(win, this);\n const app = useHostSet?.$appHost?.simpleApplication;\n // console.log('---->hh',app, this, methodName);\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({situationType: InjectSituationType.HOST_SET, data: useHostSet}), new SituationTypeContainer({situationType: InjectSituationType.APP_HOST, data: useHostSet.$appHost}), new SituationTypeContainer({situationType: InjectSituationType.APP_HOSTS, data: useHostSet.$appHosts}), new SituationTypeContainer({\n situationType: InjectSituationType.HOST,\n data: useHostSet.$host\n }), new SituationTypeContainer({situationType: InjectSituationType.HOSTS, data: useHostSet.$hosts}), new SituationTypeContainer({situationType: InjectSituationType.FIRST_HOST, data: useHostSet.$firstHost}), new SituationTypeContainer({situationType: InjectSituationType.LAST_HOST, data: useHostSet.$lastHost}), new SituationTypeContainer({\n situationType: InjectSituationType.FIRST_APP_HOST,\n data: useHostSet.$firstAppHost\n }), new SituationTypeContainer({situationType: InjectSituationType.LAST_APP_HOST, data: useHostSet.$lastAppHost})]);\n otherStorage.set(SituationTypeContainers, situations);\n\n return app.simstanceManager.executeBindParameterSim(\n {\n target: this,\n targetKey: methodName,\n inputParameters: extraArgs\n },\n otherStorage\n );\n } else {\n return (this as any)[methodName](...extraArgs);\n }\n };\n\n proto._bindAttributeEvent = function (el: HTMLElement, attrName: string, script: string, eventName?: string) {\n ensureInit(this);\n if (!eventName) {\n if (!attrName.startsWith('swc-on-')) return;\n eventName = attrName.substring(7);\n }\n const elHandlers = getHandlers(this);\n let handlers = elHandlers.get(el);\n if (!handlers) {\n handlers = new Map();\n elHandlers.set(el, handlers);\n }\n\n const oldHandler = handlers.get(attrName);\n if (oldHandler) el.removeEventListener(eventName, oldHandler);\n\n const handler = async (event: any) => {\n const hostSet = SwcUtils.getHostSet(el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {\n event,\n $data: (event as CustomEvent).detail,\n ...hostSet,\n ...helpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({script, context: el, args});\n };\n\n el.addEventListener(eventName, handler);\n handlers.set(attrName, handler);\n };\n\n proto.__swc_executeAttributeEvent = async function (el: HTMLElement, attrName: string, script: string, event: Event) {\n ensureInit(this);\n\n const hostSet = SwcUtils.getHostSet(el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const currentHelpers = SwcUtils.getHelperSet(currentWin);\n const detail = (event as CustomEvent).detail;\n const args = {\n event,\n $event: event,\n $data: detail,\n $detail: detail,\n ...hostSet,\n ...currentHelpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({script, context: el, args});\n };\n};\n\nexport const elementDefine =\n (name: string, config: Partial<ElementConfig> = {}): ClassDecorator =>\n (constructor: any) => {\n const {win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS} = buildEnv(config.window);\n const metadata: ElementMetadata = {...config, name, window: win};\n\n if (!metadata.window) {\n throw new Error('window is required');\n }\n\n let extendsTagName = metadata.extends;\n if (!extendsTagName) {\n let proto = constructor;\n const BaseHTMLElement = (win as any).HTMLElement;\n while (proto && proto !== BaseHTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n metadata.extends = extendsTagName;\n }\n\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor) || [];\n const emitHostCustomEventList = emitCustomEventList.filter(meta => meta.selector === '$this' || meta.selector === '');\n const addEventListenerList = getAddEventListenerMetadata(constructor) || [];\n const attrChangeMap = findAllAttributeChangedMetadata(constructor);\n const attributeList = findAllAttributeMetadata(constructor);\n const applyAttributeMap = findAllAttributeApplyMetadata(constructor);\n\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-connected', 'swc-on-disconnected', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const swcOnEvents = DOM_EVENT_NAMES.map(e => `swc-on-${e}`);\n\n const attributeApplyNames = Array.from(applyAttributeMap.values())\n .map(it => it.targetAttributeName)\n .filter(Boolean) as string[];\n const hostAttributes = attributeList.filter(it => it.selector === '$this').map(it => it.propertyKey || String(it.propertyKey));\n // Get original static observedAttributes before they're overwritten by Object.defineProperty\n const originalStaticObservedAttributes = (constructor.observedAttributes ?? []) as string[];\n const mergedObservedAttributes = [...new Set([...(metadata.observedAttributes ?? []), ...originalStaticObservedAttributes, ...attrChangeMap.keys(), ...attributeApplyNames, ...hostAttributes, ...emitHostCustomEventList.map(it => (it.options as any).attributeName).filter(Boolean), ...swcLifecycleAttributes, ...swcOnEvents])];\n // const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];\n\n const proto = constructor.prototype;\n setupPrototype(proto, win);\n\n // \uAC12\uC744 \uAE30\uB300\uD558\uC9C0\uC54A\uB294\uB2E4.\n let helperHostSet: HelperHostSet | null = null;\n const originalConnected = proto.connectedCallback;\n proto.connectedCallback = async function () {\n ensureInit(this);\n // connected \uB410\uC744\uC2DC \uCD5C\uC2E0\uD654\n helperHostSet = SwcUtils.getHelperAndHostSet(win, this as any);\n const appHost = helperHostSet.$appHost;\n const useSsr = isSSR(this);\n // console.log('isSsr', useSsr, this);\n // console.log('----helperHostSet--->', this, helperHostSet, useSsr)\n // let connectedApp: SwcAppInterface |undefined;\n try {\n if (appHost && typeof (appHost as any)._connected === 'function') {\n await (appHost as any)._connected(this);\n } else if (appHost && typeof (appHost as any)) {\n (appHost as any)._connected_safari_and_standby ??= [];\n (appHost as any)._connected_safari_and_standby.push(this);\n }\n\n // const hostSet = SwcUtils.getHostSet(this as any);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n\n const bMethods = findAllOnConnectedBeforeMetadata(this).filter(it => useSsr ? !it.options.ssrFirst : true);\n // console.log('beforeConnected', bMethods)\n for (const m of bMethods) await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n (this as any)._executeSwcScript('swc-on-before-connected', helperHostSet);\n\n // console.log('vvvvvvvvvvvvvvvu-seSsr-vvvvvvvvvv>', useSsr, this.tagName, this.getAttribute('seq'))\n // // ssr \uCC98\uB9AC\uB77C\uC11C \uC774\uBBF8 \uB0B4\uB824\uC900\uAC70\uADF8\uB300\uB85C \uC0C1\uC694\uD558\uBA74\uB41C\uB2E4 \uB530\uB77C\uC11C \uD638\uCD9C\uC548\uD55C\uB2E4\n const targetConnectedList = findAllOnConnectedMetadata(constructor).filter(it => useSsr ? !it.options.ssrFirst : true);\n const shadowMode = conf?.useShadow || targetConnectedList.find(it => it.options.useShadow)?.options.useShadow;\n // console.log('--------->', this.tagName, shadowMode && !this.shadowRoot)\n if (shadowMode && !this.shadowRoot) {\n const mode = shadowMode === true ? 'open' : shadowMode;\n console.log('tagName=', this.tagName, 'mode', mode, this.shadowRoot);\n // if (this.tagName!=='INDEX-ROUTER') {\n this.attachShadow({mode: mode as ShadowRootMode});\n // }\n }\n\n const stateContext: any = {...helperHostSet};\n findAllStateMetadata(this).forEach(it => {\n stateContext[it.name] = this[it.propertyKey]\n })\n\n const shadowChildren: Node[] = [];\n const lightChildren: Node[] = [];\n\n console.log('targetConnectList', this.tagName, targetConnectedList.length)\n if (targetConnectedList.length > 0) {\n // let sContent = '',\n // lContent = '';\n for (const meta of targetConnectedList) {\n // const res = (this as any)[meta.propertyKey]();\n let res = await (this as any)._invokeLifecycleMethod(meta.propertyKey, helperHostSet);\n // res = SwcUtils.projectProcessHtml(this, res);\n if (typeof res === 'string') {\n const htmlTemplateElement = doc.createElement('template');\n htmlTemplateElement.innerHTML = res;//SwcUtils.projectProcessHtml(this._swcId, res, doc);\n res = htmlTemplateElement.content;\n }\n\n if (res) {\n const nodes = Array.isArray(res) ? res : [res];\n if (meta.options.useShadow || conf?.useShadow) {\n shadowChildren.push(...nodes);\n }else {\n lightChildren.push(...nodes);\n }\n }\n }\n try {\n if (this.shadowRoot) {\n const applyShadowChildren = SwcUtils.projectProcessHtml(this._swcId, shadowChildren, doc);\n this.shadowRoot.replaceChildren(...applyShadowChildren)\n }\n if (lightChildren.length) {\n const applyLightChildren = SwcUtils.projectProcessHtml(this._swcId, lightChildren, doc);\n this.replaceChildren(...applyLightChildren)\n }\n\n } catch (e) {\n console.error('[ElementDefine] innerHTML setting error:', e);\n }\n new ElementApply(this, {id: this._swcId}).apply({context: stateContext, bind: this});\n } else {\n new ElementApply(this, {id: this._swcId}).apply({exclude: {html: true, text: true, attribute: true}, context: stateContext, bind: this});\n }\n\n // global delegate event\n const root = this.getRootNode()\n if (!globalDelegatedRoots.has(root)) {\n DOM_EVENT_NAMES.forEach(type => {\n root.addEventListener(type, handleGlobalSwcEvent);\n });\n globalDelegatedRoots.add(root);\n }\n\n\n // Separate delegate and non-delegate listeners\n const delegateListeners: typeof addEventListenerList = [];\n const nonDelegateListeners: typeof addEventListenerList = [];\n\n addEventListenerList.forEach(meta => {\n // Function-based selectors cannot be used with delegate listeners\n const isStringSelector = typeof meta.selector === 'string';\n if (meta.options.delegate && isStringSelector && meta.selector !== '$window' && meta.selector !== '$document' && meta.selector !== '$host' && meta.selector !== '$appHost' && meta.selector !== '$firstHost' && meta.selector !== '$lastHost' && meta.selector !== '$firstAppHost' && meta.selector !== '$lastAppHost' && meta.selector !== '$hosts' && meta.selector !== '$appHosts' && meta.selector !== '$this' && meta.selector !== '') {\n delegateListeners.push(meta);\n } else {\n nonDelegateListeners.push(meta);\n }\n });\n\n const delegatesByTypeAndRoot = new Map<string, any[]>();\n delegateListeners.forEach(meta => {\n const r = meta.options.root || 'auto';\n const rootKey = `${meta.type}:${r}`;\n if (!delegatesByTypeAndRoot.has(rootKey)) {\n delegatesByTypeAndRoot.set(rootKey, []);\n }\n delegatesByTypeAndRoot.get(rootKey)!.push(meta);\n });\n\n delegatesByTypeAndRoot.forEach((metaList, typeRootKey) => {\n const [type, rStr] = typeRootKey.split(':');\n const r = rStr === 'auto' ? 'auto' : rStr;\n const opts = {capture: metaList[0].options.capture, once: metaList[0].options.once, passive: metaList[0].options.passive};\n\n const bindRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') bindRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') bindRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) bindRoots.push(this.shadowRoot);\n else if (r === 'all') {\n bindRoots.push(this as any);\n if (this.shadowRoot) bindRoots.push(this.shadowRoot);\n }\n\n bindRoots.forEach(br => {\n const sortedMetaList = [...metaList].sort((a, b) => {\n const aStop = a.options.stopPropagation ? 1 : 0;\n const bStop = b.options.stopPropagation ? 1 : 0;\n return bStop - aStop;\n });\n\n const unifiedHandler = async (event: Event) => {\n for (const meta of sortedMetaList) {\n const {selector, options} = meta;\n const matchedEl = (event.target as HTMLElement).closest(selector);\n if (matchedEl && (br as any).contains(matchedEl)) {\n // Apply filter if specified\n if (options.filter) {\n const helper = SwcUtils.getHelperAndHostSet(currentWin, matchedEl);\n if (!options.filter(event, helper)) {\n continue; // Skip this listener if filter returns false\n }\n }\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = {event, ...currentHostSet, $el: matchedEl, $root: br};\n await (this as any)[meta.propertyKey](event, {...currentHostSet, $matchedElement: matchedEl}, args);\n if ((event as any).cancelBubble) break;\n }\n }\n };\n br.addEventListener(type, unifiedHandler, opts);\n (this as any)._boundListeners.push({target: br, type, handler: unifiedHandler, options: opts});\n });\n });\n\n nonDelegateListeners.forEach(meta => {\n const {selector, type, options} = meta;\n const opts = {capture: options.capture, once: options.once, passive: options.passive};\n const bindTargets: EventTarget[] = [];\n const r = options.root || 'auto';\n \n // Resolve selector if it's a function\n let resolvedSelector: string | null = null;\n if (typeof selector === 'function') {\n const hostSet = SwcUtils.getHelperAndHostSet(currentWin, this);\n const result = selector(this, hostSet);\n if (typeof result === 'string') {\n resolvedSelector = result;\n } else if (result instanceof currentWin.Element) {\n bindTargets.push(result as EventTarget);\n } else if (result instanceof currentWin.NodeList) {\n bindTargets.push(...Array.from(result as EventTarget[]));\n } else if (Array.isArray(result)) {\n bindTargets.push(...(result as EventTarget[]));\n }\n } else {\n resolvedSelector = selector;\n }\n \n const applyRootOption = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n bindTargets.push(target.shadowRoot || target);\n } else {\n if (r === 'light' || r === 'all') bindTargets.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) bindTargets.push(target.shadowRoot);\n }\n };\n\n if (resolvedSelector) {\n if (resolvedSelector === '$window') bindTargets.push(currentWin);\n else if (resolvedSelector === '$document') bindTargets.push(currentWin.document);\n else if (resolvedSelector === '$host') applyRootOption(helperHostSet.$host);\n else if (resolvedSelector === '$parentHost') applyRootOption(helperHostSet.$parentHost);\n else if (resolvedSelector === '$appHost') applyRootOption(helperHostSet.$appHost);\n else if (resolvedSelector === '$firstHost') applyRootOption(helperHostSet.$firstHost);\n else if (resolvedSelector === '$lastHost') applyRootOption(helperHostSet.$lastHost);\n else if (resolvedSelector === '$firstAppHost') applyRootOption(helperHostSet.$firstAppHost);\n else if (resolvedSelector === '$lastAppHost') applyRootOption(helperHostSet.$lastAppHost);\n else if (resolvedSelector === '$hosts') helperHostSet.$hosts.forEach(applyRootOption);\n else if (resolvedSelector === '$appHosts') helperHostSet.$appHosts.forEach(applyRootOption);\n else if (resolvedSelector === '$this' || !resolvedSelector) applyRootOption(this);\n else {\n const searchRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') searchRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') searchRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) searchRoots.push(this.shadowRoot);\n else if (r === 'all') {\n searchRoots.push(this as any);\n if (this.shadowRoot) searchRoots.push(this.shadowRoot);\n }\n\n searchRoots.forEach(sr => {\n sr.querySelectorAll(resolvedSelector).forEach(el => bindTargets.push(el));\n });\n }\n }\n\n bindTargets.forEach(t => {\n const handler = async (event: Event) => {\n // Apply filter if specified\n if (options.filter) {\n const helper = SwcUtils.getHelperAndHostSet(currentWin, t as HTMLElement);\n if (!options.filter(event, {currentThis: this, helper})) {\n return; // Skip if filter returns false\n }\n }\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = {event, ...currentHostSet, $el: t, $root: t};\n await (this as any)[meta.propertyKey](event, {currentHostSet, $matchedElement: event.currentTarget}, args);\n };\n \n // Create event stream with Observable-based operators\n const eventSubject = new Subject<Event>();\n let eventStream = eventSubject as any;\n \n // Apply operators from @dooboostore/core/operators\n if (options.debounceTime !== undefined && options.debounceTime > 0) {\n eventStream = eventStream.pipe(debounceTime(options.debounceTime));\n }\n \n if (options.throttleTime !== undefined && options.throttleTime > 0) {\n eventStream = eventStream.pipe(throttleTime(options.throttleTime));\n }\n \n if (options.distinctUntilChanged !== undefined && options.distinctUntilChanged !== false) {\n if (typeof options.distinctUntilChanged === 'function') {\n eventStream = eventStream.pipe(distinctUntilChanged(options.distinctUntilChanged));\n } else {\n eventStream = eventStream.pipe(distinctUntilChanged());\n }\n }\n \n // Subscribe to the event stream\n const subscription = eventStream.subscribe({\n next: (event: Event) => {\n handler(event).catch((err: any) => console.error('Event handler error:', err));\n },\n error: (err: any) => console.error('Event stream error:', err)\n });\n \n // Create wrapper handler that emits to the subject\n const wrappedHandler = (event: Event) => {\n eventSubject.next(event);\n };\n \n t.addEventListener(type, wrappedHandler, opts);\n (this as any)._boundListeners.push({target: t, type, handler: wrappedHandler, options: opts, subscription});\n });\n });\n\n if (originalConnected) await (originalConnected.apply(this));\n\n const aMethods = findAllOnConnectedAfterMetadata(this).filter(it => {\n return useSsr ? !it.options.ssrFirst : true;\n });\n // console.log('afterConnected', this.tagName, aMethods, getOnConnectedAfterMetadata(this))\n for (const m of aMethods) await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n (this as any)._executeSwcScript('swc-on-connected', helperHostSet);\n (this as any)._executeSwcScript('swc-on-after-connected', helperHostSet);\n (this as any).__swc_connected = true;\n\n // Trigger @changedAttributeThis with while: 'connected'\n for (let [name, metaList] of Array.from(attrChangeMap)) {\n for (const meta of metaList) {\n if (meta.options.while === 'connected') {\n const val = getAttributeValue(this, name, {type: meta.options.type});\n if (val !== null) {\n await ((this as any)[meta.propertyKey](val, null, name, helperHostSet));\n }\n }\n }\n }\n } finally {\n for (let m of findAllLifecycleMetadata(this, ON_CONNECTED_COMPLETED_METADATA_KEY)) {\n await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n }\n if (appHost && typeof (appHost as any)._connectedDone === 'function') {\n await (appHost as any)._connectedDone(this);\n }\n }\n };\n\n const originalDisconnected = proto.disconnectedCallback;\n proto.disconnectedCallback = function () {\n // const helperHostSet = SwcUtils.getHelperAndHostSet(win, this as any);\n // Remove from appHost LAST when disconnected\n // console.log('disconnnnnnnnnnnnnnnnnnn', helperHostSet, this)\n const appHost = helperHostSet.$appHost;\n if (appHost && typeof (appHost as any)._disconnected === 'function') {\n (appHost as any)._disconnected(this);\n }\n\n (this as any)._executeSwcScript('swc-on-before-disconnected', helperHostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n\n if ((this as any)._boundListeners) {\n (this as any)._boundListeners.forEach((l: any) => {\n l.target.removeEventListener(l.type, l.handler, l.options);\n // Cleanup Observable subscription if present\n if (l.subscription && typeof l.subscription.unsubscribe === 'function') {\n l.subscription.unsubscribe();\n }\n });\n (this as any)._boundListeners = [];\n }\n\n new ElementApply(this, {id: this._swcId}).removeAllEventListener();\n\n // globalDelegatedRoots remove\n // const roots = [this, this.getRootNode()];\n // if (this.shadowRoot) {\n // roots.push(this.shadowRoot);\n // }\n // roots.forEach(root => {\n // DOM_EVENT_NAMES.forEach(type => {\n // root.removeEventListener(type, handleGlobalSwcEvent);\n // });\n // }\n // )\n\n if (originalDisconnected) originalDisconnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n (this as any)._executeSwcScript('swc-on-disconnected', helperHostSet);\n (this as any)._executeSwcScript('swc-on-after-disconnected', helperHostSet);\n (this as any).__swc_connected = false;\n };\n\n const originalAdopted = proto.adoptedCallback;\n proto.adoptedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-adopted', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m.propertyKey, hostSet);\n\n if (originalAdopted) originalAdopted.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m.propertyKey, hostSet);\n (this as any)._executeSwcScript('swc-on-adopted', hostSet);\n (this as any)._executeSwcScript('swc-on-after-adopted', hostSet);\n };\n\n const originalAttributeChanged = proto.attributeChangedCallback;\n proto.attributeChangedCallback = function (name: string, old: string | null, newVal: string | null) {\n if (originalAttributeChanged) originalAttributeChanged.apply(this, [name, old, newVal]);\n\n const hSet = SwcUtils.getHostSet(this as any);\n\n // Process expression directive before passing to handlers\n let processedVal: any = newVal;\n if (newVal !== null) {\n const ae = new ActionExpression(newVal);\n const expr = ae.getFirstExpression('callReturn');\n if (expr) {\n const win = (this as any)._resolveWindow?.() || ((typeof window !== 'undefined' ? window : undefined) as any);\n const helperAndHostSet = SwcUtils.getHelperAndHostSet(win, this as any);\n const script = ConvertUtils.decodeHtmlEntity(expr.script, win.document);\n try {\n const result = FunctionUtils.executeReturn({\n script: script,\n context: this,\n args: helperAndHostSet\n });\n // Pass the result object directly without serialization\n processedVal = result;\n } catch (e) {\n console.error(`[SWC] Failed to execute directive {{= ${expr.script} }} on attribute ${name}: ${helperAndHostSet}`, e);\n processedVal = newVal;\n }\n }\n }\n\n if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {\n if (newVal !== null) {\n const eventName = name.substring(7);\n (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);\n }\n }\n\n const hostCustomEventMeta = emitHostCustomEventList.find(it => (it.options as any).attributeName === name);\n if (hostCustomEventMeta && newVal !== null) {\n (this as any)._bindAttributeEvent(this as any, name, newVal, hostCustomEventMeta.type);\n }\n\n const metaList = attrChangeMap.get(name);\n if (metaList && Array.isArray(metaList)) {\n for (const meta of metaList) {\n if (meta.options.while === 'connected' && !(this as any).__swc_connected) {\n continue;\n }\n const convertedVal = convertAttributeValue(processedVal, meta.options.type);\n (this as any)[meta.propertyKey](convertedVal, old, name, hSet);\n }\n }\n };\n\n Object.defineProperty(constructor, 'observedAttributes', {\n get: () => mergedObservedAttributes,\n configurable: true\n });\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, metadata, constructor);\n const registry = metadata.customElementRegistry || (win as any)?.customElements;\n if (registry && !registry.get(metadata.name)) {\n registry.define(metadata.name, constructor as any, metadata.extends ? {extends: metadata.extends} : undefined);\n }\n return constructor;\n };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_core", "proto", "name", "win"]
|
|
7
7
|
}
|