@dooboostore/simple-web-component 1.0.18 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/README.md +96 -77
  2. package/dist/cjs/config/config.js +2 -0
  3. package/dist/cjs/config/config.js.map +2 -2
  4. package/dist/cjs/decorators/addEventListener.js +4 -4
  5. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  6. package/dist/cjs/decorators/appendChild.js +51 -7
  7. package/dist/cjs/decorators/appendChild.js.map +2 -2
  8. package/dist/cjs/decorators/classList.js +104 -0
  9. package/dist/cjs/decorators/classList.js.map +7 -0
  10. package/dist/cjs/decorators/elementDefine.js +306 -424
  11. package/dist/cjs/decorators/elementDefine.js.map +3 -3
  12. package/dist/cjs/decorators/emitCustomEvent.js +61 -9
  13. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  14. package/dist/cjs/decorators/index.js +3 -0
  15. package/dist/cjs/decorators/index.js.map +2 -2
  16. package/dist/cjs/decorators/query.js +56 -32
  17. package/dist/cjs/decorators/query.js.map +2 -2
  18. package/dist/cjs/decorators/queryAll.js +43 -19
  19. package/dist/cjs/decorators/queryAll.js.map +2 -2
  20. package/dist/cjs/decorators/replaceChildren.js +27 -1
  21. package/dist/cjs/decorators/replaceChildren.js.map +2 -2
  22. package/dist/cjs/decorators/setAttribute.js +35 -7
  23. package/dist/cjs/decorators/setAttribute.js.map +2 -2
  24. package/dist/cjs/decorators/style.js +88 -0
  25. package/dist/cjs/decorators/style.js.map +7 -0
  26. package/dist/cjs/elements/SwcAppEngine.js +23 -8
  27. package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
  28. package/dist/cjs/elements/SwcAppMixin.js +52 -0
  29. package/dist/cjs/elements/SwcAppMixin.js.map +7 -0
  30. package/dist/cjs/elements/SwcAsync.js +57 -122
  31. package/dist/cjs/elements/SwcAsync.js.map +3 -3
  32. package/dist/cjs/elements/SwcChoose.js +51 -75
  33. package/dist/cjs/elements/SwcChoose.js.map +3 -3
  34. package/dist/cjs/elements/SwcIf.js +65 -93
  35. package/dist/cjs/elements/SwcIf.js.map +3 -3
  36. package/dist/cjs/elements/SwcLoop.js +72 -173
  37. package/dist/cjs/elements/SwcLoop.js.map +3 -3
  38. package/dist/cjs/elements/SwcSubTemplates.js +12 -37
  39. package/dist/cjs/elements/SwcSubTemplates.js.map +3 -3
  40. package/dist/cjs/elements/index.js +1 -8
  41. package/dist/cjs/elements/index.js.map +2 -2
  42. package/dist/cjs/elements/register.js +831 -0
  43. package/dist/cjs/elements/register.js.map +7 -0
  44. package/dist/cjs/index.js +13 -3
  45. package/dist/cjs/index.js.map +2 -2
  46. package/dist/cjs/types.js.map +1 -1
  47. package/dist/cjs/utils/TemplateUtils.js +103 -0
  48. package/dist/cjs/utils/TemplateUtils.js.map +7 -0
  49. package/dist/cjs/utils/Utils.js +10 -7
  50. package/dist/cjs/utils/Utils.js.map +2 -2
  51. package/dist/esm/config/config.js +2 -0
  52. package/dist/esm/config/config.js.map +2 -2
  53. package/dist/esm/decorators/addEventListener.js +4 -4
  54. package/dist/esm/decorators/addEventListener.js.map +2 -2
  55. package/dist/esm/decorators/appendChild.js +51 -7
  56. package/dist/esm/decorators/appendChild.js.map +2 -2
  57. package/dist/esm/decorators/classList.js +85 -0
  58. package/dist/esm/decorators/classList.js.map +7 -0
  59. package/dist/esm/decorators/elementDefine.js +306 -424
  60. package/dist/esm/decorators/elementDefine.js.map +3 -3
  61. package/dist/esm/decorators/emitCustomEvent.js +61 -9
  62. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  63. package/dist/esm/decorators/index.js +3 -0
  64. package/dist/esm/decorators/index.js.map +2 -2
  65. package/dist/esm/decorators/query.js +57 -33
  66. package/dist/esm/decorators/query.js.map +2 -2
  67. package/dist/esm/decorators/queryAll.js +44 -20
  68. package/dist/esm/decorators/queryAll.js.map +2 -2
  69. package/dist/esm/decorators/replaceChildren.js +27 -1
  70. package/dist/esm/decorators/replaceChildren.js.map +2 -2
  71. package/dist/esm/decorators/setAttribute.js +35 -7
  72. package/dist/esm/decorators/setAttribute.js.map +2 -2
  73. package/dist/esm/decorators/style.js +69 -0
  74. package/dist/esm/decorators/style.js.map +7 -0
  75. package/dist/esm/elements/SwcAppEngine.js +23 -8
  76. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  77. package/dist/esm/elements/SwcAppMixin.js +33 -0
  78. package/dist/esm/elements/SwcAppMixin.js.map +7 -0
  79. package/dist/esm/elements/SwcAsync.js +57 -122
  80. package/dist/esm/elements/SwcAsync.js.map +3 -3
  81. package/dist/esm/elements/SwcChoose.js +51 -75
  82. package/dist/esm/elements/SwcChoose.js.map +3 -3
  83. package/dist/esm/elements/SwcIf.js +65 -93
  84. package/dist/esm/elements/SwcIf.js.map +3 -3
  85. package/dist/esm/elements/SwcLoop.js +71 -172
  86. package/dist/esm/elements/SwcLoop.js.map +3 -3
  87. package/dist/esm/elements/SwcSubTemplates.js +12 -37
  88. package/dist/esm/elements/SwcSubTemplates.js.map +3 -3
  89. package/dist/esm/elements/index.js +1 -8
  90. package/dist/esm/elements/index.js.map +2 -2
  91. package/dist/esm/elements/register.js +812 -0
  92. package/dist/esm/elements/register.js.map +7 -0
  93. package/dist/esm/index.js +13 -3
  94. package/dist/esm/index.js.map +2 -2
  95. package/dist/esm/types.js.map +1 -1
  96. package/dist/esm/utils/TemplateUtils.js +84 -0
  97. package/dist/esm/utils/TemplateUtils.js.map +7 -0
  98. package/dist/esm/utils/Utils.js +6 -3
  99. package/dist/esm/utils/Utils.js.map +2 -2
  100. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +1010 -5634
  101. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  102. package/dist/types/config/config.d.ts +1 -0
  103. package/dist/types/config/config.d.ts.map +1 -1
  104. package/dist/types/decorators/addEventListener.d.ts +11 -11
  105. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  106. package/dist/types/decorators/appendChild.d.ts +1 -1
  107. package/dist/types/decorators/appendChild.d.ts.map +1 -1
  108. package/dist/types/decorators/classList.d.ts +34 -0
  109. package/dist/types/decorators/classList.d.ts.map +1 -0
  110. package/dist/types/decorators/elementDefine.d.ts +9 -5
  111. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  112. package/dist/types/decorators/emitCustomEvent.d.ts +7 -4
  113. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  114. package/dist/types/decorators/index.d.ts +3 -0
  115. package/dist/types/decorators/index.d.ts.map +1 -1
  116. package/dist/types/decorators/query.d.ts +7 -8
  117. package/dist/types/decorators/query.d.ts.map +1 -1
  118. package/dist/types/decorators/queryAll.d.ts +5 -9
  119. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  120. package/dist/types/decorators/replaceChildren.d.ts.map +1 -1
  121. package/dist/types/decorators/setAttribute.d.ts +13 -3
  122. package/dist/types/decorators/setAttribute.d.ts.map +1 -1
  123. package/dist/types/decorators/style.d.ts +24 -0
  124. package/dist/types/decorators/style.d.ts.map +1 -0
  125. package/dist/types/elements/SwcAppEngine.d.ts +2 -2
  126. package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
  127. package/dist/types/elements/SwcAppMixin.d.ts +364 -0
  128. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -0
  129. package/dist/types/elements/SwcAsync.d.ts +2 -6
  130. package/dist/types/elements/SwcAsync.d.ts.map +1 -1
  131. package/dist/types/elements/SwcChoose.d.ts +2 -1
  132. package/dist/types/elements/SwcChoose.d.ts.map +1 -1
  133. package/dist/types/elements/SwcIf.d.ts +5 -6
  134. package/dist/types/elements/SwcIf.d.ts.map +1 -1
  135. package/dist/types/elements/SwcLoop.d.ts +4 -10
  136. package/dist/types/elements/SwcLoop.d.ts.map +1 -1
  137. package/dist/types/elements/SwcSubTemplates.d.ts.map +1 -1
  138. package/dist/types/elements/index.d.ts +1 -8
  139. package/dist/types/elements/index.d.ts.map +1 -1
  140. package/dist/types/elements/register.d.ts +2 -0
  141. package/dist/types/elements/register.d.ts.map +1 -0
  142. package/dist/types/index.d.ts +7 -3
  143. package/dist/types/index.d.ts.map +1 -1
  144. package/dist/types/types.d.ts +6 -1
  145. package/dist/types/types.d.ts.map +1 -1
  146. package/dist/types/utils/TemplateUtils.d.ts +54 -0
  147. package/dist/types/utils/TemplateUtils.d.ts.map +1 -0
  148. package/dist/types/utils/Utils.d.ts.map +1 -1
  149. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +1010 -5634
  150. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  151. package/package.json +2 -2
  152. package/src/config/config.ts +2 -0
  153. package/src/decorators/addEventListener.ts +12 -11
  154. package/src/decorators/appendChild.ts +52 -8
  155. package/src/decorators/classList.ts +117 -0
  156. package/src/decorators/elementDefine.ts +340 -427
  157. package/src/decorators/emitCustomEvent.ts +76 -12
  158. package/src/decorators/index.ts +3 -0
  159. package/src/decorators/query.ts +57 -37
  160. package/src/decorators/queryAll.ts +44 -28
  161. package/src/decorators/replaceChildren.ts +30 -1
  162. package/src/decorators/setAttribute.ts +53 -11
  163. package/src/decorators/style.ts +89 -0
  164. package/src/elements/SwcAppEngine.ts +26 -11
  165. package/src/elements/SwcAppMixin.ts +34 -0
  166. package/src/elements/SwcAsync.ts +57 -127
  167. package/src/elements/SwcChoose.ts +50 -76
  168. package/src/elements/SwcIf.ts +63 -85
  169. package/src/elements/SwcLoop.ts +70 -167
  170. package/src/elements/SwcSubTemplates.ts +0 -13
  171. package/src/elements/index.ts +1 -8
  172. package/src/elements/register.ts +735 -0
  173. package/src/index.ts +16 -5
  174. package/src/types.ts +13 -5
  175. package/src/utils/TemplateUtils.ts +83 -0
  176. package/src/utils/Utils.ts +6 -3
  177. package/dist/cjs/elements/SwcApp.js +0 -55
  178. package/dist/cjs/elements/SwcApp.js.map +0 -7
  179. package/dist/cjs/elements/is/SwcAppAnchor.js +0 -55
  180. package/dist/cjs/elements/is/SwcAppAnchor.js.map +0 -7
  181. package/dist/cjs/elements/is/SwcAppArea.js +0 -55
  182. package/dist/cjs/elements/is/SwcAppArea.js.map +0 -7
  183. package/dist/cjs/elements/is/SwcAppAudio.js +0 -55
  184. package/dist/cjs/elements/is/SwcAppAudio.js.map +0 -7
  185. package/dist/cjs/elements/is/SwcAppBase.js +0 -55
  186. package/dist/cjs/elements/is/SwcAppBase.js.map +0 -7
  187. package/dist/cjs/elements/is/SwcAppBody.js +0 -55
  188. package/dist/cjs/elements/is/SwcAppBody.js.map +0 -7
  189. package/dist/cjs/elements/is/SwcAppButton.js +0 -55
  190. package/dist/cjs/elements/is/SwcAppButton.js.map +0 -7
  191. package/dist/cjs/elements/is/SwcAppCanvas.js +0 -55
  192. package/dist/cjs/elements/is/SwcAppCanvas.js.map +0 -7
  193. package/dist/cjs/elements/is/SwcAppData.js +0 -55
  194. package/dist/cjs/elements/is/SwcAppData.js.map +0 -7
  195. package/dist/cjs/elements/is/SwcAppDataList.js +0 -55
  196. package/dist/cjs/elements/is/SwcAppDataList.js.map +0 -7
  197. package/dist/cjs/elements/is/SwcAppDetails.js +0 -55
  198. package/dist/cjs/elements/is/SwcAppDetails.js.map +0 -7
  199. package/dist/cjs/elements/is/SwcAppDialog.js +0 -55
  200. package/dist/cjs/elements/is/SwcAppDialog.js.map +0 -7
  201. package/dist/cjs/elements/is/SwcAppDiv.js +0 -55
  202. package/dist/cjs/elements/is/SwcAppDiv.js.map +0 -7
  203. package/dist/cjs/elements/is/SwcAppDl.js +0 -55
  204. package/dist/cjs/elements/is/SwcAppDl.js.map +0 -7
  205. package/dist/cjs/elements/is/SwcAppEmbed.js +0 -55
  206. package/dist/cjs/elements/is/SwcAppEmbed.js.map +0 -7
  207. package/dist/cjs/elements/is/SwcAppFieldSet.js +0 -55
  208. package/dist/cjs/elements/is/SwcAppFieldSet.js.map +0 -7
  209. package/dist/cjs/elements/is/SwcAppForm.js +0 -55
  210. package/dist/cjs/elements/is/SwcAppForm.js.map +0 -7
  211. package/dist/cjs/elements/is/SwcAppHeading.js +0 -55
  212. package/dist/cjs/elements/is/SwcAppHeading.js.map +0 -7
  213. package/dist/cjs/elements/is/SwcAppHr.js +0 -55
  214. package/dist/cjs/elements/is/SwcAppHr.js.map +0 -7
  215. package/dist/cjs/elements/is/SwcAppIFrame.js +0 -55
  216. package/dist/cjs/elements/is/SwcAppIFrame.js.map +0 -7
  217. package/dist/cjs/elements/is/SwcAppImage.js +0 -55
  218. package/dist/cjs/elements/is/SwcAppImage.js.map +0 -7
  219. package/dist/cjs/elements/is/SwcAppInput.js +0 -55
  220. package/dist/cjs/elements/is/SwcAppInput.js.map +0 -7
  221. package/dist/cjs/elements/is/SwcAppLabel.js +0 -55
  222. package/dist/cjs/elements/is/SwcAppLabel.js.map +0 -7
  223. package/dist/cjs/elements/is/SwcAppLegend.js +0 -55
  224. package/dist/cjs/elements/is/SwcAppLegend.js.map +0 -7
  225. package/dist/cjs/elements/is/SwcAppLi.js +0 -55
  226. package/dist/cjs/elements/is/SwcAppLi.js.map +0 -7
  227. package/dist/cjs/elements/is/SwcAppLink.js +0 -55
  228. package/dist/cjs/elements/is/SwcAppLink.js.map +0 -7
  229. package/dist/cjs/elements/is/SwcAppMap.js +0 -55
  230. package/dist/cjs/elements/is/SwcAppMap.js.map +0 -7
  231. package/dist/cjs/elements/is/SwcAppMeta.js +0 -55
  232. package/dist/cjs/elements/is/SwcAppMeta.js.map +0 -7
  233. package/dist/cjs/elements/is/SwcAppMeter.js +0 -55
  234. package/dist/cjs/elements/is/SwcAppMeter.js.map +0 -7
  235. package/dist/cjs/elements/is/SwcAppMod.js +0 -55
  236. package/dist/cjs/elements/is/SwcAppMod.js.map +0 -7
  237. package/dist/cjs/elements/is/SwcAppObject.js +0 -55
  238. package/dist/cjs/elements/is/SwcAppObject.js.map +0 -7
  239. package/dist/cjs/elements/is/SwcAppOl.js +0 -55
  240. package/dist/cjs/elements/is/SwcAppOl.js.map +0 -7
  241. package/dist/cjs/elements/is/SwcAppOptGroup.js +0 -55
  242. package/dist/cjs/elements/is/SwcAppOptGroup.js.map +0 -7
  243. package/dist/cjs/elements/is/SwcAppOption.js +0 -55
  244. package/dist/cjs/elements/is/SwcAppOption.js.map +0 -7
  245. package/dist/cjs/elements/is/SwcAppOutput.js +0 -55
  246. package/dist/cjs/elements/is/SwcAppOutput.js.map +0 -7
  247. package/dist/cjs/elements/is/SwcAppParagraph.js +0 -55
  248. package/dist/cjs/elements/is/SwcAppParagraph.js.map +0 -7
  249. package/dist/cjs/elements/is/SwcAppParam.js +0 -55
  250. package/dist/cjs/elements/is/SwcAppParam.js.map +0 -7
  251. package/dist/cjs/elements/is/SwcAppPicture.js +0 -55
  252. package/dist/cjs/elements/is/SwcAppPicture.js.map +0 -7
  253. package/dist/cjs/elements/is/SwcAppPre.js +0 -55
  254. package/dist/cjs/elements/is/SwcAppPre.js.map +0 -7
  255. package/dist/cjs/elements/is/SwcAppProgress.js +0 -55
  256. package/dist/cjs/elements/is/SwcAppProgress.js.map +0 -7
  257. package/dist/cjs/elements/is/SwcAppQuote.js +0 -55
  258. package/dist/cjs/elements/is/SwcAppQuote.js.map +0 -7
  259. package/dist/cjs/elements/is/SwcAppScript.js +0 -55
  260. package/dist/cjs/elements/is/SwcAppScript.js.map +0 -7
  261. package/dist/cjs/elements/is/SwcAppSelect.js +0 -55
  262. package/dist/cjs/elements/is/SwcAppSelect.js.map +0 -7
  263. package/dist/cjs/elements/is/SwcAppSlot.js +0 -55
  264. package/dist/cjs/elements/is/SwcAppSlot.js.map +0 -7
  265. package/dist/cjs/elements/is/SwcAppSource.js +0 -55
  266. package/dist/cjs/elements/is/SwcAppSource.js.map +0 -7
  267. package/dist/cjs/elements/is/SwcAppSpan.js +0 -55
  268. package/dist/cjs/elements/is/SwcAppSpan.js.map +0 -7
  269. package/dist/cjs/elements/is/SwcAppStyle.js +0 -55
  270. package/dist/cjs/elements/is/SwcAppStyle.js.map +0 -7
  271. package/dist/cjs/elements/is/SwcAppTable.js +0 -55
  272. package/dist/cjs/elements/is/SwcAppTable.js.map +0 -7
  273. package/dist/cjs/elements/is/SwcAppTableCell.js +0 -55
  274. package/dist/cjs/elements/is/SwcAppTableCell.js.map +0 -7
  275. package/dist/cjs/elements/is/SwcAppTableRow.js +0 -55
  276. package/dist/cjs/elements/is/SwcAppTableRow.js.map +0 -7
  277. package/dist/cjs/elements/is/SwcAppTableSection.js +0 -55
  278. package/dist/cjs/elements/is/SwcAppTableSection.js.map +0 -7
  279. package/dist/cjs/elements/is/SwcAppTemplate.js +0 -55
  280. package/dist/cjs/elements/is/SwcAppTemplate.js.map +0 -7
  281. package/dist/cjs/elements/is/SwcAppTextArea.js +0 -55
  282. package/dist/cjs/elements/is/SwcAppTextArea.js.map +0 -7
  283. package/dist/cjs/elements/is/SwcAppTime.js +0 -55
  284. package/dist/cjs/elements/is/SwcAppTime.js.map +0 -7
  285. package/dist/cjs/elements/is/SwcAppTitle.js +0 -55
  286. package/dist/cjs/elements/is/SwcAppTitle.js.map +0 -7
  287. package/dist/cjs/elements/is/SwcAppTrack.js +0 -55
  288. package/dist/cjs/elements/is/SwcAppTrack.js.map +0 -7
  289. package/dist/cjs/elements/is/SwcAppUl.js +0 -55
  290. package/dist/cjs/elements/is/SwcAppUl.js.map +0 -7
  291. package/dist/cjs/elements/is/SwcAppVideo.js +0 -55
  292. package/dist/cjs/elements/is/SwcAppVideo.js.map +0 -7
  293. package/dist/cjs/elements/is/index.js +0 -74
  294. package/dist/cjs/elements/is/index.js.map +0 -7
  295. package/dist/esm/elements/SwcApp.js +0 -36
  296. package/dist/esm/elements/SwcApp.js.map +0 -7
  297. package/dist/esm/elements/is/SwcAppAnchor.js +0 -36
  298. package/dist/esm/elements/is/SwcAppAnchor.js.map +0 -7
  299. package/dist/esm/elements/is/SwcAppArea.js +0 -36
  300. package/dist/esm/elements/is/SwcAppArea.js.map +0 -7
  301. package/dist/esm/elements/is/SwcAppAudio.js +0 -36
  302. package/dist/esm/elements/is/SwcAppAudio.js.map +0 -7
  303. package/dist/esm/elements/is/SwcAppBase.js +0 -36
  304. package/dist/esm/elements/is/SwcAppBase.js.map +0 -7
  305. package/dist/esm/elements/is/SwcAppBody.js +0 -36
  306. package/dist/esm/elements/is/SwcAppBody.js.map +0 -7
  307. package/dist/esm/elements/is/SwcAppButton.js +0 -36
  308. package/dist/esm/elements/is/SwcAppButton.js.map +0 -7
  309. package/dist/esm/elements/is/SwcAppCanvas.js +0 -36
  310. package/dist/esm/elements/is/SwcAppCanvas.js.map +0 -7
  311. package/dist/esm/elements/is/SwcAppData.js +0 -36
  312. package/dist/esm/elements/is/SwcAppData.js.map +0 -7
  313. package/dist/esm/elements/is/SwcAppDataList.js +0 -36
  314. package/dist/esm/elements/is/SwcAppDataList.js.map +0 -7
  315. package/dist/esm/elements/is/SwcAppDetails.js +0 -36
  316. package/dist/esm/elements/is/SwcAppDetails.js.map +0 -7
  317. package/dist/esm/elements/is/SwcAppDialog.js +0 -36
  318. package/dist/esm/elements/is/SwcAppDialog.js.map +0 -7
  319. package/dist/esm/elements/is/SwcAppDiv.js +0 -36
  320. package/dist/esm/elements/is/SwcAppDiv.js.map +0 -7
  321. package/dist/esm/elements/is/SwcAppDl.js +0 -36
  322. package/dist/esm/elements/is/SwcAppDl.js.map +0 -7
  323. package/dist/esm/elements/is/SwcAppEmbed.js +0 -36
  324. package/dist/esm/elements/is/SwcAppEmbed.js.map +0 -7
  325. package/dist/esm/elements/is/SwcAppFieldSet.js +0 -36
  326. package/dist/esm/elements/is/SwcAppFieldSet.js.map +0 -7
  327. package/dist/esm/elements/is/SwcAppForm.js +0 -36
  328. package/dist/esm/elements/is/SwcAppForm.js.map +0 -7
  329. package/dist/esm/elements/is/SwcAppHeading.js +0 -36
  330. package/dist/esm/elements/is/SwcAppHeading.js.map +0 -7
  331. package/dist/esm/elements/is/SwcAppHr.js +0 -36
  332. package/dist/esm/elements/is/SwcAppHr.js.map +0 -7
  333. package/dist/esm/elements/is/SwcAppIFrame.js +0 -36
  334. package/dist/esm/elements/is/SwcAppIFrame.js.map +0 -7
  335. package/dist/esm/elements/is/SwcAppImage.js +0 -36
  336. package/dist/esm/elements/is/SwcAppImage.js.map +0 -7
  337. package/dist/esm/elements/is/SwcAppInput.js +0 -36
  338. package/dist/esm/elements/is/SwcAppInput.js.map +0 -7
  339. package/dist/esm/elements/is/SwcAppLabel.js +0 -36
  340. package/dist/esm/elements/is/SwcAppLabel.js.map +0 -7
  341. package/dist/esm/elements/is/SwcAppLegend.js +0 -36
  342. package/dist/esm/elements/is/SwcAppLegend.js.map +0 -7
  343. package/dist/esm/elements/is/SwcAppLi.js +0 -36
  344. package/dist/esm/elements/is/SwcAppLi.js.map +0 -7
  345. package/dist/esm/elements/is/SwcAppLink.js +0 -36
  346. package/dist/esm/elements/is/SwcAppLink.js.map +0 -7
  347. package/dist/esm/elements/is/SwcAppMap.js +0 -36
  348. package/dist/esm/elements/is/SwcAppMap.js.map +0 -7
  349. package/dist/esm/elements/is/SwcAppMeta.js +0 -36
  350. package/dist/esm/elements/is/SwcAppMeta.js.map +0 -7
  351. package/dist/esm/elements/is/SwcAppMeter.js +0 -36
  352. package/dist/esm/elements/is/SwcAppMeter.js.map +0 -7
  353. package/dist/esm/elements/is/SwcAppMod.js +0 -36
  354. package/dist/esm/elements/is/SwcAppMod.js.map +0 -7
  355. package/dist/esm/elements/is/SwcAppObject.js +0 -36
  356. package/dist/esm/elements/is/SwcAppObject.js.map +0 -7
  357. package/dist/esm/elements/is/SwcAppOl.js +0 -36
  358. package/dist/esm/elements/is/SwcAppOl.js.map +0 -7
  359. package/dist/esm/elements/is/SwcAppOptGroup.js +0 -36
  360. package/dist/esm/elements/is/SwcAppOptGroup.js.map +0 -7
  361. package/dist/esm/elements/is/SwcAppOption.js +0 -36
  362. package/dist/esm/elements/is/SwcAppOption.js.map +0 -7
  363. package/dist/esm/elements/is/SwcAppOutput.js +0 -36
  364. package/dist/esm/elements/is/SwcAppOutput.js.map +0 -7
  365. package/dist/esm/elements/is/SwcAppParagraph.js +0 -36
  366. package/dist/esm/elements/is/SwcAppParagraph.js.map +0 -7
  367. package/dist/esm/elements/is/SwcAppParam.js +0 -36
  368. package/dist/esm/elements/is/SwcAppParam.js.map +0 -7
  369. package/dist/esm/elements/is/SwcAppPicture.js +0 -36
  370. package/dist/esm/elements/is/SwcAppPicture.js.map +0 -7
  371. package/dist/esm/elements/is/SwcAppPre.js +0 -36
  372. package/dist/esm/elements/is/SwcAppPre.js.map +0 -7
  373. package/dist/esm/elements/is/SwcAppProgress.js +0 -36
  374. package/dist/esm/elements/is/SwcAppProgress.js.map +0 -7
  375. package/dist/esm/elements/is/SwcAppQuote.js +0 -36
  376. package/dist/esm/elements/is/SwcAppQuote.js.map +0 -7
  377. package/dist/esm/elements/is/SwcAppScript.js +0 -36
  378. package/dist/esm/elements/is/SwcAppScript.js.map +0 -7
  379. package/dist/esm/elements/is/SwcAppSelect.js +0 -36
  380. package/dist/esm/elements/is/SwcAppSelect.js.map +0 -7
  381. package/dist/esm/elements/is/SwcAppSlot.js +0 -36
  382. package/dist/esm/elements/is/SwcAppSlot.js.map +0 -7
  383. package/dist/esm/elements/is/SwcAppSource.js +0 -36
  384. package/dist/esm/elements/is/SwcAppSource.js.map +0 -7
  385. package/dist/esm/elements/is/SwcAppSpan.js +0 -36
  386. package/dist/esm/elements/is/SwcAppSpan.js.map +0 -7
  387. package/dist/esm/elements/is/SwcAppStyle.js +0 -36
  388. package/dist/esm/elements/is/SwcAppStyle.js.map +0 -7
  389. package/dist/esm/elements/is/SwcAppTable.js +0 -36
  390. package/dist/esm/elements/is/SwcAppTable.js.map +0 -7
  391. package/dist/esm/elements/is/SwcAppTableCell.js +0 -36
  392. package/dist/esm/elements/is/SwcAppTableCell.js.map +0 -7
  393. package/dist/esm/elements/is/SwcAppTableRow.js +0 -36
  394. package/dist/esm/elements/is/SwcAppTableRow.js.map +0 -7
  395. package/dist/esm/elements/is/SwcAppTableSection.js +0 -36
  396. package/dist/esm/elements/is/SwcAppTableSection.js.map +0 -7
  397. package/dist/esm/elements/is/SwcAppTemplate.js +0 -36
  398. package/dist/esm/elements/is/SwcAppTemplate.js.map +0 -7
  399. package/dist/esm/elements/is/SwcAppTextArea.js +0 -36
  400. package/dist/esm/elements/is/SwcAppTextArea.js.map +0 -7
  401. package/dist/esm/elements/is/SwcAppTime.js +0 -36
  402. package/dist/esm/elements/is/SwcAppTime.js.map +0 -7
  403. package/dist/esm/elements/is/SwcAppTitle.js +0 -36
  404. package/dist/esm/elements/is/SwcAppTitle.js.map +0 -7
  405. package/dist/esm/elements/is/SwcAppTrack.js +0 -36
  406. package/dist/esm/elements/is/SwcAppTrack.js.map +0 -7
  407. package/dist/esm/elements/is/SwcAppUl.js +0 -36
  408. package/dist/esm/elements/is/SwcAppUl.js.map +0 -7
  409. package/dist/esm/elements/is/SwcAppVideo.js +0 -36
  410. package/dist/esm/elements/is/SwcAppVideo.js.map +0 -7
  411. package/dist/esm/elements/is/index.js +0 -58
  412. package/dist/esm/elements/is/index.js.map +0 -7
  413. package/dist/types/elements/SwcApp.d.ts +0 -9
  414. package/dist/types/elements/SwcApp.d.ts.map +0 -1
  415. package/dist/types/elements/is/SwcAppAnchor.d.ts +0 -9
  416. package/dist/types/elements/is/SwcAppAnchor.d.ts.map +0 -1
  417. package/dist/types/elements/is/SwcAppArea.d.ts +0 -9
  418. package/dist/types/elements/is/SwcAppArea.d.ts.map +0 -1
  419. package/dist/types/elements/is/SwcAppAudio.d.ts +0 -9
  420. package/dist/types/elements/is/SwcAppAudio.d.ts.map +0 -1
  421. package/dist/types/elements/is/SwcAppBase.d.ts +0 -9
  422. package/dist/types/elements/is/SwcAppBase.d.ts.map +0 -1
  423. package/dist/types/elements/is/SwcAppBody.d.ts +0 -9
  424. package/dist/types/elements/is/SwcAppBody.d.ts.map +0 -1
  425. package/dist/types/elements/is/SwcAppButton.d.ts +0 -9
  426. package/dist/types/elements/is/SwcAppButton.d.ts.map +0 -1
  427. package/dist/types/elements/is/SwcAppCanvas.d.ts +0 -9
  428. package/dist/types/elements/is/SwcAppCanvas.d.ts.map +0 -1
  429. package/dist/types/elements/is/SwcAppData.d.ts +0 -9
  430. package/dist/types/elements/is/SwcAppData.d.ts.map +0 -1
  431. package/dist/types/elements/is/SwcAppDataList.d.ts +0 -9
  432. package/dist/types/elements/is/SwcAppDataList.d.ts.map +0 -1
  433. package/dist/types/elements/is/SwcAppDetails.d.ts +0 -9
  434. package/dist/types/elements/is/SwcAppDetails.d.ts.map +0 -1
  435. package/dist/types/elements/is/SwcAppDialog.d.ts +0 -9
  436. package/dist/types/elements/is/SwcAppDialog.d.ts.map +0 -1
  437. package/dist/types/elements/is/SwcAppDiv.d.ts +0 -9
  438. package/dist/types/elements/is/SwcAppDiv.d.ts.map +0 -1
  439. package/dist/types/elements/is/SwcAppDl.d.ts +0 -9
  440. package/dist/types/elements/is/SwcAppDl.d.ts.map +0 -1
  441. package/dist/types/elements/is/SwcAppEmbed.d.ts +0 -9
  442. package/dist/types/elements/is/SwcAppEmbed.d.ts.map +0 -1
  443. package/dist/types/elements/is/SwcAppFieldSet.d.ts +0 -9
  444. package/dist/types/elements/is/SwcAppFieldSet.d.ts.map +0 -1
  445. package/dist/types/elements/is/SwcAppForm.d.ts +0 -9
  446. package/dist/types/elements/is/SwcAppForm.d.ts.map +0 -1
  447. package/dist/types/elements/is/SwcAppHeading.d.ts +0 -9
  448. package/dist/types/elements/is/SwcAppHeading.d.ts.map +0 -1
  449. package/dist/types/elements/is/SwcAppHr.d.ts +0 -9
  450. package/dist/types/elements/is/SwcAppHr.d.ts.map +0 -1
  451. package/dist/types/elements/is/SwcAppIFrame.d.ts +0 -9
  452. package/dist/types/elements/is/SwcAppIFrame.d.ts.map +0 -1
  453. package/dist/types/elements/is/SwcAppImage.d.ts +0 -9
  454. package/dist/types/elements/is/SwcAppImage.d.ts.map +0 -1
  455. package/dist/types/elements/is/SwcAppInput.d.ts +0 -9
  456. package/dist/types/elements/is/SwcAppInput.d.ts.map +0 -1
  457. package/dist/types/elements/is/SwcAppLabel.d.ts +0 -9
  458. package/dist/types/elements/is/SwcAppLabel.d.ts.map +0 -1
  459. package/dist/types/elements/is/SwcAppLegend.d.ts +0 -9
  460. package/dist/types/elements/is/SwcAppLegend.d.ts.map +0 -1
  461. package/dist/types/elements/is/SwcAppLi.d.ts +0 -9
  462. package/dist/types/elements/is/SwcAppLi.d.ts.map +0 -1
  463. package/dist/types/elements/is/SwcAppLink.d.ts +0 -9
  464. package/dist/types/elements/is/SwcAppLink.d.ts.map +0 -1
  465. package/dist/types/elements/is/SwcAppMap.d.ts +0 -9
  466. package/dist/types/elements/is/SwcAppMap.d.ts.map +0 -1
  467. package/dist/types/elements/is/SwcAppMeta.d.ts +0 -9
  468. package/dist/types/elements/is/SwcAppMeta.d.ts.map +0 -1
  469. package/dist/types/elements/is/SwcAppMeter.d.ts +0 -9
  470. package/dist/types/elements/is/SwcAppMeter.d.ts.map +0 -1
  471. package/dist/types/elements/is/SwcAppMod.d.ts +0 -9
  472. package/dist/types/elements/is/SwcAppMod.d.ts.map +0 -1
  473. package/dist/types/elements/is/SwcAppObject.d.ts +0 -9
  474. package/dist/types/elements/is/SwcAppObject.d.ts.map +0 -1
  475. package/dist/types/elements/is/SwcAppOl.d.ts +0 -9
  476. package/dist/types/elements/is/SwcAppOl.d.ts.map +0 -1
  477. package/dist/types/elements/is/SwcAppOptGroup.d.ts +0 -9
  478. package/dist/types/elements/is/SwcAppOptGroup.d.ts.map +0 -1
  479. package/dist/types/elements/is/SwcAppOption.d.ts +0 -9
  480. package/dist/types/elements/is/SwcAppOption.d.ts.map +0 -1
  481. package/dist/types/elements/is/SwcAppOutput.d.ts +0 -9
  482. package/dist/types/elements/is/SwcAppOutput.d.ts.map +0 -1
  483. package/dist/types/elements/is/SwcAppParagraph.d.ts +0 -9
  484. package/dist/types/elements/is/SwcAppParagraph.d.ts.map +0 -1
  485. package/dist/types/elements/is/SwcAppParam.d.ts +0 -9
  486. package/dist/types/elements/is/SwcAppParam.d.ts.map +0 -1
  487. package/dist/types/elements/is/SwcAppPicture.d.ts +0 -9
  488. package/dist/types/elements/is/SwcAppPicture.d.ts.map +0 -1
  489. package/dist/types/elements/is/SwcAppPre.d.ts +0 -9
  490. package/dist/types/elements/is/SwcAppPre.d.ts.map +0 -1
  491. package/dist/types/elements/is/SwcAppProgress.d.ts +0 -9
  492. package/dist/types/elements/is/SwcAppProgress.d.ts.map +0 -1
  493. package/dist/types/elements/is/SwcAppQuote.d.ts +0 -9
  494. package/dist/types/elements/is/SwcAppQuote.d.ts.map +0 -1
  495. package/dist/types/elements/is/SwcAppScript.d.ts +0 -9
  496. package/dist/types/elements/is/SwcAppScript.d.ts.map +0 -1
  497. package/dist/types/elements/is/SwcAppSelect.d.ts +0 -9
  498. package/dist/types/elements/is/SwcAppSelect.d.ts.map +0 -1
  499. package/dist/types/elements/is/SwcAppSlot.d.ts +0 -9
  500. package/dist/types/elements/is/SwcAppSlot.d.ts.map +0 -1
  501. package/dist/types/elements/is/SwcAppSource.d.ts +0 -9
  502. package/dist/types/elements/is/SwcAppSource.d.ts.map +0 -1
  503. package/dist/types/elements/is/SwcAppSpan.d.ts +0 -9
  504. package/dist/types/elements/is/SwcAppSpan.d.ts.map +0 -1
  505. package/dist/types/elements/is/SwcAppStyle.d.ts +0 -9
  506. package/dist/types/elements/is/SwcAppStyle.d.ts.map +0 -1
  507. package/dist/types/elements/is/SwcAppTable.d.ts +0 -9
  508. package/dist/types/elements/is/SwcAppTable.d.ts.map +0 -1
  509. package/dist/types/elements/is/SwcAppTableCell.d.ts +0 -9
  510. package/dist/types/elements/is/SwcAppTableCell.d.ts.map +0 -1
  511. package/dist/types/elements/is/SwcAppTableRow.d.ts +0 -9
  512. package/dist/types/elements/is/SwcAppTableRow.d.ts.map +0 -1
  513. package/dist/types/elements/is/SwcAppTableSection.d.ts +0 -9
  514. package/dist/types/elements/is/SwcAppTableSection.d.ts.map +0 -1
  515. package/dist/types/elements/is/SwcAppTemplate.d.ts +0 -9
  516. package/dist/types/elements/is/SwcAppTemplate.d.ts.map +0 -1
  517. package/dist/types/elements/is/SwcAppTextArea.d.ts +0 -9
  518. package/dist/types/elements/is/SwcAppTextArea.d.ts.map +0 -1
  519. package/dist/types/elements/is/SwcAppTime.d.ts +0 -9
  520. package/dist/types/elements/is/SwcAppTime.d.ts.map +0 -1
  521. package/dist/types/elements/is/SwcAppTitle.d.ts +0 -9
  522. package/dist/types/elements/is/SwcAppTitle.d.ts.map +0 -1
  523. package/dist/types/elements/is/SwcAppTrack.d.ts +0 -9
  524. package/dist/types/elements/is/SwcAppTrack.d.ts.map +0 -1
  525. package/dist/types/elements/is/SwcAppUl.d.ts +0 -9
  526. package/dist/types/elements/is/SwcAppUl.d.ts.map +0 -1
  527. package/dist/types/elements/is/SwcAppVideo.d.ts +0 -9
  528. package/dist/types/elements/is/SwcAppVideo.d.ts.map +0 -1
  529. package/dist/types/elements/is/index.d.ts +0 -58
  530. package/dist/types/elements/is/index.d.ts.map +0 -1
  531. package/src/elements/SwcApp.ts +0 -26
  532. package/src/elements/is/SwcAppAnchor.ts +0 -26
  533. package/src/elements/is/SwcAppArea.ts +0 -26
  534. package/src/elements/is/SwcAppAudio.ts +0 -26
  535. package/src/elements/is/SwcAppBase.ts +0 -26
  536. package/src/elements/is/SwcAppBody.ts +0 -26
  537. package/src/elements/is/SwcAppButton.ts +0 -26
  538. package/src/elements/is/SwcAppCanvas.ts +0 -26
  539. package/src/elements/is/SwcAppData.ts +0 -26
  540. package/src/elements/is/SwcAppDataList.ts +0 -26
  541. package/src/elements/is/SwcAppDetails.ts +0 -26
  542. package/src/elements/is/SwcAppDialog.ts +0 -26
  543. package/src/elements/is/SwcAppDiv.ts +0 -26
  544. package/src/elements/is/SwcAppDl.ts +0 -26
  545. package/src/elements/is/SwcAppEmbed.ts +0 -26
  546. package/src/elements/is/SwcAppFieldSet.ts +0 -26
  547. package/src/elements/is/SwcAppForm.ts +0 -26
  548. package/src/elements/is/SwcAppHeading.ts +0 -26
  549. package/src/elements/is/SwcAppHr.ts +0 -26
  550. package/src/elements/is/SwcAppIFrame.ts +0 -26
  551. package/src/elements/is/SwcAppImage.ts +0 -26
  552. package/src/elements/is/SwcAppInput.ts +0 -26
  553. package/src/elements/is/SwcAppLabel.ts +0 -26
  554. package/src/elements/is/SwcAppLegend.ts +0 -26
  555. package/src/elements/is/SwcAppLi.ts +0 -26
  556. package/src/elements/is/SwcAppLink.ts +0 -26
  557. package/src/elements/is/SwcAppMap.ts +0 -26
  558. package/src/elements/is/SwcAppMeta.ts +0 -26
  559. package/src/elements/is/SwcAppMeter.ts +0 -26
  560. package/src/elements/is/SwcAppMod.ts +0 -26
  561. package/src/elements/is/SwcAppObject.ts +0 -26
  562. package/src/elements/is/SwcAppOl.ts +0 -26
  563. package/src/elements/is/SwcAppOptGroup.ts +0 -26
  564. package/src/elements/is/SwcAppOption.ts +0 -26
  565. package/src/elements/is/SwcAppOutput.ts +0 -26
  566. package/src/elements/is/SwcAppParagraph.ts +0 -26
  567. package/src/elements/is/SwcAppParam.ts +0 -26
  568. package/src/elements/is/SwcAppPicture.ts +0 -26
  569. package/src/elements/is/SwcAppPre.ts +0 -26
  570. package/src/elements/is/SwcAppProgress.ts +0 -26
  571. package/src/elements/is/SwcAppQuote.ts +0 -26
  572. package/src/elements/is/SwcAppScript.ts +0 -26
  573. package/src/elements/is/SwcAppSelect.ts +0 -26
  574. package/src/elements/is/SwcAppSlot.ts +0 -26
  575. package/src/elements/is/SwcAppSource.ts +0 -26
  576. package/src/elements/is/SwcAppSpan.ts +0 -26
  577. package/src/elements/is/SwcAppStyle.ts +0 -26
  578. package/src/elements/is/SwcAppTable.ts +0 -26
  579. package/src/elements/is/SwcAppTableCell.ts +0 -26
  580. package/src/elements/is/SwcAppTableRow.ts +0 -26
  581. package/src/elements/is/SwcAppTableSection.ts +0 -26
  582. package/src/elements/is/SwcAppTemplate.ts +0 -26
  583. package/src/elements/is/SwcAppTextArea.ts +0 -26
  584. package/src/elements/is/SwcAppTime.ts +0 -26
  585. package/src/elements/is/SwcAppTitle.ts +0 -26
  586. package/src/elements/is/SwcAppTrack.ts +0 -26
  587. package/src/elements/is/SwcAppUl.ts +0 -26
  588. package/src/elements/is/SwcAppVideo.ts +0 -26
  589. package/src/elements/is/index.ts +0 -57
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dooboostore/simple-web-component",
3
- "version": "1.0.18",
3
+ "version": "1.0.19",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -108,7 +108,7 @@
108
108
  "ts:clean": "find . -name '*.js' -o -name '*.map' -o -name '*.d.ts' | xargs rm -f",
