@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.
Files changed (284) hide show
  1. package/README.md +58 -21
  2. package/dist/cjs/{elements/SwcAppEngine.js → SwcAppEngine.js} +6 -6
  3. package/dist/cjs/SwcAppEngine.js.map +7 -0
  4. package/dist/cjs/decorators/addEventListener.js +12 -4
  5. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  6. package/dist/cjs/decorators/applyAttribute.js +19 -18
  7. package/dist/cjs/decorators/applyAttribute.js.map +2 -2
  8. package/dist/cjs/decorators/applyClass.js +23 -22
  9. package/dist/cjs/decorators/applyClass.js.map +2 -2
  10. package/dist/cjs/decorators/applyNode.js +28 -26
  11. package/dist/cjs/decorators/applyNode.js.map +2 -2
  12. package/dist/cjs/decorators/applySlot.js +122 -0
  13. package/dist/cjs/decorators/applySlot.js.map +7 -0
  14. package/dist/cjs/decorators/applyStyle.js +20 -19
  15. package/dist/cjs/decorators/applyStyle.js.map +2 -2
  16. package/dist/cjs/decorators/attribute.js +16 -15
  17. package/dist/cjs/decorators/attribute.js.map +2 -2
  18. package/dist/cjs/decorators/{changedAttributeHost.js → changedAttributeThis.js} +6 -6
  19. package/dist/cjs/decorators/changedAttributeThis.js.map +7 -0
  20. package/dist/cjs/decorators/elementDefine.js +59 -50
  21. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  22. package/dist/cjs/decorators/emitCustomEvent.js +18 -16
  23. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  24. package/dist/cjs/decorators/index.js +2 -1
  25. package/dist/cjs/decorators/index.js.map +2 -2
  26. package/dist/cjs/decorators/lifecycles.js +56 -8
  27. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  28. package/dist/cjs/decorators/query.js +38 -60
  29. package/dist/cjs/decorators/query.js.map +2 -2
  30. package/dist/cjs/decorators/queryAll.js +31 -63
  31. package/dist/cjs/decorators/queryAll.js.map +2 -2
  32. package/dist/cjs/decorators/setProperty.js +13 -12
  33. package/dist/cjs/decorators/setProperty.js.map +2 -2
  34. package/dist/cjs/elements/{SwcAppMixin.js → SwcApp.js} +107 -57
  35. package/dist/cjs/elements/SwcApp.js.map +7 -0
  36. package/dist/cjs/elements/index.js +21 -2
  37. package/dist/cjs/elements/index.js.map +3 -3
  38. package/dist/cjs/elements/tt/SwcAppMixin.js +1 -0
  39. package/dist/cjs/elements/tt/SwcAppMixin.js.map +7 -0
  40. package/dist/cjs/elements/tt/SwcAsync.js +1 -0
  41. package/dist/cjs/elements/tt/SwcAsync.js.map +7 -0
  42. package/dist/cjs/elements/tt/SwcAsyncTemplate.js +1 -0
  43. package/dist/cjs/elements/tt/SwcAsyncTemplate.js.map +7 -0
  44. package/dist/cjs/elements/tt/SwcChoose.js +1 -0
  45. package/dist/cjs/elements/tt/SwcChoose.js.map +7 -0
  46. package/dist/cjs/elements/tt/SwcChooseTemplate.js +1 -0
  47. package/dist/cjs/elements/tt/SwcChooseTemplate.js.map +7 -0
  48. package/dist/cjs/elements/tt/SwcIf.js +1 -0
  49. package/dist/cjs/elements/tt/SwcIf.js.map +7 -0
  50. package/dist/cjs/elements/tt/SwcIfTemplate.js +1 -0
  51. package/dist/cjs/elements/tt/SwcIfTemplate.js.map +7 -0
  52. package/dist/cjs/elements/tt/SwcLoop.js +1 -0
  53. package/dist/cjs/elements/tt/SwcLoop.js.map +7 -0
  54. package/dist/cjs/elements/tt/SwcLoopTemplate.js +1 -0
  55. package/dist/cjs/elements/tt/SwcLoopTemplate.js.map +7 -0
  56. package/dist/cjs/elements/tt/SwcSubTemplates.js +1 -0
  57. package/dist/cjs/elements/tt/SwcSubTemplates.js.map +7 -0
  58. package/dist/cjs/elements/tt/register.js +1 -0
  59. package/dist/cjs/elements/tt/register.js.map +7 -0
  60. package/dist/cjs/index.js +12 -8
  61. package/dist/cjs/index.js.map +2 -2
  62. package/dist/cjs/types/window.d.js +16 -0
  63. package/dist/cjs/types/window.d.js.map +7 -0
  64. package/dist/cjs/types.js.map +1 -1
  65. package/dist/cjs/utils/Utils.js +22 -19
  66. package/dist/cjs/utils/Utils.js.map +2 -2
  67. package/dist/esm/{elements/SwcAppEngine.js → SwcAppEngine.js} +4 -4
  68. package/dist/esm/SwcAppEngine.js.map +7 -0
  69. package/dist/esm/decorators/addEventListener.js +12 -4
  70. package/dist/esm/decorators/addEventListener.js.map +2 -2
  71. package/dist/esm/decorators/applyAttribute.js +19 -18
  72. package/dist/esm/decorators/applyAttribute.js.map +2 -2
  73. package/dist/esm/decorators/applyClass.js +23 -22
  74. package/dist/esm/decorators/applyClass.js.map +2 -2
  75. package/dist/esm/decorators/applyNode.js +28 -26
  76. package/dist/esm/decorators/applyNode.js.map +2 -2
  77. package/dist/esm/decorators/applySlot.js +103 -0
  78. package/dist/esm/decorators/applySlot.js.map +7 -0
  79. package/dist/esm/decorators/applyStyle.js +20 -19
  80. package/dist/esm/decorators/applyStyle.js.map +2 -2
  81. package/dist/esm/decorators/attribute.js +16 -15
  82. package/dist/esm/decorators/attribute.js.map +2 -2
  83. package/dist/esm/decorators/{changedAttributeHost.js → changedAttributeThis.js} +3 -3
  84. package/dist/esm/decorators/changedAttributeThis.js.map +7 -0
  85. package/dist/esm/decorators/elementDefine.js +60 -51
  86. package/dist/esm/decorators/elementDefine.js.map +2 -2
  87. package/dist/esm/decorators/emitCustomEvent.js +18 -16
  88. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  89. package/dist/esm/decorators/index.js +2 -1
  90. package/dist/esm/decorators/index.js.map +2 -2
  91. package/dist/esm/decorators/lifecycles.js +56 -8
  92. package/dist/esm/decorators/lifecycles.js.map +2 -2
  93. package/dist/esm/decorators/query.js +38 -60
  94. package/dist/esm/decorators/query.js.map +2 -2
  95. package/dist/esm/decorators/queryAll.js +31 -63
  96. package/dist/esm/decorators/queryAll.js.map +2 -2
  97. package/dist/esm/decorators/setProperty.js +13 -12
  98. package/dist/esm/decorators/setProperty.js.map +2 -2
  99. package/dist/esm/elements/{SwcAppMixin.js → SwcApp.js} +102 -53
  100. package/dist/esm/elements/SwcApp.js.map +7 -0
  101. package/dist/esm/elements/index.js +7 -1
  102. package/dist/esm/elements/index.js.map +2 -2
  103. package/dist/esm/elements/tt/SwcAppMixin.js +1 -0
  104. package/dist/esm/elements/tt/SwcAppMixin.js.map +7 -0
  105. package/dist/esm/elements/tt/SwcAsync.js +1 -0
  106. package/dist/esm/elements/tt/SwcAsync.js.map +7 -0
  107. package/dist/esm/elements/tt/SwcAsyncTemplate.js +1 -0
  108. package/dist/esm/elements/tt/SwcAsyncTemplate.js.map +7 -0
  109. package/dist/esm/elements/tt/SwcChoose.js +1 -0
  110. package/dist/esm/elements/tt/SwcChoose.js.map +7 -0
  111. package/dist/esm/elements/tt/SwcChooseTemplate.js +1 -0
  112. package/dist/esm/elements/tt/SwcChooseTemplate.js.map +7 -0
  113. package/dist/esm/elements/tt/SwcIf.js +1 -0
  114. package/dist/esm/elements/tt/SwcIf.js.map +7 -0
  115. package/dist/esm/elements/tt/SwcIfTemplate.js +1 -0
  116. package/dist/esm/elements/tt/SwcIfTemplate.js.map +7 -0
  117. package/dist/esm/elements/tt/SwcLoop.js +1 -0
  118. package/dist/esm/elements/tt/SwcLoop.js.map +7 -0
  119. package/dist/esm/elements/tt/SwcLoopTemplate.js +1 -0
  120. package/dist/esm/elements/tt/SwcLoopTemplate.js.map +7 -0
  121. package/dist/esm/elements/tt/SwcSubTemplates.js +1 -0
  122. package/dist/esm/elements/tt/SwcSubTemplates.js.map +7 -0
  123. package/dist/esm/elements/tt/register.js +1 -0
  124. package/dist/esm/elements/tt/register.js.map +7 -0
  125. package/dist/esm/index.js +13 -9
  126. package/dist/esm/index.js.map +2 -2
  127. package/dist/esm/types/window.d.js +1 -0
  128. package/dist/esm/types/window.d.js.map +7 -0
  129. package/dist/esm/types.js.map +1 -1
  130. package/dist/esm/utils/Utils.js +22 -19
  131. package/dist/esm/utils/Utils.js.map +2 -2
  132. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +4189 -456
  133. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  134. package/dist/types/{elements/SwcAppEngine.d.ts → SwcAppEngine.d.ts} +9 -4
  135. package/dist/types/SwcAppEngine.d.ts.map +1 -0
  136. package/dist/types/decorators/addEventListener.d.ts +5 -7
  137. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  138. package/dist/types/decorators/applyAttribute.d.ts +4 -4
  139. package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
  140. package/dist/types/decorators/applyClass.d.ts +6 -6
  141. package/dist/types/decorators/applyClass.d.ts.map +1 -1
  142. package/dist/types/decorators/applyNode.d.ts +9 -9
  143. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  144. package/dist/types/decorators/applySlot.d.ts +27 -0
  145. package/dist/types/decorators/applySlot.d.ts.map +1 -0
  146. package/dist/types/decorators/applyStyle.d.ts +4 -4
  147. package/dist/types/decorators/applyStyle.d.ts.map +1 -1
  148. package/dist/types/decorators/attribute.d.ts +5 -5
  149. package/dist/types/decorators/attribute.d.ts.map +1 -1
  150. package/dist/types/decorators/changedAttributeThis.d.ts +18 -0
  151. package/dist/types/decorators/changedAttributeThis.d.ts.map +1 -0
  152. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  153. package/dist/types/decorators/emitCustomEvent.d.ts +4 -9
  154. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  155. package/dist/types/decorators/index.d.ts +2 -1
  156. package/dist/types/decorators/index.d.ts.map +1 -1
  157. package/dist/types/decorators/lifecycles.d.ts +21 -6
  158. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  159. package/dist/types/decorators/query.d.ts +17 -63
  160. package/dist/types/decorators/query.d.ts.map +1 -1
  161. package/dist/types/decorators/queryAll.d.ts +6 -63
  162. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  163. package/dist/types/decorators/setProperty.d.ts +1 -1
  164. package/dist/types/decorators/setProperty.d.ts.map +1 -1
  165. package/dist/types/elements/SwcApp.d.ts +7 -0
  166. package/dist/types/elements/SwcApp.d.ts.map +1 -0
  167. package/dist/types/elements/index.d.ts +2 -1
  168. package/dist/types/elements/index.d.ts.map +1 -1
  169. package/dist/types/elements/tt/SwcAppMixin.d.ts +1 -0
  170. package/dist/types/elements/tt/SwcAppMixin.d.ts.map +1 -0
  171. package/dist/types/elements/tt/SwcAsync.d.ts +1 -0
  172. package/dist/types/elements/tt/SwcAsync.d.ts.map +1 -0
  173. package/dist/types/elements/tt/SwcAsyncTemplate.d.ts +1 -0
  174. package/dist/types/elements/tt/SwcAsyncTemplate.d.ts.map +1 -0
  175. package/dist/types/elements/tt/SwcChoose.d.ts +1 -0
  176. package/dist/types/elements/tt/SwcChoose.d.ts.map +1 -0
  177. package/dist/types/elements/tt/SwcChooseTemplate.d.ts +1 -0
  178. package/dist/types/elements/tt/SwcChooseTemplate.d.ts.map +1 -0
  179. package/dist/types/elements/tt/SwcIf.d.ts +1 -0
  180. package/dist/types/elements/{SwcIf.d.ts.map → tt/SwcIf.d.ts.map} +1 -1
  181. package/dist/types/elements/tt/SwcIfTemplate.d.ts +1 -0
  182. package/dist/types/elements/tt/SwcIfTemplate.d.ts.map +1 -0
  183. package/dist/types/elements/tt/SwcLoop.d.ts +1 -0
  184. package/dist/types/elements/tt/SwcLoop.d.ts.map +1 -0
  185. package/dist/types/elements/tt/SwcLoopTemplate.d.ts +1 -0
  186. package/dist/types/elements/tt/SwcLoopTemplate.d.ts.map +1 -0
  187. package/dist/types/elements/tt/SwcSubTemplates.d.ts +1 -0
  188. package/dist/types/elements/tt/SwcSubTemplates.d.ts.map +1 -0
  189. package/dist/types/elements/tt/register.d.ts +1 -0
  190. package/dist/types/elements/tt/register.d.ts.map +1 -0
  191. package/dist/types/index.d.ts +2 -2
  192. package/dist/types/index.d.ts.map +1 -1
  193. package/dist/types/types.d.ts +5 -5
  194. package/dist/types/types.d.ts.map +1 -1
  195. package/dist/types/utils/Utils.d.ts +13 -12
  196. package/dist/types/utils/Utils.d.ts.map +1 -1
  197. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +4189 -456
  198. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  199. package/package.json +4 -4
  200. package/src/{elements/SwcAppEngine.ts → SwcAppEngine.ts} +12 -7
  201. package/src/decorators/addEventListener.ts +11 -9
  202. package/src/decorators/applyAttribute.ts +16 -15
  203. package/src/decorators/applyClass.ts +18 -17
  204. package/src/decorators/applyNode.ts +30 -27
  205. package/src/decorators/applySlot.ts +228 -0
  206. package/src/decorators/applyStyle.ts +17 -16
  207. package/src/decorators/attribute.ts +20 -19
  208. package/src/decorators/{changedAttributeHost.ts → changedAttributeThis.ts} +10 -12
  209. package/src/decorators/elementDefine.ts +80 -57
  210. package/src/decorators/emitCustomEvent.ts +21 -26
  211. package/src/decorators/index.ts +2 -1
  212. package/src/decorators/lifecycles.ts +76 -11
  213. package/src/decorators/query.ts +51 -124
  214. package/src/decorators/queryAll.ts +30 -127
  215. package/src/decorators/setProperty.ts +12 -11
  216. package/src/elements/{SwcAppMixin.ts → SwcApp.ts} +98 -31
  217. package/src/elements/index.ts +11 -1
  218. package/src/elements/tt/SwcAppMixin.ts +13 -0
  219. package/src/elements/tt/SwcAsync.ts +139 -0
  220. package/src/elements/tt/SwcAsyncTemplate.ts +126 -0
  221. package/src/elements/tt/SwcChoose.ts +182 -0
  222. package/src/elements/tt/SwcChooseTemplate.ts +229 -0
  223. package/src/elements/tt/SwcIf.ts +145 -0
  224. package/src/elements/tt/SwcIfTemplate.ts +158 -0
  225. package/src/elements/tt/SwcLoop.ts +222 -0
  226. package/src/elements/tt/SwcLoopTemplate.ts +255 -0
  227. package/src/elements/tt/SwcSubTemplates.ts +6 -0
  228. package/src/elements/tt/register.ts +720 -0
  229. package/src/index.ts +13 -9
  230. package/src/types/window.d.ts +43 -0
  231. package/src/types.ts +9 -8
  232. package/src/utils/Utils.ts +28 -24
  233. package/dist/cjs/decorators/changedAttributeHost.js.map +0 -7
  234. package/dist/cjs/elements/SwcAppEngine.js.map +0 -7
  235. package/dist/cjs/elements/SwcAppMixin.js.map +0 -7
  236. package/dist/cjs/elements/SwcAsync.js +0 -129
  237. package/dist/cjs/elements/SwcAsync.js.map +0 -7
  238. package/dist/cjs/elements/SwcChoose.js +0 -155
  239. package/dist/cjs/elements/SwcChoose.js.map +0 -7
  240. package/dist/cjs/elements/SwcIf.js +0 -117
  241. package/dist/cjs/elements/SwcIf.js.map +0 -7
  242. package/dist/cjs/elements/SwcLoop.js +0 -176
  243. package/dist/cjs/elements/SwcLoop.js.map +0 -7
  244. package/dist/cjs/elements/SwcSubTemplates.js +0 -13
  245. package/dist/cjs/elements/SwcSubTemplates.js.map +0 -7
  246. package/dist/cjs/elements/register.js +0 -1026
  247. package/dist/cjs/elements/register.js.map +0 -7
  248. package/dist/esm/decorators/changedAttributeHost.js.map +0 -7
  249. package/dist/esm/elements/SwcAppEngine.js.map +0 -7
  250. package/dist/esm/elements/SwcAppMixin.js.map +0 -7
  251. package/dist/esm/elements/SwcAsync.js +0 -129
  252. package/dist/esm/elements/SwcAsync.js.map +0 -7
  253. package/dist/esm/elements/SwcChoose.js +0 -155
  254. package/dist/esm/elements/SwcChoose.js.map +0 -7
  255. package/dist/esm/elements/SwcIf.js +0 -117
  256. package/dist/esm/elements/SwcIf.js.map +0 -7
  257. package/dist/esm/elements/SwcLoop.js +0 -176
  258. package/dist/esm/elements/SwcLoop.js.map +0 -7
  259. package/dist/esm/elements/SwcSubTemplates.js +0 -13
  260. package/dist/esm/elements/SwcSubTemplates.js.map +0 -7
  261. package/dist/esm/elements/register.js +0 -1007
  262. package/dist/esm/elements/register.js.map +0 -7
  263. package/dist/types/decorators/changedAttributeHost.d.ts +0 -20
  264. package/dist/types/decorators/changedAttributeHost.d.ts.map +0 -1
  265. package/dist/types/elements/SwcAppEngine.d.ts.map +0 -1
  266. package/dist/types/elements/SwcAppMixin.d.ts +0 -386
  267. package/dist/types/elements/SwcAppMixin.d.ts.map +0 -1
  268. package/dist/types/elements/SwcAsync.d.ts +0 -2
  269. package/dist/types/elements/SwcAsync.d.ts.map +0 -1
  270. package/dist/types/elements/SwcChoose.d.ts +0 -2
  271. package/dist/types/elements/SwcChoose.d.ts.map +0 -1
  272. package/dist/types/elements/SwcIf.d.ts +0 -2
  273. package/dist/types/elements/SwcLoop.d.ts +0 -2
  274. package/dist/types/elements/SwcLoop.d.ts.map +0 -1
  275. package/dist/types/elements/SwcSubTemplates.d.ts +0 -13
  276. package/dist/types/elements/SwcSubTemplates.d.ts.map +0 -1
  277. package/dist/types/elements/register.d.ts +0 -4
  278. package/dist/types/elements/register.d.ts.map +0 -1
  279. package/src/elements/SwcAsync.ts +0 -126
  280. package/src/elements/SwcChoose.ts +0 -190
  281. package/src/elements/SwcIf.ts +0 -124
  282. package/src/elements/SwcLoop.ts +0 -205
  283. package/src/elements/SwcSubTemplates.ts +0 -6
  284. 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, 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.js";
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 "./changedAttributeHost.js";
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.findAllParentAppHostsDirect(inst);
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.findNearestSwcHost(node);
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.findAllSwcHosts(this);
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.getHostSet(this);
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 === ":host" || 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 === ":host").map((it) => it.options.name || String(it.propertyKey));
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._connected_safari ?? (appHost._connected_safari = []);
235
- appHost._connected_safari.push(this);
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 shadowMode = conf?.useShadow || connectedInnerHtmlList.find((it) => it.options.useShadow)?.options.useShadow;
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
- const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);
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 connectedInnerHtmlList) {
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
- try {
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 !== ":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 !== "") {
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 === ":window") bindTargets.push(currentWin);
377
- else if (selector === ":document") bindTargets.push(currentWin.document);
378
- else if (selector === ":parentHost") applyRootOption(helperHostSet.$parentHost);
379
- else if (selector === ":appHost") applyRootOption(helperHostSet.$appHost);
380
- else if (selector === ":firstHost") applyRootOption(helperHostSet.$firstHost);
381
- else if (selector === ":lastHost") applyRootOption(helperHostSet.$lastHost);
382
- else if (selector === ":firstAppHost") applyRootOption(helperHostSet.$firstAppHost);
383
- else if (selector === ":lastAppHost") applyRootOption(helperHostSet.$lastAppHost);
384
- else if (selector === ":hosts") helperHostSet.$hosts.forEach(applyRootOption);
385
- else if (selector === ":appHosts") helperHostSet.$appHosts.forEach(applyRootOption);
386
- else if (selector === ":host" || !selector) applyRootOption(this);
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 = findAllLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);
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 === ":window") eventTargets.push(currentWin);
33
- else if (selectorOrTarget === ":document") eventTargets.push(currentWin.document);
34
- else if (selectorOrTarget === ":parentHost") {
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 === ":appHost") {
38
+ } else if (selectorOrTarget === "$appHost") {
37
39
  if (hostSet.$appHost) eventTargets.push(hostSet.$appHost);
38
- } else if (selectorOrTarget === ":firstHost") {
40
+ } else if (selectorOrTarget === "$firstHost") {
39
41
  if (hostSet.$firstHost) eventTargets.push(hostSet.$firstHost);
40
- } else if (selectorOrTarget === ":lastHost") {
42
+ } else if (selectorOrTarget === "$lastHost") {
41
43
  if (hostSet.$lastHost) eventTargets.push(hostSet.$lastHost);
42
- } else if (selectorOrTarget === ":firstAppHost") {
44
+ } else if (selectorOrTarget === "$firstAppHost") {
43
45
  if (hostSet.$firstAppHost) eventTargets.push(hostSet.$firstAppHost);
44
- } else if (selectorOrTarget === ":lastAppHost") {
46
+ } else if (selectorOrTarget === "$lastAppHost") {
45
47
  if (hostSet.$lastAppHost) eventTargets.push(hostSet.$lastAppHost);
46
- } else if (selectorOrTarget === ":hosts") {
48
+ } else if (selectorOrTarget === "$hosts") {
47
49
  hostSet.$hosts.forEach((h) => eventTargets.push(h));
48
- } else if (selectorOrTarget === ":appHosts") {
50
+ } else if (selectorOrTarget === "$appHosts") {
49
51
  hostSet.$appHosts.forEach((h) => eventTargets.push(h));
50
- } else if (selectorOrTarget === ":host" || !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 emitCustomEventHost(type, optionsOrAttributeaName) {
88
+ function emitCustomEventThis(type, optionsOrAttributeaName) {
87
89
  if (optionsOrAttributeaName && typeof optionsOrAttributeaName === "string") {
88
- return emitCustomEventHost(type, { attributeName: optionsOrAttributeaName });
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(":host", type, optionsOrAttributeaName);
95
+ return emitCustomEvent("$this", type, optionsOrAttributeaName);
94
96
  } else {
95
- return emitCustomEvent(":host", type, { attributeName: `on-emit-${type}` });
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
- emitCustomEventHost,
103
+ emitCustomEventThis,
102
104
  getEmitCustomEventMetadataList
103
105
  };
104
106
  //# sourceMappingURL=emitCustomEvent.js.map