@dooboostore/simple-web-component 1.0.35 → 1.0.37
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 +58 -21
- package/dist/cjs/{elements/SwcAppEngine.js → SwcAppEngine.js} +6 -6
- package/dist/cjs/SwcAppEngine.js.map +7 -0
- package/dist/cjs/decorators/addEventListener.js +12 -4
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/applyAttribute.js +19 -18
- package/dist/cjs/decorators/applyAttribute.js.map +2 -2
- package/dist/cjs/decorators/applyClass.js +23 -22
- package/dist/cjs/decorators/applyClass.js.map +2 -2
- package/dist/cjs/decorators/applyNode.js +28 -26
- package/dist/cjs/decorators/applyNode.js.map +2 -2
- package/dist/cjs/decorators/applySlot.js +122 -0
- package/dist/cjs/decorators/applySlot.js.map +7 -0
- package/dist/cjs/decorators/applyStyle.js +20 -19
- package/dist/cjs/decorators/applyStyle.js.map +2 -2
- package/dist/cjs/decorators/attribute.js +16 -15
- package/dist/cjs/decorators/attribute.js.map +2 -2
- package/dist/cjs/decorators/{changedAttributeHost.js → changedAttributeThis.js} +6 -6
- package/dist/cjs/decorators/changedAttributeThis.js.map +7 -0
- package/dist/cjs/decorators/elementDefine.js +59 -50
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/emitCustomEvent.js +18 -16
- package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
- package/dist/cjs/decorators/index.js +2 -1
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/lifecycles.js +56 -8
- package/dist/cjs/decorators/lifecycles.js.map +2 -2
- package/dist/cjs/decorators/query.js +38 -60
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/queryAll.js +31 -63
- package/dist/cjs/decorators/queryAll.js.map +2 -2
- package/dist/cjs/decorators/setProperty.js +13 -12
- package/dist/cjs/decorators/setProperty.js.map +2 -2
- package/dist/cjs/elements/{SwcAppMixin.js → SwcApp.js} +107 -57
- package/dist/cjs/elements/SwcApp.js.map +7 -0
- package/dist/cjs/elements/index.js +21 -2
- package/dist/cjs/elements/index.js.map +3 -3
- package/dist/cjs/elements/tt/SwcAppMixin.js +1 -0
- package/dist/cjs/elements/tt/SwcAppMixin.js.map +7 -0
- package/dist/cjs/elements/tt/SwcAsync.js +1 -0
- package/dist/cjs/elements/tt/SwcAsync.js.map +7 -0
- package/dist/cjs/elements/tt/SwcAsyncTemplate.js +1 -0
- package/dist/cjs/elements/tt/SwcAsyncTemplate.js.map +7 -0
- package/dist/cjs/elements/tt/SwcChoose.js +1 -0
- package/dist/cjs/elements/tt/SwcChoose.js.map +7 -0
- package/dist/cjs/elements/tt/SwcChooseTemplate.js +1 -0
- package/dist/cjs/elements/tt/SwcChooseTemplate.js.map +7 -0
- package/dist/cjs/elements/tt/SwcIf.js +1 -0
- package/dist/cjs/elements/tt/SwcIf.js.map +7 -0
- package/dist/cjs/elements/tt/SwcIfTemplate.js +1 -0
- package/dist/cjs/elements/tt/SwcIfTemplate.js.map +7 -0
- package/dist/cjs/elements/tt/SwcLoop.js +1 -0
- package/dist/cjs/elements/tt/SwcLoop.js.map +7 -0
- package/dist/cjs/elements/tt/SwcLoopTemplate.js +1 -0
- package/dist/cjs/elements/tt/SwcLoopTemplate.js.map +7 -0
- package/dist/cjs/elements/tt/SwcSubTemplates.js +1 -0
- package/dist/cjs/elements/tt/SwcSubTemplates.js.map +7 -0
- package/dist/cjs/elements/tt/register.js +1 -0
- package/dist/cjs/elements/tt/register.js.map +7 -0
- package/dist/cjs/index.js +12 -8
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/types/window.d.js +16 -0
- package/dist/cjs/types/window.d.js.map +7 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/Utils.js +22 -19
- package/dist/cjs/utils/Utils.js.map +2 -2
- package/dist/esm/{elements/SwcAppEngine.js → SwcAppEngine.js} +4 -4
- package/dist/esm/SwcAppEngine.js.map +7 -0
- package/dist/esm/decorators/addEventListener.js +12 -4
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/applyAttribute.js +19 -18
- package/dist/esm/decorators/applyAttribute.js.map +2 -2
- package/dist/esm/decorators/applyClass.js +23 -22
- package/dist/esm/decorators/applyClass.js.map +2 -2
- package/dist/esm/decorators/applyNode.js +28 -26
- package/dist/esm/decorators/applyNode.js.map +2 -2
- package/dist/esm/decorators/applySlot.js +103 -0
- package/dist/esm/decorators/applySlot.js.map +7 -0
- package/dist/esm/decorators/applyStyle.js +20 -19
- package/dist/esm/decorators/applyStyle.js.map +2 -2
- package/dist/esm/decorators/attribute.js +16 -15
- package/dist/esm/decorators/attribute.js.map +2 -2
- package/dist/esm/decorators/{changedAttributeHost.js → changedAttributeThis.js} +3 -3
- package/dist/esm/decorators/changedAttributeThis.js.map +7 -0
- package/dist/esm/decorators/elementDefine.js +60 -51
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/emitCustomEvent.js +18 -16
- package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
- package/dist/esm/decorators/index.js +2 -1
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/lifecycles.js +56 -8
- package/dist/esm/decorators/lifecycles.js.map +2 -2
- package/dist/esm/decorators/query.js +38 -60
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/queryAll.js +31 -63
- package/dist/esm/decorators/queryAll.js.map +2 -2
- package/dist/esm/decorators/setProperty.js +13 -12
- package/dist/esm/decorators/setProperty.js.map +2 -2
- package/dist/esm/elements/{SwcAppMixin.js → SwcApp.js} +102 -53
- package/dist/esm/elements/SwcApp.js.map +7 -0
- package/dist/esm/elements/index.js +7 -1
- package/dist/esm/elements/index.js.map +2 -2
- package/dist/esm/elements/tt/SwcAppMixin.js +1 -0
- package/dist/esm/elements/tt/SwcAppMixin.js.map +7 -0
- package/dist/esm/elements/tt/SwcAsync.js +1 -0
- package/dist/esm/elements/tt/SwcAsync.js.map +7 -0
- package/dist/esm/elements/tt/SwcAsyncTemplate.js +1 -0
- package/dist/esm/elements/tt/SwcAsyncTemplate.js.map +7 -0
- package/dist/esm/elements/tt/SwcChoose.js +1 -0
- package/dist/esm/elements/tt/SwcChoose.js.map +7 -0
- package/dist/esm/elements/tt/SwcChooseTemplate.js +1 -0
- package/dist/esm/elements/tt/SwcChooseTemplate.js.map +7 -0
- package/dist/esm/elements/tt/SwcIf.js +1 -0
- package/dist/esm/elements/tt/SwcIf.js.map +7 -0
- package/dist/esm/elements/tt/SwcIfTemplate.js +1 -0
- package/dist/esm/elements/tt/SwcIfTemplate.js.map +7 -0
- package/dist/esm/elements/tt/SwcLoop.js +1 -0
- package/dist/esm/elements/tt/SwcLoop.js.map +7 -0
- package/dist/esm/elements/tt/SwcLoopTemplate.js +1 -0
- package/dist/esm/elements/tt/SwcLoopTemplate.js.map +7 -0
- package/dist/esm/elements/tt/SwcSubTemplates.js +1 -0
- package/dist/esm/elements/tt/SwcSubTemplates.js.map +7 -0
- package/dist/esm/elements/tt/register.js +1 -0
- package/dist/esm/elements/tt/register.js.map +7 -0
- package/dist/esm/index.js +13 -9
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/types/window.d.js +1 -0
- package/dist/esm/types/window.d.js.map +7 -0
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/Utils.js +22 -19
- package/dist/esm/utils/Utils.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +4189 -456
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/{elements/SwcAppEngine.d.ts → SwcAppEngine.d.ts} +9 -4
- package/dist/types/SwcAppEngine.d.ts.map +1 -0
- package/dist/types/decorators/addEventListener.d.ts +5 -7
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/applyAttribute.d.ts +4 -4
- package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
- package/dist/types/decorators/applyClass.d.ts +6 -6
- package/dist/types/decorators/applyClass.d.ts.map +1 -1
- package/dist/types/decorators/applyNode.d.ts +9 -9
- package/dist/types/decorators/applyNode.d.ts.map +1 -1
- package/dist/types/decorators/applySlot.d.ts +27 -0
- package/dist/types/decorators/applySlot.d.ts.map +1 -0
- package/dist/types/decorators/applyStyle.d.ts +4 -4
- package/dist/types/decorators/applyStyle.d.ts.map +1 -1
- package/dist/types/decorators/attribute.d.ts +5 -5
- package/dist/types/decorators/attribute.d.ts.map +1 -1
- package/dist/types/decorators/changedAttributeThis.d.ts +18 -0
- package/dist/types/decorators/changedAttributeThis.d.ts.map +1 -0
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts +4 -9
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +2 -1
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/lifecycles.d.ts +21 -6
- package/dist/types/decorators/lifecycles.d.ts.map +1 -1
- package/dist/types/decorators/query.d.ts +17 -63
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/queryAll.d.ts +6 -63
- package/dist/types/decorators/queryAll.d.ts.map +1 -1
- package/dist/types/decorators/setProperty.d.ts +1 -1
- package/dist/types/decorators/setProperty.d.ts.map +1 -1
- package/dist/types/elements/SwcApp.d.ts +7 -0
- package/dist/types/elements/SwcApp.d.ts.map +1 -0
- package/dist/types/elements/index.d.ts +2 -1
- package/dist/types/elements/index.d.ts.map +1 -1
- package/dist/types/elements/tt/SwcAppMixin.d.ts +1 -0
- package/dist/types/elements/tt/SwcAppMixin.d.ts.map +1 -0
- package/dist/types/elements/tt/SwcAsync.d.ts +1 -0
- package/dist/types/elements/tt/SwcAsync.d.ts.map +1 -0
- package/dist/types/elements/tt/SwcAsyncTemplate.d.ts +1 -0
- package/dist/types/elements/tt/SwcAsyncTemplate.d.ts.map +1 -0
- package/dist/types/elements/tt/SwcChoose.d.ts +1 -0
- package/dist/types/elements/tt/SwcChoose.d.ts.map +1 -0
- package/dist/types/elements/tt/SwcChooseTemplate.d.ts +1 -0
- package/dist/types/elements/tt/SwcChooseTemplate.d.ts.map +1 -0
- package/dist/types/elements/tt/SwcIf.d.ts +1 -0
- package/dist/types/elements/{SwcIf.d.ts.map → tt/SwcIf.d.ts.map} +1 -1
- package/dist/types/elements/tt/SwcIfTemplate.d.ts +1 -0
- package/dist/types/elements/tt/SwcIfTemplate.d.ts.map +1 -0
- package/dist/types/elements/tt/SwcLoop.d.ts +1 -0
- package/dist/types/elements/tt/SwcLoop.d.ts.map +1 -0
- package/dist/types/elements/tt/SwcLoopTemplate.d.ts +1 -0
- package/dist/types/elements/tt/SwcLoopTemplate.d.ts.map +1 -0
- package/dist/types/elements/tt/SwcSubTemplates.d.ts +1 -0
- package/dist/types/elements/tt/SwcSubTemplates.d.ts.map +1 -0
- package/dist/types/elements/tt/register.d.ts +1 -0
- package/dist/types/elements/tt/register.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +5 -5
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/Utils.d.ts +13 -12
- package/dist/types/utils/Utils.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +4189 -456
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +4 -4
- package/src/{elements/SwcAppEngine.ts → SwcAppEngine.ts} +12 -7
- package/src/decorators/addEventListener.ts +11 -9
- package/src/decorators/applyAttribute.ts +16 -15
- package/src/decorators/applyClass.ts +18 -17
- package/src/decorators/applyNode.ts +30 -27
- package/src/decorators/applySlot.ts +228 -0
- package/src/decorators/applyStyle.ts +17 -16
- package/src/decorators/attribute.ts +20 -19
- package/src/decorators/{changedAttributeHost.ts → changedAttributeThis.ts} +10 -12
- package/src/decorators/elementDefine.ts +80 -57
- package/src/decorators/emitCustomEvent.ts +21 -26
- package/src/decorators/index.ts +2 -1
- package/src/decorators/lifecycles.ts +76 -11
- package/src/decorators/query.ts +51 -124
- package/src/decorators/queryAll.ts +30 -127
- package/src/decorators/setProperty.ts +12 -11
- package/src/elements/{SwcAppMixin.ts → SwcApp.ts} +98 -31
- package/src/elements/index.ts +11 -1
- package/src/elements/tt/SwcAppMixin.ts +13 -0
- package/src/elements/tt/SwcAsync.ts +139 -0
- package/src/elements/tt/SwcAsyncTemplate.ts +126 -0
- package/src/elements/tt/SwcChoose.ts +182 -0
- package/src/elements/tt/SwcChooseTemplate.ts +229 -0
- package/src/elements/tt/SwcIf.ts +145 -0
- package/src/elements/tt/SwcIfTemplate.ts +158 -0
- package/src/elements/tt/SwcLoop.ts +222 -0
- package/src/elements/tt/SwcLoopTemplate.ts +255 -0
- package/src/elements/tt/SwcSubTemplates.ts +6 -0
- package/src/elements/tt/register.ts +720 -0
- package/src/index.ts +13 -9
- package/src/types/window.d.ts +43 -0
- package/src/types.ts +9 -8
- package/src/utils/Utils.ts +28 -24
- package/dist/cjs/decorators/changedAttributeHost.js.map +0 -7
- package/dist/cjs/elements/SwcAppEngine.js.map +0 -7
- package/dist/cjs/elements/SwcAppMixin.js.map +0 -7
- package/dist/cjs/elements/SwcAsync.js +0 -129
- package/dist/cjs/elements/SwcAsync.js.map +0 -7
- package/dist/cjs/elements/SwcChoose.js +0 -155
- package/dist/cjs/elements/SwcChoose.js.map +0 -7
- package/dist/cjs/elements/SwcIf.js +0 -117
- package/dist/cjs/elements/SwcIf.js.map +0 -7
- package/dist/cjs/elements/SwcLoop.js +0 -176
- package/dist/cjs/elements/SwcLoop.js.map +0 -7
- package/dist/cjs/elements/SwcSubTemplates.js +0 -13
- package/dist/cjs/elements/SwcSubTemplates.js.map +0 -7
- package/dist/cjs/elements/register.js +0 -1026
- package/dist/cjs/elements/register.js.map +0 -7
- package/dist/esm/decorators/changedAttributeHost.js.map +0 -7
- package/dist/esm/elements/SwcAppEngine.js.map +0 -7
- package/dist/esm/elements/SwcAppMixin.js.map +0 -7
- package/dist/esm/elements/SwcAsync.js +0 -129
- package/dist/esm/elements/SwcAsync.js.map +0 -7
- package/dist/esm/elements/SwcChoose.js +0 -155
- package/dist/esm/elements/SwcChoose.js.map +0 -7
- package/dist/esm/elements/SwcIf.js +0 -117
- package/dist/esm/elements/SwcIf.js.map +0 -7
- package/dist/esm/elements/SwcLoop.js +0 -176
- package/dist/esm/elements/SwcLoop.js.map +0 -7
- package/dist/esm/elements/SwcSubTemplates.js +0 -13
- package/dist/esm/elements/SwcSubTemplates.js.map +0 -7
- package/dist/esm/elements/register.js +0 -1007
- package/dist/esm/elements/register.js.map +0 -7
- package/dist/types/decorators/changedAttributeHost.d.ts +0 -20
- package/dist/types/decorators/changedAttributeHost.d.ts.map +0 -1
- package/dist/types/elements/SwcAppEngine.d.ts.map +0 -1
- package/dist/types/elements/SwcAppMixin.d.ts +0 -386
- package/dist/types/elements/SwcAppMixin.d.ts.map +0 -1
- package/dist/types/elements/SwcAsync.d.ts +0 -2
- package/dist/types/elements/SwcAsync.d.ts.map +0 -1
- package/dist/types/elements/SwcChoose.d.ts +0 -2
- package/dist/types/elements/SwcChoose.d.ts.map +0 -1
- package/dist/types/elements/SwcIf.d.ts +0 -2
- package/dist/types/elements/SwcLoop.d.ts +0 -2
- package/dist/types/elements/SwcLoop.d.ts.map +0 -1
- package/dist/types/elements/SwcSubTemplates.d.ts +0 -13
- package/dist/types/elements/SwcSubTemplates.d.ts.map +0 -1
- package/dist/types/elements/register.d.ts +0 -4
- package/dist/types/elements/register.d.ts.map +0 -1
- package/src/elements/SwcAsync.ts +0 -126
- package/src/elements/SwcChoose.ts +0 -190
- package/src/elements/SwcIf.ts +0 -124
- package/src/elements/SwcLoop.ts +0 -205
- package/src/elements/SwcSubTemplates.ts +0 -6
- package/src/elements/register.ts +0 -1022
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ReflectUtils, FunctionUtils, ActionExpression } from "@dooboostore/core";
|
|
2
2
|
import { getAddEventListenerMetadata } from "./addEventListener.js";
|
|
3
|
-
import { ON_INITIALIZE_METADATA_KEY,
|
|
3
|
+
import { ON_INITIALIZE_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, findAllLifecycleMetadata, getOnConnectedInnerHtmlMetadata, getOnConnectedBeforeMetadata, getOnConnectedAfterMetadata, ON_CONNECTED_COMPLETED_METADATA_KEY } from "./lifecycles.js";
|
|
4
4
|
import { getEmitCustomEventMetadataList } from "./emitCustomEvent.js";
|
|
5
|
-
import { findAllAttributeChangedMetadata, convertAttributeValue } from "./
|
|
5
|
+
import { findAllAttributeChangedMetadata, convertAttributeValue } from "./changedAttributeThis.js";
|
|
6
6
|
import { findAllAttributeApplyMetadata } from "./applyAttribute.js";
|
|
7
7
|
import { findAllAttributeMetadata, getAttributeValue } from "./attribute.js";
|
|
8
8
|
import { getQueryMetadata } from "./query.js";
|
|
@@ -10,8 +10,10 @@ import { getQueryAllMetadata } from "./queryAll.js";
|
|
|
10
10
|
import { SwcUtils } from "../utils/Utils.js";
|
|
11
11
|
import { HTML_TAG_ENTRIES, DOM_EVENT_NAMES } from "../config/config.js";
|
|
12
12
|
import { SituationTypeContainer, SituationTypeContainers } from "@dooboostore/simple-boot/decorators/inject/Inject";
|
|
13
|
-
import { InjectSituationType } from "../types.js";
|
|
14
|
-
import { ConvertUtils } from "@dooboostore/core-web";
|
|
13
|
+
import { InjectSituationType } from "../types/index.js";
|
|
14
|
+
import { ConvertUtils, NodeSlot } from "@dooboostore/core-web";
|
|
15
|
+
import { isSSR } from "../elements/SwcApp.js";
|
|
16
|
+
import { findAllApplySlotMetadata } from "./applySlot.js";
|
|
15
17
|
const ELEMENT_CONFIG_KEY = Symbol.for("simple-web-component:element-config");
|
|
16
18
|
const getElementConfig = (target) => {
|
|
17
19
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
@@ -19,7 +21,7 @@ const getElementConfig = (target) => {
|
|
|
19
21
|
};
|
|
20
22
|
const ensureInit = (inst) => {
|
|
21
23
|
if (!inst.__swc_initialized) {
|
|
22
|
-
inst._swcId = Math.random().toString(36).substring(2, 11);
|
|
24
|
+
inst._swcId = inst?.getAttribute?.("swc-use-ssr") ?? Math.random().toString(36).substring(2, 11);
|
|
23
25
|
inst._emitHandlers = /* @__PURE__ */ new Map();
|
|
24
26
|
inst._boundListeners = [];
|
|
25
27
|
inst.__swc_initialized = true;
|
|
@@ -40,8 +42,14 @@ const ensureInit = (inst) => {
|
|
|
40
42
|
delete inst[meta.propertyKey];
|
|
41
43
|
});
|
|
42
44
|
}
|
|
45
|
+
const slotAllList = findAllApplySlotMetadata(target);
|
|
46
|
+
if (slotAllList) {
|
|
47
|
+
slotAllList.filter((it) => it.type === "property").forEach((meta) => {
|
|
48
|
+
delete inst[meta.propertyKey];
|
|
49
|
+
});
|
|
50
|
+
}
|
|
43
51
|
const hostSet = SwcUtils.getHostSet(inst);
|
|
44
|
-
const appHosts = SwcUtils.
|
|
52
|
+
const appHosts = SwcUtils.findAllAppHostsIncludingSelfDirect(inst);
|
|
45
53
|
inst._executeSwcScript?.("swc-on-constructor", hostSet);
|
|
46
54
|
const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);
|
|
47
55
|
if (cMethods) {
|
|
@@ -59,7 +67,7 @@ const handleGlobalSwcEvent = async (event) => {
|
|
|
59
67
|
if (!(node instanceof HTMLElement)) continue;
|
|
60
68
|
const script = node.getAttribute?.(attrName);
|
|
61
69
|
if (script && !getElementConfig(node)) {
|
|
62
|
-
const host = SwcUtils.
|
|
70
|
+
const host = SwcUtils.findNearestSwcHostIncludingSelf(node);
|
|
63
71
|
if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === "function") {
|
|
64
72
|
await host.__swc_executeAttributeEvent(node, attrName, script, event);
|
|
65
73
|
event.__swc_handled = true;
|
|
@@ -82,7 +90,7 @@ const getHandlers = (inst) => {
|
|
|
82
90
|
if (!inst.__swc_attributeEventHandlers) inst.__swc_attributeEventHandlers = /* @__PURE__ */ new Map();
|
|
83
91
|
return inst.__swc_attributeEventHandlers;
|
|
84
92
|
};
|
|
85
|
-
const setupPrototype = (proto) => {
|
|
93
|
+
const setupPrototype = (proto, win) => {
|
|
86
94
|
if (proto.__swc_proto_setup) return;
|
|
87
95
|
proto.__swc_proto_setup = true;
|
|
88
96
|
proto._executeSwcScript = function(attrName, hostSet, extraArgs = {}) {
|
|
@@ -103,7 +111,7 @@ const setupPrototype = (proto) => {
|
|
|
103
111
|
proto._resolveWindow = function(localConfig) {
|
|
104
112
|
ensureInit(this);
|
|
105
113
|
if (localConfig?.window) return localConfig.window;
|
|
106
|
-
const ancestors = SwcUtils.
|
|
114
|
+
const ancestors = SwcUtils.findAllSwcHostsIncludingSelf(this);
|
|
107
115
|
for (let i = ancestors.length - 1; i >= 0; i--) {
|
|
108
116
|
const aConf = getElementConfig(ancestors[i]);
|
|
109
117
|
if (aConf?.window) return aConf.window;
|
|
@@ -113,7 +121,7 @@ const setupPrototype = (proto) => {
|
|
|
113
121
|
proto._invokeLifecycleMethod = function(methodName, hostSet, extraArgs = []) {
|
|
114
122
|
ensureInit(this);
|
|
115
123
|
if (typeof this[methodName] !== "function") return;
|
|
116
|
-
const useHostSet = hostSet ?? SwcUtils.
|
|
124
|
+
const useHostSet = hostSet ?? SwcUtils.getHelperAndHostSet(win, this);
|
|
117
125
|
const app = useHostSet?.$appHost?.simpleApplication;
|
|
118
126
|
if (app) {
|
|
119
127
|
const otherStorage = /* @__PURE__ */ new Map();
|
|
@@ -207,7 +215,7 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
207
215
|
metadata.extends = extendsTagName;
|
|
208
216
|
}
|
|
209
217
|
const emitCustomEventList = getEmitCustomEventMetadataList(constructor) || [];
|
|
210
|
-
const emitHostCustomEventList = emitCustomEventList.filter((meta) => meta.selector === "
|
|
218
|
+
const emitHostCustomEventList = emitCustomEventList.filter((meta) => meta.selector === "$this" || meta.selector === "");
|
|
211
219
|
const addEventListenerList = getAddEventListenerMetadata(constructor) || [];
|
|
212
220
|
const attrChangeMap = findAllAttributeChangedMetadata(constructor);
|
|
213
221
|
const attributeList = findAllAttributeMetadata(constructor);
|
|
@@ -215,64 +223,60 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
215
223
|
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"];
|
|
216
224
|
const swcOnEvents = DOM_EVENT_NAMES.map((e) => `swc-on-${e}`);
|
|
217
225
|
const attributeApplyNames = Array.from(applyAttributeMap.values()).map((it) => it.options.name).filter(Boolean);
|
|
218
|
-
const hostAttributes = attributeList.filter((it) => it.selector === "
|
|
226
|
+
const hostAttributes = attributeList.filter((it) => it.selector === "$this").map((it) => it.options.name || String(it.propertyKey));
|
|
219
227
|
const originalStaticObservedAttributes = constructor.observedAttributes ?? [];
|
|
220
228
|
const mergedObservedAttributes = [.../* @__PURE__ */ new Set([...metadata.observedAttributes ?? [], ...originalStaticObservedAttributes, ...attrChangeMap.keys(), ...attributeApplyNames, ...hostAttributes, ...emitHostCustomEventList.map((it) => it.options.attributeName).filter(Boolean), ...swcLifecycleAttributes, ...swcOnEvents])];
|
|
221
|
-
const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];
|
|
222
229
|
const proto = constructor.prototype;
|
|
223
|
-
setupPrototype(proto);
|
|
230
|
+
setupPrototype(proto, win);
|
|
224
231
|
let helperHostSet = null;
|
|
225
232
|
const originalConnected = proto.connectedCallback;
|
|
226
233
|
proto.connectedCallback = async function() {
|
|
227
234
|
ensureInit(this);
|
|
228
235
|
helperHostSet = SwcUtils.getHelperAndHostSet(win, this);
|
|
229
236
|
const appHost = helperHostSet.$appHost;
|
|
237
|
+
const useSsr = isSSR(this);
|
|
230
238
|
try {
|
|
231
239
|
if (appHost && typeof appHost._connected === "function") {
|
|
232
240
|
await appHost._connected(this);
|
|
233
241
|
} else if (appHost && typeof appHost) {
|
|
234
|
-
appHost.
|
|
235
|
-
appHost.
|
|
242
|
+
appHost._connected_safari_and_standby ?? (appHost._connected_safari_and_standby = []);
|
|
243
|
+
appHost._connected_safari_and_standby.push(this);
|
|
236
244
|
}
|
|
237
245
|
const conf = getElementConfig(this);
|
|
238
246
|
const currentWin = this._resolveWindow(conf);
|
|
239
|
-
const
|
|
247
|
+
const bMethods = getOnConnectedBeforeMetadata(this).filter((it) => useSsr ? !it.options.ssrFirst : true);
|
|
248
|
+
if (bMethods) {
|
|
249
|
+
for (const m of bMethods) await this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
250
|
+
}
|
|
251
|
+
this._executeSwcScript("swc-on-before-connected", helperHostSet);
|
|
252
|
+
const targetConnectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor).filter((it) => useSsr ? !it.options.ssrFirst : true);
|
|
253
|
+
const shadowMode = conf?.useShadow || targetConnectedInnerHtmlList.find((it) => it.options.useShadow)?.options.useShadow;
|
|
240
254
|
if (shadowMode && !this.shadowRoot) {
|
|
241
255
|
const mode = shadowMode === true ? "open" : shadowMode;
|
|
242
256
|
this.attachShadow({ mode });
|
|
243
257
|
}
|
|
244
|
-
|
|
245
|
-
if (bMethods) {
|
|
246
|
-
for (const m of bMethods) await this._invokeLifecycleMethod(m, helperHostSet);
|
|
247
|
-
}
|
|
248
|
-
this._executeSwcScript("swc-on-before-connected", helperHostSet);
|
|
249
|
-
if (connectedInnerHtmlList.length > 0) {
|
|
258
|
+
if (targetConnectedInnerHtmlList.length > 0) {
|
|
250
259
|
let sContent = "", lContent = "";
|
|
251
|
-
for (const meta of
|
|
260
|
+
for (const meta of targetConnectedInnerHtmlList) {
|
|
252
261
|
let res = await this._invokeLifecycleMethod(meta.propertyKey, helperHostSet);
|
|
253
262
|
const actionExpression = new ActionExpression(res, {
|
|
254
263
|
expression: {
|
|
255
264
|
replace: {
|
|
256
|
-
start: meta.options.replaceWrap?.start || "
|
|
257
|
-
end: meta.options.replaceWrap?.end || "
|
|
265
|
+
start: meta.options.replaceWrap?.start || "[[",
|
|
266
|
+
end: meta.options.replaceWrap?.end || "]]"
|
|
258
267
|
},
|
|
259
268
|
callReturn: {
|
|
260
|
-
start: meta.options.replaceWrap?.start || "
|
|
261
|
-
end: meta.options.replaceWrap?.end || "
|
|
269
|
+
start: meta.options.replaceWrap?.start || "[[=",
|
|
270
|
+
end: meta.options.replaceWrap?.end || "]]"
|
|
262
271
|
},
|
|
263
272
|
call: {
|
|
264
|
-
start: meta.options.replaceWrap?.start || "
|
|
265
|
-
end: meta.options.replaceWrap?.end || "
|
|
273
|
+
start: meta.options.replaceWrap?.start || "[[@",
|
|
274
|
+
end: meta.options.replaceWrap?.end || "]]"
|
|
266
275
|
}
|
|
267
276
|
}
|
|
268
277
|
});
|
|
269
278
|
actionExpression.getExpressions().filter((it) => it.type === "replace").forEach((it) => {
|
|
270
|
-
|
|
271
|
-
const sr = FunctionUtils.executeReturn({ script: it.script, context: this, args: helperHostSet });
|
|
272
|
-
actionExpression.replace(it, sr);
|
|
273
|
-
} catch (e) {
|
|
274
|
-
console.error(`[SWC] Failed to execute connectedInnerHTML:`, e);
|
|
275
|
-
}
|
|
279
|
+
actionExpression.replace(it, NodeSlot.slot(`${this._swcId}-${it.script}`));
|
|
276
280
|
});
|
|
277
281
|
res = actionExpression.getUnprocessedTemplate();
|
|
278
282
|
if (res !== void 0) {
|
|
@@ -301,7 +305,7 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
301
305
|
const delegateListeners = [];
|
|
302
306
|
const nonDelegateListeners = [];
|
|
303
307
|
addEventListenerList.forEach((meta) => {
|
|
304
|
-
if (meta.options.delegate && meta.selector !== "
|
|
308
|
+
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 !== "") {
|
|
305
309
|
delegateListeners.push(meta);
|
|
306
310
|
} else {
|
|
307
311
|
nonDelegateListeners.push(meta);
|
|
@@ -373,17 +377,18 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
373
377
|
if ((r === "shadow" || r === "all") && target.shadowRoot) bindTargets.push(target.shadowRoot);
|
|
374
378
|
}
|
|
375
379
|
};
|
|
376
|
-
if (selector === "
|
|
377
|
-
else if (selector === "
|
|
378
|
-
else if (selector === "
|
|
379
|
-
else if (selector === "
|
|
380
|
-
else if (selector === "
|
|
381
|
-
else if (selector === "
|
|
382
|
-
else if (selector === "
|
|
383
|
-
else if (selector === "
|
|
384
|
-
else if (selector === "
|
|
385
|
-
else if (selector === "
|
|
386
|
-
else if (selector === "
|
|
380
|
+
if (selector === "$window") bindTargets.push(currentWin);
|
|
381
|
+
else if (selector === "$document") bindTargets.push(currentWin.document);
|
|
382
|
+
else if (selector === "$host") applyRootOption(helperHostSet.$host);
|
|
383
|
+
else if (selector === "$parentHost") applyRootOption(helperHostSet.$parentHost);
|
|
384
|
+
else if (selector === "$appHost") applyRootOption(helperHostSet.$appHost);
|
|
385
|
+
else if (selector === "$firstHost") applyRootOption(helperHostSet.$firstHost);
|
|
386
|
+
else if (selector === "$lastHost") applyRootOption(helperHostSet.$lastHost);
|
|
387
|
+
else if (selector === "$firstAppHost") applyRootOption(helperHostSet.$firstAppHost);
|
|
388
|
+
else if (selector === "$lastAppHost") applyRootOption(helperHostSet.$lastAppHost);
|
|
389
|
+
else if (selector === "$hosts") helperHostSet.$hosts.forEach(applyRootOption);
|
|
390
|
+
else if (selector === "$appHosts") helperHostSet.$appHosts.forEach(applyRootOption);
|
|
391
|
+
else if (selector === "$this" || !selector) applyRootOption(this);
|
|
387
392
|
else {
|
|
388
393
|
const searchRoots = [];
|
|
389
394
|
if (r === "auto") searchRoots.push(this.shadowRoot || this);
|
|
@@ -419,9 +424,11 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
419
424
|
});
|
|
420
425
|
});
|
|
421
426
|
if (originalConnected) await originalConnected.apply(this);
|
|
422
|
-
const aMethods =
|
|
427
|
+
const aMethods = getOnConnectedAfterMetadata(this).filter((it) => {
|
|
428
|
+
return useSsr ? !it.options.ssrFirst : true;
|
|
429
|
+
});
|
|
423
430
|
if (aMethods) {
|
|
424
|
-
for (const m of aMethods) await this._invokeLifecycleMethod(m, helperHostSet);
|
|
431
|
+
for (const m of aMethods) await this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
425
432
|
}
|
|
426
433
|
this._executeSwcScript("swc-on-connected", helperHostSet);
|
|
427
434
|
this._executeSwcScript("swc-on-after-connected", helperHostSet);
|
|
@@ -437,6 +444,9 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
437
444
|
}
|
|
438
445
|
}
|
|
439
446
|
} finally {
|
|
447
|
+
for (let mPropertyKey of findAllLifecycleMetadata(this, ON_CONNECTED_COMPLETED_METADATA_KEY)) {
|
|
448
|
+
await this._invokeLifecycleMethod(mPropertyKey, helperHostSet);
|
|
449
|
+
}
|
|
440
450
|
if (appHost && typeof appHost._connectedDone === "function") {
|
|
441
451
|
await appHost._connectedDone(this);
|
|
442
452
|
}
|
|
@@ -444,7 +454,6 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
444
454
|
};
|
|
445
455
|
const originalDisconnected = proto.disconnectedCallback;
|
|
446
456
|
proto.disconnectedCallback = function() {
|
|
447
|
-
console.log("disconnnnnnnnnnnnnnnnnnn", helperHostSet, this);
|
|
448
457
|
const appHost = helperHostSet.$appHost;
|
|
449
458
|
if (appHost && typeof appHost._disconnected === "function") {
|
|
450
459
|
appHost._disconnected(this);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/elementDefine.ts"],
|
|
4
|
-
"sourcesContent": ["import {ReflectUtils, FunctionUtils, ActionExpression} from '@dooboostore/core';\nimport {getAddEventListenerMetadata} from './addEventListener';\nimport {ON_INITIALIZE_METADATA_KEY, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, findAllLifecycleMetadata, getOnConnectedInnerHtmlMetadata} from './lifecycles';\nimport {getEmitCustomEventMetadataList} from './emitCustomEvent';\nimport {findAllAttributeChangedMetadata, convertAttributeValue} from './changedAttributeHost';\nimport {findAllAttributeApplyMetadata} from './applyAttribute';\nimport {findAllAttributeMetadata, getAttributeValue} from './attribute';\nimport {getQueryMetadata} from './query';\nimport {getQueryAllMetadata} from './queryAll';\nimport {SwcUtils} from '../utils/Utils';\nimport {HTML_TAG_ENTRIES, DOM_EVENT_NAMES} from '../config/config';\nimport {SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport {InjectSituationType, HostSet, HelperHostSet} from '../types';\nimport {ConvertUtils} from '@dooboostore/core-web';\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) => {\n if (!inst.__swc_initialized) {\n inst._swcId = Math.random().toString(36).substring(2, 11);\n inst._emitHandlers = new Map();\n inst._boundListeners = [];\n inst.__swc_initialized = true;\n\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: \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 @attributeHost('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\n // @attribute \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter/setter \uC791\uB3D9\n const attributeList = findAllAttributeMetadata(target);\n attributeList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\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\n // Call constructor script if present\n const hostSet = SwcUtils.getHostSet(inst);\n const appHosts = SwcUtils.findAllParentAppHostsDirect(inst);\n inst._executeSwcScript?.('swc-on-constructor', hostSet);\n\n // Call @onInitialize lifecycle methods\n const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);\n if (cMethods) {\n for (const m of cMethods) inst._invokeLifecycleMethod(m, hostSet);\n }\n }\n};\n\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n\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.findNearestSwcHost(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) => {\n if (proto.__swc_proto_setup) return;\n proto.__swc_proto_setup = true;\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.findAllSwcHosts(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.getHostSet(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 === ':host' || 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.options.name)\n .filter(Boolean) as string[];\n const hostAttributes = attributeList.filter(it => it.selector === ':host').map(it => it.options.name || 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);\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 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 ??= [];\n (appHost as any)._connected_safari.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 shadowMode = conf?.useShadow || connectedInnerHtmlList.find(it => it.options.useShadow)?.options.useShadow;\n if (shadowMode && !this.shadowRoot) {\n const mode = shadowMode === true ? 'open' : shadowMode;\n this.attachShadow({mode: mode as ShadowRootMode});\n }\n\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) await (this as any)._invokeLifecycleMethod(m, helperHostSet);\n }\n (this as any)._executeSwcScript('swc-on-before-connected', helperHostSet);\n\n if (connectedInnerHtmlList.length > 0) {\n let sContent = '',\n lContent = '';\n for (const meta of connectedInnerHtmlList) {\n // const res = (this as any)[meta.propertyKey]();\n let res = await (this as any)._invokeLifecycleMethod(meta.propertyKey, helperHostSet);\n const actionExpression = new ActionExpression(res, {\n expression: {\n replace: {\n start: meta.options.replaceWrap?.start || '{%{',\n end: meta.options.replaceWrap?.end || '}%}'\n },\n callReturn: {\n start: meta.options.replaceWrap?.start || '{%{=',\n end: meta.options.replaceWrap?.end || '}%}'\n },\n call: {\n start: meta.options.replaceWrap?.start || '{%{@',\n end: meta.options.replaceWrap?.end || '}%}'\n }\n }\n });\n\n actionExpression.getExpressions().filter(it => it.type === 'replace').forEach(it => {\n try {\n // const helperHostSet22 = SwcUtils.getHelperAndHostSet(win, this as any);\n const sr = FunctionUtils.executeReturn({script: it.script, context: this, args: helperHostSet});\n actionExpression.replace(it, sr);\n } catch (e) {\n console.error(`[SWC] Failed to execute connectedInnerHTML:`, e);\n }\n });\n res = actionExpression.getUnprocessedTemplate();\n\n if (res !== undefined) {\n if (meta.options.useShadow || conf?.useShadow) sContent += res;\n else lContent += res;\n }\n }\n try {\n if (this.shadowRoot) {\n this.shadowRoot.innerHTML = sContent;\n }\n if (lContent) {\n this.innerHTML = lContent;\n }\n } catch (e) {\n console.error('[ElementDefine] innerHTML setting error:', e);\n }\n }\n\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 // 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 !== ':parentHost' && meta.selector !== ':appHost' && meta.selector !== ':firstHost' && meta.selector !== ':lastHost' && meta.selector !== ':firstAppHost' && meta.selector !== ':lastAppHost' && meta.selector !== ':hosts' && meta.selector !== ':appHosts' && meta.selector !== ':host' && 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 === ':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 === ':host' || !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 if (options.removeOnDisconnected === true || t === currentWin || t === currentWin.document) {\n (this as any)._boundListeners.push({target: t, type, handler, options: opts});\n }\n });\n });\n\n if (originalConnected) await (originalConnected.apply(this));\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) await (this as any)._invokeLifecycleMethod(m, helperHostSet);\n }\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 @changedAttributeHost 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 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 if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, helperHostSet);\n }\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 if (originalDisconnected) originalDisconnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, helperHostSet);\n }\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 if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if (originalAdopted) originalAdopted.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\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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",
|
|
4
|
+
"sourcesContent": ["import {ReflectUtils, FunctionUtils, ActionExpression} from '@dooboostore/core';\nimport {getAddEventListenerMetadata} from './addEventListener';\nimport {ON_INITIALIZE_METADATA_KEY, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, findAllLifecycleMetadata, getOnConnectedInnerHtmlMetadata, getOnConnectedBeforeMetadata, getOnConnectedAfterMetadata, ON_CONNECTED_COMPLETED_METADATA_KEY} from './lifecycles';\nimport {getEmitCustomEventMetadataList} from './emitCustomEvent';\nimport {findAllAttributeChangedMetadata, convertAttributeValue} from './changedAttributeThis';\nimport {findAllAttributeApplyMetadata} from './applyAttribute';\nimport {findAllAttributeMetadata, getAttributeValue} from './attribute';\nimport {getQueryMetadata} from './query';\nimport {getQueryAllMetadata} from './queryAll';\nimport {SwcUtils} from '../utils/Utils';\nimport {HTML_TAG_ENTRIES, DOM_EVENT_NAMES} from '../config/config';\nimport {SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport {InjectSituationType, HostSet, HelperHostSet, SwcAppInterface} from '../types';\nimport {ConvertUtils, NodeSlot} from '@dooboostore/core-web';\nimport {isSSR} from \"../elements/SwcApp\";\nimport {findAllApplySlotMetadata} from \"./applySlot\";\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') ?? Math.random().toString(36).substring(2, 11);\n inst._emitHandlers = new Map();\n inst._boundListeners = [];\n inst.__swc_initialized = true;\n\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: \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\n // @attribute \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter/setter \uC791\uB3D9\n const attributeList = findAllAttributeMetadata(target);\n attributeList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\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 // 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 if (cMethods) {\n for (const m of cMethods) inst._invokeLifecycleMethod(m, hostSet);\n }\n }\n};\n\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n\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 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.options.name)\n .filter(Boolean) as string[];\n const hostAttributes = attributeList.filter(it => it.selector === '$this').map(it => it.options.name || 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 = getOnConnectedBeforeMetadata(this).filter(it => useSsr ? !it.options.ssrFirst : true);\n // console.log('beforeConnected', bMethods)\n if (bMethods) {\n for (const m of bMethods) await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n }\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 targetConnectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor).filter(it => useSsr ? !it.options.ssrFirst : true);\n const shadowMode = conf?.useShadow || targetConnectedInnerHtmlList.find(it => it.options.useShadow)?.options.useShadow;\n if (shadowMode && !this.shadowRoot) {\n const mode = shadowMode === true ? 'open' : shadowMode;\n this.attachShadow({mode: mode as ShadowRootMode});\n }\n\n if (targetConnectedInnerHtmlList.length > 0) {\n let sContent = '',\n lContent = '';\n for (const meta of targetConnectedInnerHtmlList) {\n // const res = (this as any)[meta.propertyKey]();\n let res = await (this as any)._invokeLifecycleMethod(meta.propertyKey, helperHostSet);\n const actionExpression = new ActionExpression(res, {\n expression: {\n replace: {\n start: meta.options.replaceWrap?.start || '[[',\n end: meta.options.replaceWrap?.end || ']]'\n },\n callReturn: {\n start: meta.options.replaceWrap?.start || '[[=',\n end: meta.options.replaceWrap?.end || ']]'\n },\n call: {\n start: meta.options.replaceWrap?.start || '[[@',\n end: meta.options.replaceWrap?.end || ']]'\n }\n }\n });\n\n actionExpression.getExpressions().filter(it => it.type === 'replace').forEach(it => {\n actionExpression.replace(it, NodeSlot.slot(`${this._swcId}-${it.script}`));\n // try {\n // const sr = FunctionUtils.executeReturn({script: it.script, context: this, args: helperHostSet});\n // actionExpression.replace(it, sr);\n // } catch (e) {\n // console.error(`[SWC] Failed to execute connectedInnerHTML:`, e);\n // }\n });\n res = actionExpression.getUnprocessedTemplate();\n\n if (res !== undefined) {\n if (meta.options.useShadow || conf?.useShadow) sContent += res;\n else lContent += res;\n }\n }\n try {\n if (this.shadowRoot) {\n this.shadowRoot.innerHTML = sContent;\n }\n if (lContent) {\n this.innerHTML = lContent;\n }\n } catch (e) {\n console.error('[ElementDefine] innerHTML setting error:', e);\n }\n }\n\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 // 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 if (options.removeOnDisconnected === true || t === currentWin || t === currentWin.document) {\n (this as any)._boundListeners.push({target: t, type, handler, options: opts});\n }\n });\n });\n\n if (originalConnected) await (originalConnected.apply(this));\n\n const aMethods = getOnConnectedAfterMetadata(this).filter(it => {\n return useSsr ? !it.options.ssrFirst : true;\n });\n // console.log('afterConnected', this.tagName, aMethods, getOnConnectedAfterMetadata(this))\n if (aMethods) {\n for (const m of aMethods) await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n }\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 mPropertyKey of findAllLifecycleMetadata(this, ON_CONNECTED_COMPLETED_METADATA_KEY)) {\n await (this as any)._invokeLifecycleMethod(mPropertyKey, 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 if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, helperHostSet);\n }\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 if (originalDisconnected) originalDisconnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, helperHostSet);\n }\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 if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if (originalAdopted) originalAdopted.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\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
6
|
"names": ["proto", "name", "win"]
|
|
7
7
|
}
|
|
@@ -29,25 +29,27 @@ function emitCustomEvent(selectorOrTarget, type, options = {}) {
|
|
|
29
29
|
const conf = getElementConfig(this);
|
|
30
30
|
const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
|
|
31
31
|
const eventTargets = [];
|
|
32
|
-
if (selectorOrTarget === "
|
|
33
|
-
else if (selectorOrTarget === "
|
|
34
|
-
else if (selectorOrTarget === "
|
|
32
|
+
if (selectorOrTarget === "$window") eventTargets.push(currentWin);
|
|
33
|
+
else if (selectorOrTarget === "$document") eventTargets.push(currentWin.document);
|
|
34
|
+
else if (selectorOrTarget === "$host") {
|
|
35
|
+
if (hostSet.$host) eventTargets.push(hostSet.$host);
|
|
36
|
+
} else if (selectorOrTarget === "$parentHost") {
|
|
35
37
|
if (hostSet.$parentHost) eventTargets.push(hostSet.$parentHost);
|
|
36
|
-
} else if (selectorOrTarget === "
|
|
38
|
+
} else if (selectorOrTarget === "$appHost") {
|
|
37
39
|
if (hostSet.$appHost) eventTargets.push(hostSet.$appHost);
|
|
38
|
-
} else if (selectorOrTarget === "
|
|
40
|
+
} else if (selectorOrTarget === "$firstHost") {
|
|
39
41
|
if (hostSet.$firstHost) eventTargets.push(hostSet.$firstHost);
|
|
40
|
-
} else if (selectorOrTarget === "
|
|
42
|
+
} else if (selectorOrTarget === "$lastHost") {
|
|
41
43
|
if (hostSet.$lastHost) eventTargets.push(hostSet.$lastHost);
|
|
42
|
-
} else if (selectorOrTarget === "
|
|
44
|
+
} else if (selectorOrTarget === "$firstAppHost") {
|
|
43
45
|
if (hostSet.$firstAppHost) eventTargets.push(hostSet.$firstAppHost);
|
|
44
|
-
} else if (selectorOrTarget === "
|
|
46
|
+
} else if (selectorOrTarget === "$lastAppHost") {
|
|
45
47
|
if (hostSet.$lastAppHost) eventTargets.push(hostSet.$lastAppHost);
|
|
46
|
-
} else if (selectorOrTarget === "
|
|
48
|
+
} else if (selectorOrTarget === "$hosts") {
|
|
47
49
|
hostSet.$hosts.forEach((h) => eventTargets.push(h));
|
|
48
|
-
} else if (selectorOrTarget === "
|
|
50
|
+
} else if (selectorOrTarget === "$appHosts") {
|
|
49
51
|
hostSet.$appHosts.forEach((h) => eventTargets.push(h));
|
|
50
|
-
} else if (selectorOrTarget === "
|
|
52
|
+
} else if (selectorOrTarget === "$this" || !selectorOrTarget) {
|
|
51
53
|
eventTargets.push(this);
|
|
52
54
|
} else {
|
|
53
55
|
const r = fullOptions.root || "auto";
|
|
@@ -83,22 +85,22 @@ const getEmitCustomEventMetadataList = (target) => {
|
|
|
83
85
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
84
86
|
return ReflectUtils.getMetadata(EMIT_CUSTOM_EVENT_METADATA_KEY, constructor);
|
|
85
87
|
};
|
|
86
|
-
function
|
|
88
|
+
function emitCustomEventThis(type, optionsOrAttributeaName) {
|
|
87
89
|
if (optionsOrAttributeaName && typeof optionsOrAttributeaName === "string") {
|
|
88
|
-
return
|
|
90
|
+
return emitCustomEventThis(type, { attributeName: optionsOrAttributeaName });
|
|
89
91
|
} else if (optionsOrAttributeaName && typeof optionsOrAttributeaName === "object") {
|
|
90
92
|
if (!optionsOrAttributeaName.attributeName) {
|
|
91
93
|
optionsOrAttributeaName.attributeName = `on-emit-${type}`;
|
|
92
94
|
}
|
|
93
|
-
return emitCustomEvent("
|
|
95
|
+
return emitCustomEvent("$this", type, optionsOrAttributeaName);
|
|
94
96
|
} else {
|
|
95
|
-
return emitCustomEvent("
|
|
97
|
+
return emitCustomEvent("$this", type, { attributeName: `on-emit-${type}` });
|
|
96
98
|
}
|
|
97
99
|
}
|
|
98
100
|
export {
|
|
99
101
|
EMIT_CUSTOM_EVENT_METADATA_KEY,
|
|
100
102
|
emitCustomEvent,
|
|
101
|
-
|
|
103
|
+
emitCustomEventThis,
|
|
102
104
|
getEmitCustomEventMetadataList
|
|
103
105
|
};
|
|
104
106
|
//# sourceMappingURL=emitCustomEvent.js.map
|