@dooboostore/simple-web-component 1.0.18 → 1.0.21

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 (618) hide show
  1. package/README.md +2065 -164
  2. package/dist/cjs/config/config.js +2 -0
  3. package/dist/cjs/config/config.js.map +2 -2
  4. package/dist/cjs/decorators/addEventListener.js +8 -8
  5. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  6. package/dist/cjs/decorators/appendChild.js +53 -9
  7. package/dist/cjs/decorators/appendChild.js.map +2 -2
  8. package/dist/cjs/decorators/attribute.js +141 -0
  9. package/dist/cjs/decorators/attribute.js.map +7 -0
  10. package/dist/cjs/decorators/changedAttribute.js +5 -5
  11. package/dist/cjs/decorators/changedAttribute.js.map +2 -2
  12. package/dist/cjs/decorators/classList.js +104 -0
  13. package/dist/cjs/decorators/classList.js.map +7 -0
  14. package/dist/cjs/decorators/elementDefine.js +334 -425
  15. package/dist/cjs/decorators/elementDefine.js.map +3 -3
  16. package/dist/cjs/decorators/emitCustomEvent.js +65 -13
  17. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  18. package/dist/cjs/decorators/index.js +4 -0
  19. package/dist/cjs/decorators/index.js.map +2 -2
  20. package/dist/cjs/decorators/lifecycles.js +4 -4
  21. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  22. package/dist/cjs/decorators/onConnectedInnerHtml.js +4 -4
  23. package/dist/cjs/decorators/onConnectedInnerHtml.js.map +2 -2
  24. package/dist/cjs/decorators/query.js +60 -36
  25. package/dist/cjs/decorators/query.js.map +2 -2
  26. package/dist/cjs/decorators/queryAll.js +47 -23
  27. package/dist/cjs/decorators/queryAll.js.map +2 -2
  28. package/dist/cjs/decorators/replaceChildren.js +32 -6
  29. package/dist/cjs/decorators/replaceChildren.js.map +2 -2
  30. package/dist/cjs/decorators/setAttribute.js +64 -10
  31. package/dist/cjs/decorators/setAttribute.js.map +2 -2
  32. package/dist/cjs/decorators/style.js +88 -0
  33. package/dist/cjs/decorators/style.js.map +7 -0
  34. package/dist/cjs/elements/SwcAppEngine.js +30 -15
  35. package/dist/cjs/elements/SwcAppEngine.js.map +3 -3
  36. package/dist/cjs/elements/SwcAppMixin.js +79 -0
  37. package/dist/cjs/elements/SwcAppMixin.js.map +7 -0
  38. package/dist/cjs/elements/SwcAsync.js +58 -123
  39. package/dist/cjs/elements/SwcAsync.js.map +3 -3
  40. package/dist/cjs/elements/SwcChoose.js +52 -76
  41. package/dist/cjs/elements/SwcChoose.js.map +3 -3
  42. package/dist/cjs/elements/SwcIf.js +66 -94
  43. package/dist/cjs/elements/SwcIf.js.map +3 -3
  44. package/dist/cjs/elements/SwcLoop.js +73 -174
  45. package/dist/cjs/elements/SwcLoop.js.map +3 -3
  46. package/dist/cjs/elements/SwcSubTemplates.js +12 -37
  47. package/dist/cjs/elements/SwcSubTemplates.js.map +3 -3
  48. package/dist/cjs/elements/index.js +1 -8
  49. package/dist/cjs/elements/index.js.map +2 -2
  50. package/dist/cjs/elements/register.js +831 -0
  51. package/dist/cjs/elements/register.js.map +7 -0
  52. package/dist/cjs/index.js +14 -3
  53. package/dist/cjs/index.js.map +2 -2
  54. package/dist/cjs/router/ElementRouter.js +7 -7
  55. package/dist/cjs/router/ElementRouter.js.map +2 -2
  56. package/dist/cjs/types.js.map +1 -1
  57. package/dist/cjs/utils/TemplateUtils.js +103 -0
  58. package/dist/cjs/utils/TemplateUtils.js.map +7 -0
  59. package/dist/cjs/utils/Utils.js +10 -7
  60. package/dist/cjs/utils/Utils.js.map +2 -2
  61. package/dist/esm/config/config.js +2 -0
  62. package/dist/esm/config/config.js.map +2 -2
  63. package/dist/esm/decorators/addEventListener.js +5 -5
  64. package/dist/esm/decorators/addEventListener.js.map +2 -2
  65. package/dist/esm/decorators/appendChild.js +52 -8
  66. package/dist/esm/decorators/appendChild.js.map +2 -2
  67. package/dist/esm/decorators/attribute.js +122 -0
  68. package/dist/esm/decorators/attribute.js.map +7 -0
  69. package/dist/esm/decorators/changedAttribute.js +1 -1
  70. package/dist/esm/decorators/changedAttribute.js.map +1 -1
  71. package/dist/esm/decorators/classList.js +85 -0
  72. package/dist/esm/decorators/classList.js.map +7 -0
  73. package/dist/esm/decorators/elementDefine.js +334 -425
  74. package/dist/esm/decorators/elementDefine.js.map +3 -3
  75. package/dist/esm/decorators/emitCustomEvent.js +62 -10
  76. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  77. package/dist/esm/decorators/index.js +4 -0
  78. package/dist/esm/decorators/index.js.map +2 -2
  79. package/dist/esm/decorators/lifecycles.js +1 -1
  80. package/dist/esm/decorators/lifecycles.js.map +1 -1
  81. package/dist/esm/decorators/onConnectedInnerHtml.js +1 -1
  82. package/dist/esm/decorators/onConnectedInnerHtml.js.map +1 -1
  83. package/dist/esm/decorators/query.js +58 -34
  84. package/dist/esm/decorators/query.js.map +2 -2
  85. package/dist/esm/decorators/queryAll.js +45 -21
  86. package/dist/esm/decorators/queryAll.js.map +2 -2
  87. package/dist/esm/decorators/replaceChildren.js +28 -2
  88. package/dist/esm/decorators/replaceChildren.js.map +2 -2
  89. package/dist/esm/decorators/setAttribute.js +62 -8
  90. package/dist/esm/decorators/setAttribute.js.map +2 -2
  91. package/dist/esm/decorators/style.js +69 -0
  92. package/dist/esm/decorators/style.js.map +7 -0
  93. package/dist/esm/elements/SwcAppEngine.js +27 -12
  94. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  95. package/dist/esm/elements/SwcAppMixin.js +60 -0
  96. package/dist/esm/elements/SwcAppMixin.js.map +7 -0
  97. package/dist/esm/elements/SwcAsync.js +58 -123
  98. package/dist/esm/elements/SwcAsync.js.map +3 -3
  99. package/dist/esm/elements/SwcChoose.js +52 -76
  100. package/dist/esm/elements/SwcChoose.js.map +3 -3
  101. package/dist/esm/elements/SwcIf.js +66 -94
  102. package/dist/esm/elements/SwcIf.js.map +3 -3
  103. package/dist/esm/elements/SwcLoop.js +72 -173
  104. package/dist/esm/elements/SwcLoop.js.map +3 -3
  105. package/dist/esm/elements/SwcSubTemplates.js +12 -37
  106. package/dist/esm/elements/SwcSubTemplates.js.map +3 -3
  107. package/dist/esm/elements/index.js +1 -8
  108. package/dist/esm/elements/index.js.map +2 -2
  109. package/dist/esm/elements/register.js +812 -0
  110. package/dist/esm/elements/register.js.map +7 -0
  111. package/dist/esm/index.js +14 -3
  112. package/dist/esm/index.js.map +2 -2
  113. package/dist/esm/router/ElementRouter.js +2 -2
  114. package/dist/esm/router/ElementRouter.js.map +1 -1
  115. package/dist/esm/types.js.map +1 -1
  116. package/dist/esm/utils/TemplateUtils.js +84 -0
  117. package/dist/esm/utils/TemplateUtils.js.map +7 -0
  118. package/dist/esm/utils/Utils.js +6 -3
  119. package/dist/esm/utils/Utils.js.map +2 -2
  120. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +4910 -7463
  121. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  122. package/dist/types/config/config.d.ts +1 -0
  123. package/dist/types/config/config.d.ts.map +1 -1
  124. package/dist/types/decorators/addEventListener.d.ts +11 -11
  125. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  126. package/dist/types/decorators/appendChild.d.ts +1 -1
  127. package/dist/types/decorators/appendChild.d.ts.map +1 -1
  128. package/dist/types/decorators/attribute.d.ts +23 -0
  129. package/dist/types/decorators/attribute.d.ts.map +1 -0
  130. package/dist/types/decorators/classList.d.ts +34 -0
  131. package/dist/types/decorators/classList.d.ts.map +1 -0
  132. package/dist/types/decorators/elementDefine.d.ts +9 -5
  133. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  134. package/dist/types/decorators/emitCustomEvent.d.ts +7 -4
  135. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  136. package/dist/types/decorators/index.d.ts +4 -0
  137. package/dist/types/decorators/index.d.ts.map +1 -1
  138. package/dist/types/decorators/query.d.ts +7 -8
  139. package/dist/types/decorators/query.d.ts.map +1 -1
  140. package/dist/types/decorators/queryAll.d.ts +5 -9
  141. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  142. package/dist/types/decorators/replaceChildren.d.ts.map +1 -1
  143. package/dist/types/decorators/setAttribute.d.ts +16 -3
  144. package/dist/types/decorators/setAttribute.d.ts.map +1 -1
  145. package/dist/types/decorators/style.d.ts +24 -0
  146. package/dist/types/decorators/style.d.ts.map +1 -0
  147. package/dist/types/elements/SwcAppEngine.d.ts +6 -5
  148. package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
  149. package/dist/types/elements/SwcAppMixin.d.ts +364 -0
  150. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -0
  151. package/dist/types/elements/SwcAsync.d.ts +2 -6
  152. package/dist/types/elements/SwcAsync.d.ts.map +1 -1
  153. package/dist/types/elements/SwcChoose.d.ts +2 -1
  154. package/dist/types/elements/SwcChoose.d.ts.map +1 -1
  155. package/dist/types/elements/SwcIf.d.ts +5 -6
  156. package/dist/types/elements/SwcIf.d.ts.map +1 -1
  157. package/dist/types/elements/SwcLoop.d.ts +4 -10
  158. package/dist/types/elements/SwcLoop.d.ts.map +1 -1
  159. package/dist/types/elements/SwcSubTemplates.d.ts.map +1 -1
  160. package/dist/types/elements/index.d.ts +1 -8
  161. package/dist/types/elements/index.d.ts.map +1 -1
  162. package/dist/types/elements/register.d.ts +2 -0
  163. package/dist/types/elements/register.d.ts.map +1 -0
  164. package/dist/types/index.d.ts +8 -3
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/dist/types/router/ElementRouter.d.ts +1 -1
  167. package/dist/types/router/ElementRouter.d.ts.map +1 -1
  168. package/dist/types/types.d.ts +8 -2
  169. package/dist/types/types.d.ts.map +1 -1
  170. package/dist/types/utils/TemplateUtils.d.ts +54 -0
  171. package/dist/types/utils/TemplateUtils.d.ts.map +1 -0
  172. package/dist/types/utils/Utils.d.ts.map +1 -1
  173. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +4910 -7463
  174. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  175. package/package.json +11 -6
  176. package/src/config/config.ts +2 -0
  177. package/src/decorators/addEventListener.ts +13 -12
  178. package/src/decorators/appendChild.ts +53 -9
  179. package/src/decorators/attribute.ts +158 -0
  180. package/src/decorators/changedAttribute.ts +1 -1
  181. package/src/decorators/classList.ts +117 -0
  182. package/src/decorators/elementDefine.ts +371 -425
  183. package/src/decorators/emitCustomEvent.ts +77 -13
  184. package/src/decorators/index.ts +4 -0
  185. package/src/decorators/lifecycles.ts +1 -1
  186. package/src/decorators/onConnectedInnerHtml.ts +1 -1
  187. package/src/decorators/query.ts +58 -38
  188. package/src/decorators/queryAll.ts +45 -29
  189. package/src/decorators/replaceChildren.ts +31 -2
  190. package/src/decorators/setAttribute.ts +86 -12
  191. package/src/decorators/style.ts +89 -0
  192. package/src/elements/SwcAppEngine.ts +34 -18
  193. package/src/elements/SwcAppMixin.ts +65 -0
  194. package/src/elements/SwcAsync.ts +58 -128
  195. package/src/elements/SwcChoose.ts +51 -77
  196. package/src/elements/SwcIf.ts +64 -86
  197. package/src/elements/SwcLoop.ts +71 -168
  198. package/src/elements/SwcSubTemplates.ts +0 -13
  199. package/src/elements/index.ts +1 -8
  200. package/src/elements/register.ts +735 -0
  201. package/src/index.ts +17 -5
  202. package/src/router/ElementRouter.ts +2 -2
  203. package/src/types.ts +15 -6
  204. package/src/utils/TemplateUtils.ts +83 -0
  205. package/src/utils/Utils.ts +6 -3
  206. package/dist/cjs/elements/SwcApp.js +0 -55
  207. package/dist/cjs/elements/SwcApp.js.map +0 -7
  208. package/dist/cjs/elements/is/SwcAppAnchor.js +0 -55
  209. package/dist/cjs/elements/is/SwcAppAnchor.js.map +0 -7
  210. package/dist/cjs/elements/is/SwcAppArea.js +0 -55
  211. package/dist/cjs/elements/is/SwcAppArea.js.map +0 -7
  212. package/dist/cjs/elements/is/SwcAppAudio.js +0 -55
  213. package/dist/cjs/elements/is/SwcAppAudio.js.map +0 -7
  214. package/dist/cjs/elements/is/SwcAppBase.js +0 -55
  215. package/dist/cjs/elements/is/SwcAppBase.js.map +0 -7
  216. package/dist/cjs/elements/is/SwcAppBody.js +0 -55
  217. package/dist/cjs/elements/is/SwcAppBody.js.map +0 -7
  218. package/dist/cjs/elements/is/SwcAppButton.js +0 -55
  219. package/dist/cjs/elements/is/SwcAppButton.js.map +0 -7
  220. package/dist/cjs/elements/is/SwcAppCanvas.js +0 -55
  221. package/dist/cjs/elements/is/SwcAppCanvas.js.map +0 -7
  222. package/dist/cjs/elements/is/SwcAppData.js +0 -55
  223. package/dist/cjs/elements/is/SwcAppData.js.map +0 -7
  224. package/dist/cjs/elements/is/SwcAppDataList.js +0 -55
  225. package/dist/cjs/elements/is/SwcAppDataList.js.map +0 -7
  226. package/dist/cjs/elements/is/SwcAppDetails.js +0 -55
  227. package/dist/cjs/elements/is/SwcAppDetails.js.map +0 -7
  228. package/dist/cjs/elements/is/SwcAppDialog.js +0 -55
  229. package/dist/cjs/elements/is/SwcAppDialog.js.map +0 -7
  230. package/dist/cjs/elements/is/SwcAppDiv.js +0 -55
  231. package/dist/cjs/elements/is/SwcAppDiv.js.map +0 -7
  232. package/dist/cjs/elements/is/SwcAppDl.js +0 -55
  233. package/dist/cjs/elements/is/SwcAppDl.js.map +0 -7
  234. package/dist/cjs/elements/is/SwcAppEmbed.js +0 -55
  235. package/dist/cjs/elements/is/SwcAppEmbed.js.map +0 -7
  236. package/dist/cjs/elements/is/SwcAppFieldSet.js +0 -55
  237. package/dist/cjs/elements/is/SwcAppFieldSet.js.map +0 -7
  238. package/dist/cjs/elements/is/SwcAppForm.js +0 -55
  239. package/dist/cjs/elements/is/SwcAppForm.js.map +0 -7
  240. package/dist/cjs/elements/is/SwcAppHeading.js +0 -55
  241. package/dist/cjs/elements/is/SwcAppHeading.js.map +0 -7
  242. package/dist/cjs/elements/is/SwcAppHr.js +0 -55
  243. package/dist/cjs/elements/is/SwcAppHr.js.map +0 -7
  244. package/dist/cjs/elements/is/SwcAppIFrame.js +0 -55
  245. package/dist/cjs/elements/is/SwcAppIFrame.js.map +0 -7
  246. package/dist/cjs/elements/is/SwcAppImage.js +0 -55
  247. package/dist/cjs/elements/is/SwcAppImage.js.map +0 -7
  248. package/dist/cjs/elements/is/SwcAppInput.js +0 -55
  249. package/dist/cjs/elements/is/SwcAppInput.js.map +0 -7
  250. package/dist/cjs/elements/is/SwcAppLabel.js +0 -55
  251. package/dist/cjs/elements/is/SwcAppLabel.js.map +0 -7
  252. package/dist/cjs/elements/is/SwcAppLegend.js +0 -55
  253. package/dist/cjs/elements/is/SwcAppLegend.js.map +0 -7
  254. package/dist/cjs/elements/is/SwcAppLi.js +0 -55
  255. package/dist/cjs/elements/is/SwcAppLi.js.map +0 -7
  256. package/dist/cjs/elements/is/SwcAppLink.js +0 -55
  257. package/dist/cjs/elements/is/SwcAppLink.js.map +0 -7
  258. package/dist/cjs/elements/is/SwcAppMap.js +0 -55
  259. package/dist/cjs/elements/is/SwcAppMap.js.map +0 -7
  260. package/dist/cjs/elements/is/SwcAppMeta.js +0 -55
  261. package/dist/cjs/elements/is/SwcAppMeta.js.map +0 -7
  262. package/dist/cjs/elements/is/SwcAppMeter.js +0 -55
  263. package/dist/cjs/elements/is/SwcAppMeter.js.map +0 -7
  264. package/dist/cjs/elements/is/SwcAppMod.js +0 -55
  265. package/dist/cjs/elements/is/SwcAppMod.js.map +0 -7
  266. package/dist/cjs/elements/is/SwcAppObject.js +0 -55
  267. package/dist/cjs/elements/is/SwcAppObject.js.map +0 -7
  268. package/dist/cjs/elements/is/SwcAppOl.js +0 -55
  269. package/dist/cjs/elements/is/SwcAppOl.js.map +0 -7
  270. package/dist/cjs/elements/is/SwcAppOptGroup.js +0 -55
  271. package/dist/cjs/elements/is/SwcAppOptGroup.js.map +0 -7
  272. package/dist/cjs/elements/is/SwcAppOption.js +0 -55
  273. package/dist/cjs/elements/is/SwcAppOption.js.map +0 -7
  274. package/dist/cjs/elements/is/SwcAppOutput.js +0 -55
  275. package/dist/cjs/elements/is/SwcAppOutput.js.map +0 -7
  276. package/dist/cjs/elements/is/SwcAppParagraph.js +0 -55
  277. package/dist/cjs/elements/is/SwcAppParagraph.js.map +0 -7
  278. package/dist/cjs/elements/is/SwcAppParam.js +0 -55
  279. package/dist/cjs/elements/is/SwcAppParam.js.map +0 -7
  280. package/dist/cjs/elements/is/SwcAppPicture.js +0 -55
  281. package/dist/cjs/elements/is/SwcAppPicture.js.map +0 -7
  282. package/dist/cjs/elements/is/SwcAppPre.js +0 -55
  283. package/dist/cjs/elements/is/SwcAppPre.js.map +0 -7
  284. package/dist/cjs/elements/is/SwcAppProgress.js +0 -55
  285. package/dist/cjs/elements/is/SwcAppProgress.js.map +0 -7
  286. package/dist/cjs/elements/is/SwcAppQuote.js +0 -55
  287. package/dist/cjs/elements/is/SwcAppQuote.js.map +0 -7
  288. package/dist/cjs/elements/is/SwcAppScript.js +0 -55
  289. package/dist/cjs/elements/is/SwcAppScript.js.map +0 -7
  290. package/dist/cjs/elements/is/SwcAppSelect.js +0 -55
  291. package/dist/cjs/elements/is/SwcAppSelect.js.map +0 -7
  292. package/dist/cjs/elements/is/SwcAppSlot.js +0 -55
  293. package/dist/cjs/elements/is/SwcAppSlot.js.map +0 -7
  294. package/dist/cjs/elements/is/SwcAppSource.js +0 -55
  295. package/dist/cjs/elements/is/SwcAppSource.js.map +0 -7
  296. package/dist/cjs/elements/is/SwcAppSpan.js +0 -55
  297. package/dist/cjs/elements/is/SwcAppSpan.js.map +0 -7
  298. package/dist/cjs/elements/is/SwcAppStyle.js +0 -55
  299. package/dist/cjs/elements/is/SwcAppStyle.js.map +0 -7
  300. package/dist/cjs/elements/is/SwcAppTable.js +0 -55
  301. package/dist/cjs/elements/is/SwcAppTable.js.map +0 -7
  302. package/dist/cjs/elements/is/SwcAppTableCell.js +0 -55
  303. package/dist/cjs/elements/is/SwcAppTableCell.js.map +0 -7
  304. package/dist/cjs/elements/is/SwcAppTableRow.js +0 -55
  305. package/dist/cjs/elements/is/SwcAppTableRow.js.map +0 -7
  306. package/dist/cjs/elements/is/SwcAppTableSection.js +0 -55
  307. package/dist/cjs/elements/is/SwcAppTableSection.js.map +0 -7
  308. package/dist/cjs/elements/is/SwcAppTemplate.js +0 -55
  309. package/dist/cjs/elements/is/SwcAppTemplate.js.map +0 -7
  310. package/dist/cjs/elements/is/SwcAppTextArea.js +0 -55
  311. package/dist/cjs/elements/is/SwcAppTextArea.js.map +0 -7
  312. package/dist/cjs/elements/is/SwcAppTime.js +0 -55
  313. package/dist/cjs/elements/is/SwcAppTime.js.map +0 -7
  314. package/dist/cjs/elements/is/SwcAppTitle.js +0 -55
  315. package/dist/cjs/elements/is/SwcAppTitle.js.map +0 -7
  316. package/dist/cjs/elements/is/SwcAppTrack.js +0 -55
  317. package/dist/cjs/elements/is/SwcAppTrack.js.map +0 -7
  318. package/dist/cjs/elements/is/SwcAppUl.js +0 -55
  319. package/dist/cjs/elements/is/SwcAppUl.js.map +0 -7
  320. package/dist/cjs/elements/is/SwcAppVideo.js +0 -55
  321. package/dist/cjs/elements/is/SwcAppVideo.js.map +0 -7
  322. package/dist/cjs/elements/is/index.js +0 -74
  323. package/dist/cjs/elements/is/index.js.map +0 -7
  324. package/dist/esm/elements/SwcApp.js +0 -36
  325. package/dist/esm/elements/SwcApp.js.map +0 -7
  326. package/dist/esm/elements/is/SwcAppAnchor.js +0 -36
  327. package/dist/esm/elements/is/SwcAppAnchor.js.map +0 -7
  328. package/dist/esm/elements/is/SwcAppArea.js +0 -36
  329. package/dist/esm/elements/is/SwcAppArea.js.map +0 -7
  330. package/dist/esm/elements/is/SwcAppAudio.js +0 -36
  331. package/dist/esm/elements/is/SwcAppAudio.js.map +0 -7
  332. package/dist/esm/elements/is/SwcAppBase.js +0 -36
  333. package/dist/esm/elements/is/SwcAppBase.js.map +0 -7
  334. package/dist/esm/elements/is/SwcAppBody.js +0 -36
  335. package/dist/esm/elements/is/SwcAppBody.js.map +0 -7
  336. package/dist/esm/elements/is/SwcAppButton.js +0 -36
  337. package/dist/esm/elements/is/SwcAppButton.js.map +0 -7
  338. package/dist/esm/elements/is/SwcAppCanvas.js +0 -36
  339. package/dist/esm/elements/is/SwcAppCanvas.js.map +0 -7
  340. package/dist/esm/elements/is/SwcAppData.js +0 -36
  341. package/dist/esm/elements/is/SwcAppData.js.map +0 -7
  342. package/dist/esm/elements/is/SwcAppDataList.js +0 -36
  343. package/dist/esm/elements/is/SwcAppDataList.js.map +0 -7
  344. package/dist/esm/elements/is/SwcAppDetails.js +0 -36
  345. package/dist/esm/elements/is/SwcAppDetails.js.map +0 -7
  346. package/dist/esm/elements/is/SwcAppDialog.js +0 -36
  347. package/dist/esm/elements/is/SwcAppDialog.js.map +0 -7
  348. package/dist/esm/elements/is/SwcAppDiv.js +0 -36
  349. package/dist/esm/elements/is/SwcAppDiv.js.map +0 -7
  350. package/dist/esm/elements/is/SwcAppDl.js +0 -36
  351. package/dist/esm/elements/is/SwcAppDl.js.map +0 -7
  352. package/dist/esm/elements/is/SwcAppEmbed.js +0 -36
  353. package/dist/esm/elements/is/SwcAppEmbed.js.map +0 -7
  354. package/dist/esm/elements/is/SwcAppFieldSet.js +0 -36
  355. package/dist/esm/elements/is/SwcAppFieldSet.js.map +0 -7
  356. package/dist/esm/elements/is/SwcAppForm.js +0 -36
  357. package/dist/esm/elements/is/SwcAppForm.js.map +0 -7
  358. package/dist/esm/elements/is/SwcAppHeading.js +0 -36
  359. package/dist/esm/elements/is/SwcAppHeading.js.map +0 -7
  360. package/dist/esm/elements/is/SwcAppHr.js +0 -36
  361. package/dist/esm/elements/is/SwcAppHr.js.map +0 -7
  362. package/dist/esm/elements/is/SwcAppIFrame.js +0 -36
  363. package/dist/esm/elements/is/SwcAppIFrame.js.map +0 -7
  364. package/dist/esm/elements/is/SwcAppImage.js +0 -36
  365. package/dist/esm/elements/is/SwcAppImage.js.map +0 -7
  366. package/dist/esm/elements/is/SwcAppInput.js +0 -36
  367. package/dist/esm/elements/is/SwcAppInput.js.map +0 -7
  368. package/dist/esm/elements/is/SwcAppLabel.js +0 -36
  369. package/dist/esm/elements/is/SwcAppLabel.js.map +0 -7
  370. package/dist/esm/elements/is/SwcAppLegend.js +0 -36
  371. package/dist/esm/elements/is/SwcAppLegend.js.map +0 -7
  372. package/dist/esm/elements/is/SwcAppLi.js +0 -36
  373. package/dist/esm/elements/is/SwcAppLi.js.map +0 -7
  374. package/dist/esm/elements/is/SwcAppLink.js +0 -36
  375. package/dist/esm/elements/is/SwcAppLink.js.map +0 -7
  376. package/dist/esm/elements/is/SwcAppMap.js +0 -36
  377. package/dist/esm/elements/is/SwcAppMap.js.map +0 -7
  378. package/dist/esm/elements/is/SwcAppMeta.js +0 -36
  379. package/dist/esm/elements/is/SwcAppMeta.js.map +0 -7
  380. package/dist/esm/elements/is/SwcAppMeter.js +0 -36
  381. package/dist/esm/elements/is/SwcAppMeter.js.map +0 -7
  382. package/dist/esm/elements/is/SwcAppMod.js +0 -36
  383. package/dist/esm/elements/is/SwcAppMod.js.map +0 -7
  384. package/dist/esm/elements/is/SwcAppObject.js +0 -36
  385. package/dist/esm/elements/is/SwcAppObject.js.map +0 -7
  386. package/dist/esm/elements/is/SwcAppOl.js +0 -36
  387. package/dist/esm/elements/is/SwcAppOl.js.map +0 -7
  388. package/dist/esm/elements/is/SwcAppOptGroup.js +0 -36
  389. package/dist/esm/elements/is/SwcAppOptGroup.js.map +0 -7
  390. package/dist/esm/elements/is/SwcAppOption.js +0 -36
  391. package/dist/esm/elements/is/SwcAppOption.js.map +0 -7
  392. package/dist/esm/elements/is/SwcAppOutput.js +0 -36
  393. package/dist/esm/elements/is/SwcAppOutput.js.map +0 -7
  394. package/dist/esm/elements/is/SwcAppParagraph.js +0 -36
  395. package/dist/esm/elements/is/SwcAppParagraph.js.map +0 -7
  396. package/dist/esm/elements/is/SwcAppParam.js +0 -36
  397. package/dist/esm/elements/is/SwcAppParam.js.map +0 -7
  398. package/dist/esm/elements/is/SwcAppPicture.js +0 -36
  399. package/dist/esm/elements/is/SwcAppPicture.js.map +0 -7
  400. package/dist/esm/elements/is/SwcAppPre.js +0 -36
  401. package/dist/esm/elements/is/SwcAppPre.js.map +0 -7
  402. package/dist/esm/elements/is/SwcAppProgress.js +0 -36
  403. package/dist/esm/elements/is/SwcAppProgress.js.map +0 -7
  404. package/dist/esm/elements/is/SwcAppQuote.js +0 -36
  405. package/dist/esm/elements/is/SwcAppQuote.js.map +0 -7
  406. package/dist/esm/elements/is/SwcAppScript.js +0 -36
  407. package/dist/esm/elements/is/SwcAppScript.js.map +0 -7
  408. package/dist/esm/elements/is/SwcAppSelect.js +0 -36
  409. package/dist/esm/elements/is/SwcAppSelect.js.map +0 -7
  410. package/dist/esm/elements/is/SwcAppSlot.js +0 -36
  411. package/dist/esm/elements/is/SwcAppSlot.js.map +0 -7
  412. package/dist/esm/elements/is/SwcAppSource.js +0 -36
  413. package/dist/esm/elements/is/SwcAppSource.js.map +0 -7
  414. package/dist/esm/elements/is/SwcAppSpan.js +0 -36
  415. package/dist/esm/elements/is/SwcAppSpan.js.map +0 -7
  416. package/dist/esm/elements/is/SwcAppStyle.js +0 -36
  417. package/dist/esm/elements/is/SwcAppStyle.js.map +0 -7
  418. package/dist/esm/elements/is/SwcAppTable.js +0 -36
  419. package/dist/esm/elements/is/SwcAppTable.js.map +0 -7
  420. package/dist/esm/elements/is/SwcAppTableCell.js +0 -36
  421. package/dist/esm/elements/is/SwcAppTableCell.js.map +0 -7
  422. package/dist/esm/elements/is/SwcAppTableRow.js +0 -36
  423. package/dist/esm/elements/is/SwcAppTableRow.js.map +0 -7
  424. package/dist/esm/elements/is/SwcAppTableSection.js +0 -36
  425. package/dist/esm/elements/is/SwcAppTableSection.js.map +0 -7
  426. package/dist/esm/elements/is/SwcAppTemplate.js +0 -36
  427. package/dist/esm/elements/is/SwcAppTemplate.js.map +0 -7
  428. package/dist/esm/elements/is/SwcAppTextArea.js +0 -36
  429. package/dist/esm/elements/is/SwcAppTextArea.js.map +0 -7
  430. package/dist/esm/elements/is/SwcAppTime.js +0 -36
  431. package/dist/esm/elements/is/SwcAppTime.js.map +0 -7
  432. package/dist/esm/elements/is/SwcAppTitle.js +0 -36
  433. package/dist/esm/elements/is/SwcAppTitle.js.map +0 -7
  434. package/dist/esm/elements/is/SwcAppTrack.js +0 -36
  435. package/dist/esm/elements/is/SwcAppTrack.js.map +0 -7
  436. package/dist/esm/elements/is/SwcAppUl.js +0 -36
  437. package/dist/esm/elements/is/SwcAppUl.js.map +0 -7
  438. package/dist/esm/elements/is/SwcAppVideo.js +0 -36
  439. package/dist/esm/elements/is/SwcAppVideo.js.map +0 -7
  440. package/dist/esm/elements/is/index.js +0 -58
  441. package/dist/esm/elements/is/index.js.map +0 -7
  442. package/dist/types/elements/SwcApp.d.ts +0 -9
  443. package/dist/types/elements/SwcApp.d.ts.map +0 -1
  444. package/dist/types/elements/is/SwcAppAnchor.d.ts +0 -9
  445. package/dist/types/elements/is/SwcAppAnchor.d.ts.map +0 -1
  446. package/dist/types/elements/is/SwcAppArea.d.ts +0 -9
  447. package/dist/types/elements/is/SwcAppArea.d.ts.map +0 -1
  448. package/dist/types/elements/is/SwcAppAudio.d.ts +0 -9
  449. package/dist/types/elements/is/SwcAppAudio.d.ts.map +0 -1
  450. package/dist/types/elements/is/SwcAppBase.d.ts +0 -9
  451. package/dist/types/elements/is/SwcAppBase.d.ts.map +0 -1
  452. package/dist/types/elements/is/SwcAppBody.d.ts +0 -9
  453. package/dist/types/elements/is/SwcAppBody.d.ts.map +0 -1
  454. package/dist/types/elements/is/SwcAppButton.d.ts +0 -9
  455. package/dist/types/elements/is/SwcAppButton.d.ts.map +0 -1
  456. package/dist/types/elements/is/SwcAppCanvas.d.ts +0 -9
  457. package/dist/types/elements/is/SwcAppCanvas.d.ts.map +0 -1
  458. package/dist/types/elements/is/SwcAppData.d.ts +0 -9
  459. package/dist/types/elements/is/SwcAppData.d.ts.map +0 -1
  460. package/dist/types/elements/is/SwcAppDataList.d.ts +0 -9
  461. package/dist/types/elements/is/SwcAppDataList.d.ts.map +0 -1
  462. package/dist/types/elements/is/SwcAppDetails.d.ts +0 -9
  463. package/dist/types/elements/is/SwcAppDetails.d.ts.map +0 -1
  464. package/dist/types/elements/is/SwcAppDialog.d.ts +0 -9
  465. package/dist/types/elements/is/SwcAppDialog.d.ts.map +0 -1
  466. package/dist/types/elements/is/SwcAppDiv.d.ts +0 -9
  467. package/dist/types/elements/is/SwcAppDiv.d.ts.map +0 -1
  468. package/dist/types/elements/is/SwcAppDl.d.ts +0 -9
  469. package/dist/types/elements/is/SwcAppDl.d.ts.map +0 -1
  470. package/dist/types/elements/is/SwcAppEmbed.d.ts +0 -9
  471. package/dist/types/elements/is/SwcAppEmbed.d.ts.map +0 -1
  472. package/dist/types/elements/is/SwcAppFieldSet.d.ts +0 -9
  473. package/dist/types/elements/is/SwcAppFieldSet.d.ts.map +0 -1
  474. package/dist/types/elements/is/SwcAppForm.d.ts +0 -9
  475. package/dist/types/elements/is/SwcAppForm.d.ts.map +0 -1
  476. package/dist/types/elements/is/SwcAppHeading.d.ts +0 -9
  477. package/dist/types/elements/is/SwcAppHeading.d.ts.map +0 -1
  478. package/dist/types/elements/is/SwcAppHr.d.ts +0 -9
  479. package/dist/types/elements/is/SwcAppHr.d.ts.map +0 -1
  480. package/dist/types/elements/is/SwcAppIFrame.d.ts +0 -9
  481. package/dist/types/elements/is/SwcAppIFrame.d.ts.map +0 -1
  482. package/dist/types/elements/is/SwcAppImage.d.ts +0 -9
  483. package/dist/types/elements/is/SwcAppImage.d.ts.map +0 -1
  484. package/dist/types/elements/is/SwcAppInput.d.ts +0 -9
  485. package/dist/types/elements/is/SwcAppInput.d.ts.map +0 -1
  486. package/dist/types/elements/is/SwcAppLabel.d.ts +0 -9
  487. package/dist/types/elements/is/SwcAppLabel.d.ts.map +0 -1
  488. package/dist/types/elements/is/SwcAppLegend.d.ts +0 -9
  489. package/dist/types/elements/is/SwcAppLegend.d.ts.map +0 -1
  490. package/dist/types/elements/is/SwcAppLi.d.ts +0 -9
  491. package/dist/types/elements/is/SwcAppLi.d.ts.map +0 -1
  492. package/dist/types/elements/is/SwcAppLink.d.ts +0 -9
  493. package/dist/types/elements/is/SwcAppLink.d.ts.map +0 -1
  494. package/dist/types/elements/is/SwcAppMap.d.ts +0 -9
  495. package/dist/types/elements/is/SwcAppMap.d.ts.map +0 -1
  496. package/dist/types/elements/is/SwcAppMeta.d.ts +0 -9
  497. package/dist/types/elements/is/SwcAppMeta.d.ts.map +0 -1
  498. package/dist/types/elements/is/SwcAppMeter.d.ts +0 -9
  499. package/dist/types/elements/is/SwcAppMeter.d.ts.map +0 -1
  500. package/dist/types/elements/is/SwcAppMod.d.ts +0 -9
  501. package/dist/types/elements/is/SwcAppMod.d.ts.map +0 -1
  502. package/dist/types/elements/is/SwcAppObject.d.ts +0 -9
  503. package/dist/types/elements/is/SwcAppObject.d.ts.map +0 -1
  504. package/dist/types/elements/is/SwcAppOl.d.ts +0 -9
  505. package/dist/types/elements/is/SwcAppOl.d.ts.map +0 -1
  506. package/dist/types/elements/is/SwcAppOptGroup.d.ts +0 -9
  507. package/dist/types/elements/is/SwcAppOptGroup.d.ts.map +0 -1
  508. package/dist/types/elements/is/SwcAppOption.d.ts +0 -9
  509. package/dist/types/elements/is/SwcAppOption.d.ts.map +0 -1
  510. package/dist/types/elements/is/SwcAppOutput.d.ts +0 -9
  511. package/dist/types/elements/is/SwcAppOutput.d.ts.map +0 -1
  512. package/dist/types/elements/is/SwcAppParagraph.d.ts +0 -9
  513. package/dist/types/elements/is/SwcAppParagraph.d.ts.map +0 -1
  514. package/dist/types/elements/is/SwcAppParam.d.ts +0 -9
  515. package/dist/types/elements/is/SwcAppParam.d.ts.map +0 -1
  516. package/dist/types/elements/is/SwcAppPicture.d.ts +0 -9
  517. package/dist/types/elements/is/SwcAppPicture.d.ts.map +0 -1
  518. package/dist/types/elements/is/SwcAppPre.d.ts +0 -9
  519. package/dist/types/elements/is/SwcAppPre.d.ts.map +0 -1
  520. package/dist/types/elements/is/SwcAppProgress.d.ts +0 -9
  521. package/dist/types/elements/is/SwcAppProgress.d.ts.map +0 -1
  522. package/dist/types/elements/is/SwcAppQuote.d.ts +0 -9
  523. package/dist/types/elements/is/SwcAppQuote.d.ts.map +0 -1
  524. package/dist/types/elements/is/SwcAppScript.d.ts +0 -9
  525. package/dist/types/elements/is/SwcAppScript.d.ts.map +0 -1
  526. package/dist/types/elements/is/SwcAppSelect.d.ts +0 -9
  527. package/dist/types/elements/is/SwcAppSelect.d.ts.map +0 -1
  528. package/dist/types/elements/is/SwcAppSlot.d.ts +0 -9
  529. package/dist/types/elements/is/SwcAppSlot.d.ts.map +0 -1
  530. package/dist/types/elements/is/SwcAppSource.d.ts +0 -9
  531. package/dist/types/elements/is/SwcAppSource.d.ts.map +0 -1
  532. package/dist/types/elements/is/SwcAppSpan.d.ts +0 -9
  533. package/dist/types/elements/is/SwcAppSpan.d.ts.map +0 -1
  534. package/dist/types/elements/is/SwcAppStyle.d.ts +0 -9
  535. package/dist/types/elements/is/SwcAppStyle.d.ts.map +0 -1
  536. package/dist/types/elements/is/SwcAppTable.d.ts +0 -9
  537. package/dist/types/elements/is/SwcAppTable.d.ts.map +0 -1
  538. package/dist/types/elements/is/SwcAppTableCell.d.ts +0 -9
  539. package/dist/types/elements/is/SwcAppTableCell.d.ts.map +0 -1
  540. package/dist/types/elements/is/SwcAppTableRow.d.ts +0 -9
  541. package/dist/types/elements/is/SwcAppTableRow.d.ts.map +0 -1
  542. package/dist/types/elements/is/SwcAppTableSection.d.ts +0 -9
  543. package/dist/types/elements/is/SwcAppTableSection.d.ts.map +0 -1
  544. package/dist/types/elements/is/SwcAppTemplate.d.ts +0 -9
  545. package/dist/types/elements/is/SwcAppTemplate.d.ts.map +0 -1
  546. package/dist/types/elements/is/SwcAppTextArea.d.ts +0 -9
  547. package/dist/types/elements/is/SwcAppTextArea.d.ts.map +0 -1
  548. package/dist/types/elements/is/SwcAppTime.d.ts +0 -9
  549. package/dist/types/elements/is/SwcAppTime.d.ts.map +0 -1
  550. package/dist/types/elements/is/SwcAppTitle.d.ts +0 -9
  551. package/dist/types/elements/is/SwcAppTitle.d.ts.map +0 -1
  552. package/dist/types/elements/is/SwcAppTrack.d.ts +0 -9
  553. package/dist/types/elements/is/SwcAppTrack.d.ts.map +0 -1
  554. package/dist/types/elements/is/SwcAppUl.d.ts +0 -9
  555. package/dist/types/elements/is/SwcAppUl.d.ts.map +0 -1
  556. package/dist/types/elements/is/SwcAppVideo.d.ts +0 -9
  557. package/dist/types/elements/is/SwcAppVideo.d.ts.map +0 -1
  558. package/dist/types/elements/is/index.d.ts +0 -58
  559. package/dist/types/elements/is/index.d.ts.map +0 -1
  560. package/src/elements/SwcApp.ts +0 -26
  561. package/src/elements/is/SwcAppAnchor.ts +0 -26
  562. package/src/elements/is/SwcAppArea.ts +0 -26
  563. package/src/elements/is/SwcAppAudio.ts +0 -26
  564. package/src/elements/is/SwcAppBase.ts +0 -26
  565. package/src/elements/is/SwcAppBody.ts +0 -26
  566. package/src/elements/is/SwcAppButton.ts +0 -26
  567. package/src/elements/is/SwcAppCanvas.ts +0 -26
  568. package/src/elements/is/SwcAppData.ts +0 -26
  569. package/src/elements/is/SwcAppDataList.ts +0 -26
  570. package/src/elements/is/SwcAppDetails.ts +0 -26
  571. package/src/elements/is/SwcAppDialog.ts +0 -26
  572. package/src/elements/is/SwcAppDiv.ts +0 -26
  573. package/src/elements/is/SwcAppDl.ts +0 -26
  574. package/src/elements/is/SwcAppEmbed.ts +0 -26
  575. package/src/elements/is/SwcAppFieldSet.ts +0 -26
  576. package/src/elements/is/SwcAppForm.ts +0 -26
  577. package/src/elements/is/SwcAppHeading.ts +0 -26
  578. package/src/elements/is/SwcAppHr.ts +0 -26
  579. package/src/elements/is/SwcAppIFrame.ts +0 -26
  580. package/src/elements/is/SwcAppImage.ts +0 -26
  581. package/src/elements/is/SwcAppInput.ts +0 -26
  582. package/src/elements/is/SwcAppLabel.ts +0 -26
  583. package/src/elements/is/SwcAppLegend.ts +0 -26
  584. package/src/elements/is/SwcAppLi.ts +0 -26
  585. package/src/elements/is/SwcAppLink.ts +0 -26
  586. package/src/elements/is/SwcAppMap.ts +0 -26
  587. package/src/elements/is/SwcAppMeta.ts +0 -26
  588. package/src/elements/is/SwcAppMeter.ts +0 -26
  589. package/src/elements/is/SwcAppMod.ts +0 -26
  590. package/src/elements/is/SwcAppObject.ts +0 -26
  591. package/src/elements/is/SwcAppOl.ts +0 -26
  592. package/src/elements/is/SwcAppOptGroup.ts +0 -26
  593. package/src/elements/is/SwcAppOption.ts +0 -26
  594. package/src/elements/is/SwcAppOutput.ts +0 -26
  595. package/src/elements/is/SwcAppParagraph.ts +0 -26
  596. package/src/elements/is/SwcAppParam.ts +0 -26
  597. package/src/elements/is/SwcAppPicture.ts +0 -26
  598. package/src/elements/is/SwcAppPre.ts +0 -26
  599. package/src/elements/is/SwcAppProgress.ts +0 -26
  600. package/src/elements/is/SwcAppQuote.ts +0 -26
  601. package/src/elements/is/SwcAppScript.ts +0 -26
  602. package/src/elements/is/SwcAppSelect.ts +0 -26
  603. package/src/elements/is/SwcAppSlot.ts +0 -26
  604. package/src/elements/is/SwcAppSource.ts +0 -26
  605. package/src/elements/is/SwcAppSpan.ts +0 -26
  606. package/src/elements/is/SwcAppStyle.ts +0 -26
  607. package/src/elements/is/SwcAppTable.ts +0 -26
  608. package/src/elements/is/SwcAppTableCell.ts +0 -26
  609. package/src/elements/is/SwcAppTableRow.ts +0 -26
  610. package/src/elements/is/SwcAppTableSection.ts +0 -26
  611. package/src/elements/is/SwcAppTemplate.ts +0 -26
  612. package/src/elements/is/SwcAppTextArea.ts +0 -26
  613. package/src/elements/is/SwcAppTime.ts +0 -26
  614. package/src/elements/is/SwcAppTitle.ts +0 -26
  615. package/src/elements/is/SwcAppTrack.ts +0 -26
  616. package/src/elements/is/SwcAppUl.ts +0 -26
  617. package/src/elements/is/SwcAppVideo.ts +0 -26
  618. package/src/elements/is/index.ts +0 -57
