@dooboostore/simple-web-component 1.0.17 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/README.md +130 -143
  2. package/dist/cjs/config/config.js +2 -0
  3. package/dist/cjs/config/config.js.map +2 -2
  4. package/dist/cjs/decorators/addEventListener.js +4 -4
  5. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  6. package/dist/cjs/decorators/appendChild.js +92 -0
  7. package/dist/cjs/decorators/appendChild.js.map +7 -0
  8. package/dist/cjs/decorators/classList.js +104 -0
  9. package/dist/cjs/decorators/classList.js.map +7 -0
  10. package/dist/cjs/decorators/elementDefine.js +309 -349
  11. package/dist/cjs/decorators/elementDefine.js.map +3 -3
  12. package/dist/cjs/decorators/emitCustomEvent.js +61 -9
  13. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  14. package/dist/cjs/decorators/index.js +5 -1
  15. package/dist/cjs/decorators/index.js.map +2 -2
  16. package/dist/cjs/decorators/{innerHtml.js → onConnectedInnerHtml.js} +8 -8
  17. package/dist/cjs/decorators/onConnectedInnerHtml.js.map +7 -0
  18. package/dist/cjs/decorators/query.js +61 -21
  19. package/dist/cjs/decorators/query.js.map +2 -2
  20. package/dist/cjs/decorators/queryAll.js +61 -19
  21. package/dist/cjs/decorators/queryAll.js.map +2 -2
  22. package/dist/cjs/decorators/replaceChildren.js +79 -0
  23. package/dist/cjs/decorators/replaceChildren.js.map +7 -0
  24. package/dist/cjs/decorators/setAttribute.js +35 -7
  25. package/dist/cjs/decorators/setAttribute.js.map +2 -2
  26. package/dist/cjs/decorators/style.js +88 -0
  27. package/dist/cjs/decorators/style.js.map +7 -0
  28. package/dist/cjs/elements/SwcAppEngine.js +23 -8
  29. package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
  30. package/dist/cjs/elements/SwcAppMixin.js +52 -0
  31. package/dist/cjs/elements/SwcAppMixin.js.map +7 -0
  32. package/dist/cjs/elements/SwcAsync.js +57 -122
  33. package/dist/cjs/elements/SwcAsync.js.map +3 -3
  34. package/dist/cjs/elements/SwcChoose.js +51 -75
  35. package/dist/cjs/elements/SwcChoose.js.map +3 -3
  36. package/dist/cjs/elements/SwcIf.js +65 -93
  37. package/dist/cjs/elements/SwcIf.js.map +3 -3
  38. package/dist/cjs/elements/SwcLoop.js +72 -173
  39. package/dist/cjs/elements/SwcLoop.js.map +3 -3
  40. package/dist/cjs/elements/SwcSubTemplates.js +12 -37
  41. package/dist/cjs/elements/SwcSubTemplates.js.map +3 -3
  42. package/dist/cjs/elements/index.js +1 -8
  43. package/dist/cjs/elements/index.js.map +2 -2
  44. package/dist/cjs/elements/register.js +831 -0
  45. package/dist/cjs/elements/register.js.map +7 -0
  46. package/dist/cjs/index.js +22 -2
  47. package/dist/cjs/index.js.map +2 -2
  48. package/dist/cjs/types.js.map +1 -1
  49. package/dist/cjs/utils/TemplateUtils.js +103 -0
  50. package/dist/cjs/utils/TemplateUtils.js.map +7 -0
  51. package/dist/cjs/utils/Utils.js +10 -7
  52. package/dist/cjs/utils/Utils.js.map +2 -2
  53. package/dist/esm/config/config.js +2 -0
  54. package/dist/esm/config/config.js.map +2 -2
  55. package/dist/esm/decorators/addEventListener.js +4 -4
  56. package/dist/esm/decorators/addEventListener.js.map +2 -2
  57. package/dist/esm/decorators/appendChild.js +73 -0
  58. package/dist/esm/decorators/appendChild.js.map +7 -0
  59. package/dist/esm/decorators/classList.js +85 -0
  60. package/dist/esm/decorators/classList.js.map +7 -0
  61. package/dist/esm/decorators/elementDefine.js +309 -349
  62. package/dist/esm/decorators/elementDefine.js.map +3 -3
  63. package/dist/esm/decorators/emitCustomEvent.js +61 -9
  64. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  65. package/dist/esm/decorators/index.js +5 -1
  66. package/dist/esm/decorators/index.js.map +2 -2
  67. package/dist/esm/decorators/{innerHtml.js → onConnectedInnerHtml.js} +5 -5
  68. package/dist/esm/decorators/onConnectedInnerHtml.js.map +7 -0
  69. package/dist/esm/decorators/query.js +62 -22
  70. package/dist/esm/decorators/query.js.map +2 -2
  71. package/dist/esm/decorators/queryAll.js +62 -20
  72. package/dist/esm/decorators/queryAll.js.map +2 -2
  73. package/dist/esm/decorators/replaceChildren.js +60 -0
  74. package/dist/esm/decorators/replaceChildren.js.map +7 -0
  75. package/dist/esm/decorators/setAttribute.js +35 -7
  76. package/dist/esm/decorators/setAttribute.js.map +2 -2
  77. package/dist/esm/decorators/style.js +69 -0
  78. package/dist/esm/decorators/style.js.map +7 -0
  79. package/dist/esm/elements/SwcAppEngine.js +23 -8
  80. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  81. package/dist/esm/elements/SwcAppMixin.js +33 -0
  82. package/dist/esm/elements/SwcAppMixin.js.map +7 -0
  83. package/dist/esm/elements/SwcAsync.js +57 -122
  84. package/dist/esm/elements/SwcAsync.js.map +3 -3
  85. package/dist/esm/elements/SwcChoose.js +51 -75
  86. package/dist/esm/elements/SwcChoose.js.map +3 -3
  87. package/dist/esm/elements/SwcIf.js +65 -93
  88. package/dist/esm/elements/SwcIf.js.map +3 -3
  89. package/dist/esm/elements/SwcLoop.js +71 -172
  90. package/dist/esm/elements/SwcLoop.js.map +3 -3
  91. package/dist/esm/elements/SwcSubTemplates.js +12 -37
  92. package/dist/esm/elements/SwcSubTemplates.js.map +3 -3
  93. package/dist/esm/elements/index.js +1 -8
  94. package/dist/esm/elements/index.js.map +2 -2
  95. package/dist/esm/elements/register.js +812 -0
  96. package/dist/esm/elements/register.js.map +7 -0
  97. package/dist/esm/index.js +18 -2
  98. package/dist/esm/index.js.map +2 -2
  99. package/dist/esm/types.js.map +1 -1
  100. package/dist/esm/utils/TemplateUtils.js +84 -0
  101. package/dist/esm/utils/TemplateUtils.js.map +7 -0
  102. package/dist/esm/utils/Utils.js +6 -3
  103. package/dist/esm/utils/Utils.js.map +2 -2
  104. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +1091 -5545
  105. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  106. package/dist/types/config/config.d.ts +1 -0
  107. package/dist/types/config/config.d.ts.map +1 -1
  108. package/dist/types/decorators/addEventListener.d.ts +11 -11
  109. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  110. package/dist/types/decorators/appendChild.d.ts +17 -0
  111. package/dist/types/decorators/appendChild.d.ts.map +1 -0
  112. package/dist/types/decorators/classList.d.ts +34 -0
  113. package/dist/types/decorators/classList.d.ts.map +1 -0
  114. package/dist/types/decorators/elementDefine.d.ts +9 -5
  115. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  116. package/dist/types/decorators/emitCustomEvent.d.ts +7 -4
  117. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  118. package/dist/types/decorators/index.d.ts +5 -1
  119. package/dist/types/decorators/index.d.ts.map +1 -1
  120. package/dist/types/decorators/onConnectedInnerHtml.d.ts +15 -0
  121. package/dist/types/decorators/onConnectedInnerHtml.d.ts.map +1 -0
  122. package/dist/types/decorators/query.d.ts +7 -8
  123. package/dist/types/decorators/query.d.ts.map +1 -1
  124. package/dist/types/decorators/queryAll.d.ts +5 -9
  125. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  126. package/dist/types/decorators/replaceChildren.d.ts +9 -0
  127. package/dist/types/decorators/replaceChildren.d.ts.map +1 -0
  128. package/dist/types/decorators/setAttribute.d.ts +13 -3
  129. package/dist/types/decorators/setAttribute.d.ts.map +1 -1
  130. package/dist/types/decorators/style.d.ts +24 -0
  131. package/dist/types/decorators/style.d.ts.map +1 -0
  132. package/dist/types/elements/SwcAppEngine.d.ts +2 -2
  133. package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
  134. package/dist/types/elements/SwcAppMixin.d.ts +364 -0
  135. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -0
  136. package/dist/types/elements/SwcAsync.d.ts +2 -6
  137. package/dist/types/elements/SwcAsync.d.ts.map +1 -1
  138. package/dist/types/elements/SwcChoose.d.ts +2 -1
  139. package/dist/types/elements/SwcChoose.d.ts.map +1 -1
  140. package/dist/types/elements/SwcIf.d.ts +5 -6
  141. package/dist/types/elements/SwcIf.d.ts.map +1 -1
  142. package/dist/types/elements/SwcLoop.d.ts +4 -10
  143. package/dist/types/elements/SwcLoop.d.ts.map +1 -1
  144. package/dist/types/elements/SwcSubTemplates.d.ts.map +1 -1
  145. package/dist/types/elements/index.d.ts +1 -8
  146. package/dist/types/elements/index.d.ts.map +1 -1
  147. package/dist/types/elements/register.d.ts +2 -0
  148. package/dist/types/elements/register.d.ts.map +1 -0
  149. package/dist/types/index.d.ts +9 -2
  150. package/dist/types/index.d.ts.map +1 -1
  151. package/dist/types/types.d.ts +6 -1
  152. package/dist/types/types.d.ts.map +1 -1
  153. package/dist/types/utils/TemplateUtils.d.ts +54 -0
  154. package/dist/types/utils/TemplateUtils.d.ts.map +1 -0
  155. package/dist/types/utils/Utils.d.ts.map +1 -1
  156. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +1091 -5545
  157. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  158. package/package.json +2 -2
  159. package/src/config/config.ts +2 -0
  160. package/src/decorators/addEventListener.ts +12 -11
  161. package/src/decorators/appendChild.ts +86 -0
  162. package/src/decorators/classList.ts +117 -0
  163. package/src/decorators/elementDefine.ts +345 -349
  164. package/src/decorators/emitCustomEvent.ts +76 -12
  165. package/src/decorators/index.ts +5 -1
  166. package/src/decorators/{innerHtml.ts → onConnectedInnerHtml.ts} +7 -6
  167. package/src/decorators/query.ts +63 -31
  168. package/src/decorators/queryAll.ts +60 -28
  169. package/src/decorators/replaceChildren.ts +64 -0
  170. package/src/decorators/setAttribute.ts +53 -11
  171. package/src/decorators/style.ts +89 -0
  172. package/src/elements/SwcAppEngine.ts +26 -11
  173. package/src/elements/SwcAppMixin.ts +34 -0
  174. package/src/elements/SwcAsync.ts +57 -127
  175. package/src/elements/SwcChoose.ts +50 -76
  176. package/src/elements/SwcIf.ts +63 -85
  177. package/src/elements/SwcLoop.ts +70 -167
  178. package/src/elements/SwcSubTemplates.ts +0 -13
  179. package/src/elements/index.ts +1 -8
  180. package/src/elements/register.ts +735 -0
  181. package/src/index.ts +18 -4
  182. package/src/types.ts +13 -5
  183. package/src/utils/TemplateUtils.ts +83 -0
  184. package/src/utils/Utils.ts +6 -3
  185. package/dist/cjs/decorators/innerHtml.js.map +0 -7
  186. package/dist/cjs/elements/SwcApp.js +0 -55
  187. package/dist/cjs/elements/SwcApp.js.map +0 -7
  188. package/dist/cjs/elements/is/SwcAppAnchor.js +0 -55
  189. package/dist/cjs/elements/is/SwcAppAnchor.js.map +0 -7
  190. package/dist/cjs/elements/is/SwcAppArea.js +0 -55
  191. package/dist/cjs/elements/is/SwcAppArea.js.map +0 -7
  192. package/dist/cjs/elements/is/SwcAppAudio.js +0 -55
  193. package/dist/cjs/elements/is/SwcAppAudio.js.map +0 -7
  194. package/dist/cjs/elements/is/SwcAppBase.js +0 -55
  195. package/dist/cjs/elements/is/SwcAppBase.js.map +0 -7
  196. package/dist/cjs/elements/is/SwcAppBody.js +0 -55
  197. package/dist/cjs/elements/is/SwcAppBody.js.map +0 -7
  198. package/dist/cjs/elements/is/SwcAppButton.js +0 -55
  199. package/dist/cjs/elements/is/SwcAppButton.js.map +0 -7
  200. package/dist/cjs/elements/is/SwcAppCanvas.js +0 -55
  201. package/dist/cjs/elements/is/SwcAppCanvas.js.map +0 -7
  202. package/dist/cjs/elements/is/SwcAppData.js +0 -55
  203. package/dist/cjs/elements/is/SwcAppData.js.map +0 -7
  204. package/dist/cjs/elements/is/SwcAppDataList.js +0 -55
  205. package/dist/cjs/elements/is/SwcAppDataList.js.map +0 -7
  206. package/dist/cjs/elements/is/SwcAppDetails.js +0 -55
  207. package/dist/cjs/elements/is/SwcAppDetails.js.map +0 -7
  208. package/dist/cjs/elements/is/SwcAppDialog.js +0 -55
  209. package/dist/cjs/elements/is/SwcAppDialog.js.map +0 -7
  210. package/dist/cjs/elements/is/SwcAppDiv.js +0 -55
  211. package/dist/cjs/elements/is/SwcAppDiv.js.map +0 -7
  212. package/dist/cjs/elements/is/SwcAppDl.js +0 -55
  213. package/dist/cjs/elements/is/SwcAppDl.js.map +0 -7
  214. package/dist/cjs/elements/is/SwcAppEmbed.js +0 -55
  215. package/dist/cjs/elements/is/SwcAppEmbed.js.map +0 -7
  216. package/dist/cjs/elements/is/SwcAppFieldSet.js +0 -55
  217. package/dist/cjs/elements/is/SwcAppFieldSet.js.map +0 -7
  218. package/dist/cjs/elements/is/SwcAppForm.js +0 -55
  219. package/dist/cjs/elements/is/SwcAppForm.js.map +0 -7
  220. package/dist/cjs/elements/is/SwcAppHeading.js +0 -55
  221. package/dist/cjs/elements/is/SwcAppHeading.js.map +0 -7
  222. package/dist/cjs/elements/is/SwcAppHr.js +0 -55
  223. package/dist/cjs/elements/is/SwcAppHr.js.map +0 -7
  224. package/dist/cjs/elements/is/SwcAppIFrame.js +0 -55
  225. package/dist/cjs/elements/is/SwcAppIFrame.js.map +0 -7
  226. package/dist/cjs/elements/is/SwcAppImage.js +0 -55
  227. package/dist/cjs/elements/is/SwcAppImage.js.map +0 -7
  228. package/dist/cjs/elements/is/SwcAppInput.js +0 -55
  229. package/dist/cjs/elements/is/SwcAppInput.js.map +0 -7
  230. package/dist/cjs/elements/is/SwcAppLabel.js +0 -55
  231. package/dist/cjs/elements/is/SwcAppLabel.js.map +0 -7
  232. package/dist/cjs/elements/is/SwcAppLegend.js +0 -55
  233. package/dist/cjs/elements/is/SwcAppLegend.js.map +0 -7
  234. package/dist/cjs/elements/is/SwcAppLi.js +0 -55
  235. package/dist/cjs/elements/is/SwcAppLi.js.map +0 -7
  236. package/dist/cjs/elements/is/SwcAppLink.js +0 -55
  237. package/dist/cjs/elements/is/SwcAppLink.js.map +0 -7
  238. package/dist/cjs/elements/is/SwcAppMap.js +0 -55
  239. package/dist/cjs/elements/is/SwcAppMap.js.map +0 -7
  240. package/dist/cjs/elements/is/SwcAppMeta.js +0 -55
  241. package/dist/cjs/elements/is/SwcAppMeta.js.map +0 -7
  242. package/dist/cjs/elements/is/SwcAppMeter.js +0 -55
  243. package/dist/cjs/elements/is/SwcAppMeter.js.map +0 -7
  244. package/dist/cjs/elements/is/SwcAppMod.js +0 -55
  245. package/dist/cjs/elements/is/SwcAppMod.js.map +0 -7
  246. package/dist/cjs/elements/is/SwcAppObject.js +0 -55
  247. package/dist/cjs/elements/is/SwcAppObject.js.map +0 -7
  248. package/dist/cjs/elements/is/SwcAppOl.js +0 -55
  249. package/dist/cjs/elements/is/SwcAppOl.js.map +0 -7
  250. package/dist/cjs/elements/is/SwcAppOptGroup.js +0 -55
  251. package/dist/cjs/elements/is/SwcAppOptGroup.js.map +0 -7
  252. package/dist/cjs/elements/is/SwcAppOption.js +0 -55
  253. package/dist/cjs/elements/is/SwcAppOption.js.map +0 -7
  254. package/dist/cjs/elements/is/SwcAppOutput.js +0 -55
  255. package/dist/cjs/elements/is/SwcAppOutput.js.map +0 -7
  256. package/dist/cjs/elements/is/SwcAppParagraph.js +0 -55
  257. package/dist/cjs/elements/is/SwcAppParagraph.js.map +0 -7
  258. package/dist/cjs/elements/is/SwcAppParam.js +0 -55
  259. package/dist/cjs/elements/is/SwcAppParam.js.map +0 -7
  260. package/dist/cjs/elements/is/SwcAppPicture.js +0 -55
  261. package/dist/cjs/elements/is/SwcAppPicture.js.map +0 -7
  262. package/dist/cjs/elements/is/SwcAppPre.js +0 -55
  263. package/dist/cjs/elements/is/SwcAppPre.js.map +0 -7
  264. package/dist/cjs/elements/is/SwcAppProgress.js +0 -55
  265. package/dist/cjs/elements/is/SwcAppProgress.js.map +0 -7
  266. package/dist/cjs/elements/is/SwcAppQuote.js +0 -55
  267. package/dist/cjs/elements/is/SwcAppQuote.js.map +0 -7
  268. package/dist/cjs/elements/is/SwcAppScript.js +0 -55
  269. package/dist/cjs/elements/is/SwcAppScript.js.map +0 -7
  270. package/dist/cjs/elements/is/SwcAppSelect.js +0 -55
  271. package/dist/cjs/elements/is/SwcAppSelect.js.map +0 -7
  272. package/dist/cjs/elements/is/SwcAppSlot.js +0 -55
  273. package/dist/cjs/elements/is/SwcAppSlot.js.map +0 -7
  274. package/dist/cjs/elements/is/SwcAppSource.js +0 -55
  275. package/dist/cjs/elements/is/SwcAppSource.js.map +0 -7
  276. package/dist/cjs/elements/is/SwcAppSpan.js +0 -55
  277. package/dist/cjs/elements/is/SwcAppSpan.js.map +0 -7
  278. package/dist/cjs/elements/is/SwcAppStyle.js +0 -55
  279. package/dist/cjs/elements/is/SwcAppStyle.js.map +0 -7
  280. package/dist/cjs/elements/is/SwcAppTable.js +0 -55
  281. package/dist/cjs/elements/is/SwcAppTable.js.map +0 -7
  282. package/dist/cjs/elements/is/SwcAppTableCell.js +0 -55
  283. package/dist/cjs/elements/is/SwcAppTableCell.js.map +0 -7
  284. package/dist/cjs/elements/is/SwcAppTableRow.js +0 -55
  285. package/dist/cjs/elements/is/SwcAppTableRow.js.map +0 -7
  286. package/dist/cjs/elements/is/SwcAppTableSection.js +0 -55
  287. package/dist/cjs/elements/is/SwcAppTableSection.js.map +0 -7
  288. package/dist/cjs/elements/is/SwcAppTemplate.js +0 -55
  289. package/dist/cjs/elements/is/SwcAppTemplate.js.map +0 -7
  290. package/dist/cjs/elements/is/SwcAppTextArea.js +0 -55
  291. package/dist/cjs/elements/is/SwcAppTextArea.js.map +0 -7
  292. package/dist/cjs/elements/is/SwcAppTime.js +0 -55
  293. package/dist/cjs/elements/is/SwcAppTime.js.map +0 -7
  294. package/dist/cjs/elements/is/SwcAppTitle.js +0 -55
  295. package/dist/cjs/elements/is/SwcAppTitle.js.map +0 -7
  296. package/dist/cjs/elements/is/SwcAppTrack.js +0 -55
  297. package/dist/cjs/elements/is/SwcAppTrack.js.map +0 -7
  298. package/dist/cjs/elements/is/SwcAppUl.js +0 -55
  299. package/dist/cjs/elements/is/SwcAppUl.js.map +0 -7
  300. package/dist/cjs/elements/is/SwcAppVideo.js +0 -55
  301. package/dist/cjs/elements/is/SwcAppVideo.js.map +0 -7
  302. package/dist/cjs/elements/is/index.js +0 -74
  303. package/dist/cjs/elements/is/index.js.map +0 -7
  304. package/dist/esm/decorators/innerHtml.js.map +0 -7
  305. package/dist/esm/elements/SwcApp.js +0 -36
  306. package/dist/esm/elements/SwcApp.js.map +0 -7
  307. package/dist/esm/elements/is/SwcAppAnchor.js +0 -36
  308. package/dist/esm/elements/is/SwcAppAnchor.js.map +0 -7
  309. package/dist/esm/elements/is/SwcAppArea.js +0 -36
  310. package/dist/esm/elements/is/SwcAppArea.js.map +0 -7
  311. package/dist/esm/elements/is/SwcAppAudio.js +0 -36
  312. package/dist/esm/elements/is/SwcAppAudio.js.map +0 -7
  313. package/dist/esm/elements/is/SwcAppBase.js +0 -36
  314. package/dist/esm/elements/is/SwcAppBase.js.map +0 -7
  315. package/dist/esm/elements/is/SwcAppBody.js +0 -36
  316. package/dist/esm/elements/is/SwcAppBody.js.map +0 -7
  317. package/dist/esm/elements/is/SwcAppButton.js +0 -36
  318. package/dist/esm/elements/is/SwcAppButton.js.map +0 -7
  319. package/dist/esm/elements/is/SwcAppCanvas.js +0 -36
  320. package/dist/esm/elements/is/SwcAppCanvas.js.map +0 -7
  321. package/dist/esm/elements/is/SwcAppData.js +0 -36
  322. package/dist/esm/elements/is/SwcAppData.js.map +0 -7
  323. package/dist/esm/elements/is/SwcAppDataList.js +0 -36
  324. package/dist/esm/elements/is/SwcAppDataList.js.map +0 -7
  325. package/dist/esm/elements/is/SwcAppDetails.js +0 -36
  326. package/dist/esm/elements/is/SwcAppDetails.js.map +0 -7
  327. package/dist/esm/elements/is/SwcAppDialog.js +0 -36
  328. package/dist/esm/elements/is/SwcAppDialog.js.map +0 -7
  329. package/dist/esm/elements/is/SwcAppDiv.js +0 -36
  330. package/dist/esm/elements/is/SwcAppDiv.js.map +0 -7
  331. package/dist/esm/elements/is/SwcAppDl.js +0 -36
  332. package/dist/esm/elements/is/SwcAppDl.js.map +0 -7
  333. package/dist/esm/elements/is/SwcAppEmbed.js +0 -36
  334. package/dist/esm/elements/is/SwcAppEmbed.js.map +0 -7
  335. package/dist/esm/elements/is/SwcAppFieldSet.js +0 -36
  336. package/dist/esm/elements/is/SwcAppFieldSet.js.map +0 -7
  337. package/dist/esm/elements/is/SwcAppForm.js +0 -36
  338. package/dist/esm/elements/is/SwcAppForm.js.map +0 -7
  339. package/dist/esm/elements/is/SwcAppHeading.js +0 -36
  340. package/dist/esm/elements/is/SwcAppHeading.js.map +0 -7
  341. package/dist/esm/elements/is/SwcAppHr.js +0 -36
  342. package/dist/esm/elements/is/SwcAppHr.js.map +0 -7
  343. package/dist/esm/elements/is/SwcAppIFrame.js +0 -36
  344. package/dist/esm/elements/is/SwcAppIFrame.js.map +0 -7
  345. package/dist/esm/elements/is/SwcAppImage.js +0 -36
  346. package/dist/esm/elements/is/SwcAppImage.js.map +0 -7
  347. package/dist/esm/elements/is/SwcAppInput.js +0 -36
  348. package/dist/esm/elements/is/SwcAppInput.js.map +0 -7
  349. package/dist/esm/elements/is/SwcAppLabel.js +0 -36
  350. package/dist/esm/elements/is/SwcAppLabel.js.map +0 -7
  351. package/dist/esm/elements/is/SwcAppLegend.js +0 -36
  352. package/dist/esm/elements/is/SwcAppLegend.js.map +0 -7
  353. package/dist/esm/elements/is/SwcAppLi.js +0 -36
  354. package/dist/esm/elements/is/SwcAppLi.js.map +0 -7
  355. package/dist/esm/elements/is/SwcAppLink.js +0 -36
  356. package/dist/esm/elements/is/SwcAppLink.js.map +0 -7
  357. package/dist/esm/elements/is/SwcAppMap.js +0 -36
  358. package/dist/esm/elements/is/SwcAppMap.js.map +0 -7
  359. package/dist/esm/elements/is/SwcAppMeta.js +0 -36
  360. package/dist/esm/elements/is/SwcAppMeta.js.map +0 -7
  361. package/dist/esm/elements/is/SwcAppMeter.js +0 -36
  362. package/dist/esm/elements/is/SwcAppMeter.js.map +0 -7
  363. package/dist/esm/elements/is/SwcAppMod.js +0 -36
  364. package/dist/esm/elements/is/SwcAppMod.js.map +0 -7
  365. package/dist/esm/elements/is/SwcAppObject.js +0 -36
  366. package/dist/esm/elements/is/SwcAppObject.js.map +0 -7
  367. package/dist/esm/elements/is/SwcAppOl.js +0 -36
  368. package/dist/esm/elements/is/SwcAppOl.js.map +0 -7
  369. package/dist/esm/elements/is/SwcAppOptGroup.js +0 -36
  370. package/dist/esm/elements/is/SwcAppOptGroup.js.map +0 -7
  371. package/dist/esm/elements/is/SwcAppOption.js +0 -36
  372. package/dist/esm/elements/is/SwcAppOption.js.map +0 -7
  373. package/dist/esm/elements/is/SwcAppOutput.js +0 -36
  374. package/dist/esm/elements/is/SwcAppOutput.js.map +0 -7
  375. package/dist/esm/elements/is/SwcAppParagraph.js +0 -36
  376. package/dist/esm/elements/is/SwcAppParagraph.js.map +0 -7
  377. package/dist/esm/elements/is/SwcAppParam.js +0 -36
  378. package/dist/esm/elements/is/SwcAppParam.js.map +0 -7
  379. package/dist/esm/elements/is/SwcAppPicture.js +0 -36
  380. package/dist/esm/elements/is/SwcAppPicture.js.map +0 -7
  381. package/dist/esm/elements/is/SwcAppPre.js +0 -36
  382. package/dist/esm/elements/is/SwcAppPre.js.map +0 -7
  383. package/dist/esm/elements/is/SwcAppProgress.js +0 -36
  384. package/dist/esm/elements/is/SwcAppProgress.js.map +0 -7
  385. package/dist/esm/elements/is/SwcAppQuote.js +0 -36
  386. package/dist/esm/elements/is/SwcAppQuote.js.map +0 -7
  387. package/dist/esm/elements/is/SwcAppScript.js +0 -36
  388. package/dist/esm/elements/is/SwcAppScript.js.map +0 -7
  389. package/dist/esm/elements/is/SwcAppSelect.js +0 -36
  390. package/dist/esm/elements/is/SwcAppSelect.js.map +0 -7
  391. package/dist/esm/elements/is/SwcAppSlot.js +0 -36
  392. package/dist/esm/elements/is/SwcAppSlot.js.map +0 -7
  393. package/dist/esm/elements/is/SwcAppSource.js +0 -36
  394. package/dist/esm/elements/is/SwcAppSource.js.map +0 -7
  395. package/dist/esm/elements/is/SwcAppSpan.js +0 -36
  396. package/dist/esm/elements/is/SwcAppSpan.js.map +0 -7
  397. package/dist/esm/elements/is/SwcAppStyle.js +0 -36
  398. package/dist/esm/elements/is/SwcAppStyle.js.map +0 -7
  399. package/dist/esm/elements/is/SwcAppTable.js +0 -36
  400. package/dist/esm/elements/is/SwcAppTable.js.map +0 -7
  401. package/dist/esm/elements/is/SwcAppTableCell.js +0 -36
  402. package/dist/esm/elements/is/SwcAppTableCell.js.map +0 -7
  403. package/dist/esm/elements/is/SwcAppTableRow.js +0 -36
  404. package/dist/esm/elements/is/SwcAppTableRow.js.map +0 -7
  405. package/dist/esm/elements/is/SwcAppTableSection.js +0 -36
  406. package/dist/esm/elements/is/SwcAppTableSection.js.map +0 -7
  407. package/dist/esm/elements/is/SwcAppTemplate.js +0 -36
  408. package/dist/esm/elements/is/SwcAppTemplate.js.map +0 -7
  409. package/dist/esm/elements/is/SwcAppTextArea.js +0 -36
  410. package/dist/esm/elements/is/SwcAppTextArea.js.map +0 -7
  411. package/dist/esm/elements/is/SwcAppTime.js +0 -36
  412. package/dist/esm/elements/is/SwcAppTime.js.map +0 -7
  413. package/dist/esm/elements/is/SwcAppTitle.js +0 -36
  414. package/dist/esm/elements/is/SwcAppTitle.js.map +0 -7
  415. package/dist/esm/elements/is/SwcAppTrack.js +0 -36
  416. package/dist/esm/elements/is/SwcAppTrack.js.map +0 -7
  417. package/dist/esm/elements/is/SwcAppUl.js +0 -36
  418. package/dist/esm/elements/is/SwcAppUl.js.map +0 -7
  419. package/dist/esm/elements/is/SwcAppVideo.js +0 -36
  420. package/dist/esm/elements/is/SwcAppVideo.js.map +0 -7
  421. package/dist/esm/elements/is/index.js +0 -58
  422. package/dist/esm/elements/is/index.js.map +0 -7
  423. package/dist/types/decorators/innerHtml.d.ts +0 -12
  424. package/dist/types/decorators/innerHtml.d.ts.map +0 -1
  425. package/dist/types/elements/SwcApp.d.ts +0 -9
  426. package/dist/types/elements/SwcApp.d.ts.map +0 -1
  427. package/dist/types/elements/is/SwcAppAnchor.d.ts +0 -9
  428. package/dist/types/elements/is/SwcAppAnchor.d.ts.map +0 -1
  429. package/dist/types/elements/is/SwcAppArea.d.ts +0 -9
  430. package/dist/types/elements/is/SwcAppArea.d.ts.map +0 -1
  431. package/dist/types/elements/is/SwcAppAudio.d.ts +0 -9
  432. package/dist/types/elements/is/SwcAppAudio.d.ts.map +0 -1
  433. package/dist/types/elements/is/SwcAppBase.d.ts +0 -9
  434. package/dist/types/elements/is/SwcAppBase.d.ts.map +0 -1
  435. package/dist/types/elements/is/SwcAppBody.d.ts +0 -9
  436. package/dist/types/elements/is/SwcAppBody.d.ts.map +0 -1
  437. package/dist/types/elements/is/SwcAppButton.d.ts +0 -9
  438. package/dist/types/elements/is/SwcAppButton.d.ts.map +0 -1
  439. package/dist/types/elements/is/SwcAppCanvas.d.ts +0 -9
  440. package/dist/types/elements/is/SwcAppCanvas.d.ts.map +0 -1
  441. package/dist/types/elements/is/SwcAppData.d.ts +0 -9
  442. package/dist/types/elements/is/SwcAppData.d.ts.map +0 -1
  443. package/dist/types/elements/is/SwcAppDataList.d.ts +0 -9
  444. package/dist/types/elements/is/SwcAppDataList.d.ts.map +0 -1
  445. package/dist/types/elements/is/SwcAppDetails.d.ts +0 -9
  446. package/dist/types/elements/is/SwcAppDetails.d.ts.map +0 -1
  447. package/dist/types/elements/is/SwcAppDialog.d.ts +0 -9
  448. package/dist/types/elements/is/SwcAppDialog.d.ts.map +0 -1
  449. package/dist/types/elements/is/SwcAppDiv.d.ts +0 -9
  450. package/dist/types/elements/is/SwcAppDiv.d.ts.map +0 -1
  451. package/dist/types/elements/is/SwcAppDl.d.ts +0 -9
  452. package/dist/types/elements/is/SwcAppDl.d.ts.map +0 -1
  453. package/dist/types/elements/is/SwcAppEmbed.d.ts +0 -9
  454. package/dist/types/elements/is/SwcAppEmbed.d.ts.map +0 -1
  455. package/dist/types/elements/is/SwcAppFieldSet.d.ts +0 -9
  456. package/dist/types/elements/is/SwcAppFieldSet.d.ts.map +0 -1
  457. package/dist/types/elements/is/SwcAppForm.d.ts +0 -9
  458. package/dist/types/elements/is/SwcAppForm.d.ts.map +0 -1
  459. package/dist/types/elements/is/SwcAppHeading.d.ts +0 -9
  460. package/dist/types/elements/is/SwcAppHeading.d.ts.map +0 -1
  461. package/dist/types/elements/is/SwcAppHr.d.ts +0 -9
  462. package/dist/types/elements/is/SwcAppHr.d.ts.map +0 -1
  463. package/dist/types/elements/is/SwcAppIFrame.d.ts +0 -9
  464. package/dist/types/elements/is/SwcAppIFrame.d.ts.map +0 -1
  465. package/dist/types/elements/is/SwcAppImage.d.ts +0 -9
  466. package/dist/types/elements/is/SwcAppImage.d.ts.map +0 -1
  467. package/dist/types/elements/is/SwcAppInput.d.ts +0 -9
  468. package/dist/types/elements/is/SwcAppInput.d.ts.map +0 -1
  469. package/dist/types/elements/is/SwcAppLabel.d.ts +0 -9
  470. package/dist/types/elements/is/SwcAppLabel.d.ts.map +0 -1
  471. package/dist/types/elements/is/SwcAppLegend.d.ts +0 -9
  472. package/dist/types/elements/is/SwcAppLegend.d.ts.map +0 -1
  473. package/dist/types/elements/is/SwcAppLi.d.ts +0 -9
  474. package/dist/types/elements/is/SwcAppLi.d.ts.map +0 -1
  475. package/dist/types/elements/is/SwcAppLink.d.ts +0 -9
  476. package/dist/types/elements/is/SwcAppLink.d.ts.map +0 -1
  477. package/dist/types/elements/is/SwcAppMap.d.ts +0 -9
  478. package/dist/types/elements/is/SwcAppMap.d.ts.map +0 -1
  479. package/dist/types/elements/is/SwcAppMeta.d.ts +0 -9
  480. package/dist/types/elements/is/SwcAppMeta.d.ts.map +0 -1
  481. package/dist/types/elements/is/SwcAppMeter.d.ts +0 -9
  482. package/dist/types/elements/is/SwcAppMeter.d.ts.map +0 -1
  483. package/dist/types/elements/is/SwcAppMod.d.ts +0 -9
  484. package/dist/types/elements/is/SwcAppMod.d.ts.map +0 -1
  485. package/dist/types/elements/is/SwcAppObject.d.ts +0 -9
  486. package/dist/types/elements/is/SwcAppObject.d.ts.map +0 -1
  487. package/dist/types/elements/is/SwcAppOl.d.ts +0 -9
  488. package/dist/types/elements/is/SwcAppOl.d.ts.map +0 -1
  489. package/dist/types/elements/is/SwcAppOptGroup.d.ts +0 -9
  490. package/dist/types/elements/is/SwcAppOptGroup.d.ts.map +0 -1
  491. package/dist/types/elements/is/SwcAppOption.d.ts +0 -9
  492. package/dist/types/elements/is/SwcAppOption.d.ts.map +0 -1
  493. package/dist/types/elements/is/SwcAppOutput.d.ts +0 -9
  494. package/dist/types/elements/is/SwcAppOutput.d.ts.map +0 -1
  495. package/dist/types/elements/is/SwcAppParagraph.d.ts +0 -9
  496. package/dist/types/elements/is/SwcAppParagraph.d.ts.map +0 -1
  497. package/dist/types/elements/is/SwcAppParam.d.ts +0 -9
  498. package/dist/types/elements/is/SwcAppParam.d.ts.map +0 -1
  499. package/dist/types/elements/is/SwcAppPicture.d.ts +0 -9
  500. package/dist/types/elements/is/SwcAppPicture.d.ts.map +0 -1
  501. package/dist/types/elements/is/SwcAppPre.d.ts +0 -9
  502. package/dist/types/elements/is/SwcAppPre.d.ts.map +0 -1
  503. package/dist/types/elements/is/SwcAppProgress.d.ts +0 -9
  504. package/dist/types/elements/is/SwcAppProgress.d.ts.map +0 -1
  505. package/dist/types/elements/is/SwcAppQuote.d.ts +0 -9
  506. package/dist/types/elements/is/SwcAppQuote.d.ts.map +0 -1
  507. package/dist/types/elements/is/SwcAppScript.d.ts +0 -9
  508. package/dist/types/elements/is/SwcAppScript.d.ts.map +0 -1
  509. package/dist/types/elements/is/SwcAppSelect.d.ts +0 -9
  510. package/dist/types/elements/is/SwcAppSelect.d.ts.map +0 -1
  511. package/dist/types/elements/is/SwcAppSlot.d.ts +0 -9
  512. package/dist/types/elements/is/SwcAppSlot.d.ts.map +0 -1
  513. package/dist/types/elements/is/SwcAppSource.d.ts +0 -9
  514. package/dist/types/elements/is/SwcAppSource.d.ts.map +0 -1
  515. package/dist/types/elements/is/SwcAppSpan.d.ts +0 -9
  516. package/dist/types/elements/is/SwcAppSpan.d.ts.map +0 -1
  517. package/dist/types/elements/is/SwcAppStyle.d.ts +0 -9
  518. package/dist/types/elements/is/SwcAppStyle.d.ts.map +0 -1
  519. package/dist/types/elements/is/SwcAppTable.d.ts +0 -9
  520. package/dist/types/elements/is/SwcAppTable.d.ts.map +0 -1
  521. package/dist/types/elements/is/SwcAppTableCell.d.ts +0 -9
  522. package/dist/types/elements/is/SwcAppTableCell.d.ts.map +0 -1
  523. package/dist/types/elements/is/SwcAppTableRow.d.ts +0 -9
  524. package/dist/types/elements/is/SwcAppTableRow.d.ts.map +0 -1
  525. package/dist/types/elements/is/SwcAppTableSection.d.ts +0 -9
  526. package/dist/types/elements/is/SwcAppTableSection.d.ts.map +0 -1
  527. package/dist/types/elements/is/SwcAppTemplate.d.ts +0 -9
  528. package/dist/types/elements/is/SwcAppTemplate.d.ts.map +0 -1
  529. package/dist/types/elements/is/SwcAppTextArea.d.ts +0 -9
  530. package/dist/types/elements/is/SwcAppTextArea.d.ts.map +0 -1
  531. package/dist/types/elements/is/SwcAppTime.d.ts +0 -9
  532. package/dist/types/elements/is/SwcAppTime.d.ts.map +0 -1
  533. package/dist/types/elements/is/SwcAppTitle.d.ts +0 -9
  534. package/dist/types/elements/is/SwcAppTitle.d.ts.map +0 -1
  535. package/dist/types/elements/is/SwcAppTrack.d.ts +0 -9
  536. package/dist/types/elements/is/SwcAppTrack.d.ts.map +0 -1
  537. package/dist/types/elements/is/SwcAppUl.d.ts +0 -9
  538. package/dist/types/elements/is/SwcAppUl.d.ts.map +0 -1
  539. package/dist/types/elements/is/SwcAppVideo.d.ts +0 -9
  540. package/dist/types/elements/is/SwcAppVideo.d.ts.map +0 -1
  541. package/dist/types/elements/is/index.d.ts +0 -58
  542. package/dist/types/elements/is/index.d.ts.map +0 -1
  543. package/src/elements/SwcApp.ts +0 -26
  544. package/src/elements/is/SwcAppAnchor.ts +0 -26
  545. package/src/elements/is/SwcAppArea.ts +0 -26
  546. package/src/elements/is/SwcAppAudio.ts +0 -26
  547. package/src/elements/is/SwcAppBase.ts +0 -26
  548. package/src/elements/is/SwcAppBody.ts +0 -26
  549. package/src/elements/is/SwcAppButton.ts +0 -26
  550. package/src/elements/is/SwcAppCanvas.ts +0 -26
  551. package/src/elements/is/SwcAppData.ts +0 -26
  552. package/src/elements/is/SwcAppDataList.ts +0 -26
  553. package/src/elements/is/SwcAppDetails.ts +0 -26
  554. package/src/elements/is/SwcAppDialog.ts +0 -26
  555. package/src/elements/is/SwcAppDiv.ts +0 -26
  556. package/src/elements/is/SwcAppDl.ts +0 -26
  557. package/src/elements/is/SwcAppEmbed.ts +0 -26
  558. package/src/elements/is/SwcAppFieldSet.ts +0 -26
  559. package/src/elements/is/SwcAppForm.ts +0 -26
  560. package/src/elements/is/SwcAppHeading.ts +0 -26
  561. package/src/elements/is/SwcAppHr.ts +0 -26
  562. package/src/elements/is/SwcAppIFrame.ts +0 -26
  563. package/src/elements/is/SwcAppImage.ts +0 -26
  564. package/src/elements/is/SwcAppInput.ts +0 -26
  565. package/src/elements/is/SwcAppLabel.ts +0 -26
  566. package/src/elements/is/SwcAppLegend.ts +0 -26
  567. package/src/elements/is/SwcAppLi.ts +0 -26
  568. package/src/elements/is/SwcAppLink.ts +0 -26
  569. package/src/elements/is/SwcAppMap.ts +0 -26
  570. package/src/elements/is/SwcAppMeta.ts +0 -26
  571. package/src/elements/is/SwcAppMeter.ts +0 -26
  572. package/src/elements/is/SwcAppMod.ts +0 -26
  573. package/src/elements/is/SwcAppObject.ts +0 -26
  574. package/src/elements/is/SwcAppOl.ts +0 -26
  575. package/src/elements/is/SwcAppOptGroup.ts +0 -26
  576. package/src/elements/is/SwcAppOption.ts +0 -26
  577. package/src/elements/is/SwcAppOutput.ts +0 -26
  578. package/src/elements/is/SwcAppParagraph.ts +0 -26
  579. package/src/elements/is/SwcAppParam.ts +0 -26
  580. package/src/elements/is/SwcAppPicture.ts +0 -26
  581. package/src/elements/is/SwcAppPre.ts +0 -26
  582. package/src/elements/is/SwcAppProgress.ts +0 -26
  583. package/src/elements/is/SwcAppQuote.ts +0 -26
  584. package/src/elements/is/SwcAppScript.ts +0 -26
  585. package/src/elements/is/SwcAppSelect.ts +0 -26
  586. package/src/elements/is/SwcAppSlot.ts +0 -26
  587. package/src/elements/is/SwcAppSource.ts +0 -26
  588. package/src/elements/is/SwcAppSpan.ts +0 -26
  589. package/src/elements/is/SwcAppStyle.ts +0 -26
  590. package/src/elements/is/SwcAppTable.ts +0 -26
  591. package/src/elements/is/SwcAppTableCell.ts +0 -26
  592. package/src/elements/is/SwcAppTableRow.ts +0 -26
  593. package/src/elements/is/SwcAppTableSection.ts +0 -26
  594. package/src/elements/is/SwcAppTemplate.ts +0 -26
  595. package/src/elements/is/SwcAppTextArea.ts +0 -26
  596. package/src/elements/is/SwcAppTime.ts +0 -26
  597. package/src/elements/is/SwcAppTitle.ts +0 -26
  598. package/src/elements/is/SwcAppTrack.ts +0 -26
  599. package/src/elements/is/SwcAppUl.ts +0 -26
  600. package/src/elements/is/SwcAppVideo.ts +0 -26
  601. package/src/elements/is/index.ts +0 -57