109
109
  "typecheck": "pnpm exec tsc --noEmit",
110
110
  "generate:is": "tsx generate-is.ts",
111
- "generate:is:watch": "node --import tsx --watch --watch-path=./src/elements/base/SwcHTMLElementBase.ts --watch-path=./src/elements/SwcApp.ts generate-is.ts",
111
+ "generate:is:watch": "node --import tsx --watch --watch-path=./src/elements/SwcIf.ts --watch-path=./src/elements/SwcLoop.ts --watch-path=./src/elements/SwcChoose.ts --watch-path=./src/elements/SwcAsync.ts --watch-path=./src/elements/SwcAppMixin.ts --watch-path=./generate-is.ts generate-is.ts",
112
112
  "test": "echo test",
113
113
  "test:bundle": "pnpm --filter @dooboostore/simple-web-component-bundle-test dev"
114
114
  }
@@ -59,3 +59,5 @@ export const HTML_TAG_ENTRIES: [string, string][] = [
59
59
  ];
60
60
 
61
61
  export const DOM_EVENT_NAMES = ['click', 'dblclick', 'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'contextmenu', 'keydown', 'keypress', 'keyup', 'blur', 'change', 'focus', 'focusin', 'focusout', 'input', 'invalid', 'reset', 'search', 'select', 'submit', 'drag', 'dragend', 'dragenter', 'dragleave', 'dragover', 'dragstart', 'drop', 'copy', 'cut', 'paste', 'abort', 'canplay', 'canplaythrough', 'durationchange', 'emptied', 'ended', 'error', 'loadeddata', 'loadedmetadata', 'loadstart', 'pause', 'play', 'playing', 'progress', 'ratechange', 'seeked', 'seeking', 'stalled', 'suspend', 'timeupdate', 'volumechange', 'waiting', 'scroll', 'resize', 'load', 'unload', 'hashchange', 'connected'];
62
+
63
+ export const BROWSER_GLOBALS = ['window', 'document', 'Node', 'Element', 'HTMLElement', 'DocumentFragment', 'CustomEvent', 'customElements', 'NodeFilter', ...HTML_TAG_ENTRIES.map(([className]) => className)];
@@ -1,41 +1,42 @@
1
1
  import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
2
+ import { SpecialSelector, SwcQueryOptions } from '../types';
2
3
 
3
- export interface AddEventListenerOptions extends EventListenerOptions {
4
- root?: 'light' | 'shadow' | 'all' | 'auto';
4
+ export interface AddEventListenerBaseOptions extends EventListenerOptions {
5
5
  capture?: boolean;
6
6
  once?: boolean;
7
7
  passive?: boolean;
8
8
  stopPropagation?: boolean;
9
9
  stopImmediatePropagation?: boolean;
10
10
  preventDefault?: boolean;
11
- delegate?: boolean;
12
11
  removeOnDisconnected?: boolean;
12
+ delegate?: boolean;
13
13
  }
14
14
 
15
15
  export interface AddEventListenerMetadata {
16
+ propertyKey: string | symbol;
16
17
  selector: string;
17
18
  type: string;
18
- options: AddEventListenerOptions;
19
- propertyKey: string | symbol;
19
+ options: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean };
20
20
  }
21
21
 
22
22
  export const ADD_EVENT_LISTENER_METADATA_KEY = Symbol('simple-web-component:add-event-listener');
23
23
 
24
+ export function addEventListener(target: SpecialSelector, type: string, options?: AddEventListenerBaseOptions): MethodDecorator;
25
+ export function addEventListener(selector: string, type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;
24
26
  /**
25
27
  * @addEventListener decorator to bind events to elements.
26
- * Usage: @addEventListener('.btn', 'click') onClick() { ... }
27
- * Usage: @addEventListener('', 'scroll', { passive: true }) onScroll() { ... }
28
28
  */
29
- export function addEventListener(selector: string, type: string, options: AddEventListenerOptions = {}): MethodDecorator {
30
- return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
31
- const constructor = target.constructor;
29
+ export function addEventListener(selectorOrTarget: string, type: string, options: any = {}): MethodDecorator {
30
+ return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
31
+ const constructor = targetObj.constructor;
32
32
 
33
33
  let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata[]>(ADD_EVENT_LISTENER_METADATA_KEY, constructor);
34
34
  if (!listeners) {
35
35
  listeners = [];
36
36
  ReflectUtils.defineMetadata(ADD_EVENT_LISTENER_METADATA_KEY, listeners, constructor);
37
37
  }
38
- listeners.push({ selector, type, options, propertyKey });
38
+
39
+ listeners.push({ propertyKey, selector: selectorOrTarget, type, options });
39
40
  };
40
41
  }
41
42
 
@@ -1,6 +1,7 @@
1
1
  import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
2
+ import { ensureInit, getElementConfig } from './elementDefine';
2
3
 
3
- export type AppendChildPosition = 'firstChild' | 'lastChild' | 'nextSibling' | 'previousSibling';
4
+ export type AppendChildPosition = 'beforeBegin' | 'afterBegin' | 'beforeEnd' | 'afterEnd';
4
5
 
5
6
  export interface AppendChildOptions {
6
7
  position?: AppendChildPosition;
@@ -14,19 +15,62 @@ export interface AppendChildMetadata {
14
15
 
15
16
  export const APPEND_CHILD_METADATA_KEY = Symbol('simple-web-component:append-child');
16
17
 
18
+ const normalizeNodes = (res: any, doc: Document): Node[] => {
19
+ const items = Array.isArray(res) ? res : [res];
20
+ return items.map(it => {
21
+ if (it instanceof Node) return it;
22
+ return doc.createTextNode(it !== undefined && it !== null ? String(it) : '');
23
+ });
24
+ };
25
+
17
26
  /**
18
27
  * @appendChild decorator to surgically add nodes to a target element.
19
28
  * Usage: @appendChild('#list') addItem() { return '<li>New Item</li>'; }
20
29
  */
21
- export function appendChild(selector: string, options: AppendChildOptions = { position: 'lastChild' }): MethodDecorator {
22
- return (target: Object, propertyKey: string | symbol) => {
30
+ export function appendChild(selector: string, options: AppendChildOptions = { position: 'beforeEnd' }): MethodDecorator {
31
+ return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
23
32
  const constructor = target.constructor;
24
- let meta = ReflectUtils.getOwnMetadata(APPEND_CHILD_METADATA_KEY, constructor) as Map<string | symbol, AppendChildMetadata>;
25
- if (!meta) {
26
- meta = new Map<string | symbol, AppendChildMetadata>();
27
- ReflectUtils.defineMetadata(APPEND_CHILD_METADATA_KEY, meta, constructor);
33
+ let metaList = ReflectUtils.getOwnMetadata(APPEND_CHILD_METADATA_KEY, constructor) as Map<string | symbol, AppendChildMetadata>;
34
+ if (!metaList) {
35
+ metaList = new Map<string | symbol, AppendChildMetadata>();
36
+ ReflectUtils.defineMetadata(APPEND_CHILD_METADATA_KEY, metaList, constructor);
28
37
  }
29
- meta.set(propertyKey, { propertyKey, selector, options });
38
+ metaList.set(propertyKey, { propertyKey, selector, options });
39
+
40
+ const original = descriptor.value;
41
+ descriptor.value = async function (...args: any[]) {
42
+ ensureInit(this);
43
+ const res = await original.apply(this, args);
44
+ if (res !== undefined) {
45
+ const conf = getElementConfig(this);
46
+ const currentWin = (this as any)._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as Window);
47
+ const currentDoc = currentWin.document;
48
+
49
+ let targetEl: HTMLElement | null = null;
50
+ if (selector === ':host' || !selector) {
51
+ targetEl = this as any;
52
+ } else {
53
+ targetEl = (this.shadowRoot || (this as any)).querySelector(selector);
54
+ }
55
+
56
+ if (targetEl) {
57
+ const nodes = normalizeNodes(res, currentDoc);
58
+ const pos = options.position || 'beforeEnd';
59
+
60
+ if (typeof res === 'string') {
61
+ targetEl.insertAdjacentText(pos as InsertPosition, res);
62
+ } else if (Array.isArray(res) && res.every(n => typeof n === 'string')) {
63
+ targetEl.insertAdjacentText(pos as InsertPosition, res.join(''));
64
+ } else {
65
+ if (pos === 'beforeEnd') targetEl.append(...nodes);
66
+ else if (pos === 'afterBegin') targetEl.prepend(...nodes);
67
+ else if (pos === 'beforeBegin') targetEl.before(...nodes);
68
+ else if (pos === 'afterEnd') targetEl.after(...nodes);
69
+ }
70
+ }
71
+ }
72
+ return res;
73
+ };
30
74
  };
31
75
  }
32
76
 
@@ -0,0 +1,117 @@
1
+ import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
2
+ import { ensureInit } from './elementDefine';
3
+ import { SwcUtils } from '../utils/Utils';
4
+
5
+ export const CLASS_LIST_METADATA_KEY = Symbol('simple-web-component:class-list');
6
+
7
+ export type ClassListAction = 'set' | 'update' | 'add' | 'remove' | 'toggle';
8
+
9
+ export interface ClassListMetadata {
10
+ propertyKey: string | symbol;
11
+ selector: string;
12
+ action: ClassListAction;
13
+ }
14
+
15
+ function createClassListDecorator(action: ClassListAction) {
16
+ return (selector: string): MethodDecorator => {
17
+ return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
18
+ const constructor = target.constructor;
19
+ let metaList = ReflectUtils.getOwnMetadata(CLASS_LIST_METADATA_KEY, constructor) as Map<string | symbol, ClassListMetadata>;
20
+ if (!metaList) {
21
+ metaList = new Map<string | symbol, ClassListMetadata>();
22
+ ReflectUtils.defineMetadata(CLASS_LIST_METADATA_KEY, metaList, constructor);
23
+ }
24
+ metaList.set(propertyKey, { propertyKey, selector, action });
25
+
26
+ const original = descriptor.value;
27
+ descriptor.value = async function (...args: any[]) {
28
+ ensureInit(this);
29
+ const res = await original.apply(this, args);
30
+ if (res !== undefined) {
31
+ const hostSet = SwcUtils.getHostSet(this as any);
32
+
33
+ let targetEl: HTMLElement | null = null;
34
+ if (selector === ':host' || !selector) targetEl = this as any;
35
+ else if (selector === ':parentHost') targetEl = hostSet.$parentHost;
36
+ else if (selector === ':appHost') targetEl = hostSet.$appHost;
37
+ else targetEl = (this.shadowRoot || (this as any)).querySelector(selector);
38
+
39
+ if (targetEl) {
40
+ if (action === 'set') {
41
+ let classes = '';
42
+ if (typeof res === 'object' && res !== null && !Array.isArray(res)) {
43
+ classes = Object.entries(res)
44
+ .filter(([_, force]) => !!force)
45
+ .map(([cls]) => cls)
46
+ .join(' ');
47
+ } else {
48
+ classes = Array.isArray(res) ? res.join(' ') : String(res);
49
+ }
50
+ targetEl.className = classes;
51
+ } else if (action === 'update') {
52
+ if (typeof res === 'object' && res !== null && !Array.isArray(res)) {
53
+ Object.entries(res).forEach(([cls, force]) => {
54
+ targetEl!.classList.toggle(cls, !!force);
55
+ });
56
+ } else if (res !== undefined && res !== null) {
57
+ const classes = Array.isArray(res) ? res.map(String) : [String(res)];
58
+ targetEl.classList.add(...classes);
59
+ }
60
+ } else if (action === 'add') {
61
+ const classes = Array.isArray(res) ? res.map(String) : [String(res)];
62
+ targetEl.classList.add(...classes);
63
+ } else if (action === 'remove') {
64
+ const classes = Array.isArray(res) ? res.map(String) : [String(res)];
65
+ targetEl.classList.remove(...classes);
66
+ } else if (action === 'toggle') {
67
+ const classes = Array.isArray(res) ? res.map(String) : [String(res)];
68
+ classes.forEach(c => targetEl!.classList.toggle(c));
69
+ }
70
+ }
71
+ }
72
+ return res;
73
+ };
74
+ };
75
+ };
76
+ }
77
+
78
+ /**
79
+ * @setClassList decorator to surgically replace all classes on a target element.
80
+ * Returns: string | string[]
81
+ */
82
+ export const setClassList = createClassListDecorator('set');
83
+
84
+ /**
85
+ * @updateClassList decorator to surgically update specific classes.
86
+ * Returns: Record<string, boolean> (toggle with force) | string | string[] (add)
87
+ */
88
+ export const updateClassList = createClassListDecorator('update');
89
+
90
+ /**
91
+ * @addClassList decorator to surgically add classes to a target element.
92
+ * Returns: string | string[]
93
+ */
94
+ export const addClassList = createClassListDecorator('add');
95
+
96
+ /**
97
+ * @removeClassList decorator to surgically remove classes from a target element.
98
+ * Returns: string | string[]
99
+ */
100
+ export const removeClassList = createClassListDecorator('remove');
101
+
102
+ /**
103
+ * @toggleClassList decorator to surgically toggle classes on a target element.
104
+ * Returns: string | string[]
105
+ */
106
+ export const toggleClassList = createClassListDecorator('toggle');
107
+
108
+ export const findAllClassListMetadata = (target: any): Map<string | symbol, ClassListMetadata> => {
109
+ const result = new Map<string | symbol, ClassListMetadata>();
110
+ const maps = ReflectUtils.findAllMetadata<Map<string | symbol, ClassListMetadata>>(CLASS_LIST_METADATA_KEY, target);
111
+ maps.forEach(map => {
112
+ if (map instanceof Map) {
113
+ map.forEach((v, k) => result.set(k, v));
114
+ }
115
+ });
116
+ return result;
117
+ };