@@ -1,49 +1,85 @@
1
- import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
2
- import { FunctionUtils } from '@dooboostore/core/function/FunctionUtils';
1
+ import { ReflectUtils } from '@dooboostore/core';
2
+ import { FunctionUtils } from '@dooboostore/core';
3
3
  import { getOnConnectedInnerHtmlMetadata } from './onConnectedInnerHtml';
4
- import { getQueryMetadata } from './query';
5
- import { getQueryAllMetadata } from './queryAll';
6
4
  import { getAddEventListenerMetadata } from './addEventListener';
7
- import { 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, ON_ADD_EVENT_LISTENER_METADATA_KEY, ATTRIBUTE_CHANGED_WILDCARD, findAllLifecycleMetadata } from './lifecycles';
5
+ import { 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 } from './lifecycles';
8
6
  import { getEmitCustomEventMetadataList } from './emitCustomEvent';
9
- import { changedAttribute, findAllAttributeChangedMetadata } from './changedAttribute';
10
- import { setAttribute, findAllSetAttributeMetadata } from './setAttribute';
7
+ import { findAllAttributeChangedMetadata } from './changedAttribute';
8
+ import { findAllSetAttributeMetadata } from './setAttribute';
11
9
  import { findAllReplaceChildrenMetadata } from './replaceChildren';