@@ -1,133 +1,111 @@
1
- import { elementDefine } from '../decorators/elementDefine';
2
1
  import { changedAttribute } from '../decorators/changedAttribute';
3
2
  import { SwcUtils } from '../utils/Utils';
4
3
  import { FunctionUtils } from '@dooboostore/core/function/FunctionUtils';
5
4
 
6
- @elementDefine({ name: 'swc-if', extends: 'template' })
7
5
  export class SwcIf extends HTMLTemplateElement {
6
+ private _value = false;
8
7
  private _nodes: Node[] = [];
9
- private _value: any = null;
10
8
 
11
- get value(): any {
9
+ get value(): boolean {
12
10
  return this._value;
13
11
  }
14
-
15
12
  set value(nv: any) {
16
- this._value = nv;
13
+ this._value = Boolean(nv);
17
14
  this.render();
18
15
  }
19
16
 
20
- private _getTarget(): Element | DocumentFragment | null {
21
- const script = this.getAttribute('on-get-portal');
22
- if (!script) return null;
23
- try {
24
- const res = FunctionUtils.executeReturn({
25
- script,
26
- context: this,
27
- args: SwcUtils.getHelperAndHostSet(window, this)
28
- });
29
- if (typeof res === 'string') return document.querySelector(res);
30
- if (res instanceof Node) return res as any;
31
- } catch (e) {
32
- console.error('[SwcIf] Portal target error:', e);
33
- }
34
- return null;
17
+ private _resolvePortal(): Element | null {
18
+ const portalScript = this.getAttribute('on-get-portal');
19
+ if (!portalScript) return this.parentElement;
20
+
21
+ const win = this.ownerDocument?.defaultView || window;
22
+ const res = FunctionUtils.executeReturn({
23
+ script: portalScript,
24
+ context: this,
25
+ args: SwcUtils.getHelperAndHostSet(win, this)
26
+ });
27
+
28
+ if (res instanceof HTMLElement) return res;
29
+ if (typeof res === 'string') return win.document.querySelector(res);
30
+ return this.parentElement;
35
31
  }
36
32
 
37
- private _executeCallback(attrName: string, extraArgs: Record<string, any>) {
38
- const script = this.getAttribute(attrName);
33
+ private _executeCloneCallback(attr: string, args: any) {
34
+ const script = this.getAttribute(attr);
39
35
  if (!script) return;
40
- const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);
41
- try {
42
- FunctionUtils.execute({ script, context: this, args: { ...helperHostSet, ...extraArgs } });
43
- } catch (e) {
44
- console.error(`[SwcIf] Error in ${attrName}:`, e);
45
- }
36
+ FunctionUtils.execute({ script, context: this, args });
46
37
  }
47
38
 
48
39
  @changedAttribute('on-get-value')
49
- private refresh(newValue?: string | null) {
50
- const script = newValue !== undefined ? newValue : this.getAttribute('on-get-value');
40
+ private refreshValue() {
41
+ const script = this.getAttribute('on-get-value');
51
42
  if (!script) {
52
- this.value = null;
43
+ this.value = false;
53
44
  return;
54
45
  }
55
- if (!this.parentElement) return;
56
-
57
- const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);
58
- try {
59
- const result = FunctionUtils.executeReturn({
60
- script,
61
- context: this,
62
- args: helperHostSet
63
- });
64
- this.value = result;
65
- } catch (e) {
66
- console.error('[SwcIf] Error in on-get-value:', e);
67
- this.value = null;
46
+ const win = this.ownerDocument?.defaultView || window;
47
+ const res = FunctionUtils.executeReturn({
48
+ script,
49
+ context: this,
50
+ args: SwcUtils.getHelperAndHostSet(win, this)
51
+ });
52
+
53
+ if (res instanceof Promise) {
54
+ res.then(v => (this.value = v)).catch(() => (this.value = false));
55
+ } else {
56
+ this.value = res;
68
57
  }
69
58
  }
70
59
 
71
60
  private render() {
72
61
  this.cleanup();
73
- if (!this.parentElement) return;
62
+ const portal = this._resolvePortal();
63
+ if (!portal) return;
74
64
 
75
- let fragment: DocumentFragment | null = null;
76
- const ctx: any = { $value: this._value, $nodes: [], $elements: [] };
65
+ const win = this.ownerDocument?.defaultView || window;
66
+ const helperSet = SwcUtils.getHelperAndHostSet(win, this);
77
67
 
68
+ let targetTpl: HTMLTemplateElement | null = null;
78
69
  if (this._value) {
79
- const clone = this.content.cloneNode(true) as DocumentFragment;
80
- Array.from(clone.querySelectorAll('template[is="swc-default"]')).forEach(t => t.remove());
81
- fragment = clone;
70
+ targetTpl = this;
82
71
  } else {
83
- const t = this.content.querySelector('template[is="swc-default"]') as HTMLTemplateElement;
84
- if (t) fragment = t.content.cloneNode(true) as DocumentFragment;
72
+ targetTpl = this.content.querySelector('template[is="swc-default"]') as HTMLTemplateElement;
85
73
  }
86
74
 
87
- if (fragment) {
88
- this.mount(fragment, ctx);
89
- }
90
- }
75
+ if (targetTpl) {
76
+ const clone = targetTpl.content.cloneNode(true) as DocumentFragment;
77
+ // If it's the host template, remove sub-templates from clone
78
+ if (targetTpl === this) {
79
+ clone.querySelectorAll('template[is^="swc-"]').forEach(t => t.remove());
80
+ }
91
81
 
92
- private mount(fragment: DocumentFragment, ctx: any) {
93
- const nodes = Array.from(fragment.childNodes);
94
- const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];
95
-
96
- Object.assign(ctx, {
97
- $nodes: nodes,
98
- $elements: elements,
99
- $firstNode: nodes[0],
100
- $lastNode: nodes[nodes.length - 1],
101
- $firstElement: elements[0],
102
- $lastElement: elements[elements.length - 1]
103
- });
82
+ this._nodes = Array.from(clone.childNodes);
83
+ const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];
84
+ const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };
104
85
 
105
- this._executeCallback('on-clone-nodes', ctx);
106
- nodes.forEach((node, nodeIndex) => {
107
- if (node instanceof HTMLElement) (node as any).__swc_host = this;
108
- this._executeCallback('on-clone-node', { ...ctx, $node: node, $nodeIndex: nodeIndex, $isElement: node.nodeType === 1 });
109
- });
86
+ this._nodes.forEach((node, nodeIdx) => {
87
+ if (node instanceof HTMLElement) (node as any).__swc_host = this;
88
+ this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });
89
+ });
110
90
 
111
- this._nodes = nodes;
112
- const target = this._getTarget();
113
- if (target) {
114
- target.appendChild(fragment);
115
- } else {
116
- this.parentElement?.insertBefore(fragment, this.nextSibling);
91
+ this._executeCloneCallback('on-clone-nodes', groupArgs);
92
+
93
+ if (portal === this.parentElement) {
94
+ portal.insertBefore(clone, this.nextSibling);
95
+ } else {
96
+ portal.appendChild(clone);
97
+ }
117
98
  }
118
99
  }
