@dooboostore/simple-web-component 1.0.6 → 1.0.8

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 (346) hide show
  1. package/README.md +161 -84
  2. package/dist/cjs/decorators/addEventListener.js.map +1 -1
  3. package/dist/cjs/decorators/elementDefine.js +78 -44
  4. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  5. package/dist/cjs/decorators/query.js +27 -5
  6. package/dist/cjs/decorators/query.js.map +2 -2
  7. package/dist/cjs/decorators/queryAll.js +27 -5
  8. package/dist/cjs/decorators/queryAll.js.map +2 -2
  9. package/dist/cjs/decorators/state.js.map +1 -1
  10. package/dist/cjs/elements/SwcChoose.js.map +2 -2
  11. package/dist/cjs/elements/SwcForOf.js +3 -1
  12. package/dist/cjs/elements/SwcForOf.js.map +2 -2
  13. package/dist/cjs/elements/SwcObject.js +8 -6
  14. package/dist/cjs/elements/SwcObject.js.map +2 -2
  15. package/dist/cjs/index.js +3 -6
  16. package/dist/cjs/index.js.map +2 -2
  17. package/dist/cjs/is/SwcIfAnchor.js +1 -1
  18. package/dist/cjs/is/SwcIfAnchor.js.map +2 -2
  19. package/dist/cjs/is/SwcIfArea.js +1 -1
  20. package/dist/cjs/is/SwcIfArea.js.map +2 -2
  21. package/dist/cjs/is/SwcIfAudio.js +1 -1
  22. package/dist/cjs/is/SwcIfAudio.js.map +2 -2
  23. package/dist/cjs/is/SwcIfBase.js +1 -1
  24. package/dist/cjs/is/SwcIfBase.js.map +2 -2
  25. package/dist/cjs/is/SwcIfButton.js +1 -1
  26. package/dist/cjs/is/SwcIfButton.js.map +2 -2
  27. package/dist/cjs/is/SwcIfCanvas.js +1 -1
  28. package/dist/cjs/is/SwcIfCanvas.js.map +2 -2
  29. package/dist/cjs/is/SwcIfData.js +1 -1
  30. package/dist/cjs/is/SwcIfData.js.map +2 -2
  31. package/dist/cjs/is/SwcIfDataList.js +1 -1
  32. package/dist/cjs/is/SwcIfDataList.js.map +2 -2
  33. package/dist/cjs/is/SwcIfDetails.js +1 -1
  34. package/dist/cjs/is/SwcIfDetails.js.map +2 -2
  35. package/dist/cjs/is/SwcIfDialog.js +1 -1
  36. package/dist/cjs/is/SwcIfDialog.js.map +2 -2
  37. package/dist/cjs/is/SwcIfDiv.js +1 -1
  38. package/dist/cjs/is/SwcIfDiv.js.map +2 -2
  39. package/dist/cjs/is/SwcIfDl.js +1 -1
  40. package/dist/cjs/is/SwcIfDl.js.map +2 -2
  41. package/dist/cjs/is/SwcIfEmbed.js +1 -1
  42. package/dist/cjs/is/SwcIfEmbed.js.map +2 -2
  43. package/dist/cjs/is/SwcIfFieldSet.js +1 -1
  44. package/dist/cjs/is/SwcIfFieldSet.js.map +2 -2
  45. package/dist/cjs/is/SwcIfForm.js +1 -1
  46. package/dist/cjs/is/SwcIfForm.js.map +2 -2
  47. package/dist/cjs/is/SwcIfHeading.js +1 -1
  48. package/dist/cjs/is/SwcIfHeading.js.map +2 -2
  49. package/dist/cjs/is/SwcIfHr.js +1 -1
  50. package/dist/cjs/is/SwcIfHr.js.map +2 -2
  51. package/dist/cjs/is/SwcIfIFrame.js +1 -1
  52. package/dist/cjs/is/SwcIfIFrame.js.map +2 -2
  53. package/dist/cjs/is/SwcIfImage.js +1 -1
  54. package/dist/cjs/is/SwcIfImage.js.map +2 -2
  55. package/dist/cjs/is/SwcIfInput.js +1 -1
  56. package/dist/cjs/is/SwcIfInput.js.map +2 -2
  57. package/dist/cjs/is/SwcIfLabel.js +1 -1
  58. package/dist/cjs/is/SwcIfLabel.js.map +2 -2
  59. package/dist/cjs/is/SwcIfLegend.js +1 -1
  60. package/dist/cjs/is/SwcIfLegend.js.map +2 -2
  61. package/dist/cjs/is/SwcIfLi.js +1 -1
  62. package/dist/cjs/is/SwcIfLi.js.map +2 -2
  63. package/dist/cjs/is/SwcIfLink.js +1 -1
  64. package/dist/cjs/is/SwcIfLink.js.map +2 -2
  65. package/dist/cjs/is/SwcIfMap.js +1 -1
  66. package/dist/cjs/is/SwcIfMap.js.map +2 -2
  67. package/dist/cjs/is/SwcIfMeta.js +1 -1
  68. package/dist/cjs/is/SwcIfMeta.js.map +2 -2
  69. package/dist/cjs/is/SwcIfMeter.js +1 -1
  70. package/dist/cjs/is/SwcIfMeter.js.map +2 -2
  71. package/dist/cjs/is/SwcIfMod.js +1 -1
  72. package/dist/cjs/is/SwcIfMod.js.map +2 -2
  73. package/dist/cjs/is/SwcIfObject.js +1 -1
  74. package/dist/cjs/is/SwcIfObject.js.map +2 -2
  75. package/dist/cjs/is/SwcIfOl.js +1 -1
  76. package/dist/cjs/is/SwcIfOl.js.map +2 -2
  77. package/dist/cjs/is/SwcIfOptGroup.js +1 -1
  78. package/dist/cjs/is/SwcIfOptGroup.js.map +2 -2
  79. package/dist/cjs/is/SwcIfOption.js +1 -1
  80. package/dist/cjs/is/SwcIfOption.js.map +2 -2
  81. package/dist/cjs/is/SwcIfOutput.js +1 -1
  82. package/dist/cjs/is/SwcIfOutput.js.map +2 -2
  83. package/dist/cjs/is/SwcIfParagraph.js +1 -1
  84. package/dist/cjs/is/SwcIfParagraph.js.map +2 -2
  85. package/dist/cjs/is/SwcIfParam.js +1 -1
  86. package/dist/cjs/is/SwcIfParam.js.map +2 -2
  87. package/dist/cjs/is/SwcIfPicture.js +1 -1
  88. package/dist/cjs/is/SwcIfPicture.js.map +2 -2
  89. package/dist/cjs/is/SwcIfPre.js +1 -1
  90. package/dist/cjs/is/SwcIfPre.js.map +2 -2
  91. package/dist/cjs/is/SwcIfProgress.js +1 -1
  92. package/dist/cjs/is/SwcIfProgress.js.map +2 -2
  93. package/dist/cjs/is/SwcIfQuote.js +1 -1
  94. package/dist/cjs/is/SwcIfQuote.js.map +2 -2
  95. package/dist/cjs/is/SwcIfScript.js +1 -1
  96. package/dist/cjs/is/SwcIfScript.js.map +2 -2
  97. package/dist/cjs/is/SwcIfSelect.js +1 -1
  98. package/dist/cjs/is/SwcIfSelect.js.map +2 -2
  99. package/dist/cjs/is/SwcIfSlot.js +1 -1
  100. package/dist/cjs/is/SwcIfSlot.js.map +2 -2
  101. package/dist/cjs/is/SwcIfSource.js +1 -1
  102. package/dist/cjs/is/SwcIfSource.js.map +2 -2
  103. package/dist/cjs/is/SwcIfSpan.js +1 -1
  104. package/dist/cjs/is/SwcIfSpan.js.map +2 -2
  105. package/dist/cjs/is/SwcIfStyle.js +1 -1
  106. package/dist/cjs/is/SwcIfStyle.js.map +2 -2
  107. package/dist/cjs/is/SwcIfTable.js +1 -1
  108. package/dist/cjs/is/SwcIfTable.js.map +2 -2
  109. package/dist/cjs/is/SwcIfTableCell.js +1 -1
  110. package/dist/cjs/is/SwcIfTableCell.js.map +2 -2
  111. package/dist/cjs/is/SwcIfTableRow.js +1 -1
  112. package/dist/cjs/is/SwcIfTableRow.js.map +2 -2
  113. package/dist/cjs/is/SwcIfTableSection.js +1 -1
  114. package/dist/cjs/is/SwcIfTableSection.js.map +2 -2
  115. package/dist/cjs/is/SwcIfTemplate.js +1 -1
  116. package/dist/cjs/is/SwcIfTemplate.js.map +2 -2
  117. package/dist/cjs/is/SwcIfTextArea.js +1 -1
  118. package/dist/cjs/is/SwcIfTextArea.js.map +2 -2
  119. package/dist/cjs/is/SwcIfTime.js +1 -1
  120. package/dist/cjs/is/SwcIfTime.js.map +2 -2
  121. package/dist/cjs/is/SwcIfTitle.js +1 -1
  122. package/dist/cjs/is/SwcIfTitle.js.map +2 -2
  123. package/dist/cjs/is/SwcIfTrack.js +1 -1
  124. package/dist/cjs/is/SwcIfTrack.js.map +2 -2
  125. package/dist/cjs/is/SwcIfUl.js +1 -1
  126. package/dist/cjs/is/SwcIfUl.js.map +2 -2
  127. package/dist/cjs/is/SwcIfVideo.js +1 -1
  128. package/dist/cjs/is/SwcIfVideo.js.map +2 -2
  129. package/dist/cjs/utils/Utils.js +13 -22
  130. package/dist/cjs/utils/Utils.js.map +2 -2
  131. package/dist/esm/decorators/addEventListener.js.map +1 -1
  132. package/dist/esm/decorators/elementDefine.js +78 -44
  133. package/dist/esm/decorators/elementDefine.js.map +2 -2
  134. package/dist/esm/decorators/query.js +27 -5
  135. package/dist/esm/decorators/query.js.map +2 -2
  136. package/dist/esm/decorators/queryAll.js +27 -5
  137. package/dist/esm/decorators/queryAll.js.map +2 -2
  138. package/dist/esm/decorators/state.js.map +1 -1
  139. package/dist/esm/elements/SwcChoose.js.map +2 -2
  140. package/dist/esm/elements/SwcForOf.js +3 -1
  141. package/dist/esm/elements/SwcForOf.js.map +2 -2
  142. package/dist/esm/elements/SwcObject.js +8 -6
  143. package/dist/esm/elements/SwcObject.js.map +2 -2
  144. package/dist/esm/index.js +3 -6
  145. package/dist/esm/index.js.map +2 -2
  146. package/dist/esm/is/SwcIfAnchor.js +1 -1
  147. package/dist/esm/is/SwcIfAnchor.js.map +2 -2
  148. package/dist/esm/is/SwcIfArea.js +1 -1
  149. package/dist/esm/is/SwcIfArea.js.map +2 -2
  150. package/dist/esm/is/SwcIfAudio.js +1 -1
  151. package/dist/esm/is/SwcIfAudio.js.map +2 -2
  152. package/dist/esm/is/SwcIfBase.js +1 -1
  153. package/dist/esm/is/SwcIfBase.js.map +2 -2
  154. package/dist/esm/is/SwcIfButton.js +1 -1
  155. package/dist/esm/is/SwcIfButton.js.map +2 -2
  156. package/dist/esm/is/SwcIfCanvas.js +1 -1
  157. package/dist/esm/is/SwcIfCanvas.js.map +2 -2
  158. package/dist/esm/is/SwcIfData.js +1 -1
  159. package/dist/esm/is/SwcIfData.js.map +2 -2
  160. package/dist/esm/is/SwcIfDataList.js +1 -1
  161. package/dist/esm/is/SwcIfDataList.js.map +2 -2
  162. package/dist/esm/is/SwcIfDetails.js +1 -1
  163. package/dist/esm/is/SwcIfDetails.js.map +2 -2
  164. package/dist/esm/is/SwcIfDialog.js +1 -1
  165. package/dist/esm/is/SwcIfDialog.js.map +2 -2
  166. package/dist/esm/is/SwcIfDiv.js +1 -1
  167. package/dist/esm/is/SwcIfDiv.js.map +2 -2
  168. package/dist/esm/is/SwcIfDl.js +1 -1
  169. package/dist/esm/is/SwcIfDl.js.map +2 -2
  170. package/dist/esm/is/SwcIfEmbed.js +1 -1
  171. package/dist/esm/is/SwcIfEmbed.js.map +2 -2
  172. package/dist/esm/is/SwcIfFieldSet.js +1 -1
  173. package/dist/esm/is/SwcIfFieldSet.js.map +2 -2
  174. package/dist/esm/is/SwcIfForm.js +1 -1
  175. package/dist/esm/is/SwcIfForm.js.map +2 -2
  176. package/dist/esm/is/SwcIfHeading.js +1 -1
  177. package/dist/esm/is/SwcIfHeading.js.map +2 -2
  178. package/dist/esm/is/SwcIfHr.js +1 -1
  179. package/dist/esm/is/SwcIfHr.js.map +2 -2
  180. package/dist/esm/is/SwcIfIFrame.js +1 -1
  181. package/dist/esm/is/SwcIfIFrame.js.map +2 -2
  182. package/dist/esm/is/SwcIfImage.js +1 -1
  183. package/dist/esm/is/SwcIfImage.js.map +2 -2
  184. package/dist/esm/is/SwcIfInput.js +1 -1
  185. package/dist/esm/is/SwcIfInput.js.map +2 -2
  186. package/dist/esm/is/SwcIfLabel.js +1 -1
  187. package/dist/esm/is/SwcIfLabel.js.map +2 -2
  188. package/dist/esm/is/SwcIfLegend.js +1 -1
  189. package/dist/esm/is/SwcIfLegend.js.map +2 -2
  190. package/dist/esm/is/SwcIfLi.js +1 -1
  191. package/dist/esm/is/SwcIfLi.js.map +2 -2
  192. package/dist/esm/is/SwcIfLink.js +1 -1
  193. package/dist/esm/is/SwcIfLink.js.map +2 -2
  194. package/dist/esm/is/SwcIfMap.js +1 -1
  195. package/dist/esm/is/SwcIfMap.js.map +2 -2
  196. package/dist/esm/is/SwcIfMeta.js +1 -1
  197. package/dist/esm/is/SwcIfMeta.js.map +2 -2
  198. package/dist/esm/is/SwcIfMeter.js +1 -1
  199. package/dist/esm/is/SwcIfMeter.js.map +2 -2
  200. package/dist/esm/is/SwcIfMod.js +1 -1
  201. package/dist/esm/is/SwcIfMod.js.map +2 -2
  202. package/dist/esm/is/SwcIfObject.js +1 -1
  203. package/dist/esm/is/SwcIfObject.js.map +2 -2
  204. package/dist/esm/is/SwcIfOl.js +1 -1
  205. package/dist/esm/is/SwcIfOl.js.map +2 -2
  206. package/dist/esm/is/SwcIfOptGroup.js +1 -1
  207. package/dist/esm/is/SwcIfOptGroup.js.map +2 -2
  208. package/dist/esm/is/SwcIfOption.js +1 -1
  209. package/dist/esm/is/SwcIfOption.js.map +2 -2
  210. package/dist/esm/is/SwcIfOutput.js +1 -1
  211. package/dist/esm/is/SwcIfOutput.js.map +2 -2
  212. package/dist/esm/is/SwcIfParagraph.js +1 -1
  213. package/dist/esm/is/SwcIfParagraph.js.map +2 -2
  214. package/dist/esm/is/SwcIfParam.js +1 -1
  215. package/dist/esm/is/SwcIfParam.js.map +2 -2
  216. package/dist/esm/is/SwcIfPicture.js +1 -1
  217. package/dist/esm/is/SwcIfPicture.js.map +2 -2
  218. package/dist/esm/is/SwcIfPre.js +1 -1
  219. package/dist/esm/is/SwcIfPre.js.map +2 -2
  220. package/dist/esm/is/SwcIfProgress.js +1 -1
  221. package/dist/esm/is/SwcIfProgress.js.map +2 -2
  222. package/dist/esm/is/SwcIfQuote.js +1 -1
  223. package/dist/esm/is/SwcIfQuote.js.map +2 -2
  224. package/dist/esm/is/SwcIfScript.js +1 -1
  225. package/dist/esm/is/SwcIfScript.js.map +2 -2
  226. package/dist/esm/is/SwcIfSelect.js +1 -1
  227. package/dist/esm/is/SwcIfSelect.js.map +2 -2
  228. package/dist/esm/is/SwcIfSlot.js +1 -1
  229. package/dist/esm/is/SwcIfSlot.js.map +2 -2
  230. package/dist/esm/is/SwcIfSource.js +1 -1
  231. package/dist/esm/is/SwcIfSource.js.map +2 -2
  232. package/dist/esm/is/SwcIfSpan.js +1 -1
  233. package/dist/esm/is/SwcIfSpan.js.map +2 -2
  234. package/dist/esm/is/SwcIfStyle.js +1 -1
  235. package/dist/esm/is/SwcIfStyle.js.map +2 -2
  236. package/dist/esm/is/SwcIfTable.js +1 -1
  237. package/dist/esm/is/SwcIfTable.js.map +2 -2
  238. package/dist/esm/is/SwcIfTableCell.js +1 -1
  239. package/dist/esm/is/SwcIfTableCell.js.map +2 -2
  240. package/dist/esm/is/SwcIfTableRow.js +1 -1
  241. package/dist/esm/is/SwcIfTableRow.js.map +2 -2
  242. package/dist/esm/is/SwcIfTableSection.js +1 -1
  243. package/dist/esm/is/SwcIfTableSection.js.map +2 -2
  244. package/dist/esm/is/SwcIfTemplate.js +1 -1
  245. package/dist/esm/is/SwcIfTemplate.js.map +2 -2
  246. package/dist/esm/is/SwcIfTextArea.js +1 -1
  247. package/dist/esm/is/SwcIfTextArea.js.map +2 -2
  248. package/dist/esm/is/SwcIfTime.js +1 -1
  249. package/dist/esm/is/SwcIfTime.js.map +2 -2
  250. package/dist/esm/is/SwcIfTitle.js +1 -1
  251. package/dist/esm/is/SwcIfTitle.js.map +2 -2
  252. package/dist/esm/is/SwcIfTrack.js +1 -1
  253. package/dist/esm/is/SwcIfTrack.js.map +2 -2
  254. package/dist/esm/is/SwcIfUl.js +1 -1
  255. package/dist/esm/is/SwcIfUl.js.map +2 -2
  256. package/dist/esm/is/SwcIfVideo.js +1 -1
  257. package/dist/esm/is/SwcIfVideo.js.map +2 -2
  258. package/dist/esm/utils/Utils.js +13 -22
  259. package/dist/esm/utils/Utils.js.map +2 -2
  260. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +1970 -2045
  261. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  262. package/dist/types/decorators/addEventListener.d.ts +1 -1
  263. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  264. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  265. package/dist/types/decorators/query.d.ts +5 -2
  266. package/dist/types/decorators/query.d.ts.map +1 -1
  267. package/dist/types/decorators/queryAll.d.ts +5 -2
  268. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  269. package/dist/types/decorators/state.d.ts +1 -1
  270. package/dist/types/decorators/state.d.ts.map +1 -1
  271. package/dist/types/elements/SwcChoose.d.ts.map +1 -1
  272. package/dist/types/elements/SwcForOf.d.ts.map +1 -1
  273. package/dist/types/elements/SwcObject.d.ts.map +1 -1
  274. package/dist/types/index.d.ts +3 -6
  275. package/dist/types/index.d.ts.map +1 -1
  276. package/dist/types/utils/Utils.d.ts +1 -1
  277. package/dist/types/utils/Utils.d.ts.map +1 -1
  278. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +1970 -2045
  279. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  280. package/package.json +4 -4
  281. package/src/decorators/addEventListener.ts +1 -1
  282. package/src/decorators/elementDefine.ts +105 -44
  283. package/src/decorators/query.ts +35 -8
  284. package/src/decorators/queryAll.ts +35 -8
  285. package/src/decorators/state.ts +1 -1
  286. package/src/elements/SwcChoose.ts +1 -5
  287. package/src/elements/SwcForOf.ts +2 -1
  288. package/src/elements/SwcObject.ts +8 -6
  289. package/src/index.ts +3 -6
  290. package/src/is/SwcIfAnchor.ts +1 -1
  291. package/src/is/SwcIfArea.ts +1 -1
  292. package/src/is/SwcIfAudio.ts +1 -1
  293. package/src/is/SwcIfBase.ts +1 -1
  294. package/src/is/SwcIfButton.ts +1 -1
  295. package/src/is/SwcIfCanvas.ts +1 -1
  296. package/src/is/SwcIfData.ts +1 -1
  297. package/src/is/SwcIfDataList.ts +1 -1
  298. package/src/is/SwcIfDetails.ts +1 -1
  299. package/src/is/SwcIfDialog.ts +1 -1
  300. package/src/is/SwcIfDiv.ts +1 -1
  301. package/src/is/SwcIfDl.ts +1 -1
  302. package/src/is/SwcIfEmbed.ts +1 -1
  303. package/src/is/SwcIfFieldSet.ts +1 -1
  304. package/src/is/SwcIfForm.ts +1 -1
  305. package/src/is/SwcIfHeading.ts +1 -1
  306. package/src/is/SwcIfHr.ts +1 -1
  307. package/src/is/SwcIfIFrame.ts +1 -1
  308. package/src/is/SwcIfImage.ts +1 -1
  309. package/src/is/SwcIfInput.ts +1 -1
  310. package/src/is/SwcIfLabel.ts +1 -1
  311. package/src/is/SwcIfLegend.ts +1 -1
  312. package/src/is/SwcIfLi.ts +1 -1
  313. package/src/is/SwcIfLink.ts +1 -1
  314. package/src/is/SwcIfMap.ts +1 -1
  315. package/src/is/SwcIfMeta.ts +1 -1
  316. package/src/is/SwcIfMeter.ts +1 -1
  317. package/src/is/SwcIfMod.ts +1 -1
  318. package/src/is/SwcIfObject.ts +1 -1
  319. package/src/is/SwcIfOl.ts +1 -1
  320. package/src/is/SwcIfOptGroup.ts +1 -1
  321. package/src/is/SwcIfOption.ts +1 -1
  322. package/src/is/SwcIfOutput.ts +1 -1
  323. package/src/is/SwcIfParagraph.ts +1 -1
  324. package/src/is/SwcIfParam.ts +1 -1
  325. package/src/is/SwcIfPicture.ts +1 -1
  326. package/src/is/SwcIfPre.ts +1 -1
  327. package/src/is/SwcIfProgress.ts +1 -1
  328. package/src/is/SwcIfQuote.ts +1 -1
  329. package/src/is/SwcIfScript.ts +1 -1
  330. package/src/is/SwcIfSelect.ts +1 -1
  331. package/src/is/SwcIfSlot.ts +1 -1
  332. package/src/is/SwcIfSource.ts +1 -1
  333. package/src/is/SwcIfSpan.ts +1 -1
  334. package/src/is/SwcIfStyle.ts +1 -1
  335. package/src/is/SwcIfTable.ts +1 -1
  336. package/src/is/SwcIfTableCell.ts +1 -1
  337. package/src/is/SwcIfTableRow.ts +1 -1
  338. package/src/is/SwcIfTableSection.ts +1 -1
  339. package/src/is/SwcIfTemplate.ts +1 -1
  340. package/src/is/SwcIfTextArea.ts +1 -1
  341. package/src/is/SwcIfTime.ts +1 -1
  342. package/src/is/SwcIfTitle.ts +1 -1
  343. package/src/is/SwcIfTrack.ts +1 -1
  344. package/src/is/SwcIfUl.ts +1 -1
  345. package/src/is/SwcIfVideo.ts +1 -1
  346. package/src/utils/Utils.ts +18 -32