12
10
  import { findAllAppendChildMetadata } from './appendChild';
11
+ import { findAllClassListMetadata } from './classList';
12
+ import { findAllStyleMetadata } from './style';
13
+ import { findAllAttributeMetadata } from './attribute';
13
14
  import { SwcUtils } from '../utils/Utils';
14
15
  import { HTML_TAG_ENTRIES, DOM_EVENT_NAMES } from '../config/config';
15
- import { SituationType, SituationTypeContainer, SituationTypeContainers } from '@dooboostore/simple-boot/decorators/inject/Inject';
16
- import { ConstructorType } from '@dooboostore/core/types';
17
- import { SimpleApplication } from '@dooboostore/simple-boot/SimpleApplication';
18
- import { Router } from '@dooboostore/core-web/routers/Router';
19
- import { InjectSituationType, HostSet, SwcAppInterface } from '../types';
16
+ import { SituationTypeContainer, SituationTypeContainers } from '@dooboostore/simple-boot/decorators/inject/Inject';
17
+ import { InjectSituationType, HostSet } from '../types';
20
18
 
21
19
  // --- Core Interfaces & Types ---
22
20
 
21
+ export const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');
22
+
23
23
  export interface ElementConfig {
24
- name: string;
25
24
  extends?: string;
26
25
  observedAttributes?: string[];
27
- customElementRegistry?: CustomElementRegistry;
26
+ customElementRegistry?: any;
28
27
  window?: Window;
29
28
  }
