@dooboostore/simple-web-component 1.0.5 → 1.0.7

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 (938) hide show
  1. package/README.md +151 -58
  2. package/dist/cjs/decorators/addEventListener.js +3 -2
  3. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  4. package/dist/cjs/decorators/attribute.js +79 -0
  5. package/dist/cjs/decorators/attribute.js.map +7 -0
  6. package/dist/cjs/decorators/elementDefine.js +261 -106
  7. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  8. package/dist/cjs/decorators/emitCustomEvent.js +60 -0
  9. package/dist/cjs/decorators/emitCustomEvent.js.map +7 -0
  10. package/dist/cjs/decorators/lifecycles.js +38 -0
  11. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  12. package/dist/cjs/decorators/query.js +27 -5
  13. package/dist/cjs/decorators/query.js.map +2 -2
  14. package/dist/cjs/decorators/queryAll.js +27 -5
  15. package/dist/cjs/decorators/queryAll.js.map +2 -2
  16. package/dist/cjs/decorators/state.js +50 -0
  17. package/dist/cjs/decorators/state.js.map +7 -0
  18. package/dist/cjs/elements/SwcChoose.js.map +2 -2
  19. package/dist/cjs/elements/SwcForOf.js +3 -1
  20. package/dist/cjs/elements/SwcForOf.js.map +2 -2
  21. package/dist/cjs/elements/SwcObject.js +8 -6
  22. package/dist/cjs/elements/SwcObject.js.map +2 -2
  23. package/dist/cjs/index.js +6 -7
  24. package/dist/cjs/index.js.map +2 -2
  25. package/dist/cjs/is/SwcChooseAnchor.js.map +2 -2
  26. package/dist/cjs/is/SwcChooseArea.js.map +2 -2
  27. package/dist/cjs/is/SwcChooseAudio.js.map +2 -2
  28. package/dist/cjs/is/SwcChooseBase.js.map +2 -2
  29. package/dist/cjs/is/SwcChooseButton.js.map +2 -2
  30. package/dist/cjs/is/SwcChooseCanvas.js.map +2 -2
  31. package/dist/cjs/is/SwcChooseData.js.map +2 -2
  32. package/dist/cjs/is/SwcChooseDataList.js.map +2 -2
  33. package/dist/cjs/is/SwcChooseDetails.js.map +2 -2
  34. package/dist/cjs/is/SwcChooseDialog.js.map +2 -2
  35. package/dist/cjs/is/SwcChooseDiv.js.map +2 -2
  36. package/dist/cjs/is/SwcChooseDl.js.map +2 -2
  37. package/dist/cjs/is/SwcChooseEmbed.js.map +2 -2
  38. package/dist/cjs/is/SwcChooseFieldSet.js.map +2 -2
  39. package/dist/cjs/is/SwcChooseForm.js.map +2 -2
  40. package/dist/cjs/is/SwcChooseHeading.js.map +2 -2
  41. package/dist/cjs/is/SwcChooseHr.js.map +2 -2
  42. package/dist/cjs/is/SwcChooseIFrame.js.map +2 -2
  43. package/dist/cjs/is/SwcChooseImage.js.map +2 -2
  44. package/dist/cjs/is/SwcChooseInput.js.map +2 -2
  45. package/dist/cjs/is/SwcChooseLabel.js.map +2 -2
  46. package/dist/cjs/is/SwcChooseLegend.js.map +2 -2
  47. package/dist/cjs/is/SwcChooseLi.js.map +2 -2
  48. package/dist/cjs/is/SwcChooseLink.js.map +2 -2
  49. package/dist/cjs/is/SwcChooseMap.js.map +2 -2
  50. package/dist/cjs/is/SwcChooseMeta.js.map +2 -2
  51. package/dist/cjs/is/SwcChooseMeter.js.map +2 -2
  52. package/dist/cjs/is/SwcChooseMod.js.map +2 -2
  53. package/dist/cjs/is/SwcChooseObject.js.map +2 -2
  54. package/dist/cjs/is/SwcChooseOl.js.map +2 -2
  55. package/dist/cjs/is/SwcChooseOptGroup.js.map +2 -2
  56. package/dist/cjs/is/SwcChooseOption.js.map +2 -2
  57. package/dist/cjs/is/SwcChooseOutput.js.map +2 -2
  58. package/dist/cjs/is/SwcChooseParagraph.js.map +2 -2
  59. package/dist/cjs/is/SwcChooseParam.js.map +2 -2
  60. package/dist/cjs/is/SwcChoosePicture.js.map +2 -2
  61. package/dist/cjs/is/SwcChoosePre.js.map +2 -2
  62. package/dist/cjs/is/SwcChooseProgress.js.map +2 -2
  63. package/dist/cjs/is/SwcChooseQuote.js.map +2 -2
  64. package/dist/cjs/is/SwcChooseScript.js.map +2 -2
  65. package/dist/cjs/is/SwcChooseSelect.js.map +2 -2
  66. package/dist/cjs/is/SwcChooseSlot.js.map +2 -2
  67. package/dist/cjs/is/SwcChooseSource.js.map +2 -2
  68. package/dist/cjs/is/SwcChooseSpan.js.map +2 -2
  69. package/dist/cjs/is/SwcChooseStyle.js.map +2 -2
  70. package/dist/cjs/is/SwcChooseTable.js.map +2 -2
  71. package/dist/cjs/is/SwcChooseTableCell.js.map +2 -2
  72. package/dist/cjs/is/SwcChooseTableRow.js.map +2 -2
  73. package/dist/cjs/is/SwcChooseTableSection.js.map +2 -2
  74. package/dist/cjs/is/SwcChooseTemplate.js.map +2 -2
  75. package/dist/cjs/is/SwcChooseTextArea.js.map +2 -2
  76. package/dist/cjs/is/SwcChooseTime.js.map +2 -2
  77. package/dist/cjs/is/SwcChooseTitle.js.map +2 -2
  78. package/dist/cjs/is/SwcChooseTrack.js.map +2 -2
  79. package/dist/cjs/is/SwcChooseUl.js.map +2 -2
  80. package/dist/cjs/is/SwcChooseVideo.js.map +2 -2
  81. package/dist/cjs/is/SwcIfAnchor.js.map +2 -2
  82. package/dist/cjs/is/SwcIfArea.js.map +2 -2
  83. package/dist/cjs/is/SwcIfAudio.js.map +2 -2
  84. package/dist/cjs/is/SwcIfBase.js.map +2 -2
  85. package/dist/cjs/is/SwcIfButton.js.map +2 -2
  86. package/dist/cjs/is/SwcIfCanvas.js.map +2 -2
  87. package/dist/cjs/is/SwcIfData.js.map +2 -2
  88. package/dist/cjs/is/SwcIfDataList.js.map +2 -2
  89. package/dist/cjs/is/SwcIfDetails.js.map +2 -2
  90. package/dist/cjs/is/SwcIfDialog.js.map +2 -2
  91. package/dist/cjs/is/SwcIfDiv.js.map +2 -2
  92. package/dist/cjs/is/SwcIfDl.js.map +2 -2
  93. package/dist/cjs/is/SwcIfEmbed.js.map +2 -2
  94. package/dist/cjs/is/SwcIfFieldSet.js.map +2 -2
  95. package/dist/cjs/is/SwcIfForm.js.map +2 -2
  96. package/dist/cjs/is/SwcIfHeading.js.map +2 -2
  97. package/dist/cjs/is/SwcIfHr.js.map +2 -2
  98. package/dist/cjs/is/SwcIfIFrame.js.map +2 -2
  99. package/dist/cjs/is/SwcIfImage.js.map +2 -2
  100. package/dist/cjs/is/SwcIfInput.js.map +2 -2
  101. package/dist/cjs/is/SwcIfLabel.js.map +2 -2
  102. package/dist/cjs/is/SwcIfLegend.js.map +2 -2
  103. package/dist/cjs/is/SwcIfLi.js.map +2 -2
  104. package/dist/cjs/is/SwcIfLink.js.map +2 -2
  105. package/dist/cjs/is/SwcIfMap.js.map +2 -2
  106. package/dist/cjs/is/SwcIfMeta.js.map +2 -2
  107. package/dist/cjs/is/SwcIfMeter.js.map +2 -2
  108. package/dist/cjs/is/SwcIfMod.js.map +2 -2
  109. package/dist/cjs/is/SwcIfObject.js.map +2 -2
  110. package/dist/cjs/is/SwcIfOl.js.map +2 -2
  111. package/dist/cjs/is/SwcIfOptGroup.js.map +2 -2
  112. package/dist/cjs/is/SwcIfOption.js.map +2 -2
  113. package/dist/cjs/is/SwcIfOutput.js.map +2 -2
  114. package/dist/cjs/is/SwcIfParagraph.js.map +2 -2
  115. package/dist/cjs/is/SwcIfParam.js.map +2 -2
  116. package/dist/cjs/is/SwcIfPicture.js.map +2 -2
  117. package/dist/cjs/is/SwcIfPre.js.map +2 -2
  118. package/dist/cjs/is/SwcIfProgress.js.map +2 -2
  119. package/dist/cjs/is/SwcIfQuote.js.map +2 -2
  120. package/dist/cjs/is/SwcIfScript.js.map +2 -2
  121. package/dist/cjs/is/SwcIfSelect.js.map +2 -2
  122. package/dist/cjs/is/SwcIfSlot.js.map +2 -2
  123. package/dist/cjs/is/SwcIfSource.js.map +2 -2
  124. package/dist/cjs/is/SwcIfSpan.js.map +2 -2
  125. package/dist/cjs/is/SwcIfStyle.js.map +2 -2
  126. package/dist/cjs/is/SwcIfTable.js.map +2 -2
  127. package/dist/cjs/is/SwcIfTableCell.js.map +2 -2
  128. package/dist/cjs/is/SwcIfTableRow.js.map +2 -2
  129. package/dist/cjs/is/SwcIfTableSection.js.map +2 -2
  130. package/dist/cjs/is/SwcIfTemplate.js.map +2 -2
  131. package/dist/cjs/is/SwcIfTextArea.js.map +2 -2
  132. package/dist/cjs/is/SwcIfTime.js.map +2 -2
  133. package/dist/cjs/is/SwcIfTitle.js.map +2 -2
  134. package/dist/cjs/is/SwcIfTrack.js.map +2 -2
  135. package/dist/cjs/is/SwcIfUl.js.map +2 -2
  136. package/dist/cjs/is/SwcIfVideo.js.map +2 -2
  137. package/dist/cjs/is/SwcOtherAnchor.js.map +2 -2
  138. package/dist/cjs/is/SwcOtherArea.js.map +2 -2
  139. package/dist/cjs/is/SwcOtherAudio.js.map +2 -2
  140. package/dist/cjs/is/SwcOtherBase.js.map +2 -2
  141. package/dist/cjs/is/SwcOtherButton.js.map +2 -2
  142. package/dist/cjs/is/SwcOtherCanvas.js.map +2 -2
  143. package/dist/cjs/is/SwcOtherData.js.map +2 -2
  144. package/dist/cjs/is/SwcOtherDataList.js.map +2 -2
  145. package/dist/cjs/is/SwcOtherDetails.js.map +2 -2
  146. package/dist/cjs/is/SwcOtherDialog.js.map +2 -2
  147. package/dist/cjs/is/SwcOtherDiv.js.map +2 -2
  148. package/dist/cjs/is/SwcOtherDl.js.map +2 -2
  149. package/dist/cjs/is/SwcOtherEmbed.js.map +2 -2
  150. package/dist/cjs/is/SwcOtherFieldSet.js.map +2 -2
  151. package/dist/cjs/is/SwcOtherForm.js.map +2 -2
  152. package/dist/cjs/is/SwcOtherHeading.js.map +2 -2
  153. package/dist/cjs/is/SwcOtherHr.js.map +2 -2
  154. package/dist/cjs/is/SwcOtherIFrame.js.map +2 -2
  155. package/dist/cjs/is/SwcOtherImage.js.map +2 -2
  156. package/dist/cjs/is/SwcOtherInput.js.map +2 -2
  157. package/dist/cjs/is/SwcOtherLabel.js.map +2 -2
  158. package/dist/cjs/is/SwcOtherLegend.js.map +2 -2
  159. package/dist/cjs/is/SwcOtherLi.js.map +2 -2
  160. package/dist/cjs/is/SwcOtherLink.js.map +2 -2
  161. package/dist/cjs/is/SwcOtherMap.js.map +2 -2
  162. package/dist/cjs/is/SwcOtherMeta.js.map +2 -2
  163. package/dist/cjs/is/SwcOtherMeter.js.map +2 -2
  164. package/dist/cjs/is/SwcOtherMod.js.map +2 -2
  165. package/dist/cjs/is/SwcOtherObject.js.map +2 -2
  166. package/dist/cjs/is/SwcOtherOl.js.map +2 -2
  167. package/dist/cjs/is/SwcOtherOptGroup.js.map +2 -2
  168. package/dist/cjs/is/SwcOtherOption.js.map +2 -2
  169. package/dist/cjs/is/SwcOtherOutput.js.map +2 -2
  170. package/dist/cjs/is/SwcOtherParagraph.js.map +2 -2
  171. package/dist/cjs/is/SwcOtherParam.js.map +2 -2
  172. package/dist/cjs/is/SwcOtherPicture.js.map +2 -2
  173. package/dist/cjs/is/SwcOtherPre.js.map +2 -2
  174. package/dist/cjs/is/SwcOtherProgress.js.map +2 -2
  175. package/dist/cjs/is/SwcOtherQuote.js.map +2 -2
  176. package/dist/cjs/is/SwcOtherScript.js.map +2 -2
  177. package/dist/cjs/is/SwcOtherSelect.js.map +2 -2
  178. package/dist/cjs/is/SwcOtherSlot.js.map +2 -2
  179. package/dist/cjs/is/SwcOtherSource.js.map +2 -2
  180. package/dist/cjs/is/SwcOtherSpan.js.map +2 -2
  181. package/dist/cjs/is/SwcOtherStyle.js.map +2 -2
  182. package/dist/cjs/is/SwcOtherTable.js.map +2 -2
  183. package/dist/cjs/is/SwcOtherTableCell.js.map +2 -2
  184. package/dist/cjs/is/SwcOtherTableRow.js.map +2 -2
  185. package/dist/cjs/is/SwcOtherTableSection.js.map +2 -2
  186. package/dist/cjs/is/SwcOtherTemplate.js.map +2 -2
  187. package/dist/cjs/is/SwcOtherTextArea.js.map +2 -2
  188. package/dist/cjs/is/SwcOtherTime.js.map +2 -2
  189. package/dist/cjs/is/SwcOtherTitle.js.map +2 -2
  190. package/dist/cjs/is/SwcOtherTrack.js.map +2 -2
  191. package/dist/cjs/is/SwcOtherUl.js.map +2 -2
  192. package/dist/cjs/is/SwcOtherVideo.js.map +2 -2
  193. package/dist/cjs/is/SwcWhenAnchor.js.map +2 -2
  194. package/dist/cjs/is/SwcWhenArea.js.map +2 -2
  195. package/dist/cjs/is/SwcWhenAudio.js.map +2 -2
  196. package/dist/cjs/is/SwcWhenBase.js.map +2 -2
  197. package/dist/cjs/is/SwcWhenButton.js.map +2 -2
  198. package/dist/cjs/is/SwcWhenCanvas.js.map +2 -2
  199. package/dist/cjs/is/SwcWhenData.js.map +2 -2
  200. package/dist/cjs/is/SwcWhenDataList.js.map +2 -2
  201. package/dist/cjs/is/SwcWhenDetails.js.map +2 -2
  202. package/dist/cjs/is/SwcWhenDialog.js.map +2 -2
  203. package/dist/cjs/is/SwcWhenDiv.js.map +2 -2
  204. package/dist/cjs/is/SwcWhenDl.js.map +2 -2
  205. package/dist/cjs/is/SwcWhenEmbed.js.map +2 -2
  206. package/dist/cjs/is/SwcWhenFieldSet.js.map +2 -2
  207. package/dist/cjs/is/SwcWhenForm.js.map +2 -2
  208. package/dist/cjs/is/SwcWhenHeading.js.map +2 -2
  209. package/dist/cjs/is/SwcWhenHr.js.map +2 -2
  210. package/dist/cjs/is/SwcWhenIFrame.js.map +2 -2
  211. package/dist/cjs/is/SwcWhenImage.js.map +2 -2
  212. package/dist/cjs/is/SwcWhenInput.js.map +2 -2
  213. package/dist/cjs/is/SwcWhenLabel.js.map +2 -2
  214. package/dist/cjs/is/SwcWhenLegend.js.map +2 -2
  215. package/dist/cjs/is/SwcWhenLi.js.map +2 -2
  216. package/dist/cjs/is/SwcWhenLink.js.map +2 -2
  217. package/dist/cjs/is/SwcWhenMap.js.map +2 -2
  218. package/dist/cjs/is/SwcWhenMeta.js.map +2 -2
  219. package/dist/cjs/is/SwcWhenMeter.js.map +2 -2
  220. package/dist/cjs/is/SwcWhenMod.js.map +2 -2
  221. package/dist/cjs/is/SwcWhenObject.js.map +2 -2
  222. package/dist/cjs/is/SwcWhenOl.js.map +2 -2
  223. package/dist/cjs/is/SwcWhenOptGroup.js.map +2 -2
  224. package/dist/cjs/is/SwcWhenOption.js.map +2 -2
  225. package/dist/cjs/is/SwcWhenOutput.js.map +2 -2
  226. package/dist/cjs/is/SwcWhenParagraph.js.map +2 -2
  227. package/dist/cjs/is/SwcWhenParam.js.map +2 -2
  228. package/dist/cjs/is/SwcWhenPicture.js.map +2 -2
  229. package/dist/cjs/is/SwcWhenPre.js.map +2 -2
  230. package/dist/cjs/is/SwcWhenProgress.js.map +2 -2
  231. package/dist/cjs/is/SwcWhenQuote.js.map +2 -2
  232. package/dist/cjs/is/SwcWhenScript.js.map +2 -2
  233. package/dist/cjs/is/SwcWhenSelect.js.map +2 -2
  234. package/dist/cjs/is/SwcWhenSlot.js.map +2 -2
  235. package/dist/cjs/is/SwcWhenSource.js.map +2 -2
  236. package/dist/cjs/is/SwcWhenSpan.js.map +2 -2
  237. package/dist/cjs/is/SwcWhenStyle.js.map +2 -2
  238. package/dist/cjs/is/SwcWhenTable.js.map +2 -2
  239. package/dist/cjs/is/SwcWhenTableCell.js.map +2 -2
  240. package/dist/cjs/is/SwcWhenTableRow.js.map +2 -2
  241. package/dist/cjs/is/SwcWhenTableSection.js.map +2 -2
  242. package/dist/cjs/is/SwcWhenTemplate.js.map +2 -2
  243. package/dist/cjs/is/SwcWhenTextArea.js.map +2 -2
  244. package/dist/cjs/is/SwcWhenTime.js.map +2 -2
  245. package/dist/cjs/is/SwcWhenTitle.js.map +2 -2
  246. package/dist/cjs/is/SwcWhenTrack.js.map +2 -2
  247. package/dist/cjs/is/SwcWhenUl.js.map +2 -2
  248. package/dist/cjs/is/SwcWhenVideo.js.map +2 -2
  249. package/dist/cjs/utils/Utils.js +49 -17
  250. package/dist/cjs/utils/Utils.js.map +2 -2
  251. package/dist/esm/decorators/addEventListener.js +3 -2
  252. package/dist/esm/decorators/addEventListener.js.map +2 -2
  253. package/dist/esm/decorators/attribute.js +60 -0
  254. package/dist/esm/decorators/attribute.js.map +7 -0
  255. package/dist/esm/decorators/elementDefine.js +262 -107
  256. package/dist/esm/decorators/elementDefine.js.map +2 -2
  257. package/dist/esm/decorators/emitCustomEvent.js +41 -0
  258. package/dist/esm/decorators/emitCustomEvent.js.map +7 -0
  259. package/dist/esm/decorators/lifecycles.js +38 -0
  260. package/dist/esm/decorators/lifecycles.js.map +2 -2
  261. package/dist/esm/decorators/query.js +27 -5
  262. package/dist/esm/decorators/query.js.map +2 -2
  263. package/dist/esm/decorators/queryAll.js +27 -5
  264. package/dist/esm/decorators/queryAll.js.map +2 -2
  265. package/dist/esm/decorators/state.js +31 -0
  266. package/dist/esm/decorators/state.js.map +7 -0
  267. package/dist/esm/elements/SwcChoose.js.map +2 -2
  268. package/dist/esm/elements/SwcForOf.js +3 -1
  269. package/dist/esm/elements/SwcForOf.js.map +2 -2
  270. package/dist/esm/elements/SwcObject.js +8 -6
  271. package/dist/esm/elements/SwcObject.js.map +2 -2
  272. package/dist/esm/index.js +6 -7
  273. package/dist/esm/index.js.map +2 -2
  274. package/dist/esm/is/SwcChooseAnchor.js.map +2 -2
  275. package/dist/esm/is/SwcChooseArea.js.map +2 -2
  276. package/dist/esm/is/SwcChooseAudio.js.map +2 -2
  277. package/dist/esm/is/SwcChooseBase.js.map +2 -2
  278. package/dist/esm/is/SwcChooseButton.js.map +2 -2
  279. package/dist/esm/is/SwcChooseCanvas.js.map +2 -2
  280. package/dist/esm/is/SwcChooseData.js.map +2 -2
  281. package/dist/esm/is/SwcChooseDataList.js.map +2 -2
  282. package/dist/esm/is/SwcChooseDetails.js.map +2 -2
  283. package/dist/esm/is/SwcChooseDialog.js.map +2 -2
  284. package/dist/esm/is/SwcChooseDiv.js.map +2 -2
  285. package/dist/esm/is/SwcChooseDl.js.map +2 -2
  286. package/dist/esm/is/SwcChooseEmbed.js.map +2 -2
  287. package/dist/esm/is/SwcChooseFieldSet.js.map +2 -2
  288. package/dist/esm/is/SwcChooseForm.js.map +2 -2
  289. package/dist/esm/is/SwcChooseHeading.js.map +2 -2
  290. package/dist/esm/is/SwcChooseHr.js.map +2 -2
  291. package/dist/esm/is/SwcChooseIFrame.js.map +2 -2
  292. package/dist/esm/is/SwcChooseImage.js.map +2 -2
  293. package/dist/esm/is/SwcChooseInput.js.map +2 -2
  294. package/dist/esm/is/SwcChooseLabel.js.map +2 -2
  295. package/dist/esm/is/SwcChooseLegend.js.map +2 -2
  296. package/dist/esm/is/SwcChooseLi.js.map +2 -2
  297. package/dist/esm/is/SwcChooseLink.js.map +2 -2
  298. package/dist/esm/is/SwcChooseMap.js.map +2 -2
  299. package/dist/esm/is/SwcChooseMeta.js.map +2 -2
  300. package/dist/esm/is/SwcChooseMeter.js.map +2 -2
  301. package/dist/esm/is/SwcChooseMod.js.map +2 -2
  302. package/dist/esm/is/SwcChooseObject.js.map +2 -2
  303. package/dist/esm/is/SwcChooseOl.js.map +2 -2
  304. package/dist/esm/is/SwcChooseOptGroup.js.map +2 -2
  305. package/dist/esm/is/SwcChooseOption.js.map +2 -2
  306. package/dist/esm/is/SwcChooseOutput.js.map +2 -2
  307. package/dist/esm/is/SwcChooseParagraph.js.map +2 -2
  308. package/dist/esm/is/SwcChooseParam.js.map +2 -2
  309. package/dist/esm/is/SwcChoosePicture.js.map +2 -2
  310. package/dist/esm/is/SwcChoosePre.js.map +2 -2
  311. package/dist/esm/is/SwcChooseProgress.js.map +2 -2
  312. package/dist/esm/is/SwcChooseQuote.js.map +2 -2
  313. package/dist/esm/is/SwcChooseScript.js.map +2 -2
  314. package/dist/esm/is/SwcChooseSelect.js.map +2 -2
  315. package/dist/esm/is/SwcChooseSlot.js.map +2 -2
  316. package/dist/esm/is/SwcChooseSource.js.map +2 -2
  317. package/dist/esm/is/SwcChooseSpan.js.map +2 -2
  318. package/dist/esm/is/SwcChooseStyle.js.map +2 -2
  319. package/dist/esm/is/SwcChooseTable.js.map +2 -2
  320. package/dist/esm/is/SwcChooseTableCell.js.map +2 -2
  321. package/dist/esm/is/SwcChooseTableRow.js.map +2 -2
  322. package/dist/esm/is/SwcChooseTableSection.js.map +2 -2
  323. package/dist/esm/is/SwcChooseTemplate.js.map +2 -2
  324. package/dist/esm/is/SwcChooseTextArea.js.map +2 -2
  325. package/dist/esm/is/SwcChooseTime.js.map +2 -2
  326. package/dist/esm/is/SwcChooseTitle.js.map +2 -2
  327. package/dist/esm/is/SwcChooseTrack.js.map +2 -2
  328. package/dist/esm/is/SwcChooseUl.js.map +2 -2
  329. package/dist/esm/is/SwcChooseVideo.js.map +2 -2
  330. package/dist/esm/is/SwcIfAnchor.js.map +2 -2
  331. package/dist/esm/is/SwcIfArea.js.map +2 -2
  332. package/dist/esm/is/SwcIfAudio.js.map +2 -2
  333. package/dist/esm/is/SwcIfBase.js.map +2 -2
  334. package/dist/esm/is/SwcIfButton.js.map +2 -2
  335. package/dist/esm/is/SwcIfCanvas.js.map +2 -2
  336. package/dist/esm/is/SwcIfData.js.map +2 -2
  337. package/dist/esm/is/SwcIfDataList.js.map +2 -2
  338. package/dist/esm/is/SwcIfDetails.js.map +2 -2
  339. package/dist/esm/is/SwcIfDialog.js.map +2 -2
  340. package/dist/esm/is/SwcIfDiv.js.map +2 -2
  341. package/dist/esm/is/SwcIfDl.js.map +2 -2
  342. package/dist/esm/is/SwcIfEmbed.js.map +2 -2
  343. package/dist/esm/is/SwcIfFieldSet.js.map +2 -2
  344. package/dist/esm/is/SwcIfForm.js.map +2 -2
  345. package/dist/esm/is/SwcIfHeading.js.map +2 -2
  346. package/dist/esm/is/SwcIfHr.js.map +2 -2
  347. package/dist/esm/is/SwcIfIFrame.js.map +2 -2
  348. package/dist/esm/is/SwcIfImage.js.map +2 -2
  349. package/dist/esm/is/SwcIfInput.js.map +2 -2
  350. package/dist/esm/is/SwcIfLabel.js.map +2 -2
  351. package/dist/esm/is/SwcIfLegend.js.map +2 -2
  352. package/dist/esm/is/SwcIfLi.js.map +2 -2
  353. package/dist/esm/is/SwcIfLink.js.map +2 -2
  354. package/dist/esm/is/SwcIfMap.js.map +2 -2
  355. package/dist/esm/is/SwcIfMeta.js.map +2 -2
  356. package/dist/esm/is/SwcIfMeter.js.map +2 -2
  357. package/dist/esm/is/SwcIfMod.js.map +2 -2
  358. package/dist/esm/is/SwcIfObject.js.map +2 -2
  359. package/dist/esm/is/SwcIfOl.js.map +2 -2
  360. package/dist/esm/is/SwcIfOptGroup.js.map +2 -2
  361. package/dist/esm/is/SwcIfOption.js.map +2 -2
  362. package/dist/esm/is/SwcIfOutput.js.map +2 -2
  363. package/dist/esm/is/SwcIfParagraph.js.map +2 -2
  364. package/dist/esm/is/SwcIfParam.js.map +2 -2
  365. package/dist/esm/is/SwcIfPicture.js.map +2 -2
  366. package/dist/esm/is/SwcIfPre.js.map +2 -2
  367. package/dist/esm/is/SwcIfProgress.js.map +2 -2
  368. package/dist/esm/is/SwcIfQuote.js.map +2 -2
  369. package/dist/esm/is/SwcIfScript.js.map +2 -2
  370. package/dist/esm/is/SwcIfSelect.js.map +2 -2
  371. package/dist/esm/is/SwcIfSlot.js.map +2 -2
  372. package/dist/esm/is/SwcIfSource.js.map +2 -2
  373. package/dist/esm/is/SwcIfSpan.js.map +2 -2
  374. package/dist/esm/is/SwcIfStyle.js.map +2 -2
  375. package/dist/esm/is/SwcIfTable.js.map +2 -2
  376. package/dist/esm/is/SwcIfTableCell.js.map +2 -2
  377. package/dist/esm/is/SwcIfTableRow.js.map +2 -2
  378. package/dist/esm/is/SwcIfTableSection.js.map +2 -2
  379. package/dist/esm/is/SwcIfTemplate.js.map +2 -2
  380. package/dist/esm/is/SwcIfTextArea.js.map +2 -2
  381. package/dist/esm/is/SwcIfTime.js.map +2 -2
  382. package/dist/esm/is/SwcIfTitle.js.map +2 -2
  383. package/dist/esm/is/SwcIfTrack.js.map +2 -2
  384. package/dist/esm/is/SwcIfUl.js.map +2 -2
  385. package/dist/esm/is/SwcIfVideo.js.map +2 -2
  386. package/dist/esm/is/SwcOtherAnchor.js.map +2 -2
  387. package/dist/esm/is/SwcOtherArea.js.map +2 -2
  388. package/dist/esm/is/SwcOtherAudio.js.map +2 -2
  389. package/dist/esm/is/SwcOtherBase.js.map +2 -2
  390. package/dist/esm/is/SwcOtherButton.js.map +2 -2
  391. package/dist/esm/is/SwcOtherCanvas.js.map +2 -2
  392. package/dist/esm/is/SwcOtherData.js.map +2 -2
  393. package/dist/esm/is/SwcOtherDataList.js.map +2 -2
  394. package/dist/esm/is/SwcOtherDetails.js.map +2 -2
  395. package/dist/esm/is/SwcOtherDialog.js.map +2 -2
  396. package/dist/esm/is/SwcOtherDiv.js.map +2 -2
  397. package/dist/esm/is/SwcOtherDl.js.map +2 -2
  398. package/dist/esm/is/SwcOtherEmbed.js.map +2 -2
  399. package/dist/esm/is/SwcOtherFieldSet.js.map +2 -2
  400. package/dist/esm/is/SwcOtherForm.js.map +2 -2
  401. package/dist/esm/is/SwcOtherHeading.js.map +2 -2
  402. package/dist/esm/is/SwcOtherHr.js.map +2 -2
  403. package/dist/esm/is/SwcOtherIFrame.js.map +2 -2
  404. package/dist/esm/is/SwcOtherImage.js.map +2 -2
  405. package/dist/esm/is/SwcOtherInput.js.map +2 -2
  406. package/dist/esm/is/SwcOtherLabel.js.map +2 -2
  407. package/dist/esm/is/SwcOtherLegend.js.map +2 -2
  408. package/dist/esm/is/SwcOtherLi.js.map +2 -2
  409. package/dist/esm/is/SwcOtherLink.js.map +2 -2
  410. package/dist/esm/is/SwcOtherMap.js.map +2 -2
  411. package/dist/esm/is/SwcOtherMeta.js.map +2 -2
  412. package/dist/esm/is/SwcOtherMeter.js.map +2 -2
  413. package/dist/esm/is/SwcOtherMod.js.map +2 -2
  414. package/dist/esm/is/SwcOtherObject.js.map +2 -2
  415. package/dist/esm/is/SwcOtherOl.js.map +2 -2
  416. package/dist/esm/is/SwcOtherOptGroup.js.map +2 -2
  417. package/dist/esm/is/SwcOtherOption.js.map +2 -2
  418. package/dist/esm/is/SwcOtherOutput.js.map +2 -2
  419. package/dist/esm/is/SwcOtherParagraph.js.map +2 -2
  420. package/dist/esm/is/SwcOtherParam.js.map +2 -2
  421. package/dist/esm/is/SwcOtherPicture.js.map +2 -2
  422. package/dist/esm/is/SwcOtherPre.js.map +2 -2
  423. package/dist/esm/is/SwcOtherProgress.js.map +2 -2
  424. package/dist/esm/is/SwcOtherQuote.js.map +2 -2
  425. package/dist/esm/is/SwcOtherScript.js.map +2 -2
  426. package/dist/esm/is/SwcOtherSelect.js.map +2 -2
  427. package/dist/esm/is/SwcOtherSlot.js.map +2 -2
  428. package/dist/esm/is/SwcOtherSource.js.map +2 -2
  429. package/dist/esm/is/SwcOtherSpan.js.map +2 -2
  430. package/dist/esm/is/SwcOtherStyle.js.map +2 -2
  431. package/dist/esm/is/SwcOtherTable.js.map +2 -2
  432. package/dist/esm/is/SwcOtherTableCell.js.map +2 -2
  433. package/dist/esm/is/SwcOtherTableRow.js.map +2 -2
  434. package/dist/esm/is/SwcOtherTableSection.js.map +2 -2
  435. package/dist/esm/is/SwcOtherTemplate.js.map +2 -2
  436. package/dist/esm/is/SwcOtherTextArea.js.map +2 -2
  437. package/dist/esm/is/SwcOtherTime.js.map +2 -2
  438. package/dist/esm/is/SwcOtherTitle.js.map +2 -2
  439. package/dist/esm/is/SwcOtherTrack.js.map +2 -2
  440. package/dist/esm/is/SwcOtherUl.js.map +2 -2
  441. package/dist/esm/is/SwcOtherVideo.js.map +2 -2
  442. package/dist/esm/is/SwcWhenAnchor.js.map +2 -2
  443. package/dist/esm/is/SwcWhenArea.js.map +2 -2
  444. package/dist/esm/is/SwcWhenAudio.js.map +2 -2
  445. package/dist/esm/is/SwcWhenBase.js.map +2 -2
  446. package/dist/esm/is/SwcWhenButton.js.map +2 -2
  447. package/dist/esm/is/SwcWhenCanvas.js.map +2 -2
  448. package/dist/esm/is/SwcWhenData.js.map +2 -2
  449. package/dist/esm/is/SwcWhenDataList.js.map +2 -2
  450. package/dist/esm/is/SwcWhenDetails.js.map +2 -2
  451. package/dist/esm/is/SwcWhenDialog.js.map +2 -2
  452. package/dist/esm/is/SwcWhenDiv.js.map +2 -2
  453. package/dist/esm/is/SwcWhenDl.js.map +2 -2
  454. package/dist/esm/is/SwcWhenEmbed.js.map +2 -2
  455. package/dist/esm/is/SwcWhenFieldSet.js.map +2 -2
  456. package/dist/esm/is/SwcWhenForm.js.map +2 -2
  457. package/dist/esm/is/SwcWhenHeading.js.map +2 -2
  458. package/dist/esm/is/SwcWhenHr.js.map +2 -2
  459. package/dist/esm/is/SwcWhenIFrame.js.map +2 -2
  460. package/dist/esm/is/SwcWhenImage.js.map +2 -2
  461. package/dist/esm/is/SwcWhenInput.js.map +2 -2
  462. package/dist/esm/is/SwcWhenLabel.js.map +2 -2
  463. package/dist/esm/is/SwcWhenLegend.js.map +2 -2
  464. package/dist/esm/is/SwcWhenLi.js.map +2 -2
  465. package/dist/esm/is/SwcWhenLink.js.map +2 -2
  466. package/dist/esm/is/SwcWhenMap.js.map +2 -2
  467. package/dist/esm/is/SwcWhenMeta.js.map +2 -2
  468. package/dist/esm/is/SwcWhenMeter.js.map +2 -2
  469. package/dist/esm/is/SwcWhenMod.js.map +2 -2
  470. package/dist/esm/is/SwcWhenObject.js.map +2 -2
  471. package/dist/esm/is/SwcWhenOl.js.map +2 -2
  472. package/dist/esm/is/SwcWhenOptGroup.js.map +2 -2
  473. package/dist/esm/is/SwcWhenOption.js.map +2 -2
  474. package/dist/esm/is/SwcWhenOutput.js.map +2 -2
  475. package/dist/esm/is/SwcWhenParagraph.js.map +2 -2
  476. package/dist/esm/is/SwcWhenParam.js.map +2 -2
  477. package/dist/esm/is/SwcWhenPicture.js.map +2 -2
  478. package/dist/esm/is/SwcWhenPre.js.map +2 -2
  479. package/dist/esm/is/SwcWhenProgress.js.map +2 -2
  480. package/dist/esm/is/SwcWhenQuote.js.map +2 -2
  481. package/dist/esm/is/SwcWhenScript.js.map +2 -2
  482. package/dist/esm/is/SwcWhenSelect.js.map +2 -2
  483. package/dist/esm/is/SwcWhenSlot.js.map +2 -2
  484. package/dist/esm/is/SwcWhenSource.js.map +2 -2
  485. package/dist/esm/is/SwcWhenSpan.js.map +2 -2
  486. package/dist/esm/is/SwcWhenStyle.js.map +2 -2
  487. package/dist/esm/is/SwcWhenTable.js.map +2 -2
  488. package/dist/esm/is/SwcWhenTableCell.js.map +2 -2
  489. package/dist/esm/is/SwcWhenTableRow.js.map +2 -2
  490. package/dist/esm/is/SwcWhenTableSection.js.map +2 -2
  491. package/dist/esm/is/SwcWhenTemplate.js.map +2 -2
  492. package/dist/esm/is/SwcWhenTextArea.js.map +2 -2
  493. package/dist/esm/is/SwcWhenTime.js.map +2 -2
  494. package/dist/esm/is/SwcWhenTitle.js.map +2 -2
  495. package/dist/esm/is/SwcWhenTrack.js.map +2 -2
  496. package/dist/esm/is/SwcWhenUl.js.map +2 -2
  497. package/dist/esm/is/SwcWhenVideo.js.map +2 -2
  498. package/dist/esm/utils/Utils.js +49 -17
  499. package/dist/esm/utils/Utils.js.map +2 -2
  500. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +2344 -2136
  501. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  502. package/dist/types/decorators/addEventListener.d.ts +8 -4
  503. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  504. package/dist/types/decorators/attribute.d.ts +13 -0
  505. package/dist/types/decorators/attribute.d.ts.map +1 -0
  506. package/dist/types/decorators/elementDefine.d.ts +2 -0
  507. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  508. package/dist/types/decorators/emitCustomEvent.d.ts +15 -0
  509. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -0
  510. package/dist/types/decorators/lifecycles.d.ts +7 -1
  511. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  512. package/dist/types/decorators/query.d.ts +5 -2
  513. package/dist/types/decorators/query.d.ts.map +1 -1
  514. package/dist/types/decorators/queryAll.d.ts +5 -2
  515. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  516. package/dist/types/decorators/state.d.ts +12 -0
  517. package/dist/types/decorators/state.d.ts.map +1 -0
  518. package/dist/types/elements/SwcChoose.d.ts.map +1 -1
  519. package/dist/types/elements/SwcForOf.d.ts.map +1 -1
  520. package/dist/types/elements/SwcObject.d.ts.map +1 -1
  521. package/dist/types/index.d.ts +6 -7
  522. package/dist/types/index.d.ts.map +1 -1
  523. package/dist/types/is/SwcChooseAnchor.d.ts.map +1 -1
  524. package/dist/types/is/SwcChooseArea.d.ts.map +1 -1
  525. package/dist/types/is/SwcChooseAudio.d.ts.map +1 -1
  526. package/dist/types/is/SwcChooseBase.d.ts.map +1 -1
  527. package/dist/types/is/SwcChooseButton.d.ts.map +1 -1
  528. package/dist/types/is/SwcChooseCanvas.d.ts.map +1 -1
  529. package/dist/types/is/SwcChooseData.d.ts.map +1 -1
  530. package/dist/types/is/SwcChooseDataList.d.ts.map +1 -1
  531. package/dist/types/is/SwcChooseDetails.d.ts.map +1 -1
  532. package/dist/types/is/SwcChooseDialog.d.ts.map +1 -1
  533. package/dist/types/is/SwcChooseDiv.d.ts.map +1 -1
  534. package/dist/types/is/SwcChooseDl.d.ts.map +1 -1
  535. package/dist/types/is/SwcChooseEmbed.d.ts.map +1 -1
  536. package/dist/types/is/SwcChooseFieldSet.d.ts.map +1 -1
  537. package/dist/types/is/SwcChooseForm.d.ts.map +1 -1
  538. package/dist/types/is/SwcChooseHeading.d.ts.map +1 -1
  539. package/dist/types/is/SwcChooseHr.d.ts.map +1 -1
  540. package/dist/types/is/SwcChooseIFrame.d.ts.map +1 -1
  541. package/dist/types/is/SwcChooseImage.d.ts.map +1 -1
  542. package/dist/types/is/SwcChooseInput.d.ts.map +1 -1
  543. package/dist/types/is/SwcChooseLabel.d.ts.map +1 -1
  544. package/dist/types/is/SwcChooseLegend.d.ts.map +1 -1
  545. package/dist/types/is/SwcChooseLi.d.ts.map +1 -1
  546. package/dist/types/is/SwcChooseLink.d.ts.map +1 -1
  547. package/dist/types/is/SwcChooseMap.d.ts.map +1 -1
  548. package/dist/types/is/SwcChooseMeta.d.ts.map +1 -1
  549. package/dist/types/is/SwcChooseMeter.d.ts.map +1 -1
  550. package/dist/types/is/SwcChooseMod.d.ts.map +1 -1
  551. package/dist/types/is/SwcChooseObject.d.ts.map +1 -1
  552. package/dist/types/is/SwcChooseOl.d.ts.map +1 -1
  553. package/dist/types/is/SwcChooseOptGroup.d.ts.map +1 -1
  554. package/dist/types/is/SwcChooseOption.d.ts.map +1 -1
  555. package/dist/types/is/SwcChooseOutput.d.ts.map +1 -1
  556. package/dist/types/is/SwcChooseParagraph.d.ts.map +1 -1
  557. package/dist/types/is/SwcChooseParam.d.ts.map +1 -1
  558. package/dist/types/is/SwcChoosePicture.d.ts.map +1 -1
  559. package/dist/types/is/SwcChoosePre.d.ts.map +1 -1
  560. package/dist/types/is/SwcChooseProgress.d.ts.map +1 -1
  561. package/dist/types/is/SwcChooseQuote.d.ts.map +1 -1
  562. package/dist/types/is/SwcChooseScript.d.ts.map +1 -1
  563. package/dist/types/is/SwcChooseSelect.d.ts.map +1 -1
  564. package/dist/types/is/SwcChooseSlot.d.ts.map +1 -1
  565. package/dist/types/is/SwcChooseSource.d.ts.map +1 -1
  566. package/dist/types/is/SwcChooseSpan.d.ts.map +1 -1
  567. package/dist/types/is/SwcChooseStyle.d.ts.map +1 -1
  568. package/dist/types/is/SwcChooseTable.d.ts.map +1 -1
  569. package/dist/types/is/SwcChooseTableCell.d.ts.map +1 -1
  570. package/dist/types/is/SwcChooseTableRow.d.ts.map +1 -1
  571. package/dist/types/is/SwcChooseTableSection.d.ts.map +1 -1
  572. package/dist/types/is/SwcChooseTemplate.d.ts.map +1 -1
  573. package/dist/types/is/SwcChooseTextArea.d.ts.map +1 -1
  574. package/dist/types/is/SwcChooseTime.d.ts.map +1 -1
  575. package/dist/types/is/SwcChooseTitle.d.ts.map +1 -1
  576. package/dist/types/is/SwcChooseTrack.d.ts.map +1 -1
  577. package/dist/types/is/SwcChooseUl.d.ts.map +1 -1
  578. package/dist/types/is/SwcChooseVideo.d.ts.map +1 -1
  579. package/dist/types/is/SwcIfAnchor.d.ts.map +1 -1
  580. package/dist/types/is/SwcIfArea.d.ts.map +1 -1
  581. package/dist/types/is/SwcIfAudio.d.ts.map +1 -1
  582. package/dist/types/is/SwcIfBase.d.ts.map +1 -1
  583. package/dist/types/is/SwcIfButton.d.ts.map +1 -1
  584. package/dist/types/is/SwcIfCanvas.d.ts.map +1 -1
  585. package/dist/types/is/SwcIfData.d.ts.map +1 -1
  586. package/dist/types/is/SwcIfDataList.d.ts.map +1 -1
  587. package/dist/types/is/SwcIfDetails.d.ts.map +1 -1
  588. package/dist/types/is/SwcIfDialog.d.ts.map +1 -1
  589. package/dist/types/is/SwcIfDiv.d.ts.map +1 -1
  590. package/dist/types/is/SwcIfDl.d.ts.map +1 -1
  591. package/dist/types/is/SwcIfEmbed.d.ts.map +1 -1
  592. package/dist/types/is/SwcIfFieldSet.d.ts.map +1 -1
  593. package/dist/types/is/SwcIfForm.d.ts.map +1 -1
  594. package/dist/types/is/SwcIfHeading.d.ts.map +1 -1
  595. package/dist/types/is/SwcIfHr.d.ts.map +1 -1
  596. package/dist/types/is/SwcIfIFrame.d.ts.map +1 -1
  597. package/dist/types/is/SwcIfImage.d.ts.map +1 -1
  598. package/dist/types/is/SwcIfInput.d.ts.map +1 -1
  599. package/dist/types/is/SwcIfLabel.d.ts.map +1 -1
  600. package/dist/types/is/SwcIfLegend.d.ts.map +1 -1
  601. package/dist/types/is/SwcIfLi.d.ts.map +1 -1
  602. package/dist/types/is/SwcIfLink.d.ts.map +1 -1
  603. package/dist/types/is/SwcIfMap.d.ts.map +1 -1
  604. package/dist/types/is/SwcIfMeta.d.ts.map +1 -1
  605. package/dist/types/is/SwcIfMeter.d.ts.map +1 -1
  606. package/dist/types/is/SwcIfMod.d.ts.map +1 -1
  607. package/dist/types/is/SwcIfObject.d.ts.map +1 -1
  608. package/dist/types/is/SwcIfOl.d.ts.map +1 -1
  609. package/dist/types/is/SwcIfOptGroup.d.ts.map +1 -1
  610. package/dist/types/is/SwcIfOption.d.ts.map +1 -1
  611. package/dist/types/is/SwcIfOutput.d.ts.map +1 -1
  612. package/dist/types/is/SwcIfParagraph.d.ts.map +1 -1
  613. package/dist/types/is/SwcIfParam.d.ts.map +1 -1
  614. package/dist/types/is/SwcIfPicture.d.ts.map +1 -1
  615. package/dist/types/is/SwcIfPre.d.ts.map +1 -1
  616. package/dist/types/is/SwcIfProgress.d.ts.map +1 -1
  617. package/dist/types/is/SwcIfQuote.d.ts.map +1 -1
  618. package/dist/types/is/SwcIfScript.d.ts.map +1 -1
  619. package/dist/types/is/SwcIfSelect.d.ts.map +1 -1
  620. package/dist/types/is/SwcIfSlot.d.ts.map +1 -1
  621. package/dist/types/is/SwcIfSource.d.ts.map +1 -1
  622. package/dist/types/is/SwcIfSpan.d.ts.map +1 -1
  623. package/dist/types/is/SwcIfStyle.d.ts.map +1 -1
  624. package/dist/types/is/SwcIfTable.d.ts.map +1 -1
  625. package/dist/types/is/SwcIfTableCell.d.ts.map +1 -1
  626. package/dist/types/is/SwcIfTableRow.d.ts.map +1 -1
  627. package/dist/types/is/SwcIfTableSection.d.ts.map +1 -1
  628. package/dist/types/is/SwcIfTemplate.d.ts.map +1 -1
  629. package/dist/types/is/SwcIfTextArea.d.ts.map +1 -1
  630. package/dist/types/is/SwcIfTime.d.ts.map +1 -1
  631. package/dist/types/is/SwcIfTitle.d.ts.map +1 -1
  632. package/dist/types/is/SwcIfTrack.d.ts.map +1 -1
  633. package/dist/types/is/SwcIfUl.d.ts.map +1 -1
  634. package/dist/types/is/SwcIfVideo.d.ts.map +1 -1
  635. package/dist/types/is/SwcWhenAnchor.d.ts.map +1 -1
  636. package/dist/types/is/SwcWhenArea.d.ts.map +1 -1
  637. package/dist/types/is/SwcWhenAudio.d.ts.map +1 -1
  638. package/dist/types/is/SwcWhenBase.d.ts.map +1 -1
  639. package/dist/types/is/SwcWhenButton.d.ts.map +1 -1
  640. package/dist/types/is/SwcWhenCanvas.d.ts.map +1 -1
  641. package/dist/types/is/SwcWhenData.d.ts.map +1 -1
  642. package/dist/types/is/SwcWhenDataList.d.ts.map +1 -1
  643. package/dist/types/is/SwcWhenDetails.d.ts.map +1 -1
  644. package/dist/types/is/SwcWhenDialog.d.ts.map +1 -1
  645. package/dist/types/is/SwcWhenDiv.d.ts.map +1 -1
  646. package/dist/types/is/SwcWhenDl.d.ts.map +1 -1
  647. package/dist/types/is/SwcWhenEmbed.d.ts.map +1 -1
  648. package/dist/types/is/SwcWhenFieldSet.d.ts.map +1 -1
  649. package/dist/types/is/SwcWhenForm.d.ts.map +1 -1
  650. package/dist/types/is/SwcWhenHeading.d.ts.map +1 -1
  651. package/dist/types/is/SwcWhenHr.d.ts.map +1 -1
  652. package/dist/types/is/SwcWhenIFrame.d.ts.map +1 -1
  653. package/dist/types/is/SwcWhenImage.d.ts.map +1 -1
  654. package/dist/types/is/SwcWhenInput.d.ts.map +1 -1
  655. package/dist/types/is/SwcWhenLabel.d.ts.map +1 -1
  656. package/dist/types/is/SwcWhenLegend.d.ts.map +1 -1
  657. package/dist/types/is/SwcWhenLi.d.ts.map +1 -1
  658. package/dist/types/is/SwcWhenLink.d.ts.map +1 -1
  659. package/dist/types/is/SwcWhenMap.d.ts.map +1 -1
  660. package/dist/types/is/SwcWhenMeta.d.ts.map +1 -1
  661. package/dist/types/is/SwcWhenMeter.d.ts.map +1 -1
  662. package/dist/types/is/SwcWhenMod.d.ts.map +1 -1
  663. package/dist/types/is/SwcWhenObject.d.ts.map +1 -1
  664. package/dist/types/is/SwcWhenOl.d.ts.map +1 -1
  665. package/dist/types/is/SwcWhenOptGroup.d.ts.map +1 -1
  666. package/dist/types/is/SwcWhenOption.d.ts.map +1 -1
  667. package/dist/types/is/SwcWhenOutput.d.ts.map +1 -1
  668. package/dist/types/is/SwcWhenParagraph.d.ts.map +1 -1
  669. package/dist/types/is/SwcWhenParam.d.ts.map +1 -1
  670. package/dist/types/is/SwcWhenPicture.d.ts.map +1 -1
  671. package/dist/types/is/SwcWhenPre.d.ts.map +1 -1
  672. package/dist/types/is/SwcWhenProgress.d.ts.map +1 -1
  673. package/dist/types/is/SwcWhenQuote.d.ts.map +1 -1
  674. package/dist/types/is/SwcWhenScript.d.ts.map +1 -1
  675. package/dist/types/is/SwcWhenSelect.d.ts.map +1 -1
  676. package/dist/types/is/SwcWhenSlot.d.ts.map +1 -1
  677. package/dist/types/is/SwcWhenSource.d.ts.map +1 -1
  678. package/dist/types/is/SwcWhenSpan.d.ts.map +1 -1
  679. package/dist/types/is/SwcWhenStyle.d.ts.map +1 -1
  680. package/dist/types/is/SwcWhenTable.d.ts.map +1 -1
  681. package/dist/types/is/SwcWhenTableCell.d.ts.map +1 -1
  682. package/dist/types/is/SwcWhenTableRow.d.ts.map +1 -1
  683. package/dist/types/is/SwcWhenTableSection.d.ts.map +1 -1
  684. package/dist/types/is/SwcWhenTemplate.d.ts.map +1 -1
  685. package/dist/types/is/SwcWhenTextArea.d.ts.map +1 -1
  686. package/dist/types/is/SwcWhenTime.d.ts.map +1 -1
  687. package/dist/types/is/SwcWhenTitle.d.ts.map +1 -1
  688. package/dist/types/is/SwcWhenTrack.d.ts.map +1 -1
  689. package/dist/types/is/SwcWhenUl.d.ts.map +1 -1
  690. package/dist/types/is/SwcWhenVideo.d.ts.map +1 -1
  691. package/dist/types/utils/Utils.d.ts.map +1 -1
  692. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +2344 -2136
  693. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  694. package/package.json +4 -4
  695. package/src/decorators/addEventListener.ts +11 -5
  696. package/src/decorators/attribute.ts +77 -0
  697. package/src/decorators/elementDefine.ts +269 -149
  698. package/src/decorators/emitCustomEvent.ts +57 -0
  699. package/src/decorators/lifecycles.ts +44 -4
  700. package/src/decorators/query.ts +35 -8
  701. package/src/decorators/queryAll.ts +35 -8
  702. package/src/decorators/state.ts +44 -0
  703. package/src/elements/SwcChoose.ts +1 -5
  704. package/src/elements/SwcForOf.ts +2 -1
  705. package/src/elements/SwcObject.ts +8 -6
  706. package/src/index.ts +6 -7
  707. package/src/is/SwcChooseAnchor.ts +0 -1
  708. package/src/is/SwcChooseArea.ts +0 -1
  709. package/src/is/SwcChooseAudio.ts +0 -1
  710. package/src/is/SwcChooseBase.ts +0 -1
  711. package/src/is/SwcChooseButton.ts +0 -1
  712. package/src/is/SwcChooseCanvas.ts +0 -1
  713. package/src/is/SwcChooseData.ts +0 -1
  714. package/src/is/SwcChooseDataList.ts +0 -1
  715. package/src/is/SwcChooseDetails.ts +0 -1
  716. package/src/is/SwcChooseDialog.ts +0 -1
  717. package/src/is/SwcChooseDiv.ts +0 -1
  718. package/src/is/SwcChooseDl.ts +0 -1
  719. package/src/is/SwcChooseEmbed.ts +0 -1
  720. package/src/is/SwcChooseFieldSet.ts +0 -1
  721. package/src/is/SwcChooseForm.ts +0 -1
  722. package/src/is/SwcChooseHeading.ts +0 -1
  723. package/src/is/SwcChooseHr.ts +0 -1
  724. package/src/is/SwcChooseIFrame.ts +0 -1
  725. package/src/is/SwcChooseImage.ts +0 -1
  726. package/src/is/SwcChooseInput.ts +0 -1
  727. package/src/is/SwcChooseLabel.ts +0 -1
  728. package/src/is/SwcChooseLegend.ts +0 -1
  729. package/src/is/SwcChooseLi.ts +0 -1
  730. package/src/is/SwcChooseLink.ts +0 -1
  731. package/src/is/SwcChooseMap.ts +0 -1
  732. package/src/is/SwcChooseMeta.ts +0 -1
  733. package/src/is/SwcChooseMeter.ts +0 -1
  734. package/src/is/SwcChooseMod.ts +0 -1
  735. package/src/is/SwcChooseObject.ts +0 -1
  736. package/src/is/SwcChooseOl.ts +0 -1
  737. package/src/is/SwcChooseOptGroup.ts +0 -1
  738. package/src/is/SwcChooseOption.ts +0 -1
  739. package/src/is/SwcChooseOutput.ts +0 -1
  740. package/src/is/SwcChooseParagraph.ts +0 -1
  741. package/src/is/SwcChooseParam.ts +0 -1
  742. package/src/is/SwcChoosePicture.ts +0 -1
  743. package/src/is/SwcChoosePre.ts +0 -1
  744. package/src/is/SwcChooseProgress.ts +0 -1
  745. package/src/is/SwcChooseQuote.ts +0 -1
  746. package/src/is/SwcChooseScript.ts +0 -1
  747. package/src/is/SwcChooseSelect.ts +0 -1
  748. package/src/is/SwcChooseSlot.ts +0 -1
  749. package/src/is/SwcChooseSource.ts +0 -1
  750. package/src/is/SwcChooseSpan.ts +0 -1
  751. package/src/is/SwcChooseStyle.ts +0 -1
  752. package/src/is/SwcChooseTable.ts +0 -1
  753. package/src/is/SwcChooseTableCell.ts +0 -1
  754. package/src/is/SwcChooseTableRow.ts +0 -1
  755. package/src/is/SwcChooseTableSection.ts +0 -1
  756. package/src/is/SwcChooseTemplate.ts +0 -1
  757. package/src/is/SwcChooseTextArea.ts +0 -1
  758. package/src/is/SwcChooseTime.ts +0 -1
  759. package/src/is/SwcChooseTitle.ts +0 -1
  760. package/src/is/SwcChooseTrack.ts +0 -1
  761. package/src/is/SwcChooseUl.ts +0 -1
  762. package/src/is/SwcChooseVideo.ts +0 -1
  763. package/src/is/SwcIfAnchor.ts +0 -1
  764. package/src/is/SwcIfArea.ts +0 -1
  765. package/src/is/SwcIfAudio.ts +0 -1
  766. package/src/is/SwcIfBase.ts +0 -1
  767. package/src/is/SwcIfButton.ts +0 -1
  768. package/src/is/SwcIfCanvas.ts +0 -1
  769. package/src/is/SwcIfData.ts +0 -1
  770. package/src/is/SwcIfDataList.ts +0 -1
  771. package/src/is/SwcIfDetails.ts +0 -1
  772. package/src/is/SwcIfDialog.ts +0 -1
  773. package/src/is/SwcIfDiv.ts +0 -1
  774. package/src/is/SwcIfDl.ts +0 -1
  775. package/src/is/SwcIfEmbed.ts +0 -1
  776. package/src/is/SwcIfFieldSet.ts +0 -1
  777. package/src/is/SwcIfForm.ts +0 -1
  778. package/src/is/SwcIfHeading.ts +0 -1
  779. package/src/is/SwcIfHr.ts +0 -1
  780. package/src/is/SwcIfIFrame.ts +0 -1
  781. package/src/is/SwcIfImage.ts +0 -1
  782. package/src/is/SwcIfInput.ts +0 -1
  783. package/src/is/SwcIfLabel.ts +0 -1
  784. package/src/is/SwcIfLegend.ts +0 -1
  785. package/src/is/SwcIfLi.ts +0 -1
  786. package/src/is/SwcIfLink.ts +0 -1
  787. package/src/is/SwcIfMap.ts +0 -1
  788. package/src/is/SwcIfMeta.ts +0 -1
  789. package/src/is/SwcIfMeter.ts +0 -1
  790. package/src/is/SwcIfMod.ts +0 -1
  791. package/src/is/SwcIfObject.ts +0 -1
  792. package/src/is/SwcIfOl.ts +0 -1
  793. package/src/is/SwcIfOptGroup.ts +0 -1
  794. package/src/is/SwcIfOption.ts +0 -1
  795. package/src/is/SwcIfOutput.ts +0 -1
  796. package/src/is/SwcIfParagraph.ts +0 -1
  797. package/src/is/SwcIfParam.ts +0 -1
  798. package/src/is/SwcIfPicture.ts +0 -1
  799. package/src/is/SwcIfPre.ts +0 -1
  800. package/src/is/SwcIfProgress.ts +0 -1
  801. package/src/is/SwcIfQuote.ts +0 -1
  802. package/src/is/SwcIfScript.ts +0 -1
  803. package/src/is/SwcIfSelect.ts +0 -1
  804. package/src/is/SwcIfSlot.ts +0 -1
  805. package/src/is/SwcIfSource.ts +0 -1
  806. package/src/is/SwcIfSpan.ts +0 -1
  807. package/src/is/SwcIfStyle.ts +0 -1
  808. package/src/is/SwcIfTable.ts +0 -1
  809. package/src/is/SwcIfTableCell.ts +0 -1
  810. package/src/is/SwcIfTableRow.ts +0 -1
  811. package/src/is/SwcIfTableSection.ts +0 -1
  812. package/src/is/SwcIfTemplate.ts +0 -1
  813. package/src/is/SwcIfTextArea.ts +0 -1
  814. package/src/is/SwcIfTime.ts +0 -1
  815. package/src/is/SwcIfTitle.ts +0 -1
  816. package/src/is/SwcIfTrack.ts +0 -1
  817. package/src/is/SwcIfUl.ts +0 -1
  818. package/src/is/SwcIfVideo.ts +0 -1
  819. package/src/is/SwcOtherAnchor.ts +1 -1
  820. package/src/is/SwcOtherArea.ts +1 -1
  821. package/src/is/SwcOtherAudio.ts +1 -1
  822. package/src/is/SwcOtherBase.ts +1 -1
  823. package/src/is/SwcOtherButton.ts +1 -1
  824. package/src/is/SwcOtherCanvas.ts +1 -1
  825. package/src/is/SwcOtherData.ts +1 -1
  826. package/src/is/SwcOtherDataList.ts +1 -1
  827. package/src/is/SwcOtherDetails.ts +1 -1
  828. package/src/is/SwcOtherDialog.ts +1 -1
  829. package/src/is/SwcOtherDiv.ts +1 -1
  830. package/src/is/SwcOtherDl.ts +1 -1
  831. package/src/is/SwcOtherEmbed.ts +1 -1
  832. package/src/is/SwcOtherFieldSet.ts +1 -1
  833. package/src/is/SwcOtherForm.ts +1 -1
  834. package/src/is/SwcOtherHeading.ts +1 -1
  835. package/src/is/SwcOtherHr.ts +1 -1
  836. package/src/is/SwcOtherIFrame.ts +1 -1
  837. package/src/is/SwcOtherImage.ts +1 -1
  838. package/src/is/SwcOtherInput.ts +1 -1
  839. package/src/is/SwcOtherLabel.ts +1 -1
  840. package/src/is/SwcOtherLegend.ts +1 -1
  841. package/src/is/SwcOtherLi.ts +1 -1
  842. package/src/is/SwcOtherLink.ts +1 -1
  843. package/src/is/SwcOtherMap.ts +1 -1
  844. package/src/is/SwcOtherMeta.ts +1 -1
  845. package/src/is/SwcOtherMeter.ts +1 -1
  846. package/src/is/SwcOtherMod.ts +1 -1
  847. package/src/is/SwcOtherObject.ts +1 -1
  848. package/src/is/SwcOtherOl.ts +1 -1
  849. package/src/is/SwcOtherOptGroup.ts +1 -1
  850. package/src/is/SwcOtherOption.ts +1 -1
  851. package/src/is/SwcOtherOutput.ts +1 -1
  852. package/src/is/SwcOtherParagraph.ts +1 -1
  853. package/src/is/SwcOtherParam.ts +1 -1
  854. package/src/is/SwcOtherPicture.ts +1 -1
  855. package/src/is/SwcOtherPre.ts +1 -1
  856. package/src/is/SwcOtherProgress.ts +1 -1
  857. package/src/is/SwcOtherQuote.ts +1 -1
  858. package/src/is/SwcOtherScript.ts +1 -1
  859. package/src/is/SwcOtherSelect.ts +1 -1
  860. package/src/is/SwcOtherSlot.ts +1 -1
  861. package/src/is/SwcOtherSource.ts +1 -1
  862. package/src/is/SwcOtherSpan.ts +1 -1
  863. package/src/is/SwcOtherStyle.ts +1 -1
  864. package/src/is/SwcOtherTable.ts +1 -1
  865. package/src/is/SwcOtherTableCell.ts +1 -1
  866. package/src/is/SwcOtherTableRow.ts +1 -1
  867. package/src/is/SwcOtherTableSection.ts +1 -1
  868. package/src/is/SwcOtherTemplate.ts +1 -1
  869. package/src/is/SwcOtherTextArea.ts +1 -1
  870. package/src/is/SwcOtherTime.ts +1 -1
  871. package/src/is/SwcOtherTitle.ts +1 -1
  872. package/src/is/SwcOtherTrack.ts +1 -1
  873. package/src/is/SwcOtherUl.ts +1 -1
  874. package/src/is/SwcOtherVideo.ts +1 -1
  875. package/src/is/SwcWhenAnchor.ts +1 -3
  876. package/src/is/SwcWhenArea.ts +1 -3
  877. package/src/is/SwcWhenAudio.ts +1 -3
  878. package/src/is/SwcWhenBase.ts +1 -3
  879. package/src/is/SwcWhenButton.ts +1 -3
  880. package/src/is/SwcWhenCanvas.ts +1 -3
  881. package/src/is/SwcWhenData.ts +1 -3
  882. package/src/is/SwcWhenDataList.ts +1 -3
  883. package/src/is/SwcWhenDetails.ts +1 -3
  884. package/src/is/SwcWhenDialog.ts +1 -3
  885. package/src/is/SwcWhenDiv.ts +1 -3
  886. package/src/is/SwcWhenDl.ts +1 -3
  887. package/src/is/SwcWhenEmbed.ts +1 -3
  888. package/src/is/SwcWhenFieldSet.ts +1 -3
  889. package/src/is/SwcWhenForm.ts +1 -3
  890. package/src/is/SwcWhenHeading.ts +1 -3
  891. package/src/is/SwcWhenHr.ts +1 -3
  892. package/src/is/SwcWhenIFrame.ts +1 -3
  893. package/src/is/SwcWhenImage.ts +1 -3
  894. package/src/is/SwcWhenInput.ts +1 -3
  895. package/src/is/SwcWhenLabel.ts +1 -3
  896. package/src/is/SwcWhenLegend.ts +1 -3
  897. package/src/is/SwcWhenLi.ts +1 -3
  898. package/src/is/SwcWhenLink.ts +1 -3
  899. package/src/is/SwcWhenMap.ts +1 -3
  900. package/src/is/SwcWhenMeta.ts +1 -3
  901. package/src/is/SwcWhenMeter.ts +1 -3
  902. package/src/is/SwcWhenMod.ts +1 -3
  903. package/src/is/SwcWhenObject.ts +1 -3
  904. package/src/is/SwcWhenOl.ts +1 -3
  905. package/src/is/SwcWhenOptGroup.ts +1 -3
  906. package/src/is/SwcWhenOption.ts +1 -3
  907. package/src/is/SwcWhenOutput.ts +1 -3
  908. package/src/is/SwcWhenParagraph.ts +1 -3
  909. package/src/is/SwcWhenParam.ts +1 -3
  910. package/src/is/SwcWhenPicture.ts +1 -3
  911. package/src/is/SwcWhenPre.ts +1 -3
  912. package/src/is/SwcWhenProgress.ts +1 -3
  913. package/src/is/SwcWhenQuote.ts +1 -3
  914. package/src/is/SwcWhenScript.ts +1 -3
  915. package/src/is/SwcWhenSelect.ts +1 -3
  916. package/src/is/SwcWhenSlot.ts +1 -3
  917. package/src/is/SwcWhenSource.ts +1 -3
  918. package/src/is/SwcWhenSpan.ts +1 -3
  919. package/src/is/SwcWhenStyle.ts +1 -3
  920. package/src/is/SwcWhenTable.ts +1 -3
  921. package/src/is/SwcWhenTableCell.ts +1 -3
  922. package/src/is/SwcWhenTableRow.ts +1 -3
  923. package/src/is/SwcWhenTableSection.ts +1 -3
  924. package/src/is/SwcWhenTemplate.ts +1 -3
  925. package/src/is/SwcWhenTextArea.ts +1 -3
  926. package/src/is/SwcWhenTime.ts +1 -3
  927. package/src/is/SwcWhenTitle.ts +1 -3
  928. package/src/is/SwcWhenTrack.ts +1 -3
  929. package/src/is/SwcWhenUl.ts +1 -3
  930. package/src/is/SwcWhenVideo.ts +1 -3
  931. package/src/utils/Utils.ts +65 -22
  932. package/dist/cjs/decorators/attributeChanged.js +0 -62
  933. package/dist/cjs/decorators/attributeChanged.js.map +0 -7
  934. package/dist/esm/decorators/attributeChanged.js +0 -43
  935. package/dist/esm/decorators/attributeChanged.js.map +0 -7
  936. package/dist/types/decorators/attributeChanged.d.ts +0 -6
  937. package/dist/types/decorators/attributeChanged.d.ts.map +0 -1
  938. package/src/decorators/attributeChanged.ts +0 -43
