@dooboostore/simple-web-component 1.0.18 → 1.0.21

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