30
29
 
31
- export const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');
30
+ export interface ElementMetadata extends Omit<ElementConfig, 'window'> {
31
+ name: string;
32
+ window: Window;
33
+ }
32
34
 
33
- // Shared state for global delegation to prevent multiple listeners on the same root
35
+ export const getElementConfig = (target: any): ElementMetadata | undefined => {
36
+ const constructor = target instanceof Function ? target : target.constructor;
37
+ return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);
38
+ };
39
+
40
+ export const ensureInit = (inst: any) => {
41
+ if (!inst.__swc_initialized) {
42
+ inst._swcId = Math.random().toString(36).substring(2, 11);
43
+ inst._emitHandlers = new Map();
44
+ inst._boundListeners = [];
45
+ inst.__swc_initialized = true;
46
+
47
+ // Call constructor script if present
48
+ const hostSet = SwcUtils.getHostSet(inst);
49
+ inst._executeSwcScript?.('swc-on-constructor', hostSet);
50
+ }
51
+ };
52
+
53
+ // --- Global Event Handling ---
34
54
  const globalDelegatedRoots = new WeakSet<Node>();
35
55
 
36
- // --- Environment Initialization Helper ---
56
+ const handleGlobalSwcEvent = async (event: Event) => {
57
+ if ((event as any).__swc_handled) return;
58
+ const path = event.composedPath();
59
+ const type = event.type;
60
+ const attrName = `swc-on-${type}`;
61
+
62
+ for (const node of path) {
63
+ if (!(node instanceof HTMLElement)) continue;
64
+ const script = node.getAttribute?.(attrName);
65
+ if (script && !getElementConfig(node)) {
66
+ const host: any = SwcUtils.findNearestSwcHost(node);
67
+ if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === 'function') {
68
+ await host.__swc_executeAttributeEvent(node, attrName, script, event);
69
+ (event as any).__swc_handled = true;
70
+ break;
71
+ }
72
+ }
73
+ }
74
+ };
37
75
 
