@dooboostore/simple-web-component 1.0.18 → 1.0.19

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