119
100
 
120
101
  private cleanup() {
121
- this._nodes.forEach(n => {
122
- if (n.parentElement) n.parentElement.removeChild(n);
123
- });
102
+ this._nodes.forEach(n => n.parentElement?.removeChild(n));
124
103
  this._nodes = [];
125
104
  }
126
105
 
127
106
  connectedCallback() {
128
- this.refresh();
107
+ this.refreshValue();
129
108
  }
130
-
131
109
  disconnectedCallback() {
132
110
  this.cleanup();
133
111
  }
@@ -1,209 +1,112 @@
1
- import { elementDefine } from '../decorators/elementDefine';
2
1
  import { changedAttribute } from '../decorators/changedAttribute';
3
2
  import { SwcUtils } from '../utils/Utils';
4
3
  import { FunctionUtils } from '@dooboostore/core/function/FunctionUtils';
5
4
 
6
- @elementDefine({ name: 'swc-loop', extends: 'template' })
7
5
  export class SwcLoop extends HTMLTemplateElement {
8
6
  private _value: any[] = [];
9
- private _nodes: (Node[] | null)[] = [];
10
- private _defaultNodes: Node[] = [];
7
+ private _nodeGroups: Node[][] = [];
11
8
 
12
9
  get value(): any[] {
13
10
  return this._value;
14
11
  }
15
-
16
12
  set value(nv: any[]) {
17
13
  this._value = Array.isArray(nv) ? [...nv] : [];
18
14
  this.render();
19
15
  }
20
16
 
21
- getNodes(index: number): Node[] | null {
22
- return this._nodes[index] || null;
23
- }
24
-
25
- private _getTarget(): Element | DocumentFragment | null {
26
- const script = this.getAttribute('on-get-portal');
27
- if (!script) return null;
28
- try {
29
- const res = FunctionUtils.executeReturn({
30
- script,
31
- context: this,
32
- args: SwcUtils.getHelperAndHostSet(window, this)
33
- });
34
- if (typeof res === 'string') return document.querySelector(res);
35
- if (res instanceof Node) return res as any;
36
- } catch (e) {
37
- console.error('[SwcLoop] Portal target error:', e);
38
- }
39
- return null;
40
- }
17
+ private _resolvePortal(): Element | null {
18
+ const portalScript = this.getAttribute('on-get-portal');
19
+ if (!portalScript) return this.parentElement;
41
20
 
42
- append(...items: any[]) {
43
- if (!items.length || !this.parentElement) return;
44
- if (this._defaultNodes.length > 0) this._cleanupDefault();
45
-
46
- const fragment = document.createDocumentFragment();
47
- const startIndex = this._value.length;
48
-
49
- items.forEach((item, i) => {
50
- const index = startIndex + i;
51
- const nodes = this._createItemNodes(item, index);
52
- if (nodes) {
53
- this._nodes.push(nodes);
54
- nodes.forEach(n => fragment.appendChild(n));
55
- this._value.push(item);
56
- } else {
57
- this._nodes.push(null);
58
- this._value.push(null);
59
- }
21
+ const win = this.ownerDocument?.defaultView || window;
22
+ const res = FunctionUtils.executeReturn({
23
+ script: portalScript,
24
+ context: this,
25
+ args: SwcUtils.getHelperAndHostSet(win, this)
60
26
  });
61
27
 
62
- const target = this._getTarget();
63
- if (target) {
64
- target.appendChild(fragment);
65
- } else {
66
- const lastValidIdx = this._nodes.length - items.length - 1;
67
- let refNode: Node = this;
68
- for (let i = lastValidIdx; i >= 0; i--) {
69
- const group = this._nodes[i];
70
- if (group && group.length > 0) {
71
- refNode = group[group.length - 1];
72
- break;
73
- }
74
- }
75
- this.parentElement.insertBefore(fragment, refNode.nextSibling);
76
- }
77
- }
78
-
79
- remove(index?: number) {
80
- const targetIdx = index !== undefined ? index : this._nodes.length - 1;
81
- if (targetIdx < 0 || targetIdx >= this._nodes.length) return;
82
-
83
- const nodes = this._nodes[targetIdx];
84
- if (nodes) {
85
- nodes.forEach(n => {
86
- if (n.parentElement) n.parentElement.removeChild(n);
87
- });
88
- this._nodes[targetIdx] = null;
89
- this._value[targetIdx] = null;
90
- }
91
-
92
- const activeRows = this._value.filter(v => v !== null);
93
- if (activeRows.length === 0) {
94
- this.render();
95
- }
28
+ if (res instanceof HTMLElement) return res;
29
+ if (typeof res === 'string') return win.document.querySelector(res);
30
+ return this.parentElement;
96
31
  }
97
32
 
98
- private _createItemNodes(item: any, index: number): Node[] {
99
- const clone = this.content.cloneNode(true) as DocumentFragment;
100
- Array.from(clone.querySelectorAll('template[is="swc-default"]')).forEach(t => t.remove());
101
-
102
- const nodes = Array.from(clone.childNodes);
103
- const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];
104
-
105
- const groupCtx = {
106
- $index: index,
107
- $item: item,
108
- $nodes: nodes,
109
- $elements: elements,
110
- $firstNode: nodes[0],
111
- $lastNode: nodes[nodes.length - 1],
112
- $firstElement: elements[0],
113
- $lastElement: elements[elements.length - 1],
114
- $isFirst: index === 0,
115
- $isLast: index === this._value.length - 1,
116
- $isEven: index % 2 === 0,
117
- $isOdd: index % 2 !== 0,
118
- $count: this._value.length
119
- };
120
-
121
- this._executeCallback('on-clone-nodes', groupCtx);
122
- nodes.forEach((node, nodeIndex) => {
123
- if (node instanceof HTMLElement) (node as any).__swc_host = this;
124
- this._executeCallback('on-clone-node', { ...groupCtx, $node: node, $nodeIndex: nodeIndex, $isElement: node.nodeType === 1 });
125
- });
126
-
127
- return nodes;
33
+ private _executeCloneCallback(attr: string, args: any) {
34
+ const script = this.getAttribute(attr);
35
+ if (!script) return;
36
+ FunctionUtils.execute({ script, context: this, args });
128
37
  }
129
38
 
130
- private _executeCallback(attrName: string, extraArgs: Record<string, any>) {
131
- const script = this.getAttribute(attrName);
132
- if (!script) return;
133
- const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);
134
- try {
135
- FunctionUtils.execute({ script, context: this, args: { ...helperHostSet, ...extraArgs } });
136
- } catch (e) {
137
- console.error(`[SwcLoop] Error in ${attrName}:`, e);
138
- }
39
+ private _cleanup() {
40
+ this._nodeGroups.forEach(nodes => nodes.forEach(n => n.parentElement?.removeChild(n)));
41
+ this._nodeGroups = [];
139
42
  }
140
43
 
141
44
  @changedAttribute('on-get-value')
142
- private refreshValue(newValue?: string | null) {
143
- const script = newValue !== undefined ? newValue : this.getAttribute('on-get-value');
45
+ private refreshValue() {
46
+ const script = this.getAttribute('on-get-value');
144
47
  if (!script) {
145
48
  this.value = [];
146
49
  return;
147
50
  }
148
- const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);
149
- try {
150
- const res = FunctionUtils.executeReturn({ script, context: this, args: helperHostSet });
151
- if (Array.isArray(res)) {
152
- this.value = res;
153
- }
154
- } catch (e) {
155
- console.error('[SwcLoop] Failed to get value from on-get-value script:', e);
156
- this.value = [];
51
+ const win = this.ownerDocument?.defaultView || window;
52
+ const res = FunctionUtils.executeReturn({
53
+ script,
54
+ context: this,
55
+ args: SwcUtils.getHelperAndHostSet(win, this)
56
+ });
57
+
58
+ if (res instanceof Promise) {
59
+ res.then(v => (this.value = v)).catch(() => (this.value = []));
60
+ } else {
61
+ this.value = res;
157
62
  }
158
63
  }
159
64
 
160
65
  render() {
161
66
  this._cleanup();
162
- if (!this.parentElement) return;
163
-
164
- const activeRows = this._value.filter(v => v !== null);
165
- const target = this._getTarget();
166
-
167
- if (activeRows.length === 0) {
168
- const t = this.content.querySelector('template[is="swc-default"]') as HTMLTemplateElement;
169
- if (t) {
170
- const clone = t.content.cloneNode(true) as DocumentFragment;
171
- this._defaultNodes = Array.from(clone.childNodes);
172
- this._defaultNodes.forEach(n => {
173
- if (n instanceof HTMLElement) (n as any).__swc_host = this;
174
- });
175
- if (target) target.appendChild(clone);
176
- else this.parentElement.insertBefore(clone, this.nextSibling);
67
+ const portal = this._resolvePortal();
68
+ if (!portal) return;
69
+
70
+ const win = this.ownerDocument?.defaultView || window;
71
+ const helperSet = SwcUtils.getHelperAndHostSet(win, this);
72
+ const fragment = win.document.createDocumentFragment();
73
+
74
+ if (this._value.length === 0) {
75
+ const defaultTpl = this.content.querySelector('template[is="swc-default"]') as HTMLTemplateElement;
76
+ if (defaultTpl) {
77
+ const clone = defaultTpl.content.cloneNode(true);
78
+ const nodes = Array.from(clone.childNodes);
79
+ this._nodeGroups.push(nodes);
80
+ fragment.appendChild(clone);
177
81
  }
178
- return;
179
- }
82
+ } else {
83
+ this._value.forEach((item, index) => {
84
+ const clone = this.content.cloneNode(true) as DocumentFragment;
85
+ // Filter out sub-templates
86
+ const subTemplates = clone.querySelectorAll('template[is^="swc-"]');
87
+ subTemplates.forEach(t => t.remove());
180
88
 
181
- const fragment = document.createDocumentFragment();
182
- this._value.forEach((item, index) => {
183
- if (item === null) {
184
- this._nodes.push(null);
185
- return;
186
- }
187
- const nodes = this._createItemNodes(item, index);
188
- this._nodes.push(nodes);
189
- nodes.forEach(n => fragment.appendChild(n));
190
- });
89
+ const nodes = Array.from(clone.childNodes);
90
+ const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];
191
91
 
192
- if (target) target.appendChild(fragment);
193
- else this.parentElement.insertBefore(fragment, this.nextSibling);
194
- }
92
+ const groupArgs = { ...helperSet, $item: item, $index: index, $value: this._value, $nodes: nodes, $elements: elements, $firstElement: elements[0] };
195
93
 
196
- private _cleanup() {
197
- this._nodes.forEach(group => {
198
- if (group) group.forEach(node => node.parentElement?.removeChild(node));
199
- });
200
- this._nodes = [];
201
- this._cleanupDefault();
202
- }
94
+ nodes.forEach((node, nodeIdx) => {
95
+ if (node instanceof HTMLElement) (node as any).__swc_host = this;
96
+ this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });
97
+ });
203
98
 
204
- private _cleanupDefault() {
205
- this._defaultNodes.forEach(n => n.parentElement?.removeChild(n));
206
- this._defaultNodes = [];
99
+ this._executeCloneCallback('on-clone-nodes', groupArgs);
100
+ this._nodeGroups.push(nodes);
101
+ fragment.appendChild(clone);
102
+ });
103
+ }
104
+
105
+ if (portal === this.parentElement) {
106
+ portal.insertBefore(fragment, this.nextSibling);
107
+ } else {
108
+ portal.appendChild(fragment);
109
+ }
207
110
  }
208
111
 
209
112
  connectedCallback() {
@@ -1,19 +1,6 @@
1
- import { elementDefine } from '../decorators/elementDefine';
2
-
3
- @elementDefine({ name: 'swc-loading', extends: 'template' })
4
1
  export class SwcLoading extends HTMLTemplateElement {}
5
-
6
- @elementDefine({ name: 'swc-error', extends: 'template' })
7
2
  export class SwcError extends HTMLTemplateElement {}
8
-
9
- @elementDefine({ name: 'swc-success', extends: 'template' })
10
3
  export class SwcSuccess extends HTMLTemplateElement {}
11
-
12
- @elementDefine({ name: 'swc-when', extends: 'template' })
13
4
  export class SwcWhen extends HTMLTemplateElement {}
14
-
15
- @elementDefine({ name: 'swc-otherwise', extends: 'template' })
16
5
  export class SwcOtherwise extends HTMLTemplateElement {}
17
-
18
- @elementDefine({ name: 'swc-default', extends: 'template' })
19
6
  export class SwcDefault extends HTMLTemplateElement {}
@@ -1,8 +1 @@
1
- export * from './is';
2
- export * from './SwcSubTemplates';
3
- export * from './SwcLoop';
4
- export * from './SwcIf';
5
- export * from './SwcChoose';
6
- export * from './SwcAsync';
7
- export * from './SwcApp';
8
- export * from './SwcAppEngine';
1
+ export * from './register';