38
76
  function buildEnv(configWindow?: Window) {
39
- const win: any = configWindow || (typeof window !== 'undefined' ? window : undefined);
77
+ const win: Window = configWindow || ((typeof window !== 'undefined' ? window : undefined) as any);
40
78
  const doc: Document = win?.document;
41
-
42
79
  const builtInTagMap = new Map<any, string>();
43
80
  for (const [cls, tag] of HTML_TAG_ENTRIES) {
44
81
  if (win?.[cls]) builtInTagMap.set(win[cls], tag);
45
82
  }
46
-
47
83
  const domHelpers = SwcUtils.getHelperSet(win);
48
84
  return { win, doc, builtInTagMap, domHelpers };
49
85
  }
@@ -53,479 +89,389 @@ const getHandlers = (inst: any) => {
53
89
  return inst.__swc_attributeEventHandlers;
54
90
  };
55
91
 
92
+ const setupPrototype = (proto: any) => {
93
+ if (proto.__swc_proto_setup) return;
94
+ proto.__swc_proto_setup = true;
95
+
96
+ proto._executeSwcScript = function (attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {
97
+ ensureInit(this);
98
+ const script = this.getAttribute(attrName);
99
+ if (script) {
100
+ try {
101
+ const conf = getElementConfig(this);
102
+ const currentWin = (this as any)._resolveWindow(conf);
103
+ const helpers = SwcUtils.getHelperSet(currentWin);
104
+ const args = { ...hostSet, ...helpers, ...extraArgs, $el: this, $root: this.getRootNode() };
105
+ FunctionUtils.execute({ script, context: this, args });
106
+ } catch (e) {
107
+ console.error(`[SWC] Failed to execute ${attrName}:`, e);
108
+ }
109
+ }
110
+ };
111
+
112
+ proto._resolveWindow = function (localConfig?: ElementConfig): Window {
113
+ ensureInit(this);
114
+ if (localConfig?.window) return localConfig.window;
115
+ const ancestors = SwcUtils.findAllSwcHosts(this as any);
116
+ for (let i = ancestors.length - 1; i >= 0; i--) {
117
+ const aConf = getElementConfig(ancestors[i]);
118
+ if (aConf?.window) return aConf.window;
119
+ }
120
+ return (typeof window !== 'undefined' ? window : undefined) as Window;
121
+ };
122
+
123
+ proto._invokeLifecycleMethod = function (methodName: string | symbol, hostSet: HostSet, extraArgs: any[] = []) {
124
+ ensureInit(this);
125
+ if (typeof (this as any)[methodName] !== 'function') return;
126
+ const app = hostSet.$appHost?.simpleApplication;
127
+
128
+ if (app) {
129
+ const otherStorage = new Map<any, any>();
130
+ const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: InjectSituationType.HOST_SET, data: hostSet }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOST, data: hostSet.$appHost }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOSTS, data: hostSet.$appHosts }), new SituationTypeContainer({ situationType: InjectSituationType.HOST, data: hostSet.$host }), new SituationTypeContainer({ situationType: InjectSituationType.HOSTS, data: hostSet.$hosts }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_HOST, data: hostSet.$firstHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_HOST, data: hostSet.$lastHost }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_APP_HOST, data: hostSet.$firstAppHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_APP_HOST, data: hostSet.$lastAppHost })]);
131
+ otherStorage.set(SituationTypeContainers, situations);
132
+
133
+ return app.simstanceManager.executeBindParameterSimPromise(
134
+ {
135
+ target: this,
136
+ targetKey: methodName,
137
+ inputParameters: extraArgs
138
+ },
139
+ otherStorage
140
+ );
141
+ } else {
142
+ return (this as any)[methodName](...extraArgs);
143
+ }
144
+ };
145
+
146
+ proto._bindAttributeEvent = function (el: HTMLElement, attrName: string, script: string, eventName?: string) {
147
+ ensureInit(this);
148
+ if (!eventName) {
149
+ if (!attrName.startsWith('swc-on-')) return;
150
+ eventName = attrName.substring(7);
151
+ }
152
+ const elHandlers = getHandlers(this);
153
+ let handlers = elHandlers.get(el);
154
+ if (!handlers) {
155
+ handlers = new Map();
156
+ elHandlers.set(el, handlers);
157
+ }
158
+
159
+ const oldHandler = handlers.get(attrName);
160
+ if (oldHandler) el.removeEventListener(eventName, oldHandler);
161
+
162
+ const handler = async (event: any) => {
163
+ const hostSet = SwcUtils.getHostSet(el);
164
+ const conf = getElementConfig(this);
165
+ const currentWin = (this as any)._resolveWindow(conf);
166
+ const helpers = SwcUtils.getHelperSet(currentWin);
167
+ const args = {
168
+ event,
169
+ $data: (event as CustomEvent).detail,
170
+ ...hostSet,
171
+ ...helpers,
172
+ $el: el,
173
+ $root: this.getRootNode()
174
+ };
175
+ await FunctionUtils.execute({ script, context: el, args });
176
+ };
177
+
178
+ el.addEventListener(eventName, handler);
179
+ handlers.set(attrName, handler);
180
+ };
181
+
182
+ proto.__swc_executeAttributeEvent = async function (el: HTMLElement, attrName: string, script: string, event: Event) {
183
+ ensureInit(this);
184
+ const hostSet = SwcUtils.getHostSet(el);
185
+ const conf = getElementConfig(this);
186
+ const currentWin = (this as any)._resolveWindow(conf);
187
+ const currentHelpers = SwcUtils.getHelperSet(currentWin);
188
+ const args = {
189
+ event,
190
+ $data: (event as CustomEvent).detail,
191
+ ...hostSet,
192
+ ...currentHelpers,
193
+ $el: el,
194
+ $root: this.getRootNode()
195
+ };
196
+ await FunctionUtils.execute({ script, context: el, args });
197
+ };
198
+ };
199
+
56
200
  export const elementDefine =
