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