@@ -136,19 +136,37 @@ const elementDefine = (inConfig) => (constructor) => {
136
136
  }
137
137
  _syncDecorators() {
138
138
  this._buildStateMap();
139
+ const getSearchRoots = (rootOption) => {
140
+ const roots = [];
141
+ if (rootOption === "shadow") {
142
+ if (this.shadowRoot) roots.push(this.shadowRoot);
143
+ } else if (rootOption === "light") {
144
+ roots.push(this);
145
+ } else if (rootOption === "all") {
146
+ if (this.shadowRoot) roots.push(this.shadowRoot);
147
+ roots.push(this);
148
+ } else {
149
+ roots.push(this.shadowRoot || this);
150
+ }
151
+ return roots;
152
+ };
139
153
  const queryMetadata = getQueryMetadata(this);
140
154
  if (queryMetadata) {
141
155
  queryMetadata.filter((it) => it.isMethod).forEach((it) => {
142
- const root = it.options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
143
- const element = root.querySelector(it.selector);
144
- if (element) {
145
- let bound = this._boundElements.get(element);
156
+ const searchRoots = getSearchRoots(it.options.root);
157
+ let foundEl = null;
158
+ for (const root of searchRoots) {
159
+ foundEl = it.selector ? root.querySelector(it.selector) : this;
160
+ if (foundEl) break;
161
+ }
162
+ if (foundEl) {
163
+ let bound = this._boundElements.get(foundEl);
146
164
  if (!bound) {
147
165
  bound = /* @__PURE__ */ new Set();
148
- this._boundElements.set(element, bound);
166
+ this._boundElements.set(foundEl, bound);
149
167
  }
150
168
  if (!bound.has(it.propertyKey)) {
151
- this[it.propertyKey](element);
169
+ this[it.propertyKey](foundEl);
152
170
  bound.add(it.propertyKey);
153
171
  }
154
172
  }
@@ -157,48 +175,52 @@ const elementDefine = (inConfig) => (constructor) => {
157
175
  const queryAllMetadata = getQueryAllMetadata(this);
158
176
  if (queryAllMetadata) {
159
177
  queryAllMetadata.filter((it) => it.isMethod).forEach((it) => {
160
- const root = it.options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
161
- const elements = root.querySelectorAll(it.selector);
162
- this[it.propertyKey](elements);
178
+ const searchRoots = getSearchRoots(it.options.root);
179
+ const allElements = [];
180
+ searchRoots.forEach((root) => {
181
+ const found = it.selector ? root.querySelectorAll(it.selector) : [this];
182
+ allElements.push(...Array.from(found));
183
+ });
184
+ this[it.propertyKey](allElements);
163
185
  });
164
186
  }
165
187
  const eventListeners = getAddEventListenerMetadata(this);
166
188
  if (eventListeners) {
167
189
  eventListeners.forEach((it) => {
168
- const { query, type, useShadow, ...options } = it.options;
169
- const root = useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
170
- const targetElements = query ? root.querySelectorAll(query) : [this];
171
- targetElements.forEach((targetElement) => {
172
- if (targetElement) {
173
- let bound = this._boundElements.get(targetElement);
174
- if (!bound) {
175
- bound = /* @__PURE__ */ new Set();
176
- this._boundElements.set(targetElement, bound);
190
+ const { query, type, root: rootOption, ...options } = it.options;
191
+ const searchRoots = getSearchRoots(rootOption);
192
+ searchRoots.forEach((root) => {
193
+ const targetElements = query ? root.querySelectorAll(query) : [this];
194
+ targetElements.forEach((targetElement) => {
195
+ if (targetElement) {
196
+ let bound = this._boundElements.get(targetElement);
197
+ if (!bound) {
198
+ bound = /* @__PURE__ */ new Set();
199
+ this._boundElements.set(targetElement, bound);
200
+ }
201
+ const eventKey = `event:${String(it.propertyKey)}:${type}`;
202
+ if (!bound.has(eventKey)) {
203
+ const handler = (event) => {
204
+ if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();
205
+ if (it.options.stopPropagation) event.stopPropagation();
206
+ if (it.options.preventDefault) event.preventDefault();
207
+ this[it.propertyKey](event, targetElement);
208
+ };
209
+ targetElement.addEventListener(type, handler, options);
210
+ bound.add(eventKey);
211
+ if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });
212
+ const addEventMethods = getLifecycleMetadata(this, ON_ADD_EVENT_LISTENER_METADATA_KEY);
213
+ addEventMethods?.forEach((m) => {
214
+ if (typeof this[m] === "function") this[m](targetElement, type, handler);
215
+ });
216
+ }
177
217
  }
178
- const eventKey = `event:${String(it.propertyKey)}:${type}`;
179
- if (!bound.has(eventKey)) {
180
- const handler = (event) => {
181
- if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();
182
- if (it.options.stopPropagation) event.stopPropagation();
183
- if (it.options.preventDefault) event.preventDefault();
184
- this[it.propertyKey](event, targetElement);
185
- };
186
- targetElement.addEventListener(type, handler, options);
187
- bound.add(eventKey);
188
- if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });
189
- const addEventMethods = getLifecycleMetadata(this, ON_ADD_EVENT_LISTENER_METADATA_KEY);
190
- addEventMethods?.forEach((m) => {
191
- if (typeof this[m] === "function") this[m](targetElement, type, handler);
192
- });
193
- }
194
- }
218
+ });
195
219
  });
196
220
  });
197
221
  }
198
222
  }
199
223
  _buildStateMap() {
200
- this._stateBindings.clear();
201
- this._externalSources.clear();
202
224
  const scan = (root) => {
203
225
  const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);
204
226
  let node = null;
@@ -207,7 +229,7 @@ const elementDefine = (inConfig) => (constructor) => {
207
229
  else if (node.nodeType === Node.ELEMENT_NODE) {
208
230
  const el = node;
209
231
  const alias = el.getAttribute("as");
210
- if (alias) {
232
+ if (alias && !this._externalSources.has(alias)) {
211
233
  this._externalSources.set(alias, el);
212
234
  el.addEventListener(STATE_CHANGE_EVENT, () => this._updateState(alias));
213
235
  }
@@ -219,9 +241,12 @@ const elementDefine = (inConfig) => (constructor) => {
219
241
  scan(this);
220
242
  }
221
243
  _parseAndBind(node, type, owner) {
222
- const content = node.textContent || "";
244
+ const tplKey = `__swc_original_${this._swcId}`;
245
+ const isAlreadyBound = node.__swc_bound_ids?.has(this._swcId);
246
+ const content = node[tplKey] || node.textContent || "";
223
247
  const matches = Array.from(content.matchAll(/{{(.*?)}}/g));
224
248
  if (matches.length === 0) return;
249
+ if (isAlreadyBound) return;
225
250
  matches.forEach((match) => {
226
251
  const fullPath = match[1].trim();
227
252
  const rootName = fullPath.split(".")[0];
@@ -231,8 +256,9 @@ const elementDefine = (inConfig) => (constructor) => {
231
256
  const isSelfAlias = this.getAttribute("as") === rootName;
232
257
  if (!isState && !isLogicKey && !isExternal && !isSelfAlias) return;
233
258
  if (!this._stateBindings.has(rootName)) this._stateBindings.set(rootName, []);
234
- const tplKey = `__swc_original_${this._swcId}`;
235
259
  if (!node[tplKey]) node[tplKey] = content;
260
+ if (!node.__swc_bound_ids) node.__swc_bound_ids = /* @__PURE__ */ new Set();
261
+ node.__swc_bound_ids.add(this._swcId);
236
262
  this._stateBindings.get(rootName).push({ node, type, owner, path: fullPath });
237
263
  this._updateState(rootName);
238
264
  });
@@ -250,7 +276,9 @@ const elementDefine = (inConfig) => (constructor) => {
250
276
  const tplKey = `__swc_original_${this._swcId}`;
251
277
  bindings.forEach((bin) => {
252
278
  let text = bin.node[tplKey];
279
+ if (!text) return;
253
280
  const matches = Array.from(text.matchAll(/{{(.*?)}}/g));
281
+ let updatedText = text;
254
282
  for (const match of matches) {
255
283
  const path = match[1].trim();
256
284
  const root = path.split(".")[0];
@@ -282,14 +310,20 @@ const elementDefine = (inConfig) => (constructor) => {
282
310
  }
283
311
  if (val !== void 0) {
284
312
  const strVal = val === null || val === void 0 ? "" : typeof val === "object" ? "[Object]" : String(val);
285
- text = text.replace(match[0], strVal);
313
+ updatedText = updatedText.replace(match[0], strVal);
286
314
  if (bin.type === "attribute" && bin.owner) {
287
- if (val === null || val === void 0) bin.owner.removeAttribute(bin.attrName);
288
- else bin.owner.setAttribute(bin.attrName, text);
315
+ const attrName = bin.node.name;
316
+ if (val === null || val === void 0) bin.owner.removeAttribute(attrName);
317
+ else {
318
+ bin.owner.setAttribute(attrName, updatedText);
319
+ if ((attrName === "value" || attrName === "checked") && bin.owner.tagName.match(/INPUT|TEXTAREA|SELECT/)) {
320
+ bin.owner[attrName] = updatedText;
321
+ }
322
+ }
289
323
  }
290
324
  }
291
325
  }
292
- if (bin.type === "text") bin.node.textContent = text;
326
+ if (bin.type === "text") bin.node.textContent = updatedText;
293
327
  });
294
328
  }
295
329
  disconnectedCallback() {
@@ -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 { 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 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 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 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 const eventListeners = getAddEventListenerMetadata(this);\n if (eventListeners) {\n eventListeners.forEach(it => {\n const { query, type, useShadow, ...options } = it.options;\n const root = useShadow !== false && this.shadowRoot ? this.shadowRoot : this;\n const targetElements = query ? root.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 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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",
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\n if (stateList) {\n stateList.forEach(meta => {\n const key = meta.propertyKey;\n const stateName = meta.options.name!;\n\n // \uD544\uB4DC \uCD08\uAE30\uD654\uB85C \uB36E\uC5B4\uC50C\uC6CC\uC9C0\uAE30 \uC804/\uD6C4\uC758 \uAC12\uC744 \uD655\uC2E4\uD788 \uB09A\uC544\uCC54\n const initialVal = (this as any)[key];\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(initialVal, () => this._updateState(stateName))\n );\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\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 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 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 // \uAE30\uC874 \uBC14\uC778\uB529 \uB9F5\uC744 \uC644\uC804\uD788 \uBE44\uC6B0\uC9C0 \uC54A\uACE0 \uC720\uC9C0\uD558\uBA74\uC11C \uC0C8\uB85C\uC6B4 \uB178\uB4DC\uB9CC \uCD94\uAC00\uD568 (\uBC14\uC778\uB529 \uC18C\uC2E4 \uBC29\uC9C0 \uD575\uC2EC)\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 && !this._externalSources.has(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 tplKey = `__swc_original_${this._swcId}`;\n // \uC774\uBBF8 \uC774 \uC778\uC2A4\uD134\uC2A4\uC5D0 \uC758\uD574 \uBC14\uC778\uB529\uB41C \uB178\uB4DC\uB77C\uBA74 \uC2A4\uD0B5 (\uC911\uBCF5 \uBC29\uC9C0)\n const isAlreadyBound = (node as any).__swc_bound_ids?.has(this._swcId);\n\n // \uD14D\uC2A4\uD2B8\uB294 \uC6D0\uBCF8 \uD15C\uD50C\uB9BF(tplKey)\uC5D0\uC11C, \uC5C6\uC73C\uBA74 \uD604\uC7AC \uB0B4\uC6A9\uC5D0\uC11C \uCD94\uCD9C\n const content = (node as any)[tplKey] || node.textContent || '';\n const matches = Array.from(content.matchAll(/{{(.*?)}}/g));\n if (matches.length === 0) return;\n\n if (isAlreadyBound) return;\n\n matches.forEach(match => {\n const fullPath = match[1].trim();\n const rootName = fullPath.split('.')[0];\n\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\n if (!isState && !isLogicKey && !isExternal && !isSelfAlias) return;\n\n if (!this._stateBindings.has(rootName)) this._stateBindings.set(rootName, []);\n\n if (!(node as any)[tplKey]) (node as any)[tplKey] = content;\n\n // \uBC14\uC778\uB529 ID \uAE30\uB85D\n if (!(node as any).__swc_bound_ids) (node as any).__swc_bound_ids = new Set();\n (node as any).__swc_bound_ids.add(this._swcId);\n\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\n bindings.forEach(bin => {\n let text = (bin.node as any)[tplKey];\n if (!text) return;\n\n const matches = Array.from(text.matchAll(/{{(.*?)}}/g));\n let updatedText = text;\n\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\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\n if (val !== undefined) {\n const strVal = val === null || val === undefined ? '' : typeof val === 'object' ? '[Object]' : String(val);\n updatedText = updatedText.replace(match[0], strVal);\n\n if (bin.type === 'attribute' && bin.owner) {\n const attrName = (bin.node as Attr).name;\n if (val === null || val === undefined) bin.owner.removeAttribute(attrName);\n else {\n bin.owner.setAttribute(attrName, updatedText);\n if ((attrName === 'value' || attrName === 'checked') && bin.owner.tagName.match(/INPUT|TEXTAREA|SELECT/)) {\n (bin.owner as any)[attrName] = updatedText;\n }\n }\n }\n }\n }\n if (bin.type === 'text') bin.node.textContent = updatedText;\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
  }
@@ -1,7 +1,7 @@
1
1
  import { ReflectUtils } from "@dooboostore/core/reflect/ReflectUtils";
2
2
  const QUERY_METADATA_KEY = Symbol("simple-web-component:query");
3
- const query = (selector, options = { useShadow: true }) => {
4
- return (target, propertyKey, descriptor) => {
3
+ function query(arg1, arg2) {
4
+ const decorator = (selector, options, target, propertyKey, descriptor) => {
5
5
  const isMethod = !!descriptor;
6
6
  const constructor = target.constructor;
7
7
  let queries = ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor);
@@ -13,15 +13,37 @@ const query = (selector, options = { useShadow: true }) => {
13
13
  if (!isMethod) {
14
14
  Object.defineProperty(target, propertyKey, {
15
15
  get() {
16
- const root = options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
17
- return root.querySelector(selector);
16
+ if (!selector)
17
+ return this;
18
+ let searchRoot = this;
19
+ if (options.root === "shadow")
20
+ searchRoot = this.shadowRoot || this;
21
+ else if (options.root === "light")
22
+ searchRoot = this;
23
+ else
24
+ searchRoot = this.shadowRoot || this;
25
+ return searchRoot.querySelector(selector);
18
26
  },
19
27
  enumerable: true,
20
28
  configurable: true
21
29
  });
22
30
  }
23
31
  };
24
- };
32
+ if (arg1 && typeof arg2 === "string") {
33
+ return decorator("", {}, arg1, arg2);
34
+ }
35
+ return (target, propertyKey, descriptor) => {
36
+ let selector = "";
37
+ let options = {};
38
+ if (typeof arg1 === "string") {
39
+ selector = arg1;
40
+ } else if (typeof arg1 === "object") {
41
+ options = arg1;
42
+ selector = options.selector || "";
43
+ }
44
+ decorator(selector, options, target, propertyKey, descriptor);
45
+ };
46
+ }
25
47
  const getQueryMetadata = (target) => {
26
48
  const constructor = target instanceof Function ? target : target.constructor;
27
49
  return ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/query.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface QueryOptions {\n useShadow?: boolean;\n}\n\nexport interface QueryMetadata {\n selector: string;\n options: QueryOptions;\n propertyKey: string | symbol;\n isMethod: boolean;\n}\n\nexport const QUERY_METADATA_KEY = Symbol('simple-web-component:query');\n\nexport const query = (selector: string, options: QueryOptions = { useShadow: true }): any => {\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const isMethod = !!descriptor;\n const constructor = target.constructor;\n\n // \uBA54\uD0C0\uB370\uC774\uD130 \uC800\uC7A5 (\uB098\uC911\uC5D0 elementDefine\uC5D0\uC11C \uC0AC\uC6A9)\n let queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_METADATA_KEY, queries, constructor);\n }\n queries.push({ selector, options, propertyKey, isMethod });\n\n if (!isMethod) {\n // \uC18D\uC131 \uB370\uCF54\uB808\uC774\uD130\uC778 \uACBD\uC6B0: \uAE30\uC874\uCC98\uB7FC Lazy Getter \uC124\uC815\n Object.defineProperty(target, propertyKey, {\n get(this: HTMLElement) {\n const root = options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;\n return root.querySelector(selector);\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n};\n\nexport const getQueryMetadata = (target: any): QueryMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor);\n};\n"],
5
- "mappings": "AAAA,SAAS,oBAAoB;AAatB,MAAM,qBAAqB,OAAO,4BAA4B;AAE9D,MAAM,QAAQ,CAAC,UAAkB,UAAwB,EAAE,WAAW,KAAK,MAAW;AAC3F,SAAO,CAAC,QAAgB,aAA8B,eAAoC;AACxF,UAAM,WAAW,CAAC,CAAC;AACnB,UAAM,cAAc,OAAO;AAG3B,QAAI,UAAU,aAAa,YAA6B,oBAAoB,WAAW;AACvF,QAAI,CAAC,SAAS;AACZ,gBAAU,CAAC;AACX,mBAAa,eAAe,oBAAoB,SAAS,WAAW;AAAA,IACtE;AACA,YAAQ,KAAK,EAAE,UAAU,SAAS,aAAa,SAAS,CAAC;AAEzD,QAAI,CAAC,UAAU;AAEb,aAAO,eAAe,QAAQ,aAAa;AAAA,QACzC,MAAuB;AACrB,gBAAM,OAAO,QAAQ,cAAc,SAAS,KAAK,aAAa,KAAK,aAAa;AAChF,iBAAO,KAAK,cAAc,QAAQ;AAAA,QACpC;AAAA,QACA,YAAY;AAAA,QACZ,cAAc;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEO,MAAM,mBAAmB,CAAC,WAA6C;AAC5E,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,oBAAoB,WAAW;AACjE;",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface QueryOptions {\n selector?: string;\n root?: 'light' | 'shadow' | 'all' | 'auto';\n}\n\nexport interface QueryMetadata {\n selector: string;\n options: QueryOptions;\n propertyKey: string | symbol;\n isMethod: boolean;\n}\n\nexport const QUERY_METADATA_KEY = Symbol('simple-web-component:query');\n\nexport function query(selector: string): any;\nexport function query(options: QueryOptions): any;\nexport function query(target: Object, propertyKey: string | symbol): void;\nexport function query(arg1?: string | QueryOptions | Object, arg2?: string | symbol): any {\n const decorator = (selector: string, options: QueryOptions, target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const isMethod = !!descriptor;\n const constructor = target.constructor;\n\n let queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_METADATA_KEY, queries, constructor);\n }\n queries.push({ selector, options, propertyKey, isMethod });\n\n if (!isMethod) {\n Object.defineProperty(target, propertyKey, {\n get(this: HTMLElement) {\n if (!selector) return this;\n let searchRoot: Node = this;\n if (options.root === 'shadow') searchRoot = this.shadowRoot || this;\n else if (options.root === 'light') searchRoot = this;\n else searchRoot = this.shadowRoot || this; // Default: Auto (Shadow-First)\n\n return (searchRoot as HTMLElement).querySelector(selector);\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n\n // Case: @query (parameterless decorator)\n if (arg1 && typeof arg2 === 'string') {\n return decorator('', {}, arg1 as Object, arg2 as string | symbol);\n }\n\n // Case: @query('selector') or @query({ selector: '...', ... })\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n let selector = '';\n let options: QueryOptions = {};\n\n if (typeof arg1 === 'string') {\n selector = arg1;\n } else if (typeof arg1 === 'object') {\n options = arg1 as QueryOptions;\n selector = options.selector || '';\n }\n\n decorator(selector, options, target, propertyKey, descriptor);\n };\n}\n\nexport const getQueryMetadata = (target: any): QueryMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor);\n};\n"],
5
+ "mappings": "AAAA,SAAS,oBAAoB;AActB,MAAM,qBAAqB,OAAO,4BAA4B;AAK/D,SAAU,MAAM,MAAuC,MAAsB;AACjF,QAAM,YAAY,CAAC,UAAkB,SAAuB,QAAgB,aAA8B,eAAmC;AAC3I,UAAM,WAAW,CAAC,CAAC;AACnB,UAAM,cAAc,OAAO;AAE3B,QAAI,UAAU,aAAa,YAA6B,oBAAoB,WAAW;AACvF,QAAI,CAAC,SAAS;AACZ,gBAAU,CAAA;AACV,mBAAa,eAAe,oBAAoB,SAAS,WAAW;IACtE;AACA,YAAQ,KAAK,EAAE,UAAU,SAAS,aAAa,SAAQ,CAAE;AAEzD,QAAI,CAAC,UAAU;AACb,aAAO,eAAe,QAAQ,aAAa;QACzC,MAAG;AACD,cAAI,CAAC;AAAU,mBAAO;AACtB,cAAI,aAAmB;AACvB,cAAI,QAAQ,SAAS;AAAU,yBAAa,KAAK,cAAc;mBACtD,QAAQ,SAAS;AAAS,yBAAa;;AAC3C,yBAAa,KAAK,cAAc;AAErC,iBAAQ,WAA2B,cAAc,QAAQ;QAC3D;QACA,YAAY;QACZ,cAAc;OACf;IACH;EACF;AAGA,MAAI,QAAQ,OAAO,SAAS,UAAU;AACpC,WAAO,UAAU,IAAI,CAAA,GAAI,MAAgB,IAAuB;EAClE;AAGA,SAAO,CAAC,QAAgB,aAA8B,eAAmC;AACvF,QAAI,WAAW;AACf,QAAI,UAAwB,CAAA;AAE5B,QAAI,OAAO,SAAS,UAAU;AAC5B,iBAAW;IACb,WAAW,OAAO,SAAS,UAAU;AACnC,gBAAU;AACV,iBAAW,QAAQ,YAAY;IACjC;AAEA,cAAU,UAAU,SAAS,QAAQ,aAAa,UAAU;EAC9D;AACF;AAEO,MAAM,mBAAmB,CAAC,WAA4C;AAC3E,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,oBAAoB,WAAW;AACjE;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { ReflectUtils } from "@dooboostore/core/reflect/ReflectUtils";
2
2
  const QUERY_ALL_METADATA_KEY = Symbol("simple-web-component:query-all");
3
- const queryAll = (selector, options = { useShadow: true }) => {
4
- return (target, propertyKey, descriptor) => {
3
+ function queryAll(arg1, arg2) {
4
+ const decorator = (selector, options, target, propertyKey, descriptor) => {
5
5
  const isMethod = !!descriptor;
6
6
  const constructor = target.constructor;
7
7
  let queries = ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);
@@ -13,15 +13,37 @@ const queryAll = (selector, options = { useShadow: true }) => {
13
13
  if (!isMethod) {
14
14
  Object.defineProperty(target, propertyKey, {
15
15
  get() {
16
- const root = options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;
17
- return root.querySelectorAll(selector);
16
+ if (!selector)
17
+ return [this];
18
+ let searchRoot = this;
19
+ if (options.root === "shadow")
20
+ searchRoot = this.shadowRoot || this;
21
+ else if (options.root === "light")
22
+ searchRoot = this;
23
+ else
24
+ searchRoot = this.shadowRoot || this;
25
+ return searchRoot.querySelectorAll(selector);
18
26
  },
19
27
  enumerable: true,
20
28
  configurable: true
21
29
  });
22
30
  }
23
31
  };
24
- };
32
+ if (arg1 && typeof arg2 === "string") {
33
+ return decorator("", {}, arg1, arg2);
34
+ }
35
+ return (target, propertyKey, descriptor) => {
36
+ let selector = "";
37
+ let options = {};
38
+ if (typeof arg1 === "string") {
39
+ selector = arg1;
40
+ } else if (typeof arg1 === "object") {
41
+ options = arg1;
42
+ selector = options.selector || "";
43
+ }
44
+ decorator(selector, options, target, propertyKey, descriptor);
45
+ };
46
+ }
25
47
  const getQueryAllMetadata = (target) => {
26
48
  const constructor = target instanceof Function ? target : target.constructor;
27
49
  return ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/queryAll.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface QueryAllOptions {\n useShadow?: boolean;\n}\n\nexport interface QueryAllMetadata {\n selector: string;\n options: QueryAllOptions;\n propertyKey: string | symbol;\n isMethod: boolean;\n}\n\nexport const QUERY_ALL_METADATA_KEY = Symbol('simple-web-component:query-all');\n\nexport const queryAll = (selector: string, options: QueryAllOptions = { useShadow: true }): any => {\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const isMethod = !!descriptor;\n const constructor = target.constructor;\n\n // \uBA54\uD0C0\uB370\uC774\uD130 \uC800\uC7A5 (\uB098\uC911\uC5D0 elementDefine\uC5D0\uC11C \uC0AC\uC6A9)\n let queries = ReflectUtils.getMetadata<QueryAllMetadata[]>(QUERY_ALL_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_ALL_METADATA_KEY, queries, constructor);\n }\n queries.push({ selector, options, propertyKey, isMethod });\n\n if (!isMethod) {\n // \uC18D\uC131 \uB370\uCF54\uB808\uC774\uD130\uC778 \uACBD\uC6B0: \uAE30\uC874\uCC98\uB7FC Lazy Getter \uC124\uC815\n Object.defineProperty(target, propertyKey, {\n get(this: HTMLElement) {\n const root = options.useShadow !== false && this.shadowRoot ? this.shadowRoot : this;\n return root.querySelectorAll(selector);\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n};\n\nexport const getQueryAllMetadata = (target: any): QueryAllMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);\n};\n"],
5
- "mappings": "AAAA,SAAS,oBAAoB;AAatB,MAAM,yBAAyB,OAAO,gCAAgC;AAEtE,MAAM,WAAW,CAAC,UAAkB,UAA2B,EAAE,WAAW,KAAK,MAAW;AACjG,SAAO,CAAC,QAAgB,aAA8B,eAAoC;AACxF,UAAM,WAAW,CAAC,CAAC;AACnB,UAAM,cAAc,OAAO;AAG3B,QAAI,UAAU,aAAa,YAAgC,wBAAwB,WAAW;AAC9F,QAAI,CAAC,SAAS;AACZ,gBAAU,CAAC;AACX,mBAAa,eAAe,wBAAwB,SAAS,WAAW;AAAA,IAC1E;AACA,YAAQ,KAAK,EAAE,UAAU,SAAS,aAAa,SAAS,CAAC;AAEzD,QAAI,CAAC,UAAU;AAEb,aAAO,eAAe,QAAQ,aAAa;AAAA,QACzC,MAAuB;AACrB,gBAAM,OAAO,QAAQ,cAAc,SAAS,KAAK,aAAa,KAAK,aAAa;AAChF,iBAAO,KAAK,iBAAiB,QAAQ;AAAA,QACvC;AAAA,QACA,YAAY;AAAA,QACZ,cAAc;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEO,MAAM,sBAAsB,CAAC,WAAgD;AAClF,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,wBAAwB,WAAW;AACrE;",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface QueryAllOptions {\n selector?: string;\n root?: 'light' | 'shadow' | 'all' | 'auto';\n}\n\nexport interface QueryAllMetadata {\n selector: string;\n options: QueryAllOptions;\n propertyKey: string | symbol;\n isMethod: boolean;\n}\n\nexport const QUERY_ALL_METADATA_KEY = Symbol('simple-web-component:query-all');\n\nexport function queryAll(selector: string): any;\nexport function queryAll(options: QueryAllOptions): any;\nexport function queryAll(target: Object, propertyKey: string | symbol): void;\nexport function queryAll(arg1?: string | QueryAllOptions | Object, arg2?: string | symbol): any {\n const decorator = (selector: string, options: QueryAllOptions, target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const isMethod = !!descriptor;\n const constructor = target.constructor;\n\n let queries = ReflectUtils.getMetadata<QueryAllMetadata[]>(QUERY_ALL_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_ALL_METADATA_KEY, queries, constructor);\n }\n queries.push({ selector, options, propertyKey, isMethod });\n\n if (!isMethod) {\n Object.defineProperty(target, propertyKey, {\n get(this: HTMLElement) {\n if (!selector) return [this];\n let searchRoot: Node = this;\n if (options.root === 'shadow') searchRoot = this.shadowRoot || this;\n else if (options.root === 'light') searchRoot = this;\n else searchRoot = this.shadowRoot || this; // Default: Auto (Shadow-First)\n\n return (searchRoot as HTMLElement).querySelectorAll(selector);\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n\n // Case: @queryAll (parameterless decorator)\n if (arg1 && typeof arg2 === 'string') {\n return decorator('', {}, arg1 as Object, arg2 as string | symbol);\n }\n\n // Case: @queryAll('selector') or @queryAll({ selector: '...', ... })\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n let selector = '';\n let options: QueryAllOptions = {};\n\n if (typeof arg1 === 'string') {\n selector = arg1;\n } else if (typeof arg1 === 'object') {\n options = arg1 as QueryAllOptions;\n selector = options.selector || '';\n }\n\n decorator(selector, options, target, propertyKey, descriptor);\n };\n}\n\nexport const getQueryAllMetadata = (target: any): QueryAllMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);\n};\n"],
5
+ "mappings": "AAAA,SAAS,oBAAoB;AActB,MAAM,yBAAyB,OAAO,gCAAgC;AAKvE,SAAU,SAAS,MAA0C,MAAsB;AACvF,QAAM,YAAY,CAAC,UAAkB,SAA0B,QAAgB,aAA8B,eAAmC;AAC9I,UAAM,WAAW,CAAC,CAAC;AACnB,UAAM,cAAc,OAAO;AAE3B,QAAI,UAAU,aAAa,YAAgC,wBAAwB,WAAW;AAC9F,QAAI,CAAC,SAAS;AACZ,gBAAU,CAAA;AACV,mBAAa,eAAe,wBAAwB,SAAS,WAAW;IAC1E;AACA,YAAQ,KAAK,EAAE,UAAU,SAAS,aAAa,SAAQ,CAAE;AAEzD,QAAI,CAAC,UAAU;AACb,aAAO,eAAe,QAAQ,aAAa;QACzC,MAAG;AACD,cAAI,CAAC;AAAU,mBAAO,CAAC,IAAI;AAC3B,cAAI,aAAmB;AACvB,cAAI,QAAQ,SAAS;AAAU,yBAAa,KAAK,cAAc;mBACtD,QAAQ,SAAS;AAAS,yBAAa;;AAC3C,yBAAa,KAAK,cAAc;AAErC,iBAAQ,WAA2B,iBAAiB,QAAQ;QAC9D;QACA,YAAY;QACZ,cAAc;OACf;IACH;EACF;AAGA,MAAI,QAAQ,OAAO,SAAS,UAAU;AACpC,WAAO,UAAU,IAAI,CAAA,GAAI,MAAgB,IAAuB;EAClE;AAGA,SAAO,CAAC,QAAgB,aAA8B,eAAmC;AACvF,QAAI,WAAW;AACf,QAAI,UAA2B,CAAA;AAE/B,QAAI,OAAO,SAAS,UAAU;AAC5B,iBAAW;IACb,WAAW,OAAO,SAAS,UAAU;AACnC,gBAAU;AACV,iBAAW,QAAQ,YAAY;IACjC;AAEA,cAAU,UAAU,SAAS,QAAQ,aAAa,UAAU;EAC9D;AACF;AAEO,MAAM,sBAAsB,CAAC,WAA+C;AACjF,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,wBAAwB,WAAW;AACrE;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/state.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface StateOptions {\n name?: string;\n}\n\nexport interface StateMetadata {\n propertyKey: string | symbol;\n options: StateOptions;\n}\n\nexport const STATE_METADATA_KEY = Symbol('simple-web-component:state');\n\nexport function state(nameOrOptions: string | StateOptions): PropertyDecorator;\nexport function state(target: Object, propertyKey: string | symbol): void;\nexport function state(arg1?: string | StateOptions | Object, arg2?: string | symbol): PropertyDecorator | void {\n const decorator = (options: StateOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n if (!options.name) options.name = String(propertyKey);\n\n let list = ReflectUtils.getMetadata<StateMetadata[]>(STATE_METADATA_KEY, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(STATE_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n };\n\n if (arg2) {\n // Used as @state\n return decorator({}, arg1!, arg2);\n }\n\n // Used as @state(options)\n return (target: Object, propertyKey: string | symbol) => {\n const options: StateOptions = typeof arg1 === 'string' ? { name: arg1 } : (arg1 as StateOptions) || {};\n decorator(options, target, propertyKey);\n };\n}\n\nexport const getStateMetadataList = (target: any): StateMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(STATE_METADATA_KEY, constructor);\n};\n"],
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport interface StateOptions {\n name?: string;\n}\n\nexport interface StateMetadata {\n propertyKey: string | symbol;\n options: StateOptions;\n}\n\nexport const STATE_METADATA_KEY = Symbol('simple-web-component:state');\n\nexport function state(nameOrOptions?: string | StateOptions): PropertyDecorator;\nexport function state(target: Object, propertyKey: string | symbol): void;\nexport function state(arg1?: string | StateOptions | Object, arg2?: string | symbol): PropertyDecorator | void {\n const decorator = (options: StateOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n if (!options.name) options.name = String(propertyKey);\n\n let list = ReflectUtils.getMetadata<StateMetadata[]>(STATE_METADATA_KEY, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(STATE_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n };\n\n if (arg2) {\n // Used as @state\n return decorator({}, arg1!, arg2);\n }\n\n // Used as @state(options)\n return (target: Object, propertyKey: string | symbol) => {\n const options: StateOptions = typeof arg1 === 'string' ? { name: arg1 } : (arg1 as StateOptions) || {};\n decorator(options, target, propertyKey);\n };\n}\n\nexport const getStateMetadataList = (target: any): StateMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(STATE_METADATA_KEY, constructor);\n};\n"],
5
5
  "mappings": "AAAA,SAAS,oBAAoB;AAWtB,MAAM,qBAAqB,OAAO,4BAA4B;AAI9D,SAAS,MAAM,MAAuC,MAAkD;AAC7G,QAAM,YAAY,CAAC,SAAuB,QAAgB,gBAAiC;AACzF,UAAM,cAAc,OAAO;AAC3B,QAAI,CAAC,QAAQ,KAAM,SAAQ,OAAO,OAAO,WAAW;AAEpD,QAAI,OAAO,aAAa,YAA6B,oBAAoB,WAAW;AACpF,QAAI,CAAC,MAAM;AACT,aAAO,CAAC;AACR,mBAAa,eAAe,oBAAoB,MAAM,WAAW;AAAA,IACnE;AACA,SAAK,KAAK,EAAE,aAAa,QAAQ,CAAC;AAAA,EACpC;AAEA,MAAI,MAAM;AAER,WAAO,UAAU,CAAC,GAAG,MAAO,IAAI;AAAA,EAClC;AAGA,SAAO,CAAC,QAAgB,gBAAiC;AACvD,UAAM,UAAwB,OAAO,SAAS,WAAW,EAAE,MAAM,KAAK,IAAK,QAAyB,CAAC;AACrG,cAAU,SAAS,QAAQ,WAAW;AAAA,EACxC;AACF;AAEO,MAAM,uBAAuB,CAAC,WAA6C;AAChF,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,oBAAoB,WAAW;AACjE;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcChoose.ts"],
4
- "sourcesContent": ["import { elementDefine, innerHtml } from '../index';\n\n@elementDefine({ name: 'swc-choose' })\nexport class SwcChoose extends HTMLElement {\n private _observer: MutationObserver | null = null;\n private _swcValue: any = undefined;\n\n set swcValue(val: any) {\n this._swcValue = val;\n this.evaluate();\n }\n\n get swcValue() {\n return this._swcValue;\n }\n\n @innerHtml({ useShadow: true })\n render() {\n return `\n <style>:host { display: contents; }</style>\n <slot id=\"choose-slot\"></slot>\n `;\n }\n\n connectedCallback() {\n this._observer = new MutationObserver(() => this.evaluate());\n this._observer.observe(this, { attributes: true, subtree: true, childList: true });\n this.evaluate();\n }\n\n disconnectedCallback() {\n this._observer?.disconnect();\n }\n\n private evaluate() {\n const whens = Array.from(this.querySelectorAll('swc-when'));\n const other = this.querySelector('swc-other');\n let matched = false;\n\n // 현재 choose에 설정된 value (swc-value 우선)\n const chooseValue = this.getAttribute('swc-value') ?? this.getAttribute('value') ?? this._swcValue;\n\n whens.forEach(when => {\n if (matched) {\n (when as HTMLElement).style.display = 'none';\n return;\n }\n\n const testAttr = when.getAttribute('test');\n if (testAttr === null) return;\n if (testAttr.includes('{{')) return; // 아직 치환 전이면 스킵\n\n let isConditionMet = false;\n\n if (chooseValue !== undefined && chooseValue !== null) {\n // 1. 매칭 모드: choose의 value와 when의 test값이 같은지 비교\n isConditionMet = String(chooseValue) === String(testAttr);\n } else {\n // 2. 표현식 모드: testAttr 자체가 실행 가능한 코드인 경우\n try {\n if (testAttr === 'true') isConditionMet = true;\n else if (testAttr === 'false') isConditionMet = false;\n else isConditionMet = !!new Function(`return ${testAttr}`)();\n } catch (e) {\n isConditionMet = false;\n }\n }\n\n if (isConditionMet) {\n (when as HTMLElement).style.display = '';\n matched = true;\n } else {\n (when as HTMLElement).style.display = 'none';\n }\n });\n\n if (other) {\n (other as HTMLElement).style.display = matched ? 'none' : '';\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;AAAA,SAAS,eAAe,iBAAiB;AAGlC,IAAM,YAAN,MAAMA,mBAAkB,YAAW;EAAnC,cAAA;;AACG,SAAA,YAAqC;AACrC,SAAA,YAAiB;EA2E3B;EAzEE,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,SAAK,SAAQ;EACf;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,SAAM;AACJ,WAAO;;;;EAIT;EAEA,oBAAiB;AACf,SAAK,YAAY,IAAI,iBAAiB,MAAM,KAAK,SAAQ,CAAE;AAC3D,SAAK,UAAU,QAAQ,MAAM,EAAE,YAAY,MAAM,SAAS,MAAM,WAAW,KAAI,CAAE;AACjF,SAAK,SAAQ;EACf;EAEA,uBAAoB;AAClB,SAAK,WAAW,WAAU;EAC5B;EAEQ,WAAQ;AACd,UAAM,QAAQ,MAAM,KAAK,KAAK,iBAAiB,UAAU,CAAC;AAC1D,UAAM,QAAQ,KAAK,cAAc,WAAW;AAC5C,QAAI,UAAU;AAGd,UAAM,cAAc,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO,KAAK,KAAK;AAEzF,UAAM,QAAQ,UAAO;AACnB,UAAI,SAAS;AACV,aAAqB,MAAM,UAAU;AACtC;MACF;AAEA,YAAM,WAAW,KAAK,aAAa,MAAM;AACzC,UAAI,aAAa;AAAM;AACvB,UAAI,SAAS,SAAS,IAAI;AAAG;AAE7B,UAAI,iBAAiB;AAErB,UAAI,gBAAgB,UAAa,gBAAgB,MAAM;AAErD,yBAAiB,OAAO,WAAW,MAAM,OAAO,QAAQ;MAC1D,OAAO;AAEL,YAAI;AACF,cAAI,aAAa;AAAQ,6BAAiB;mBACjC,aAAa;AAAS,6BAAiB;;AAC3C,6BAAiB,CAAC,CAAC,IAAI,SAAS,UAAU,QAAQ,EAAE,EAAC;QAC5D,SAAS,GAAG;AACV,2BAAiB;QACnB;MACF;AAEA,UAAI,gBAAgB;AACjB,aAAqB,MAAM,UAAU;AACtC,kBAAU;MACZ,OAAO;AACJ,aAAqB,MAAM,UAAU;MACxC;IACF,CAAC;AAED,QAAI,OAAO;AACR,YAAsB,MAAM,UAAU,UAAU,SAAS;IAC5D;EACF;;AA9DA,WAAA;EADC,UAAU,EAAE,WAAW,KAAI,CAAE;;;;;AAbnB,YAAS,WAAA;EADrB,cAAc,EAAE,MAAM,aAAY,CAAE;GACxB,SAAS;",
4
+ "sourcesContent": ["import { elementDefine, innerHtml } from '../index';\n\n@elementDefine({ name: 'swc-choose' })\nexport class SwcChoose extends HTMLElement {\n private _observer: MutationObserver | null = null;\n private _swcValue: any = undefined;\n\n set swcValue(val: any) {\n this._swcValue = val;\n this.evaluate();\n }\n\n get swcValue() {\n return this._swcValue;\n }\n\n @innerHtml({ useShadow: true })\n render() {\n return `\n <style>:host { display: contents; }</style>\n <slot id=\"choose-slot\"></slot>\n `;\n }\n\n connectedCallback() {\n this._observer = new MutationObserver(() => this.evaluate());\n this._observer.observe(this, { attributes: true, subtree: true, childList: true });\n this.evaluate();\n }\n\n disconnectedCallback() {\n this._observer?.disconnect();\n }\n\n private evaluate() {\n const whens = Array.from(this.querySelectorAll('swc-when'));\n const other = this.querySelector('swc-other');\n let matched = false;\n\n const chooseValue = this.getAttribute('swc-value') ?? this.getAttribute('value') ?? this._swcValue;\n\n whens.forEach(when => {\n if (matched) {\n (when as HTMLElement).style.display = 'none';\n return;\n }\n\n const testAttr = when.getAttribute('test');\n if (testAttr === null) return;\n if (testAttr.includes('{{')) return;\n\n let isConditionMet = false;\n if (chooseValue !== undefined && chooseValue !== null) {\n isConditionMet = String(chooseValue) === String(testAttr);\n } else {\n try {\n if (testAttr === 'true') isConditionMet = true;\n else if (testAttr === 'false') isConditionMet = false;\n else isConditionMet = !!new Function(`return ${testAttr}`)();\n } catch (e) {\n isConditionMet = false;\n }\n }\n\n if (isConditionMet) {\n (when as HTMLElement).style.display = '';\n matched = true;\n } else {\n (when as HTMLElement).style.display = 'none';\n }\n });\n\n if (other) {\n (other as HTMLElement).style.display = matched ? 'none' : '';\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;AAAA,SAAS,eAAe,iBAAiB;AAGlC,IAAM,YAAN,MAAMA,mBAAkB,YAAW;EAAnC,cAAA;;AACG,SAAA,YAAqC;AACrC,SAAA,YAAiB;EAuE3B;EArEE,IAAI,SAAS,KAAQ;AACnB,SAAK,YAAY;AACjB,SAAK,SAAQ;EACf;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,SAAM;AACJ,WAAO;;;;EAIT;EAEA,oBAAiB;AACf,SAAK,YAAY,IAAI,iBAAiB,MAAM,KAAK,SAAQ,CAAE;AAC3D,SAAK,UAAU,QAAQ,MAAM,EAAE,YAAY,MAAM,SAAS,MAAM,WAAW,KAAI,CAAE;AACjF,SAAK,SAAQ;EACf;EAEA,uBAAoB;AAClB,SAAK,WAAW,WAAU;EAC5B;EAEQ,WAAQ;AACd,UAAM,QAAQ,MAAM,KAAK,KAAK,iBAAiB,UAAU,CAAC;AAC1D,UAAM,QAAQ,KAAK,cAAc,WAAW;AAC5C,QAAI,UAAU;AAEd,UAAM,cAAc,KAAK,aAAa,WAAW,KAAK,KAAK,aAAa,OAAO,KAAK,KAAK;AAEzF,UAAM,QAAQ,UAAO;AACnB,UAAI,SAAS;AACV,aAAqB,MAAM,UAAU;AACtC;MACF;AAEA,YAAM,WAAW,KAAK,aAAa,MAAM;AACzC,UAAI,aAAa;AAAM;AACvB,UAAI,SAAS,SAAS,IAAI;AAAG;AAE7B,UAAI,iBAAiB;AACrB,UAAI,gBAAgB,UAAa,gBAAgB,MAAM;AACrD,yBAAiB,OAAO,WAAW,MAAM,OAAO,QAAQ;MAC1D,OAAO;AACL,YAAI;AACF,cAAI,aAAa;AAAQ,6BAAiB;mBACjC,aAAa;AAAS,6BAAiB;;AAC3C,6BAAiB,CAAC,CAAC,IAAI,SAAS,UAAU,QAAQ,EAAE,EAAC;QAC5D,SAAS,GAAG;AACV,2BAAiB;QACnB;MACF;AAEA,UAAI,gBAAgB;AACjB,aAAqB,MAAM,UAAU;AACtC,kBAAU;MACZ,OAAO;AACJ,aAAqB,MAAM,UAAU;MACxC;IACF,CAAC;AAED,QAAI,OAAO;AACR,YAAsB,MAAM,UAAU,UAAU,SAAS;IAC5D;EACF;;AA1DA,WAAA;EADC,UAAU,EAAE,WAAW,KAAI,CAAE;;;;;AAbnB,YAAS,WAAA;EADrB,cAAc,EAAE,MAAM,aAAY,CAAE;GACxB,SAAS;",
6
6
  "names": ["SwcChoose"]
7
7
  }
@@ -17,7 +17,9 @@ let SwcForOf = class SwcForOf2 extends SwcHTMLElementBase {
17
17
  set swcValue(val) {
18
18
  if (!Array.isArray(val))
19
19
  val = [];
20
- this._swcValue = this.createReactiveProxy(val, () => this.renderAll(), (idx, v) => this.updateSingleRow(idx, v));
20
+ this._swcValue = this.createReactiveProxy(val, () => this._updateState(this._asKey), (idx, v) => this.updateSingleRow(idx, v));
21
+ if (this._masterTplNodes.length === 0)
22
+ this.initCore();
21
23
  this.renderAll();
22
24
  }
23
25
  get swcValue() {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcForOf.ts"],
4
- "sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLElementBase } from './SwcHTMLElementBase';\n\n@elementDefine({ name: 'swc-for-of' })\nexport class SwcForOf extends SwcHTMLElementBase {\n private _swcValue: any[] = [];\n\n constructor() {\n super();\n }\n\n set swcValue(val: any[]) {\n if (!Array.isArray(val)) val = [];\n this._swcValue = this.createReactiveProxy(\n val,\n () => this.renderAll(),\n (idx, v) => this.updateSingleRow(idx, v)\n );\n this.renderAll();\n }\n\n get swcValue(): any[] {\n return this._swcValue;\n }\n\n @innerHtml({ useShadow: true })\n renderTemplate() {\n return `\n <style>:host { display: contents; }</style>\n <slot id=\"tpl-slot\" style=\"display:none;\"></slot>\n `;\n }\n\n connectedCallback() {\n this.initCore();\n this.renderAll();\n }\n\n public updateSingleRow(index: number, newValue: any) {\n const targets = this.querySelectorAll(`[slot=\"row-${index}\"]`);\n if (targets.length > 0) {\n targets.forEach(target => this.applyData(target, newValue, index));\n } else {\n this.renderRow(newValue, index);\n }\n }\n\n private renderRow(item: any, index: number) {\n if (!this.shadowRoot || this._masterTplNodes.length === 0) return;\n\n const slotName = `row-${index}`;\n if (!this.shadowRoot.querySelector(`slot[name=\"${slotName}\"]`)) {\n const slot = document.createElement('slot');\n slot.name = slotName;\n this.shadowRoot.appendChild(slot);\n }\n\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true);\n if (clone.nodeType === Node.ELEMENT_NODE) {\n (clone as HTMLElement).setAttribute('slot', slotName);\n (clone as HTMLElement).style.display = '';\n } else if (clone.nodeType === Node.TEXT_NODE) {\n if (clone.textContent?.trim().length === 0) return;\n const span = document.createElement('span');\n span.setAttribute('slot', slotName);\n span.appendChild(clone);\n this.appendChild(span);\n this.applyData(span, item, index);\n return;\n }\n this.appendChild(clone);\n this.applyData(clone, item, index);\n });\n }\n\n private renderAll() {\n if (this._masterTplNodes.length === 0 || !this.shadowRoot) return;\n\n Array.from(this.children).forEach(c => {\n const slot = c.getAttribute('slot');\n if (slot && slot.startsWith('row-')) {\n c.remove();\n }\n });\n\n Array.from(this.shadowRoot.querySelectorAll('slot')).forEach(s => {\n if (s.id !== 'tpl-slot') s.remove();\n });\n\n this._swcValue.forEach((item, index) => this.renderRow(item, index));\n }\n}\n"],
5
- "mappings": ";;;;;;;;;AAAA,SAAS,eAAe,iBAAiB;AACzC,SAAS,0BAA0B;AAG5B,IAAM,WAAN,MAAMA,kBAAiB,mBAAkB;EAG9C,cAAA;AACE,UAAK;AAHC,SAAA,YAAmB,CAAA;EAI3B;EAEA,IAAI,SAAS,KAAU;AACrB,QAAI,CAAC,MAAM,QAAQ,GAAG;AAAG,YAAM,CAAA;AAC/B,SAAK,YAAY,KAAK,oBACpB,KACA,MAAM,KAAK,UAAS,GACpB,CAAC,KAAK,MAAM,KAAK,gBAAgB,KAAK,CAAC,CAAC;AAE1C,SAAK,UAAS;EAChB;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;;;;EAIT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,SAAK,UAAS;EAChB;EAEO,gBAAgB,OAAe,UAAa;AACjD,UAAM,UAAU,KAAK,iBAAiB,cAAc,KAAK,IAAI;AAC7D,QAAI,QAAQ,SAAS,GAAG;AACtB,cAAQ,QAAQ,YAAU,KAAK,UAAU,QAAQ,UAAU,KAAK,CAAC;IACnE,OAAO;AACL,WAAK,UAAU,UAAU,KAAK;IAChC;EACF;EAEQ,UAAU,MAAW,OAAa;AACxC,QAAI,CAAC,KAAK,cAAc,KAAK,gBAAgB,WAAW;AAAG;AAE3D,UAAM,WAAW,OAAO,KAAK;AAC7B,QAAI,CAAC,KAAK,WAAW,cAAc,cAAc,QAAQ,IAAI,GAAG;AAC9D,YAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,WAAK,OAAO;AACZ,WAAK,WAAW,YAAY,IAAI;IAClC;AAEA,SAAK,gBAAgB,QAAQ,aAAU;AACrC,YAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,UAAI,MAAM,aAAa,KAAK,cAAc;AACvC,cAAsB,aAAa,QAAQ,QAAQ;AACnD,cAAsB,MAAM,UAAU;MACzC,WAAW,MAAM,aAAa,KAAK,WAAW;AAC5C,YAAI,MAAM,aAAa,KAAI,EAAG,WAAW;AAAG;AAC5C,cAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,aAAK,aAAa,QAAQ,QAAQ;AAClC,aAAK,YAAY,KAAK;AACtB,aAAK,YAAY,IAAI;AACrB,aAAK,UAAU,MAAM,MAAM,KAAK;AAChC;MACF;AACA,WAAK,YAAY,KAAK;AACtB,WAAK,UAAU,OAAO,MAAM,KAAK;IACnC,CAAC;EACH;EAEQ,YAAS;AACf,QAAI,KAAK,gBAAgB,WAAW,KAAK,CAAC,KAAK;AAAY;AAE3D,UAAM,KAAK,KAAK,QAAQ,EAAE,QAAQ,OAAI;AACpC,YAAM,OAAO,EAAE,aAAa,MAAM;AAClC,UAAI,QAAQ,KAAK,WAAW,MAAM,GAAG;AACnC,UAAE,OAAM;MACV;IACF,CAAC;AAED,UAAM,KAAK,KAAK,WAAW,iBAAiB,MAAM,CAAC,EAAE,QAAQ,OAAI;AAC/D,UAAI,EAAE,OAAO;AAAY,UAAE,OAAM;IACnC,CAAC;AAED,SAAK,UAAU,QAAQ,CAAC,MAAM,UAAU,KAAK,UAAU,MAAM,KAAK,CAAC;EACrE;;AAjEA,WAAA;EADC,UAAU,EAAE,WAAW,KAAI,CAAE;;;;;AArBnB,WAAQ,WAAA;EADpB,cAAc,EAAE,MAAM,aAAY,CAAE;;GACxB,QAAQ;",
4
+ "sourcesContent": ["import { elementDefine, innerHtml } from '../index';\nimport { SwcHTMLElementBase } from './SwcHTMLElementBase';\n\n@elementDefine({ name: 'swc-for-of' })\nexport class SwcForOf extends SwcHTMLElementBase {\n private _swcValue: any[] = [];\n\n constructor() {\n super();\n }\n\n set swcValue(val: any[]) {\n if (!Array.isArray(val)) val = [];\n this._swcValue = this.createReactiveProxy(\n val,\n () => (this as any)._updateState((this as any)._asKey),\n (idx, v) => this.updateSingleRow(idx, v)\n );\n if (this._masterTplNodes.length === 0) this.initCore();\n this.renderAll();\n }\n\n get swcValue(): any[] {\n return this._swcValue;\n }\n\n @innerHtml({ useShadow: true })\n renderTemplate() {\n return `\n <style>:host { display: contents; }</style>\n <slot id=\"tpl-slot\" style=\"display:none;\"></slot>\n `;\n }\n\n connectedCallback() {\n this.initCore();\n this.renderAll();\n }\n\n public updateSingleRow(index: number, newValue: any) {\n const targets = this.querySelectorAll(`[slot=\"row-${index}\"]`);\n if (targets.length > 0) {\n targets.forEach(target => this.applyData(target, newValue, index));\n } else {\n this.renderRow(newValue, index);\n }\n }\n\n private renderRow(item: any, index: number) {\n if (!this.shadowRoot || this._masterTplNodes.length === 0) return;\n\n const slotName = `row-${index}`;\n if (!this.shadowRoot.querySelector(`slot[name=\"${slotName}\"]`)) {\n const slot = document.createElement('slot');\n slot.name = slotName;\n this.shadowRoot.appendChild(slot);\n }\n\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true);\n if (clone.nodeType === Node.ELEMENT_NODE) {\n (clone as HTMLElement).setAttribute('slot', slotName);\n (clone as HTMLElement).style.display = '';\n } else if (clone.nodeType === Node.TEXT_NODE) {\n if (clone.textContent?.trim().length === 0) return;\n const span = document.createElement('span');\n span.setAttribute('slot', slotName);\n span.appendChild(clone);\n this.appendChild(span);\n this.applyData(span, item, index);\n return;\n }\n this.appendChild(clone);\n this.applyData(clone, item, index);\n });\n }\n\n private renderAll() {\n if (this._masterTplNodes.length === 0 || !this.shadowRoot) return;\n\n Array.from(this.children).forEach(c => {\n const slot = c.getAttribute('slot');\n if (slot && slot.startsWith('row-')) {\n c.remove();\n }\n });\n\n Array.from(this.shadowRoot.querySelectorAll('slot')).forEach(s => {\n if (s.id !== 'tpl-slot') s.remove();\n });\n\n this._swcValue.forEach((item, index) => this.renderRow(item, index));\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;AAAA,SAAS,eAAe,iBAAiB;AACzC,SAAS,0BAA0B;AAG5B,IAAM,WAAN,MAAMA,kBAAiB,mBAAkB;EAG9C,cAAA;AACE,UAAK;AAHC,SAAA,YAAmB,CAAA;EAI3B;EAEA,IAAI,SAAS,KAAU;AACrB,QAAI,CAAC,MAAM,QAAQ,GAAG;AAAG,YAAM,CAAA;AAC/B,SAAK,YAAY,KAAK,oBACpB,KACA,MAAO,KAAa,aAAc,KAAa,MAAM,GACrD,CAAC,KAAK,MAAM,KAAK,gBAAgB,KAAK,CAAC,CAAC;AAE1C,QAAI,KAAK,gBAAgB,WAAW;AAAG,WAAK,SAAQ;AACpD,SAAK,UAAS;EAChB;EAEA,IAAI,WAAQ;AACV,WAAO,KAAK;EACd;EAGA,iBAAc;AACZ,WAAO;;;;EAIT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,SAAK,UAAS;EAChB;EAEO,gBAAgB,OAAe,UAAa;AACjD,UAAM,UAAU,KAAK,iBAAiB,cAAc,KAAK,IAAI;AAC7D,QAAI,QAAQ,SAAS,GAAG;AACtB,cAAQ,QAAQ,YAAU,KAAK,UAAU,QAAQ,UAAU,KAAK,CAAC;IACnE,OAAO;AACL,WAAK,UAAU,UAAU,KAAK;IAChC;EACF;EAEQ,UAAU,MAAW,OAAa;AACxC,QAAI,CAAC,KAAK,cAAc,KAAK,gBAAgB,WAAW;AAAG;AAE3D,UAAM,WAAW,OAAO,KAAK;AAC7B,QAAI,CAAC,KAAK,WAAW,cAAc,cAAc,QAAQ,IAAI,GAAG;AAC9D,YAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,WAAK,OAAO;AACZ,WAAK,WAAW,YAAY,IAAI;IAClC;AAEA,SAAK,gBAAgB,QAAQ,aAAU;AACrC,YAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,UAAI,MAAM,aAAa,KAAK,cAAc;AACvC,cAAsB,aAAa,QAAQ,QAAQ;AACnD,cAAsB,MAAM,UAAU;MACzC,WAAW,MAAM,aAAa,KAAK,WAAW;AAC5C,YAAI,MAAM,aAAa,KAAI,EAAG,WAAW;AAAG;AAC5C,cAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,aAAK,aAAa,QAAQ,QAAQ;AAClC,aAAK,YAAY,KAAK;AACtB,aAAK,YAAY,IAAI;AACrB,aAAK,UAAU,MAAM,MAAM,KAAK;AAChC;MACF;AACA,WAAK,YAAY,KAAK;AACtB,WAAK,UAAU,OAAO,MAAM,KAAK;IACnC,CAAC;EACH;EAEQ,YAAS;AACf,QAAI,KAAK,gBAAgB,WAAW,KAAK,CAAC,KAAK;AAAY;AAE3D,UAAM,KAAK,KAAK,QAAQ,EAAE,QAAQ,OAAI;AACpC,YAAM,OAAO,EAAE,aAAa,MAAM;AAClC,UAAI,QAAQ,KAAK,WAAW,MAAM,GAAG;AACnC,UAAE,OAAM;MACV;IACF,CAAC;AAED,UAAM,KAAK,KAAK,WAAW,iBAAiB,MAAM,CAAC,EAAE,QAAQ,OAAI;AAC/D,UAAI,EAAE,OAAO;AAAY,UAAE,OAAM;IACnC,CAAC;AAED,SAAK,UAAU,QAAQ,CAAC,MAAM,UAAU,KAAK,UAAU,MAAM,KAAK,CAAC;EACrE;;AAjEA,WAAA;EADC,UAAU,EAAE,WAAW,KAAI,CAAE;;;;;AAtBnB,WAAQ,WAAA;EADpB,cAAc,EAAE,MAAM,aAAY,CAAE;;GACxB,QAAQ;",
6
6
  "names": ["SwcForOf"]
7
7
  }