57
- (inConfig: ElementConfig | string): ClassDecorator =>
201
+ (name: string, config: Partial<ElementConfig> = {}): ClassDecorator =>
58
202
  (constructor: any) => {
59
- const config: ElementConfig = typeof inConfig === 'string' ? { name: inConfig } : inConfig;
60
203
  const { win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS } = buildEnv(config.window);
61
- config.window = win;
204
+ const metadata: ElementMetadata = { ...config, name, window: win };
62
205
 
63
- let extendsTagName = config.extends;
206
+ if (!metadata.window) {
207
+ throw new Error('window is required');
208
+ }
209
+
210
+ let extendsTagName = metadata.extends;
64
211
  if (!extendsTagName) {
65
212
  let proto = constructor;
66
- while (proto && proto !== HTMLElement && proto !== Function.prototype) {
213
+ const BaseHTMLElement = (win as any).HTMLElement;
214
+ while (proto && proto !== BaseHTMLElement && proto !== Function.prototype) {
67
215
  extendsTagName = BUILT_IN_TAG_MAP.get(proto);
68
216
  if (extendsTagName) break;
69
217
  proto = Object.getPrototypeOf(proto);
70
218
  }
71
- config.extends = extendsTagName;
219
+ metadata.extends = extendsTagName;
72
220
  }
73
221
 
74
222
  const emitCustomEventList = getEmitCustomEventMetadataList(constructor) || [];
75
223
  const addEventListenerList = getAddEventListenerMetadata(constructor) || [];
76
224
  const attrChangeMap = findAllAttributeChangedMetadata(constructor);
77
- const setAttrMap = findAllSetAttributeMetadata(constructor);
78
- const replaceChildrenMap = findAllReplaceChildrenMetadata(constructor);
79
- const appendChildMap = findAllAppendChildMetadata(constructor);
225
+ const attributeList = findAllAttributeMetadata(constructor);
80
226
 
81
227
  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'];
82
228
  const swcOnEvents = DOM_EVENT_NAMES.map(e => `swc-on-${e}`);
83
229
 
84
- const mergedObservedAttributes = [...new Set([...(config.observedAttributes ?? []), ...attrChangeMap.keys(), ...setAttrMap.keys(), ...emitCustomEventList.map(it => it.options.attributeName!), ...swcLifecycleAttributes, ...swcOnEvents])];
85
- const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];
86
-
87
- const NewClass = class extends (constructor as any) {
88
- private _swcId = Math.random().toString(36).substring(2, 11);
89
- private _emitHandlers = new Map<string, EventListener>();
90
- private _boundListeners: Array<{ target: EventTarget; type: string; handler: EventListener; options?: any }> = [];
91
-
92
- private _executeSwcScript(attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {
93
- const script = this.getAttribute(attrName);
94
- if (script) {
95
- try {
96
- const args = { ...hostSet, ...SWC_DOM_HELPERS, ...extraArgs };
97
- FunctionUtils.execute({ script, context: this, args });
98
- } catch (e) {
99
- console.error(`[SWC] Failed to execute ${attrName}:`, e);
100
- }
101
- }
102
- }
230
+ // Collect all observed attributes from all decorators
231
+ const mergedObservedAttributes = [...new Set([...(metadata.observedAttributes ?? []), ...attrChangeMap.keys(), ...Array.from(findAllSetAttributeMetadata(constructor).values()).map(it => it.name), ...attributeList.map(it => it.options.name || String(it.propertyKey)), ...emitCustomEventList.map(it => it.options.attributeName!), ...swcLifecycleAttributes, ...swcOnEvents])];
103
232
 
104
- private async _invokeLifecycleMethod(methodName: string | symbol, hostSet: HostSet, extraArgs: any[] = []) {
105
- if (typeof (this as any)[methodName] !== 'function') return;
106
- const app = hostSet.$appHost?.simpleApplication;
107
-
108
- if (app) {
109
- const otherStorage = new Map<any, any>();
110
- const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: InjectSituationType.HOST_SET, data: hostSet }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOST, data: hostSet.$appHost }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOSTS, data: hostSet.$appHosts }), new SituationTypeContainer({ situationType: InjectSituationType.HOST, data: hostSet.$host }), new SituationTypeContainer({ situationType: InjectSituationType.HOSTS, data: hostSet.$hosts }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_HOST, data: hostSet.$firstHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_HOST, data: hostSet.$lastHost }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_APP_HOST, data: hostSet.$firstAppHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_APP_HOST, data: hostSet.$lastAppHost })]);
111
- otherStorage.set(SituationTypeContainers, situations);
112
-
113
- return app.simstanceManager.executeBindParameterSimPromise(
114
- {
115
- target: this,
116
- targetKey: methodName,
117
- inputParameters: extraArgs
118
- },
119
- otherStorage
120
- );
121
- } else {
122
- return (this as any)[methodName](...extraArgs);
123
- }
124
- }
125
-
126
- private _bindAttributeEvent(el: HTMLElement, attrName: string, script: string, eventName?: string) {
127
- if (!eventName) {
128
- if (!attrName.startsWith('swc-on-')) return;
129
- eventName = attrName.substring(7);
130
- }
131
- if (swcLifecycleAttributes.includes(attrName)) return;
132
-
133
- const elHandlers = getHandlers(this);
134
- let handlers = elHandlers.get(el);
135
- if (!handlers) {
136
- handlers = new Map();
137
- elHandlers.set(el, handlers);
138
- }
233
+ const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];
139
234
 
140
- const oldHandler = handlers.get(attrName);
141
- if (oldHandler) el.removeEventListener(eventName, oldHandler);
235
+ const proto = constructor.prototype;
236
+ setupPrototype(proto);
142
237
 
143
- const handler = (event: any) => {
144
- const hostSet = SwcUtils.getHostSet(el);
145
- const args = {
146
- event,
147
- $data: (event as CustomEvent).detail,
148
- ...hostSet,
149
- ...SWC_DOM_HELPERS
150
- };
151
- FunctionUtils.execute({ script, context: el, args });
152
- };
238
+ const originalConnected = proto.connectedCallback;
239
+ proto.connectedCallback = function () {
240
+ ensureInit(this);
153
241
 
154
- el.addEventListener(eventName, handler);
155
- handlers.set(attrName, handler);
242
+ if (connectedInnerHtmlList.some(it => it.options.useShadow === true) && !this.shadowRoot) {
243
+ this.attachShadow({ mode: 'open' });
156
244
  }
157
245
 
158
- constructor(...args: any[]) {
159
- super(...args);
160
- const hostSet = SwcUtils.getHostSet(this as any);
161
- this._executeSwcScript('swc-on-constructor', hostSet);
162
-
163
- if (connectedInnerHtmlList.some(it => it.options.useShadow === true) && !this.shadowRoot) {
164
- this.attachShadow({ mode: 'open' });
165
- }
166
- }
246
+ const conf = getElementConfig(this);
247
+ const currentWin = (this as any)._resolveWindow(conf);
248
+ const hostSet = SwcUtils.getHostSet(this as any);
167
249
 
168
- static get observedAttributes() {
169
- return mergedObservedAttributes;
250
+ (this as any)._executeSwcScript('swc-on-before-connected', hostSet);
251
+ const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);
252
+ if (bMethods) {
253
+ for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);
170
254
  }
171
255
 