@@ -18,18 +18,23 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
18
18
  var elementDefine_exports = {};
19
19
  __export(elementDefine_exports, {
20
20
  ELEMENT_CONFIG_KEY: () => ELEMENT_CONFIG_KEY,
21
+ STATE_CHANGE_EVENT: () => STATE_CHANGE_EVENT,
21
22
  elementDefine: () => elementDefine,
22
23
  getElementConfig: () => getElementConfig
23
24
  });
24
25
  module.exports = __toCommonJS(elementDefine_exports);
25
26
  var import_ReflectUtils = require("@dooboostore/core/reflect/ReflectUtils");
26
- var import_attributeChanged = require("./attributeChanged");
27
27
  var import_innerHtml = require("./innerHtml");
28
28
  var import_query = require("./query");
29
29
  var import_queryAll = require("./queryAll");
30
30
  var import_addEventListener = require("./addEventListener");
31
31
  var import_lifecycles = require("./lifecycles");
32
+ var import_attribute = require("./attribute");
33
+ var import_state = require("./state");
34
+ var import_emitCustomEvent = require("./emitCustomEvent");
35
+ var import_Utils = require("../utils/Utils");
32
36
  const ELEMENT_CONFIG_KEY = Symbol("simple-web-component:element-config");
37
+ const STATE_CHANGE_EVENT = "swc:state-change";
33
38
  const BUILT_IN_TAG_MAP = /* @__PURE__ */ new Map();
