@dooboostore/simple-web-component 1.0.5 → 1.0.6

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