172
- async connectedCallback() {
173
- const conf = getElementConfig(this);
174
- const currentWin = conf?.window || window;
175
- const currentDoc = currentWin.document;
176
-
177
- const hostSet = SwcUtils.getHostSet(this as any);
178
-
179
- this._executeSwcScript('swc-on-before-connected', hostSet);
180
- const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);
181
- if (bMethods) {
182
- for (const m of bMethods) await this._invokeLifecycleMethod(m, hostSet);
183
- }
184
-
185
- if (typeof (this as any).initCore === 'function') (this as any).initCore();
186
-
187
- if (connectedInnerHtmlList.length > 0) {
188
- let sContent = '',
189
- lContent = '';
190
- for (const meta of connectedInnerHtmlList) {
191
- const res = await (this as any)[meta.propertyKey]();
192
- if (res !== undefined) {
193
- if (meta.options.useShadow) sContent += res;
194
- else lContent += res;
256
+ // Initialize @attribute fields (DOM <-> JS Sync)
257
+ attributeList.forEach(meta => {
258
+ const attrName = meta.options.name || String(meta.propertyKey);
259
+ if (meta.options.connectedInitialize) {
260
+ // JS -> DOM (FORCE OVERWRITE)
261
+ const memoryVal = (this as any)[meta.privateKey];
262
+ if (memoryVal !== undefined) {
263
+ (this as any).__swc_syncing_init = true;
264
+ try {
265
+ (this as any)[meta.propertyKey] = memoryVal; // Trigger setter to update DOM
266
+ } finally {
267
+ (this as any).__swc_syncing_init = false;
195
268
  }
196
269
  }
197
- if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;
198
- if (lContent) this.innerHTML = lContent;
199
- }
200
-
201
- // --- Optimized Host Delegation ---
202
- const createDelegationHandler = (delegateHost: any) => (event: Event) => {
203
- if ((event as any).__swc_handled) return;
204
-
205
- const path = event.composedPath();
206
- const type = event.type;
207
- const attrName = `swc-on-${type}`;
208
-
209
- for (const node of path) {
210
- if (node === delegateHost) break;
211
- if (!(node instanceof HTMLElement)) continue;
212
-
213
- const script = node.getAttribute?.(attrName);
214
- if (script && !getElementConfig(node)) {
215
- const host = SwcUtils.findNearestSwcHost(node);
216
- if (host) {
217
- const childHostSet = SwcUtils.getHostSet(node);
218
- const args = {
219
- event,
220
- $data: (event as CustomEvent).detail,
221
- ...childHostSet,
222
- ...SWC_DOM_HELPERS
223
- };
224
- FunctionUtils.execute({ script, context: node, args });
225
- (event as any).__swc_handled = true;
226
- break;
227
- }
270
+ } else if (meta.selector === ':host' || !meta.selector) {
271
+ // DOM -> JS (Pull from HTML)
272
+ const domVal = this.getAttribute(attrName);
273
+ if (domVal !== null) {
274
+ (this as any).__swc_syncing_init = true;
275
+ try {
276
+ (this as any)[meta.propertyKey] = domVal; // Update memory with DOM value
277
+ } finally {
278
+ (this as any).__swc_syncing_init = false;
228
279
  }
229
280
  }
230
- };
231
-
232
- // 1. Local Delegation (To itself)
233
- DOM_EVENT_NAMES.forEach(type => {
234
- const handler = createDelegationHandler(this);
235
- this.addEventListener(type, handler);
236
- this._boundListeners.push({ target: this as any, type, handler });
237
- });
281
+ }
282
+ });
238
283
 
239
- // 2. Structural/Global Delegation (If no parent host exists)
240
- const hasParentHost = SwcUtils.findAllSwcHosts(this as any).length > 0;
241
- if (!hasParentHost) {
242
- const root = this.getRootNode();
243
- if (!globalDelegatedRoots.has(root)) {
244
- DOM_EVENT_NAMES.forEach(type => {
245
- const handler = createDelegationHandler(root);
246
- root.addEventListener(type, handler);
247
- });
248
- globalDelegatedRoots.add(root);
284
+ if (connectedInnerHtmlList.length > 0) {
285
+ let sContent = '',
286
+ lContent = '';
287
+ for (const meta of connectedInnerHtmlList) {
288
+ const res = (this as any)[meta.propertyKey]();
289
+ if (res !== undefined) {
290
+ if (meta.options.useShadow) sContent += res;
291
+ else lContent += res;
249
292
  }
250
293
  }
294
+ if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;
295
+ if (lContent) this.innerHTML = lContent;
296
+ }
251
297
 
252
- // --- @addEventListener binding (Direct/Delegate/Global) ---
253
- addEventListenerList.forEach(meta => {
254
- const { selector, type, options } = meta;
255
- const { root, capture, once, passive, stopPropagation, stopImmediatePropagation, preventDefault, delegate, removeOnDisconnected } = options;
256
- const opts = { capture, once, passive };
257
-
258
- const bindTargets: EventTarget[] = [];
259
-
260
- if (selector === ':window') {
261
- bindTargets.push(currentWin);
262
- } else if (selector === ':document') {
263
- bindTargets.push(currentDoc);
264
- } else if (selector === ':parentHost') {
265
- if (hostSet.$parentHost) bindTargets.push(hostSet.$parentHost);
266
- } else if (selector === ':appHost') {
267
- if (hostSet.$appHost) bindTargets.push(hostSet.$appHost);
268
- } else if (selector === ':firstHost') {
269
- if (hostSet.$firstHost) bindTargets.push(hostSet.$firstHost);
270
- } else if (selector === ':lastHost') {
271
- if (hostSet.$lastHost) bindTargets.push(hostSet.$lastHost);
272
- } else if (selector === ':firstAppHost') {
273
- if (hostSet.$firstAppHost) bindTargets.push(hostSet.$firstAppHost);
274
- } else if (selector === ':lastAppHost') {
275
- if (hostSet.$lastAppHost) bindTargets.push(hostSet.$lastAppHost);
276
- } else if (!selector || selector === ':host') {
277
- bindTargets.push(this as any);
278
- } else if (delegate) {
279
- const bindRoots: (HTMLElement | ShadowRoot)[] = [];
280
- const r = root || 'auto';
281
- if (r === 'auto') bindRoots.push(this.shadowRoot || (this as any));
282
- else if (r === 'light') bindRoots.push(this as any);
283
- else if (r === 'shadow') {
284
- if (this.shadowRoot) bindRoots.push(this.shadowRoot as any);
285
- } else if (r === 'all') {
286
- bindRoots.push(this as any);
287
- if (this.shadowRoot) bindRoots.push(this.shadowRoot as any);
288
- }
298
+ const root = this.getRootNode();
299
+ if (!globalDelegatedRoots.has(root)) {
300
+ DOM_EVENT_NAMES.forEach(type => {
301
+ root.addEventListener(type, handleGlobalSwcEvent);
302
+ });
303
+ globalDelegatedRoots.add(root);
304
+ }
289
305
 
290
- bindRoots.forEach(br => {
291
- const handler = (event: Event) => {
292
- const matchedEl = (event.target as HTMLElement).closest(selector);
293
- if (matchedEl && (br as any).contains(matchedEl)) {
294
- if (stopPropagation) event.stopPropagation();
295
- if (stopImmediatePropagation) event.stopImmediatePropagation();
296
- if (preventDefault) event.preventDefault();
297
- const currentHostSet = SwcUtils.getHostSet(this as any);
298
- this._invokeLifecycleMethod(meta.propertyKey, currentHostSet, [event, currentHostSet, matchedEl]);
299
- }
300
- };
301
- br.addEventListener(type, handler, opts);
302
- const self: any = this;
303
- if (removeOnDisconnected === true || (br !== self && br !== self.shadowRoot)) {
304
- this._boundListeners.push({ target: br, type, handler, options: opts });
305
- }
306
- });
306
+ addEventListenerList.forEach(meta => {
307
+ const { selector, type, options } = meta;
308
+ const opts = { capture: options.capture, once: options.once, passive: options.passive };
309
+ const bindTargets: EventTarget[] = [];
310
+ const r = options.root || 'auto';
311
+ const applyRootOption = (target: any) => {
312
+ if (!target) return;
313
+ if (r === 'auto') {
314
+ bindTargets.push(target.shadowRoot || target);
307
315
  } else {
308
- const searchRoots: (HTMLElement | ShadowRoot)[] = [];
309
- const r = root || 'auto';
310
- if (r === 'auto') searchRoots.push((this.shadowRoot || (this as any)) as any);
311
- else if (r === 'light') searchRoots.push(this as any);
312
- else if (r === 'shadow') {
313
- if (this.shadowRoot) searchRoots.push(this.shadowRoot as any);
314
- } else if (r === 'all') {
315
- searchRoots.push(this as any);
316
- if (this.shadowRoot) searchRoots.push(this.shadowRoot as any);
317
- }
316
+ if (r === 'light' || r === 'all') bindTargets.push(target);
317
+ if ((r === 'shadow' || r === 'all') && target.shadowRoot) bindTargets.push(target.shadowRoot);
318
+ }
319
+ };
318
320
 
319
- searchRoots.forEach(sr => {
320
- sr.querySelectorAll(selector).forEach(el => bindTargets.push(el));
321
- });
321
+ if (selector === ':window') bindTargets.push(currentWin);
322
+ else if (selector === ':document') bindTargets.push(currentWin.document);
323
+ else if (selector === ':parentHost') applyRootOption(hostSet.$parentHost);
324
+ else if (selector === ':appHost') applyRootOption(hostSet.$appHost);
325
+ else if (selector === ':firstHost') applyRootOption(hostSet.$firstHost);
326
+ else if (selector === ':lastHost') applyRootOption(hostSet.$lastHost);
327
+ else if (selector === ':firstAppHost') applyRootOption(hostSet.$firstAppHost);
328
+ else if (selector === ':lastAppHost') applyRootOption(hostSet.$lastAppHost);
329
+ else if (selector === ':hosts') hostSet.$hosts.forEach(applyRootOption);
330
+ else if (selector === ':appHosts') hostSet.$appHosts.forEach(applyRootOption);
331
+ else if (selector === ':host' || !selector) applyRootOption(this);
332
+ else if (options.delegate) {
333
+ const bindRoots: (HTMLElement | ShadowRoot)[] = [];
334
+ if (r === 'auto') bindRoots.push(this.shadowRoot || (this as any));
335
+ else if (r === 'light') bindRoots.push(this as any);
336
+ else if (r === 'shadow' && this.shadowRoot) bindRoots.push(this.shadowRoot);
337
+ else if (r === 'all') {
338
+ bindRoots.push(this as any);
339
+ if (this.shadowRoot) bindRoots.push(this.shadowRoot);
322
340
  }
323
341
 
324
- bindTargets.forEach(target => {
325
- const handler = (event: Event) => {
326
- if (stopPropagation) event.stopPropagation();
327
- if (stopImmediatePropagation) event.stopImmediatePropagation();
328
- if (preventDefault) event.preventDefault();
329
- const currentHostSet = SwcUtils.getHostSet(this as any);
330
- this._invokeLifecycleMethod(meta.propertyKey, currentHostSet, [event, currentHostSet]);
342
+ bindRoots.forEach(br => {
343
+ const handler = async (event: Event) => {
344
+ const matchedEl = (event.target as HTMLElement).closest(selector);
345
+ if (matchedEl && (br as any).contains(matchedEl)) {
346
+ if (options.stopPropagation) event.stopPropagation();
347
+ if (options.stopImmediatePropagation) event.stopImmediatePropagation();
348
+ if (options.preventDefault) event.preventDefault();
349
+ const currentHostSet = SwcUtils.getHostSet(this as any);
350
+ const args = { event, ...currentHostSet, $el: matchedEl, $root: br };
351
+ await (this as any)._invokeLifecycleMethod(meta.propertyKey, currentHostSet, [event, currentHostSet, matchedEl, args]);
352
+ }
331
353
  };
332
- target.addEventListener(type, handler, opts);
333
- if (removeOnDisconnected === true || target === currentWin || target === currentDoc) {
334
- this._boundListeners.push({ target, type, handler, options: opts });
354
+ br.addEventListener(type, handler, opts);
355
+ if (options.removeOnDisconnected === true || (br !== this && br !== this.shadowRoot)) {
356
+ (this as any)._boundListeners.push({ target: br, type, handler, options: opts });
335
357
  }
336
358
  });
337
- });
359
+ } else {
360
+ const searchRoots: (HTMLElement | ShadowRoot)[] = [];
361
+ if (r === 'auto') searchRoots.push(this.shadowRoot || (this as any));
362
+ else if (r === 'light') searchRoots.push(this as any);
363
+ else if (r === 'shadow' && this.shadowRoot) searchRoots.push(this.shadowRoot);
364
+ else if (r === 'all') {
365
+ searchRoots.push(this as any);
366
+ if (this.shadowRoot) searchRoots.push(this.shadowRoot);
367
+ }
338
368
 
339
- if (super.connectedCallback) await super.connectedCallback();
340
- const aMethods = findAllLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);
341
- if (aMethods) {
342
- for (const m of aMethods) await this._invokeLifecycleMethod(m, hostSet);
369
+ searchRoots.forEach(sr => {
370
+ sr.querySelectorAll(selector).forEach(el => bindTargets.push(el));
371
+ });
343
372
  }
344
373
 
345
- this._executeSwcScript('swc-on-connected', hostSet);
346
- this._executeSwcScript('swc-on-after-connected', hostSet);
347
- }
348
-
349
- disconnectedCallback() {
350
- const hostSet = SwcUtils.getHostSet(this as any);
351
- this._executeSwcScript('swc-on-before-disconnected', hostSet);
352
- const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);
353
- if (bMethods) bMethods.forEach(m => this._invokeLifecycleMethod(m, hostSet));
354
-
355
- this._boundListeners.forEach(l => l.target.removeEventListener(l.type, l.handler, l.options));
356
- this._boundListeners = [];
374
+ bindTargets.forEach(t => {
375
+ const handler = async (event: Event) => {
376
+ if (options.stopPropagation) event.stopPropagation();
377
+ if (options.stopImmediatePropagation) event.stopImmediatePropagation();
378
+ if (options.preventDefault) event.preventDefault();
379
+ const currentHostSet = SwcUtils.getHostSet(this as any);
380
+ const args = { event, ...currentHostSet, $el: t, $root: t };
381
+ await (this as any)._invokeLifecycleMethod(meta.propertyKey, currentHostSet, [event, currentHostSet, args]);
382
+ };
383
+ t.addEventListener(type, handler, opts);
384
+ if (options.removeOnDisconnected === true || t === currentWin || t === currentWin.document) {
385
+ (this as any)._boundListeners.push({ target: t, type, handler, options: opts });
386
+ }
387
+ });
388
+ });
357
389
 
358
- if (super.disconnectedCallback) super.disconnectedCallback();
390
+ if (originalConnected) originalConnected.apply(this);
359
391
 
360
- const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);
361
- if (aMethods) aMethods.forEach(m => this._invokeLifecycleMethod(m, hostSet));
362
- this._executeSwcScript('swc-on-disconnected', hostSet);
363
- this._executeSwcScript('swc-on-after-disconnected', hostSet);
392
+ const aMethods = findAllLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);
393
+ if (aMethods) {
394
+ for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);
364
395
  }
396
+ (this as any)._executeSwcScript('swc-on-connected', hostSet);
397
+ (this as any)._executeSwcScript('swc-on-after-connected', hostSet);
398
+ (this as any).__swc_connected = true;
399
+ };
365
400
 
366
- adoptedCallback() {
367
- const hostSet = SwcUtils.getHostSet(this as any);
368
- this._executeSwcScript('swc-on-before-adopted', hostSet);
369
- const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);
370
- if (bMethods) bMethods.forEach(m => this._invokeLifecycleMethod(m, hostSet));
371
-
372
- if (super.adoptedCallback) super.adoptedCallback();
373
-
374
- const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);
375
- if (aMethods) aMethods.forEach(m => this._invokeLifecycleMethod(m, hostSet));
376
- this._executeSwcScript('swc-on-adopted', hostSet);
377
- this._executeSwcScript('swc-on-after-adopted', hostSet);
401
+ const originalDisconnected = proto.disconnectedCallback;
402
+ proto.disconnectedCallback = function () {
403
+ const hostSet = SwcUtils.getHostSet(this as any);
404
+ (this as any)._executeSwcScript('swc-on-before-disconnected', hostSet);
405
+ const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);
406
+ if (bMethods) {
407
+ for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);
378
408
  }
379
409
 
380
- attributeChangedCallback(name: string, old: string | null, newVal: string | null) {
381
- if (super.attributeChangedCallback) super.attributeChangedCallback(name, old, newVal);
410
+ if ((this as any)._boundListeners) {
411
+ (this as any)._boundListeners.forEach((l: any) => l.target.removeEventListener(l.type, l.handler, l.options));
412
+ (this as any)._boundListeners = [];
413
+ }
382
414
 
383
- if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {
384
- if (newVal !== null) {
385
- const customEventMeta = emitCustomEventList.find(it => it.options.attributeName === name);
386
- const eventName = customEventMeta ? customEventMeta.options.type : name.substring(7);
387
- this._bindAttributeEvent(this as any, name, newVal, eventName);
388
- }
389
- }
415
+ if (originalDisconnected) originalDisconnected.apply(this);
390
416
 
391
- const mKeys = attrChangeMap.get(name);
392
- if (mKeys && Array.isArray(mKeys)) {
393
- const hSet = SwcUtils.getHostSet(this as any);
394
- mKeys.forEach(key => this._invokeLifecycleMethod(key, hSet, [newVal, old, name]));
395
- }
417
+ const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);
418
+ if (aMethods) {
419
+ for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);
396
420
  }
421
+ (this as any)._executeSwcScript('swc-on-disconnected', hostSet);
422
+ (this as any)._executeSwcScript('swc-on-after-disconnected', hostSet);
423
+ (this as any).__swc_connected = false;
397
424
  };
398
425
 
399
- // --- @setAttribute wrapping logic ---
400
- setAttrMap.forEach((methodName, attrName) => {
401
- const original = NewClass.prototype[methodName as any];
402
- if (typeof original === 'function') {
403
- NewClass.prototype[methodName as any] = function (...args: any[]) {
404
- const res = original.apply(this, args);
405
- if (res !== undefined) {
406
- if (res === null) this.removeAttribute(attrName);
407
- else this.setAttribute(attrName, String(res));
408
- }
409
- return res;
410
- };
426
+ const originalAdopted = proto.adoptedCallback;
427
+ proto.adoptedCallback = function () {
428
+ const hostSet = SwcUtils.getHostSet(this as any);
429
+ (this as any)._executeSwcScript('swc-on-before-adopted', hostSet);
430
+ const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);
431
+ if (bMethods) {
432
+ for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);
411
433
  }
412
- });
413
434
 
414
- // --- @emitCustomEvent wrapping logic ---
415
- emitCustomEventList.forEach(meta => {
416
- const { propertyKey, options } = meta;
417
- const original = NewClass.prototype[propertyKey as any];
418
- if (typeof original === 'function') {
419
- NewClass.prototype[propertyKey as any] = function (...args: any[]) {
420
- const detail = original.apply(this, args);
421
- const event = new CustomEvent(options.type, {
422
- detail,
423
- bubbles: options.bubbles,
424
- composed: options.composed,
425
- cancelable: options.cancelable
426
- });
427
- this.dispatchEvent(event);
428
- return detail;
429
- };
435
+ if (originalAdopted) originalAdopted.apply(this);
436
+
437
+ const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);
438
+ if (aMethods) {
439
+ for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);
430
440
  }
431
- });
441
+ (this as any)._executeSwcScript('swc-on-adopted', hostSet);
442
+ (this as any)._executeSwcScript('swc-on-after-adopted', hostSet);
443
+ };
432
444
 
433
- // --- @replaceChildren wrapping logic ---
434
- replaceChildrenMap.forEach((selector, methodName) => {
435
- const original = NewClass.prototype[methodName as any];
436
- if (typeof original === 'function') {
437
- NewClass.prototype[methodName as any] = function (...args: any[]) {
438
- const res = original.apply(this, args);
439
- if (res !== undefined) {
440
- const conf = getElementConfig(this);
441
- const currentWin = conf?.window || window;
442
- const currentDoc = currentWin.document;
443
-
444
- let targetEl: Element | null = null;
445
- if (selector === ':host' || !selector) {
446
- targetEl = this;
447
- } else {
448
- targetEl = (this.shadowRoot || this).querySelector(selector);
449
- }
445
+ const originalAttributeChanged = proto.attributeChangedCallback;
446
+ proto.attributeChangedCallback = function (name: string, old: string | null, newVal: string | null) {
447
+ if (originalAttributeChanged) originalAttributeChanged.apply(this, [name, old, newVal]);
450
448
 
451
- if (targetEl) {
452
- const nodes: (Node | string)[] = Array.isArray(res) ? res : [res];
453
- const normalizedNodes = nodes.map(n => {
454
- if (typeof n === 'string') {
455
- const t = currentDoc.createElement('template');
456
- t.innerHTML = n;
457
- return t.content;
458
- }
459
- return n as Node;
460
- });
461
- (targetEl as any).replaceChildren(...normalizedNodes);
462
- }
463
- }
464
- return res;
465
- };
449
+ // Handle swc-on-* events
450
+ if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {
451
+ if (newVal !== null) {
452
+ const customEventMeta = emitCustomEventList.find(it => it.options.attributeName === name);
453
+ const eventName = customEventMeta ? customEventMeta.type : name.substring(7);
454
+ (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);
455
+ }
466
456
  }
467
- });
468
457
 
469
- // --- @appendChild wrapping logic ---
470
- appendChildMap.forEach((meta, methodName) => {
471
- const { selector, options } = meta;
472
- const original = NewClass.prototype[methodName as any];
473
- if (typeof original === 'function') {
474
- NewClass.prototype[methodName as any] = function (...args: any[]) {
475
- const res = original.apply(this, args);
476
- if (res !== undefined) {
477
- const conf = getElementConfig(this);
478
- const currentWin = conf?.window || window;
479
- const currentDoc = currentWin.document;
480
-
481
- let targetEl: Element | null = null;
482
- if (selector === ':host' || !selector) {
483
- targetEl = this;
484
- } else {
485
- targetEl = (this.shadowRoot || this).querySelector(selector);
486
- }
487
-
488
- if (targetEl) {
489
- const nodes: (Node | string)[] = Array.isArray(res) ? res : [res];
490
- const normalizedNodes = nodes.map(n => {
491
- if (typeof n === 'string') {
492
- const t = currentDoc.createElement('template');
493
- t.innerHTML = n;
494
- return t.content;
495
- }
496
- return n as Node;
497
- });
498
-
499
- const pos = options.position || 'lastChild';
500
- if (pos === 'lastChild') (targetEl as any).append(...normalizedNodes);
501
- else if (pos === 'firstChild') (targetEl as any).prepend(...normalizedNodes);
502
- else if (pos === 'nextSibling') (targetEl as any).after(...normalizedNodes);
503
- else if (pos === 'previousSibling') (targetEl as any).before(...normalizedNodes);
504
- }
505
- }
506
- return res;
507
- };
458
+ // Handle @changedAttribute callbacks
459
+ const mKeys = attrChangeMap.get(name);
460
+ if (mKeys && Array.isArray(mKeys)) {
461
+ const hSet = SwcUtils.getHostSet(this as any);
462
+ for (const key of mKeys) (this as any)._invokeLifecycleMethod(key, hSet, [newVal, old, name]);
508
463
  }
509
- });
464
+ };
510
465
 
511
- const originalProto = constructor.prototype;
512
- const newProto = NewClass.prototype;
513
- Object.getOwnPropertyNames(originalProto).forEach(name => {
514
- if (name === 'constructor') return;
515
- const keys = Reflect.getMetadataKeys(originalProto, name);
516
- keys.forEach(key => Reflect.defineMetadata(key, Reflect.getMetadata(key, originalProto, name), newProto, name));
466
+ Object.defineProperty(constructor, 'observedAttributes', {
467
+ get: () => mergedObservedAttributes,
468
+ configurable: true
517
469
  });
518
470
 
519
- ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, NewClass);
520
- ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, constructor);
521
- const registry = config.customElementRegistry || (win as any)?.customElements;
522
- if (registry && !registry.get(config.name)) {
523
- registry.define(config.name, NewClass as any, config.extends ? { extends: config.extends } : undefined);
471
+ ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, metadata, constructor);
472
+ const registry = metadata.customElementRegistry || (win as any)?.customElements;
473
+ if (registry && !registry.get(metadata.name)) {
474
+ registry.define(metadata.name, constructor as any, metadata.extends ? { extends: metadata.extends } : undefined);
524
475
  }
525
- return NewClass as any;
476
+ return constructor;
526
477
  };
527
-
528
- export const getElementConfig = (target: any): ElementConfig | undefined => {
529
- const constructor = target instanceof Function ? target : target.constructor;
530
- return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);
531
- };