34
39
  const registerTag = (className, tagName) => {
35
40
  if (typeof globalThis !== "undefined" && globalThis[className]) {
@@ -105,17 +110,49 @@ const elementDefine = (inConfig) => (constructor) => {
105
110
  proto = Object.getPrototypeOf(proto);
106
111
  }
107
112
  }
108
- const attributeChangedMap = (0, import_attributeChanged.getAttributeChangedMap)(constructor);
109
- const observedFromDecorators = attributeChangedMap ? Array.from(attributeChangedMap.keys()).filter((it) => it !== import_attributeChanged.ATTRIBUTE_CHANGED_WILDCARD) : [];
110
- const mergedObservedAttributes = [.../* @__PURE__ */ new Set([...config.observedAttributes ?? [], ...observedFromDecorators])];
113
+ const attributePropsList = (0, import_attribute.getAttributeMetadataList)(constructor);
114
+ const emitCustomEventList = (0, import_emitCustomEvent.getEmitCustomEventMetadataList)(constructor);
115
+ const stateList = (0, import_state.getStateMetadataList)(constructor);
116
+ const observedFromProps = attributePropsList ? attributePropsList.map((it) => it.options.name) : [];
117
+ const observedFromEmits = emitCustomEventList ? emitCustomEventList.map((it) => it.options.attributeName) : [];
118
+ const mergedObservedAttributes = [.../* @__PURE__ */ new Set([...config.observedAttributes ?? [], ...observedFromProps, ...observedFromEmits])];
111
119
  const NewClass = class extends constructor {
112
120
  constructor(...args) {
113
121
  super(...args);
122
+ this._swcId = Math.random().toString(36).substring(2, 11);
114
123
  this._observer = null;
115
124
  this._boundElements = /* @__PURE__ */ new WeakMap();
125
+ this._activeListeners = [];
126
+ this._emitHandlers = /* @__PURE__ */ new Map();
127
+ this._stateBindings = /* @__PURE__ */ new Map();
128
+ this._internalStates = /* @__PURE__ */ new Map();
129
+ this._externalSources = /* @__PURE__ */ new Map();
130
+ if (stateList) {
131
+ stateList.forEach((meta) => {
132
+ const key = meta.propertyKey;
133
+ const stateName = meta.options.name;
134
+ const initialVal = this[key];
135
+ this._internalStates.set(
136
+ key,
137
+ import_Utils.SwcUtils.createReactiveProxy(initialVal, () => this._updateState(stateName))
138
+ );
139
+ Object.defineProperty(this, key, {
140
+ get: () => this._internalStates.get(key),
141
+ set: (newVal) => {
142
+ if (this._internalStates.get(key) === newVal) return;
143
+ this._internalStates.set(
144
+ key,
145
+ import_Utils.SwcUtils.createReactiveProxy(newVal, () => this._updateState(stateName))
146
+ );
147
+ this._updateState(stateName);
148
+ },
149
+ enumerable: true,
150
+ configurable: true
151
+ });
152
+ });
153
+ }
116
154
  const innerHtmlList = (0, import_innerHtml.getInnerHtmlMetadataList)(this);
117
- const useShadow = innerHtmlList?.some((it) => it.options.useShadow === true);
118
- if (useShadow === true && !this.shadowRoot) {
155
+ if (innerHtmlList?.some((it) => it.options.useShadow === true) && !this.shadowRoot) {
119
156
  this.attachShadow({ mode: "open" });
120
157
  }
121
158
  }
@@ -123,19 +160,38 @@ const elementDefine = (inConfig) => (constructor) => {
123
160
  return mergedObservedAttributes;
124
161
  }
125
162
  _syncDecorators() {
163
+ this._buildStateMap();
164
+ const getSearchRoots = (rootOption) => {
165
+ const roots = [];
166
+ if (rootOption === "shadow") {
167
+ if (this.shadowRoot) roots.push(this.shadowRoot);
168
+ } else if (rootOption === "light") {
169
+ roots.push(this);
170
+ } else if (rootOption === "all") {
171
+ if (this.shadowRoot) roots.push(this.shadowRoot);
172
+ roots.push(this);
173
+ } else {
174
+ roots.push(this.shadowRoot || this);
175
+ }
176
+ return roots;
177
+ };
126
178
  const queryMetadata = (0, import_query.getQueryMetadata)(this);
127
179
  if (queryMetadata) {
128
180
  queryMetadata.filter((it) => it.isMethod).forEach((it) => {
129
- const root = it.options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
130
- const element = root.querySelector(it.selector);
131
- if (element) {
132
- let bound = this._boundElements.get(element);
181
+ const searchRoots = getSearchRoots(it.options.root);
182
+ let foundEl = null;
183
+ for (const root of searchRoots) {
184
+ foundEl = it.selector ? root.querySelector(it.selector) : this;
185
+ if (foundEl) break;
186
+ }
187
+ if (foundEl) {
188
+ let bound = this._boundElements.get(foundEl);
133
189
  if (!bound) {
134
190
  bound = /* @__PURE__ */ new Set();
135
- this._boundElements.set(element, bound);
191
+ this._boundElements.set(foundEl, bound);
136
192
  }
137
193
  if (!bound.has(it.propertyKey)) {
138
- this[it.propertyKey](element);
194
+ this[it.propertyKey](foundEl);
139
195
  bound.add(it.propertyKey);
140
196
  }
141
197
  }
@@ -144,145 +200,244 @@ const elementDefine = (inConfig) => (constructor) => {
144
200
  const queryAllMetadata = (0, import_queryAll.getQueryAllMetadata)(this);
145
201
  if (queryAllMetadata) {
146
202
  queryAllMetadata.filter((it) => it.isMethod).forEach((it) => {
147
- const root = it.options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
148
- const elements = root.querySelectorAll(it.selector);
149
- this[it.propertyKey](elements);
203
+ const searchRoots = getSearchRoots(it.options.root);
204
+ const allElements = [];
205
+ searchRoots.forEach((root) => {
206
+ const found = it.selector ? root.querySelectorAll(it.selector) : [this];
207
+ allElements.push(...Array.from(found));
208
+ });
209
+ this[it.propertyKey](allElements);
150
210
  });
151
211
  }
152
212
  const eventListeners = (0, import_addEventListener.getAddEventListenerMetadata)(this);
153
213
  if (eventListeners) {
154
214
  eventListeners.forEach((it) => {
155
- const { selector, eventName, useShadow, ...options } = it.options;
156
- const root = useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
157
- const targetElements = selector ? root.querySelectorAll(selector) : [this];
158
- targetElements.forEach((targetElement) => {
159
- if (targetElement) {
160
- let bound = this._boundElements.get(targetElement);
161
- if (!bound) {
162
- bound = /* @__PURE__ */ new Set();
163
- this._boundElements.set(targetElement, bound);
164
- }
165
- const eventKey = `event:${String(it.propertyKey)}:${eventName}`;
166
- if (!bound.has(eventKey)) {
167
- targetElement.addEventListener(
168
- eventName,
169
- (event) => {
170
- this[it.propertyKey](event);
171
- },
172
- options
173
- );
174
- bound.add(eventKey);
215
+ const { query, type, root: rootOption, ...options } = it.options;
216
+ const searchRoots = getSearchRoots(rootOption);
217
+ searchRoots.forEach((root) => {
218
+ const targetElements = query ? root.querySelectorAll(query) : [this];
219
+ targetElements.forEach((targetElement) => {
220
+ if (targetElement) {
221
+ let bound = this._boundElements.get(targetElement);
222
+ if (!bound) {
223
+ bound = /* @__PURE__ */ new Set();
224
+ this._boundElements.set(targetElement, bound);
225
+ }
226
+ const eventKey = `event:${String(it.propertyKey)}:${type}`;
227
+ if (!bound.has(eventKey)) {
228
+ const handler = (event) => {
229
+ if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();
230
+ if (it.options.stopPropagation) event.stopPropagation();
231
+ if (it.options.preventDefault) event.preventDefault();
232
+ this[it.propertyKey](event, targetElement);
233
+ };
234
+ targetElement.addEventListener(type, handler, options);
235
+ bound.add(eventKey);
236
+ if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });
237
+ const addEventMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_ADD_EVENT_LISTENER_METADATA_KEY);
238
+ addEventMethods?.forEach((m) => {
239
+ if (typeof this[m] === "function") this[m](targetElement, type, handler);
240
+ });
241
+ }
175
242
  }
176
- }
243
+ });
177
244
  });
178
245
  });
179
246
  }
180
247
  }
248
+ _buildStateMap() {
249
+ this._stateBindings.clear();
250
+ this._externalSources.clear();
251
+ const scan = (root) => {
252
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);
253
+ let node = null;
254
+ while (node = walker.nextNode()) {
255
+ if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, "text");
256
+ else if (node.nodeType === Node.ELEMENT_NODE) {
257
+ const el = node;
258
+ const alias = el.getAttribute("as");
259
+ if (alias) {
260
+ this._externalSources.set(alias, el);
261
+ el.addEventListener(STATE_CHANGE_EVENT, () => this._updateState(alias));
262
+ }
263
+ Array.from(el.attributes).forEach((attr) => this._parseAndBind(attr, "attribute", el));
264
+ }
265
+ }
266
+ };
267
+ if (this.shadowRoot) scan(this.shadowRoot);
268
+ scan(this);
269
+ }
270
+ _parseAndBind(node, type, owner) {
271
+ const content = node.textContent || "";
272
+ const matches = Array.from(content.matchAll(/{{(.*?)}}/g));
273
+ if (matches.length === 0) return;
274
+ matches.forEach((match) => {
275
+ const fullPath = match[1].trim();
276
+ const rootName = fullPath.split(".")[0];
277
+ const isState = stateList?.some((s) => s.options.name === rootName);
278
+ const isLogicKey = this._asKey === rootName || this._asIndexKey === rootName;
279
+ const isExternal = this._externalSources.has(rootName);
280
+ const isSelfAlias = this.getAttribute("as") === rootName;
281
+ if (!isState && !isLogicKey && !isExternal && !isSelfAlias) return;
282
+ if (!this._stateBindings.has(rootName)) this._stateBindings.set(rootName, []);
283
+ const tplKey = `__swc_original_${this._swcId}`;
284
+ if (!node[tplKey]) node[tplKey] = content;
285
+ this._stateBindings.get(rootName).push({ node, type, owner, path: fullPath });
286
+ this._updateState(rootName);
287
+ });
288
+ }
289
+ _updateState(stateName) {
290
+ if (!this._stateBindings) return;
291
+ this._executeBindingUpdate(stateName);
292
+ const selfAlias = this.getAttribute("as");
293
+ if (selfAlias && selfAlias !== stateName) this._executeBindingUpdate(selfAlias);
294
+ this.dispatchEvent(new CustomEvent(STATE_CHANGE_EVENT, { bubbles: true, composed: true }));
295
+ }
296
+ _executeBindingUpdate(stateName) {
297
+ const bindings = this._stateBindings.get(stateName);
298
+ if (!bindings) return;
299
+ const tplKey = `__swc_original_${this._swcId}`;
300
+ bindings.forEach((bin) => {
301
+ let text = bin.node[tplKey];
302
+ const matches = Array.from(text.matchAll(/{{(.*?)}}/g));
303
+ for (const match of matches) {
304
+ const path = match[1].trim();
305
+ const root = path.split(".")[0];
306
+ let val = void 0;
307
+ let current = this;
308
+ while (current) {
309
+ const currentNewClass = current;
310
+ if (current.getAttribute("as") === root) {
311
+ val = import_Utils.SwcUtils.getValueByPath(current, path.split(".").slice(1).join(".") || "value", "value");
312
+ if (val !== void 0) break;
313
+ }
314
+ const externalSource = currentNewClass._externalSources?.get(root);
315
+ if (externalSource) {
316
+ val = import_Utils.SwcUtils.getValueByPath(externalSource, path.split(".").slice(1).join(".") || "value", "value");
317
+ if (val !== void 0) break;
318
+ }
319
+ const cStates = (0, import_state.getStateMetadataList)(current.constructor);
320
+ const cAttrs = (0, import_attribute.getAttributeMetadataList)(current.constructor);
321
+ const sMeta = cStates?.find((s) => s.options.name === root);
322
+ const aMeta = cAttrs?.find((a) => a.options.name === root);
323
+ if (sMeta || aMeta) {
324
+ let aPath = path;
325
+ if (sMeta && sMeta.options.name !== String(sMeta.propertyKey)) aPath = path.replace(sMeta.options.name, String(sMeta.propertyKey));
326
+ else if (aMeta && aMeta.options.name !== String(aMeta.propertyKey)) aPath = path.replace(aMeta.options.name, String(aMeta.propertyKey));
327
+ val = import_Utils.SwcUtils.getValueByPath(current, aPath, root);
328
+ if (val !== void 0) break;
329
+ }
330
+ current = current.parentElement || current.getRootNode().host;
331
+ }
332
+ if (val !== void 0) {
333
+ const strVal = val === null || val === void 0 ? "" : typeof val === "object" ? "[Object]" : String(val);
334
+ text = text.replace(match[0], strVal);
335
+ if (bin.type === "attribute" && bin.owner) {
336
+ if (val === null || val === void 0) bin.owner.removeAttribute(bin.attrName);
337
+ else bin.owner.setAttribute(bin.attrName, text);
338
+ }
339
+ }
340
+ }
341
+ if (bin.type === "text") bin.node.textContent = text;
342
+ });
343
+ }
181
344
  disconnectedCallback() {
182
- const beforeMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_BEFORE_DISCONNECTED_METADATA_KEY);
183
- beforeMethods?.forEach((m) => {
345
+ const bMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_BEFORE_DISCONNECTED_METADATA_KEY);
346
+ bMethods?.forEach((m) => {
184
347
  if (typeof this[m] === "function") this[m]();
185
348
  });
186
- if (this._observer) {
187
- this._observer.disconnect();
188
- }
189
- if (super.disconnectedCallback) {
190
- super.disconnectedCallback();
349
+ if (this._observer) this._observer.disconnect();
350
+ if (config.autoRemoveEventListeners) {
351
+ this._activeListeners.forEach(({ el, type, handler, options }) => el.removeEventListener(type, handler, options));
352
+ this._activeListeners = [];
191
353
  }
192
- const afterMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_AFTER_DISCONNECTED_METADATA_KEY);
193
- afterMethods?.forEach((m) => {
354
+ if (super.disconnectedCallback) super.disconnectedCallback();
355
+ const aMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_AFTER_DISCONNECTED_METADATA_KEY);
356
+ aMethods?.forEach((m) => {
194
357
  if (typeof this[m] === "function") this[m]();
195
358
  });
196
359
  }
197
360
  adoptedCallback() {
198
- const beforeMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_BEFORE_ADOPTED_METADATA_KEY);
199
- beforeMethods?.forEach((m) => {
361
+ const bMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_BEFORE_ADOPTED_METADATA_KEY);
362
+ bMethods?.forEach((m) => {
200
363
  if (typeof this[m] === "function") this[m]();
201
364
  });
202
- if (super.adoptedCallback) {
203
- super.adoptedCallback();
204
- }
205
- const afterMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_AFTER_ADOPTED_METADATA_KEY);
206
- afterMethods?.forEach((m) => {
365
+ if (super.adoptedCallback) super.adoptedCallback();
366
+ const aMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_AFTER_ADOPTED_METADATA_KEY);
367
+ aMethods?.forEach((m) => {
207
368
  if (typeof this[m] === "function") this[m]();
208
369
  });
209
370
  }
210
371
  async connectedCallback() {
211
- const beforeMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_BEFORE_CONNECTED_METADATA_KEY);
212
- beforeMethods?.forEach((m) => {
372
+ const bMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_BEFORE_CONNECTED_METADATA_KEY);
373
+ bMethods?.forEach((m) => {
213
374
  if (typeof this[m] === "function") this[m]();
214
375
  });
215
- if (typeof this.initCore === "function") {
216
- this.initCore();
217
- }
218
- const innerHtmlList = (0, import_innerHtml.getInnerHtmlMetadataList)(this);
219
- let shadowContent = "";
220
- let lightContent = "";
221
- if (innerHtmlList) {
222
- for (const meta of innerHtmlList) {
376
+ if (typeof this.initCore === "function") this.initCore();
377
+ const iHtmlList = (0, import_innerHtml.getInnerHtmlMetadataList)(this);
378
+ let sContent = "";
379
+ let lContent = "";
380
+ if (iHtmlList) {
381
+ for (const meta of iHtmlList) {
223
382
  const result = await this[meta.propertyKey]();
224
383
  if (result !== void 0) {
225
- if (meta.options.useShadow === true) {
226
- shadowContent += result;
227
- } else {
228
- lightContent += result;
229
- }
384
+ if (meta.options.useShadow === true) sContent += result;
385
+ else lContent += result;
230
386
  }
231
387
  }
232
388
  }
233
- if (this.shadowRoot) {
234
- this.shadowRoot.innerHTML = shadowContent;
235
- }
236
- if (lightContent) {
237
- this.innerHTML = lightContent;
238
- }
389
+ if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;
390
+ if (lContent) this.innerHTML = lContent;
239
391
  this._syncDecorators();
240
- this._observer = new MutationObserver(() => {
241
- this._syncDecorators();
242
- });
243
- const target = this.shadowRoot || this;
244
- this._observer.observe(target, { childList: true, subtree: true });
245
- if (super.connectedCallback) {
246
- await super.connectedCallback();
247
- }
248
- const afterMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_AFTER_CONNECTED_METADATA_KEY);
249
- afterMethods?.forEach((m) => {
392
+ this._observer = new MutationObserver(() => this._syncDecorators());
393
+ this._observer.observe(this.shadowRoot || this, { childList: true, subtree: true });
394
+ if (super.connectedCallback) await super.connectedCallback();
395
+ const aMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_AFTER_CONNECTED_METADATA_KEY);
396
+ aMethods?.forEach((m) => {
250
397
  if (typeof this[m] === "function") this[m]();
251
398
  });
252
399
  }
253
- // 4. Handle attribute changes and route to decorated methods
254
400
  attributeChangedCallback(name, oldValue, newValue) {
255
- if (super.attributeChangedCallback) {
256
- super.attributeChangedCallback(name, oldValue, newValue);
257
- }
258
- const methodKeys = attributeChangedMap?.get(name);
259
- if (methodKeys && Array.isArray(methodKeys)) {
260
- methodKeys.forEach((key) => {
261
- if (typeof this[key] === "function") {
262
- this[key](newValue, oldValue, name);
401
+ if (super.attributeChangedCallback) super.attributeChangedCallback(name, oldValue, newValue);
402
+ if (attributePropsList) {
403
+ attributePropsList.forEach((meta) => {
404
+ if (meta.options.name === name) {
405
+ if (String(this[meta.propertyKey]) !== String(newValue)) this[meta.propertyKey] = newValue;
263
406
  }
264
407
  });
265
408
  }
266
- const wildcardMethodKeys = attributeChangedMap?.get(import_attributeChanged.ATTRIBUTE_CHANGED_WILDCARD);
267
- if (wildcardMethodKeys && Array.isArray(wildcardMethodKeys)) {
268
- wildcardMethodKeys.forEach((key) => {
269
- if (typeof this[key] === "function") {
270
- this[key](newValue, oldValue, name);
271
- }
409
+ if (typeof this._updateState === "function") this._updateState(name);
410
+ const aMethodsMap = (0, import_lifecycles.getLifecycleMetadata)(constructor, import_lifecycles.ON_ATTRIBUTE_CHANGED_METADATA_KEY);
411
+ const mKeys = aMethodsMap?.get(name);
412
+ if (mKeys && Array.isArray(mKeys))
413
+ mKeys.forEach((key) => {
414
+ if (typeof this[key] === "function") this[key](newValue, oldValue, name);
272
415
  });
416
+ if (emitCustomEventList) {
417
+ const eMeta = emitCustomEventList.find((it) => it.options.attributeName === name);
418
+ if (eMeta) {
419
+ const eType = eMeta.options.type;
420
+ const oHandler = this._emitHandlers.get(eType);
421
+ if (oHandler) this.removeEventListener(eType, oHandler);
422
+ if (newValue) {
423
+ const nHandler = (e) => {
424
+ new Function("event", "$data", newValue).call(this, e, e.detail);
425
+ };
426
+ this.addEventListener(eType, nHandler);
427
+ this._emitHandlers.set(eType, nHandler);
428
+ }
429
+ }
273
430
  }
431
+ const wMethodsKeys = aMethodsMap?.get(import_lifecycles.ATTRIBUTE_CHANGED_WILDCARD);
432
+ if (wMethodsKeys && Array.isArray(wMethodsKeys))
433
+ wMethodsKeys.forEach((key) => {
434
+ if (typeof this[key] === "function") this[key](newValue, oldValue, name);
435
+ });
274
436
  }
275
437
  };
276
438
  const registry = config.customElementRegistry || (typeof customElements !== "undefined" ? customElements : void 0);
277
439
  if (registry && !registry.get(config.name)) {
278
- const options = extendsTagName ? { extends: extendsTagName } : void 0;
279
- if (extendsTagName && typeof document !== "undefined") {
280
- const isSupported = document.createElement(extendsTagName, { is: "any" }).outerHTML.indexOf("is=") !== -1;
281
- if (!isSupported) {
282
- console.warn(`[SWC] Browser does not support 'is' attribute (Customized Built-in Elements). If you are on Safari, please include '@ungap/custom-elements' polyfill.`);
283
- }
284
- }
285
- registry.define(config.name, NewClass, options);
440
+ registry.define(config.name, NewClass, config.extends ? { extends: config.extends } : void 0);
286
441
  }
287
442
  import_ReflectUtils.ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, NewClass);
288
443
  return NewClass;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/elementDefine.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\nimport { getAttributeChangedMap, ATTRIBUTE_CHANGED_WILDCARD } from './attributeChanged';\nimport { getInnerHtmlMetadataList } from './innerHtml';\nimport { getQueryMetadata } from './query';\nimport { getQueryAllMetadata } from './queryAll';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { getLifecycleMetadata, 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 } from './lifecycles';\n\nexport interface ElementConfig {\n name: string;\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: CustomElementRegistry;\n}\n\nexport const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');\n\nconst BUILT_IN_TAG_MAP = new Map<any, string>();\n\nconst registerTag = (className: string, tagName: string) => {\n if (typeof globalThis !== 'undefined' && (globalThis as any)[className]) {\n BUILT_IN_TAG_MAP.set((globalThis as any)[className], tagName);\n }\n};\n\n// Register comprehensive list of supported tags for automatic extends inference\n[\n ['HTMLAnchorElement', 'a'],\n ['HTMLAreaElement', 'area'],\n ['HTMLAudioElement', 'audio'],\n ['HTMLBaseElement', 'base'],\n ['HTMLButtonElement', 'button'],\n ['HTMLCanvasElement', 'canvas'],\n ['HTMLDataElement', 'data'],\n ['HTMLDataListElement', 'datalist'],\n ['HTMLDetailsElement', 'details'],\n ['HTMLDialogElement', 'dialog'],\n ['HTMLDivElement', 'div'],\n ['HTMLDListElement', 'dl'],\n ['HTMLEmbedElement', 'embed'],\n ['HTMLFieldSetElement', 'fieldset'],\n ['HTMLFormElement', 'form'],\n ['HTMLHRElement', 'hr'],\n ['HTMLIFrameElement', 'iframe'],\n ['HTMLImageElement', 'img'],\n ['HTMLInputElement', 'input'],\n ['HTMLLabelElement', 'label'],\n ['HTMLLegendElement', 'legend'],\n ['HTMLLIElement', 'li'],\n ['HTMLLinkElement', 'link'],\n ['HTMLMapElement', 'map'],\n ['HTMLMetaElement', 'meta'],\n ['HTMLMeterElement', 'meter'],\n ['HTMLModElement', 'del'],\n ['HTMLObjectElement', 'object'],\n ['HTMLOListElement', 'ol'],\n ['HTMLOptGroupElement', 'optgroup'],\n ['HTMLOptionElement', 'option'],\n ['HTMLOutputElement', 'output'],\n ['HTMLParagraphElement', 'p'],\n ['HTMLParamElement', 'param'],\n ['HTMLPictureElement', 'picture'],\n ['HTMLPreElement', 'pre'],\n ['HTMLProgressElement', 'progress'],\n ['HTMLQuoteElement', 'blockquote'],\n ['HTMLScriptElement', 'script'],\n ['HTMLSelectElement', 'select'],\n ['HTMLSlotElement', 'slot'],\n ['HTMLSourceElement', 'source'],\n ['HTMLSpanElement', 'span'],\n ['HTMLStyleElement', 'style'],\n ['HTMLTableElement', 'table'],\n ['HTMLTableSectionElement', 'tbody'],\n ['HTMLTableCellElement', 'td'],\n ['HTMLTemplateElement', 'template'],\n ['HTMLTextAreaElement', 'textarea'],\n ['HTMLTimeElement', 'time'],\n ['HTMLTitleElement', 'title'],\n ['HTMLTableRowElement', 'tr'],\n ['HTMLTrackElement', 'track'],\n ['HTMLUListElement', 'ul'],\n ['HTMLVideoElement', 'video'],\n ['HTMLHeadingElement', 'h1']\n].forEach(([cls, tag]) => registerTag(cls, tag));\n\nexport const elementDefine =\n (inConfig: ElementConfig | string): ClassDecorator =>\n (constructor: any) => {\n const config: ElementConfig = typeof inConfig === 'string' ? { name: inConfig } : inConfig;\n\n // 1. Automatically derive extendsTagName from prototype chain if not provided\n let extendsTagName = config.extends;\n if (!extendsTagName) {\n let proto = Object.getPrototypeOf(constructor);\n while (proto && proto !== HTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n }\n\n // 2. Automatically collect observed attributes from @attributeChanged decorators\n const attributeChangedMap = getAttributeChangedMap(constructor);\n const observedFromDecorators = attributeChangedMap ? Array.from(attributeChangedMap.keys()).filter(it => it !== ATTRIBUTE_CHANGED_WILDCARD) : [];\n const mergedObservedAttributes = [...new Set([...(config.observedAttributes ?? []), ...observedFromDecorators])];\n\n // 3. Create a new anonymous class that extends the original constructor\n const NewClass = class extends (constructor as any) {\n private _observer: MutationObserver | null = null;\n private _boundElements = new WeakMap<Element, Set<string | symbol>>();\n\n static get observedAttributes() {\n return mergedObservedAttributes;\n }\n\n constructor(...args: any[]) {\n super(...args);\n const innerHtmlList = getInnerHtmlMetadataList(this);\n const useShadow = innerHtmlList?.some(it => it.options.useShadow === true);\n\n if (useShadow === true && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n }\n\n private _syncDecorators() {\n // 5. Execute @query and @queryAll methods\n const queryMetadata = getQueryMetadata(this);\n if (queryMetadata) {\n queryMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const root = it.options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;\n const element = root.querySelector(it.selector);\n\n if (element) {\n let bound = this._boundElements.get(element);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(element, bound);\n }\n if (!bound.has(it.propertyKey)) {\n (this as any)[it.propertyKey](element);\n bound.add(it.propertyKey);\n }\n }\n });\n }\n\n const queryAllMetadata = getQueryAllMetadata(this);\n if (queryAllMetadata) {\n queryAllMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const root = it.options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;\n const elements = root.querySelectorAll(it.selector);\n (this as any)[it.propertyKey](elements);\n });\n }\n\n // 6. Register @addEventListener methods\n const eventListeners = getAddEventListenerMetadata(this);\n if (eventListeners) {\n eventListeners.forEach(it => {\n const { selector, eventName, useShadow, ...options } = it.options;\n const root = useShadow !== false && this.shadowRoot ? this.shadowRoot : this;\n const targetElements = selector ? root.querySelectorAll(selector) : [this as any as Element];\n\n targetElements.forEach(targetElement => {\n if (targetElement) {\n let bound = this._boundElements.get(targetElement);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(targetElement, bound);\n }\n\n const eventKey = `event:${String(it.propertyKey)}:${eventName}`;\n if (!bound.has(eventKey)) {\n targetElement.addEventListener(\n eventName,\n event => {\n (this as any)[it.propertyKey](event);\n },\n options\n );\n bound.add(eventKey);\n }\n }\n });\n });\n }\n }\n\n disconnectedCallback() {\n // 1. onBeforeDisconnected\n const beforeMethods = getLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n beforeMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n\n if (this._observer) {\n this._observer.disconnect();\n }\n\n if (super.disconnectedCallback) {\n super.disconnectedCallback();\n }\n\n // 2. onAfterDisconnected\n const afterMethods = getLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n afterMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n adoptedCallback() {\n // 1. onBeforeAdopted\n const beforeMethods = getLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n beforeMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n\n if (super.adoptedCallback) {\n super.adoptedCallback();\n }\n\n // 2. onAfterAdopted\n const afterMethods = getLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n afterMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n async connectedCallback() {\n // 1. onBeforeConnected\n const beforeMethods = getLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n beforeMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n\n if (typeof (this as any).initCore === 'function') {\n (this as any).initCore();\n }\n\n const innerHtmlList = getInnerHtmlMetadataList(this);\n\n let shadowContent = '';\n let lightContent = '';\n\n if (innerHtmlList) {\n for (const meta of innerHtmlList) {\n const result = await (this as any)[meta.propertyKey]();\n if (result !== undefined) {\n if (meta.options.useShadow === true) {\n shadowContent += result;\n } else {\n lightContent += result;\n }\n }\n }\n }\n\n if (this.shadowRoot) {\n this.shadowRoot.innerHTML = shadowContent;\n }\n\n if (lightContent) {\n this.innerHTML = lightContent;\n }\n\n // \uCD08\uAE30 \uB3D9\uAE30\uD654\n (this as any)._syncDecorators();\n\n // 7. Watch for DOM changes (MutationObserver)\n this._observer = new MutationObserver(() => {\n (this as any)._syncDecorators();\n });\n const target = this.shadowRoot || this;\n this._observer.observe(target, { childList: true, subtree: true });\n\n if (super.connectedCallback) {\n await super.connectedCallback();\n }\n\n // 2. onAfterConnected\n const afterMethods = getLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);\n afterMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n // 4. Handle attribute changes and route to decorated methods\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (super.attributeChangedCallback) {\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n const methodKeys = attributeChangedMap?.get(name);\n if (methodKeys && Array.isArray(methodKeys)) {\n methodKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') {\n (this as any)[key](newValue, oldValue, name);\n }\n });\n }\n\n const wildcardMethodKeys = attributeChangedMap?.get(ATTRIBUTE_CHANGED_WILDCARD);\n if (wildcardMethodKeys && Array.isArray(wildcardMethodKeys)) {\n wildcardMethodKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') {\n (this as any)[key](newValue, oldValue, name);\n }\n });\n }\n }\n };\n\n // 5. Register Custom Element using specified or default registry\n const registry = config.customElementRegistry || (typeof customElements !== 'undefined' ? customElements : undefined);\n if (registry && !registry.get(config.name)) {\n const options = extendsTagName ? { extends: extendsTagName } : undefined;\n\n // Safari support check for Customized Built-in Elements\n if (extendsTagName && typeof document !== 'undefined') {\n const isSupported = document.createElement(extendsTagName, { is: 'any' }).outerHTML.indexOf('is=') !== -1;\n if (!isSupported) {\n console.warn(`[SWC] Browser does not support 'is' attribute (Customized Built-in Elements). ` + `If you are on Safari, please include '@ungap/custom-elements' polyfill.`);\n }\n }\n\n registry.define(config.name, NewClass as any, options);\n }\n\n // 6. Save metadata\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, NewClass);\n\n return NewClass as any;\n };\n\nexport const getElementConfig = (target: any): ElementConfig | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\nimport { getInnerHtmlMetadataList } from './innerHtml';\nimport { getQueryMetadata } from './query';\nimport { getQueryAllMetadata } from './queryAll';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { getLifecycleMetadata, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, ON_ADD_EVENT_LISTENER_METADATA_KEY, ON_ATTRIBUTE_CHANGED_METADATA_KEY, ATTRIBUTE_CHANGED_WILDCARD } from './lifecycles';\nimport { getAttributeMetadataList } from './attribute';\nimport { getStateMetadataList } from './state';\nimport { getEmitCustomEventMetadataList } from './emitCustomEvent';\nimport { SwcUtils } from '../utils/Utils';\n\nexport interface ElementConfig {\n name: string;\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: CustomElementRegistry;\n autoRemoveEventListeners?: boolean;\n}\n\nexport const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');\nexport const STATE_CHANGE_EVENT = 'swc:state-change';\n\nconst BUILT_IN_TAG_MAP = new Map<any, string>();\n\nconst registerTag = (className: string, tagName: string) => {\n if (typeof globalThis !== 'undefined' && (globalThis as any)[className]) {\n BUILT_IN_TAG_MAP.set((globalThis as any)[className], tagName);\n }\n};\n\n[\n ['HTMLAnchorElement', 'a'],\n ['HTMLAreaElement', 'area'],\n ['HTMLAudioElement', 'audio'],\n ['HTMLBaseElement', 'base'],\n ['HTMLButtonElement', 'button'],\n ['HTMLCanvasElement', 'canvas'],\n ['HTMLDataElement', 'data'],\n ['HTMLDataListElement', 'datalist'],\n ['HTMLDetailsElement', 'details'],\n ['HTMLDialogElement', 'dialog'],\n ['HTMLDivElement', 'div'],\n ['HTMLDListElement', 'dl'],\n ['HTMLEmbedElement', 'embed'],\n ['HTMLFieldSetElement', 'fieldset'],\n ['HTMLFormElement', 'form'],\n ['HTMLHRElement', 'hr'],\n ['HTMLIFrameElement', 'iframe'],\n ['HTMLImageElement', 'img'],\n ['HTMLInputElement', 'input'],\n ['HTMLLabelElement', 'label'],\n ['HTMLLegendElement', 'legend'],\n ['HTMLLIElement', 'li'],\n ['HTMLLinkElement', 'link'],\n ['HTMLMapElement', 'map'],\n ['HTMLMetaElement', 'meta'],\n ['HTMLMeterElement', 'meter'],\n ['HTMLModElement', 'del'],\n ['HTMLObjectElement', 'object'],\n ['HTMLOListElement', 'ol'],\n ['HTMLOptGroupElement', 'optgroup'],\n ['HTMLOptionElement', 'option'],\n ['HTMLOutputElement', 'output'],\n ['HTMLParagraphElement', 'p'],\n ['HTMLParamElement', 'param'],\n ['HTMLPictureElement', 'picture'],\n ['HTMLPreElement', 'pre'],\n ['HTMLProgressElement', 'progress'],\n ['HTMLQuoteElement', 'blockquote'],\n ['HTMLScriptElement', 'script'],\n ['HTMLSelectElement', 'select'],\n ['HTMLSlotElement', 'slot'],\n ['HTMLSourceElement', 'source'],\n ['HTMLSpanElement', 'span'],\n ['HTMLStyleElement', 'style'],\n ['HTMLTableElement', 'table'],\n ['HTMLTableSectionElement', 'tbody'],\n ['HTMLTableCellElement', 'td'],\n ['HTMLTemplateElement', 'template'],\n ['HTMLTextAreaElement', 'textarea'],\n ['HTMLTimeElement', 'time'],\n ['HTMLTitleElement', 'title'],\n ['HTMLTableRowElement', 'tr'],\n ['HTMLTrackElement', 'track'],\n ['HTMLUListElement', 'ul'],\n ['HTMLVideoElement', 'video'],\n ['HTMLHeadingElement', 'h1']\n].forEach(([cls, tag]) => registerTag(cls, tag));\n\nexport const elementDefine =\n (inConfig: ElementConfig | string): ClassDecorator =>\n (constructor: any) => {\n const config: ElementConfig = typeof inConfig === 'string' ? { name: inConfig } : inConfig;\n\n let extendsTagName = config.extends;\n if (!extendsTagName) {\n let proto = Object.getPrototypeOf(constructor);\n while (proto && proto !== HTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n }\n\n const attributePropsList = getAttributeMetadataList(constructor);\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor);\n const stateList = getStateMetadataList(constructor);\n const observedFromProps = attributePropsList ? attributePropsList.map(it => it.options.name!) : [];\n const observedFromEmits = emitCustomEventList ? emitCustomEventList.map(it => it.options.attributeName!) : [];\n const mergedObservedAttributes = [...new Set([...(config.observedAttributes ?? []), ...observedFromProps, ...observedFromEmits])];\n\n const NewClass = class extends (constructor as any) {\n private _swcId = Math.random().toString(36).substring(2, 11);\n private _observer: MutationObserver | null = null;\n private _boundElements = new WeakMap<Element, Set<string | symbol>>();\n private _activeListeners: Array<{ el: Element | HTMLElement; type: string; handler: EventListener; options?: any }> = [];\n private _emitHandlers = new Map<string, EventListener>();\n private _stateBindings = new Map<string, any[]>();\n private _internalStates = new Map<string | symbol, any>();\n private _externalSources = new Map<string, HTMLElement>();\n\n static get observedAttributes() {\n return mergedObservedAttributes;\n }\n\n constructor(...args: any[]) {\n super(...args);\n if (stateList) {\n stateList.forEach(meta => {\n const key = meta.propertyKey;\n const stateName = meta.options.name!;\n const initialVal = (this as any)[key];\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(initialVal, () => this._updateState(stateName))\n );\n Object.defineProperty(this, key, {\n get: () => this._internalStates.get(key),\n set: newVal => {\n if (this._internalStates.get(key) === newVal) return;\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(newVal, () => this._updateState(stateName))\n );\n this._updateState(stateName);\n },\n enumerable: true,\n configurable: true\n });\n });\n }\n const innerHtmlList = getInnerHtmlMetadataList(this);\n if (innerHtmlList?.some(it => it.options.useShadow === true) && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n }\n\n private _syncDecorators() {\n this._buildStateMap();\n\n const getSearchRoots = (rootOption?: string): Node[] => {\n const roots: Node[] = [];\n if (rootOption === 'shadow') {\n if (this.shadowRoot) roots.push(this.shadowRoot);\n } else if (rootOption === 'light') {\n roots.push(this as any as Node);\n } else if (rootOption === 'all') {\n if (this.shadowRoot) roots.push(this.shadowRoot);\n roots.push(this as any as Node);\n } else {\n // Default: 'auto'\n roots.push(this.shadowRoot || (this as any as Node));\n }\n return roots;\n };\n\n const queryMetadata = getQueryMetadata(this);\n if (queryMetadata) {\n queryMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const searchRoots = getSearchRoots(it.options.root);\n let foundEl: Element | null = null;\n for (const root of searchRoots) {\n foundEl = it.selector ? (root as HTMLElement).querySelector(it.selector) : (this as any as Element);\n if (foundEl) break;\n }\n if (foundEl) {\n let bound = this._boundElements.get(foundEl);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(foundEl, bound);\n }\n if (!bound.has(it.propertyKey)) {\n (this as any)[it.propertyKey](foundEl);\n bound.add(it.propertyKey);\n }\n }\n });\n }\n\n const queryAllMetadata = getQueryAllMetadata(this);\n if (queryAllMetadata) {\n queryAllMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const searchRoots = getSearchRoots(it.options.root);\n const allElements: Element[] = [];\n searchRoots.forEach(root => {\n const found = it.selector ? (root as HTMLElement).querySelectorAll(it.selector) : [this as any as Element];\n allElements.push(...Array.from(found));\n });\n (this as any)[it.propertyKey](allElements);\n });\n }\n\n const eventListeners = getAddEventListenerMetadata(this);\n if (eventListeners) {\n eventListeners.forEach(it => {\n const { query, type, root: rootOption, ...options } = it.options;\n const searchRoots = getSearchRoots(rootOption);\n searchRoots.forEach(root => {\n const targetElements = query ? (root as HTMLElement).querySelectorAll(query) : [this as any as Element];\n targetElements.forEach(targetElement => {\n if (targetElement) {\n let bound = this._boundElements.get(targetElement);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(targetElement, bound);\n }\n const eventKey = `event:${String(it.propertyKey)}:${type}`;\n if (!bound.has(eventKey)) {\n const handler = (event: any) => {\n if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (it.options.stopPropagation) event.stopPropagation();\n if (it.options.preventDefault) event.preventDefault();\n (this as any)[it.propertyKey](event, targetElement);\n };\n targetElement.addEventListener(type, handler, options);\n bound.add(eventKey);\n if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });\n const addEventMethods = getLifecycleMetadata(this, ON_ADD_EVENT_LISTENER_METADATA_KEY);\n addEventMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m](targetElement, type, handler);\n });\n }\n }\n });\n });\n });\n }\n }\n\n private _buildStateMap() {\n this._stateBindings.clear();\n this._externalSources.clear();\n const scan = (root: Node) => {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);\n let node: Node | null = null;\n while ((node = walker.nextNode())) {\n if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, 'text');\n else if (node.nodeType === Node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n const alias = el.getAttribute('as');\n if (alias) {\n this._externalSources.set(alias, el);\n el.addEventListener(STATE_CHANGE_EVENT, () => this._updateState(alias));\n }\n Array.from(el.attributes).forEach(attr => this._parseAndBind(attr, 'attribute', el));\n }\n }\n };\n if (this.shadowRoot) scan(this.shadowRoot);\n scan(this as any as Node);\n }\n\n private _parseAndBind(node: Node | Attr, type: 'text' | 'attribute', owner?: HTMLElement) {\n const content = node.textContent || '';\n const matches = Array.from(content.matchAll(/{{(.*?)}}/g));\n if (matches.length === 0) return;\n matches.forEach(match => {\n const fullPath = match[1].trim();\n const rootName = fullPath.split('.')[0];\n const isState = stateList?.some(s => s.options.name === rootName);\n const isLogicKey = (this as any)._asKey === rootName || (this as any)._asIndexKey === rootName;\n const isExternal = this._externalSources.has(rootName);\n const isSelfAlias = this.getAttribute('as') === rootName;\n if (!isState && !isLogicKey && !isExternal && !isSelfAlias) return;\n if (!this._stateBindings.has(rootName)) this._stateBindings.set(rootName, []);\n const tplKey = `__swc_original_${this._swcId}`;\n if (!(node as any)[tplKey]) (node as any)[tplKey] = content;\n this._stateBindings.get(rootName)!.push({ node, type, owner, path: fullPath });\n this._updateState(rootName);\n });\n }\n\n private _updateState(stateName: string) {\n if (!this._stateBindings) return;\n this._executeBindingUpdate(stateName);\n const selfAlias = this.getAttribute('as');\n if (selfAlias && selfAlias !== stateName) this._executeBindingUpdate(selfAlias);\n this.dispatchEvent(new CustomEvent(STATE_CHANGE_EVENT, { bubbles: true, composed: true }));\n }\n\n private _executeBindingUpdate(stateName: string) {\n const bindings = this._stateBindings.get(stateName);\n if (!bindings) return;\n const tplKey = `__swc_original_${this._swcId}`;\n bindings.forEach(bin => {\n let text = (bin.node as any)[tplKey];\n const matches = Array.from(text.matchAll(/{{(.*?)}}/g));\n for (const match of matches) {\n const path = match[1].trim();\n const root = path.split('.')[0];\n let val: any = undefined;\n let current: HTMLElement | null = this as any as HTMLElement;\n while (current) {\n const currentNewClass = current as any;\n if (current.getAttribute('as') === root) {\n val = SwcUtils.getValueByPath(current, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== undefined) break;\n }\n const externalSource = currentNewClass._externalSources?.get(root);\n if (externalSource) {\n val = SwcUtils.getValueByPath(externalSource, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== undefined) break;\n }\n const cStates = getStateMetadataList(current.constructor);\n const cAttrs = getAttributeMetadataList(current.constructor);\n const sMeta = cStates?.find(s => s.options.name === root);\n const aMeta = cAttrs?.find(a => a.options.name === root);\n if (sMeta || aMeta) {\n let aPath = path;\n if (sMeta && sMeta.options.name !== String(sMeta.propertyKey)) aPath = path.replace(sMeta.options.name!, String(sMeta.propertyKey));\n else if (aMeta && aMeta.options.name !== String(aMeta.propertyKey)) aPath = path.replace(aMeta.options.name!, String(aMeta.propertyKey));\n val = SwcUtils.getValueByPath(current, aPath, root);\n if (val !== undefined) break;\n }\n current = current.parentElement || (current.getRootNode() as any).host;\n }\n if (val !== undefined) {\n const strVal = val === null || val === undefined ? '' : typeof val === 'object' ? '[Object]' : String(val);\n text = text.replace(match[0], strVal);\n if (bin.type === 'attribute' && bin.owner) {\n if (val === null || val === undefined) bin.owner.removeAttribute(bin.attrName!);\n else bin.owner.setAttribute(bin.attrName!, text);\n }\n }\n }\n if (bin.type === 'text') bin.node.textContent = text;\n });\n }\n\n disconnectedCallback() {\n const bMethods = getLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (this._observer) this._observer.disconnect();\n if (config.autoRemoveEventListeners) {\n this._activeListeners.forEach(({ el, type, handler, options }) => el.removeEventListener(type, handler, options));\n this._activeListeners = [];\n }\n if (super.disconnectedCallback) super.disconnectedCallback();\n const aMethods = getLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n adoptedCallback() {\n const bMethods = getLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (super.adoptedCallback) super.adoptedCallback();\n const aMethods = getLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n async connectedCallback() {\n const bMethods = getLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (typeof (this as any).initCore === 'function') (this as any).initCore();\n const iHtmlList = getInnerHtmlMetadataList(this);\n let sContent = '';\n let lContent = '';\n if (iHtmlList) {\n for (const meta of iHtmlList) {\n const result = await (this as any)[meta.propertyKey]();\n if (result !== undefined) {\n if (meta.options.useShadow === true) sContent += result;\n else lContent += result;\n }\n }\n }\n if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;\n if (lContent) this.innerHTML = lContent;\n (this as any)._syncDecorators();\n this._observer = new MutationObserver(() => (this as any)._syncDecorators());\n this._observer.observe(this.shadowRoot || this, { childList: true, subtree: true });\n if (super.connectedCallback) await super.connectedCallback();\n const aMethods = getLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (super.attributeChangedCallback) super.attributeChangedCallback(name, oldValue, newValue);\n if (attributePropsList) {\n attributePropsList.forEach(meta => {\n if (meta.options.name === name) {\n if (String((this as any)[meta.propertyKey]) !== String(newValue)) (this as any)[meta.propertyKey] = newValue;\n }\n });\n }\n if (typeof (this as any)._updateState === 'function') (this as any)._updateState(name);\n const aMethodsMap = getLifecycleMetadata(constructor, ON_ATTRIBUTE_CHANGED_METADATA_KEY) as Map<string, (string | symbol)[]>;\n const mKeys = aMethodsMap?.get(name);\n if (mKeys && Array.isArray(mKeys))\n mKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n if (emitCustomEventList) {\n const eMeta = emitCustomEventList.find(it => it.options.attributeName === name);\n if (eMeta) {\n const eType = eMeta.options.type;\n const oHandler = this._emitHandlers.get(eType);\n if (oHandler) this.removeEventListener(eType, oHandler);\n if (newValue) {\n const nHandler = (e: Event) => {\n new Function('event', '$data', newValue).call(this, e, (e as CustomEvent).detail);\n };\n this.addEventListener(eType, nHandler);\n this._emitHandlers.set(eType, nHandler);\n }\n }\n }\n const wMethodsKeys = aMethodsMap?.get(ATTRIBUTE_CHANGED_WILDCARD);\n if (wMethodsKeys && Array.isArray(wMethodsKeys))\n wMethodsKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n }\n };\n\n const registry = config.customElementRegistry || (typeof customElements !== 'undefined' ? customElements : undefined);\n if (registry && !registry.get(config.name)) {\n registry.define(config.name, NewClass as any, config.extends ? { extends: config.extends } : undefined);\n }\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, NewClass);\n return NewClass as any;\n };\n\nexport const getElementConfig = (target: any): ElementConfig | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }