@dooboostore/simple-web-component 1.0.36 → 1.0.38

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 (281) hide show
  1. package/README.md +396 -68
  2. package/dist/cjs/{elements/SwcAppEngine.js → SwcAppEngine.js} +9 -6
  3. package/dist/cjs/SwcAppEngine.js.map +7 -0
  4. package/dist/cjs/decorators/addEventListener.js +20 -4
  5. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  6. package/dist/cjs/decorators/applyAttribute.js.map +1 -1
  7. package/dist/cjs/decorators/applyClass.js.map +1 -1
  8. package/dist/cjs/decorators/applyNode.js +109 -26
  9. package/dist/cjs/decorators/applyNode.js.map +2 -2
  10. package/dist/cjs/decorators/applySlot.js +129 -0
  11. package/dist/cjs/decorators/applySlot.js.map +7 -0
  12. package/dist/cjs/decorators/applyStyle.js.map +2 -2
  13. package/dist/cjs/decorators/attribute.js.map +1 -1
  14. package/dist/cjs/decorators/elementDefine.js +90 -52
  15. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  16. package/dist/cjs/decorators/emitCustomEvent.js.map +1 -1
  17. package/dist/cjs/decorators/index.js +2 -0
  18. package/dist/cjs/decorators/index.js.map +2 -2
  19. package/dist/cjs/decorators/lifecycles.js +88 -24
  20. package/dist/cjs/decorators/lifecycles.js.map +3 -3
  21. package/dist/cjs/decorators/publishSwcAppMessage.js.map +2 -2
  22. package/dist/cjs/decorators/query.js +1 -1
  23. package/dist/cjs/decorators/query.js.map +2 -2
  24. package/dist/cjs/decorators/queryAll.js.map +1 -1
  25. package/dist/cjs/decorators/setProperty.js.map +1 -1
  26. package/dist/cjs/decorators/state.js +84 -0
  27. package/dist/cjs/decorators/state.js.map +7 -0
  28. package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js.map +1 -1
  29. package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
  30. package/dist/cjs/elements/SwcApp.js +231 -0
  31. package/dist/cjs/elements/SwcApp.js.map +7 -0
  32. package/dist/cjs/elements/SwcAppMixin.js +78 -80
  33. package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
  34. package/dist/cjs/elements/index.js +2 -1
  35. package/dist/cjs/elements/index.js.map +2 -2
  36. package/dist/cjs/elements/tt/SwcAppMixin.js +1 -0
  37. package/dist/cjs/elements/tt/SwcAppMixin.js.map +7 -0
  38. package/dist/cjs/elements/tt/SwcAsync.js +1 -0
  39. package/dist/cjs/elements/tt/SwcAsync.js.map +7 -0
  40. package/dist/cjs/elements/tt/SwcAsyncTemplate.js +1 -0
  41. package/dist/cjs/elements/tt/SwcAsyncTemplate.js.map +7 -0
  42. package/dist/cjs/elements/tt/SwcChoose.js +1 -0
  43. package/dist/cjs/elements/tt/SwcChoose.js.map +7 -0
  44. package/dist/cjs/elements/tt/SwcChooseTemplate.js +1 -0
  45. package/dist/cjs/elements/tt/SwcChooseTemplate.js.map +7 -0
  46. package/dist/cjs/elements/tt/SwcIf.js +1 -0
  47. package/dist/cjs/elements/tt/SwcIf.js.map +7 -0
  48. package/dist/cjs/elements/tt/SwcIfTemplate.js +1 -0
  49. package/dist/cjs/elements/tt/SwcIfTemplate.js.map +7 -0
  50. package/dist/cjs/elements/tt/SwcLoop.js +1 -0
  51. package/dist/cjs/elements/tt/SwcLoop.js.map +7 -0
  52. package/dist/cjs/elements/tt/SwcLoopTemplate.js +1 -0
  53. package/dist/cjs/elements/tt/SwcLoopTemplate.js.map +7 -0
  54. package/dist/cjs/elements/tt/SwcSubTemplates.js +1 -0
  55. package/dist/cjs/elements/tt/SwcSubTemplates.js.map +7 -0
  56. package/dist/cjs/elements/tt/register.js +1 -0
  57. package/dist/cjs/elements/tt/register.js.map +7 -0
  58. package/dist/cjs/index.js +10 -8
  59. package/dist/cjs/index.js.map +2 -2
  60. package/dist/cjs/{types.js → types/index.js} +1 -1
  61. package/dist/cjs/types/index.js.map +7 -0
  62. package/dist/cjs/types/window.d.js +16 -0
  63. package/dist/cjs/types/window.d.js.map +7 -0
  64. package/dist/cjs/utils/Utils.js +168 -26
  65. package/dist/cjs/utils/Utils.js.map +3 -3
  66. package/dist/esm/{elements/SwcAppEngine.js → SwcAppEngine.js} +7 -4
  67. package/dist/esm/SwcAppEngine.js.map +7 -0
  68. package/dist/esm/decorators/addEventListener.js +20 -4
  69. package/dist/esm/decorators/addEventListener.js.map +2 -2
  70. package/dist/esm/decorators/applyAttribute.js.map +1 -1
  71. package/dist/esm/decorators/applyClass.js.map +1 -1
  72. package/dist/esm/decorators/applyNode.js +109 -26
  73. package/dist/esm/decorators/applyNode.js.map +2 -2
  74. package/dist/esm/decorators/applySlot.js +110 -0
  75. package/dist/esm/decorators/applySlot.js.map +7 -0
  76. package/dist/esm/decorators/applyStyle.js.map +2 -2
  77. package/dist/esm/decorators/attribute.js.map +1 -1
  78. package/dist/esm/decorators/elementDefine.js +96 -58
  79. package/dist/esm/decorators/elementDefine.js.map +2 -2
  80. package/dist/esm/decorators/emitCustomEvent.js.map +1 -1
  81. package/dist/esm/decorators/index.js +2 -0
  82. package/dist/esm/decorators/index.js.map +2 -2
  83. package/dist/esm/decorators/lifecycles.js +88 -24
  84. package/dist/esm/decorators/lifecycles.js.map +3 -3
  85. package/dist/esm/decorators/publishSwcAppMessage.js.map +2 -2
  86. package/dist/esm/decorators/query.js +1 -1
  87. package/dist/esm/decorators/query.js.map +2 -2
  88. package/dist/esm/decorators/queryAll.js.map +1 -1
  89. package/dist/esm/decorators/setProperty.js.map +1 -1
  90. package/dist/esm/decorators/state.js +65 -0
  91. package/dist/esm/decorators/state.js.map +7 -0
  92. package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js.map +1 -1
  93. package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
  94. package/dist/esm/elements/SwcApp.js +212 -0
  95. package/dist/esm/elements/SwcApp.js.map +7 -0
  96. package/dist/esm/elements/SwcAppMixin.js +76 -78
  97. package/dist/esm/elements/SwcAppMixin.js.map +2 -2
  98. package/dist/esm/elements/index.js +2 -1
  99. package/dist/esm/elements/index.js.map +2 -2
  100. package/dist/esm/elements/tt/SwcAppMixin.js +1 -0
  101. package/dist/esm/elements/tt/SwcAppMixin.js.map +7 -0
  102. package/dist/esm/elements/tt/SwcAsync.js +1 -0
  103. package/dist/esm/elements/tt/SwcAsync.js.map +7 -0
  104. package/dist/esm/elements/tt/SwcAsyncTemplate.js +1 -0
  105. package/dist/esm/elements/tt/SwcAsyncTemplate.js.map +7 -0
  106. package/dist/esm/elements/tt/SwcChoose.js +1 -0
  107. package/dist/esm/elements/tt/SwcChoose.js.map +7 -0
  108. package/dist/esm/elements/tt/SwcChooseTemplate.js +1 -0
  109. package/dist/esm/elements/tt/SwcChooseTemplate.js.map +7 -0
  110. package/dist/esm/elements/tt/SwcIf.js +1 -0
  111. package/dist/esm/elements/tt/SwcIf.js.map +7 -0
  112. package/dist/esm/elements/tt/SwcIfTemplate.js +1 -0
  113. package/dist/esm/elements/tt/SwcIfTemplate.js.map +7 -0
  114. package/dist/esm/elements/tt/SwcLoop.js +1 -0
  115. package/dist/esm/elements/tt/SwcLoop.js.map +7 -0
  116. package/dist/esm/elements/tt/SwcLoopTemplate.js +1 -0
  117. package/dist/esm/elements/tt/SwcLoopTemplate.js.map +7 -0
  118. package/dist/esm/elements/tt/SwcSubTemplates.js +1 -0
  119. package/dist/esm/elements/tt/SwcSubTemplates.js.map +7 -0
  120. package/dist/esm/elements/tt/register.js +1 -0
  121. package/dist/esm/elements/tt/register.js.map +7 -0
  122. package/dist/esm/index.js +11 -9
  123. package/dist/esm/index.js.map +2 -2
  124. package/dist/esm/{types.js → types/index.js} +1 -1
  125. package/dist/esm/types/index.js.map +7 -0
  126. package/dist/esm/types/window.d.js +1 -0
  127. package/dist/esm/types/window.d.js.map +7 -0
  128. package/dist/esm/utils/Utils.js +168 -26
  129. package/dist/esm/utils/Utils.js.map +3 -3
  130. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +7477 -2828
  131. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  132. package/dist/types/{elements/SwcAppEngine.d.ts → SwcAppEngine.d.ts} +9 -4
  133. package/dist/types/SwcAppEngine.d.ts.map +1 -0
  134. package/dist/types/decorators/addEventListener.d.ts +5 -2
  135. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  136. package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
  137. package/dist/types/decorators/applyClass.d.ts.map +1 -1
  138. package/dist/types/decorators/applyNode.d.ts +24 -8
  139. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  140. package/dist/types/decorators/applySlot.d.ts +27 -0
  141. package/dist/types/decorators/applySlot.d.ts.map +1 -0
  142. package/dist/types/decorators/applyStyle.d.ts.map +1 -1
  143. package/dist/types/decorators/attribute.d.ts.map +1 -1
  144. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  145. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  146. package/dist/types/decorators/index.d.ts +2 -0
  147. package/dist/types/decorators/index.d.ts.map +1 -1
  148. package/dist/types/decorators/lifecycles.d.ts +26 -15
  149. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  150. package/dist/types/decorators/publishSwcAppMessage.d.ts.map +1 -1
  151. package/dist/types/decorators/query.d.ts +1 -1
  152. package/dist/types/decorators/query.d.ts.map +1 -1
  153. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  154. package/dist/types/decorators/setProperty.d.ts +1 -1
  155. package/dist/types/decorators/setProperty.d.ts.map +1 -1
  156. package/dist/types/decorators/state.d.ts +9 -0
  157. package/dist/types/decorators/state.d.ts.map +1 -0
  158. package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts.map +1 -1
  159. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts +5 -1
  160. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts.map +1 -1
  161. package/dist/types/elements/SwcApp.d.ts +36 -0
  162. package/dist/types/elements/SwcApp.d.ts.map +1 -0
  163. package/dist/types/elements/SwcAppMixin.d.ts +26 -7
  164. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  165. package/dist/types/elements/index.d.ts +2 -1
  166. package/dist/types/elements/index.d.ts.map +1 -1
  167. package/dist/types/elements/tt/SwcAppMixin.d.ts +1 -0
  168. package/dist/types/elements/tt/SwcAppMixin.d.ts.map +1 -0
  169. package/dist/types/elements/tt/SwcAsync.d.ts +1 -0
  170. package/dist/types/elements/tt/SwcAsync.d.ts.map +1 -0
  171. package/dist/types/elements/tt/SwcAsyncTemplate.d.ts +1 -0
  172. package/dist/types/elements/tt/SwcAsyncTemplate.d.ts.map +1 -0
  173. package/dist/types/elements/tt/SwcChoose.d.ts +1 -0
  174. package/dist/types/elements/tt/SwcChoose.d.ts.map +1 -0
  175. package/dist/types/elements/tt/SwcChooseTemplate.d.ts +1 -0
  176. package/dist/types/elements/tt/SwcChooseTemplate.d.ts.map +1 -0
  177. package/dist/types/elements/tt/SwcIf.d.ts +1 -0
  178. package/dist/types/elements/{SwcIf.d.ts.map → tt/SwcIf.d.ts.map} +1 -1
  179. package/dist/types/elements/tt/SwcIfTemplate.d.ts +1 -0
  180. package/dist/types/elements/tt/SwcIfTemplate.d.ts.map +1 -0
  181. package/dist/types/elements/tt/SwcLoop.d.ts +1 -0
  182. package/dist/types/elements/tt/SwcLoop.d.ts.map +1 -0
  183. package/dist/types/elements/tt/SwcLoopTemplate.d.ts +1 -0
  184. package/dist/types/elements/tt/SwcLoopTemplate.d.ts.map +1 -0
  185. package/dist/types/elements/tt/SwcSubTemplates.d.ts +1 -0
  186. package/dist/types/elements/tt/SwcSubTemplates.d.ts.map +1 -0
  187. package/dist/types/elements/tt/register.d.ts +1 -0
  188. package/dist/types/elements/tt/register.d.ts.map +1 -0
  189. package/dist/types/index.d.ts +2 -2
  190. package/dist/types/index.d.ts.map +1 -1
  191. package/dist/types/{types.d.ts → types/index.d.ts} +12 -12
  192. package/dist/types/types/index.d.ts.map +1 -0
  193. package/dist/types/utils/Utils.d.ts +18 -5
  194. package/dist/types/utils/Utils.d.ts.map +1 -1
  195. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +7478 -2829
  196. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  197. package/package.json +4 -4
  198. package/src/{elements/SwcAppEngine.ts → SwcAppEngine.ts} +17 -8
  199. package/src/decorators/addEventListener.ts +21 -5
  200. package/src/decorators/applyAttribute.ts +1 -1
  201. package/src/decorators/applyClass.ts +1 -1
  202. package/src/decorators/applyNode.ts +186 -66
  203. package/src/decorators/applySlot.ts +188 -0
  204. package/src/decorators/applyStyle.ts +4 -4
  205. package/src/decorators/attribute.ts +1 -1
  206. package/src/decorators/elementDefine.ts +142 -68
  207. package/src/decorators/emitCustomEvent.ts +1 -1
  208. package/src/decorators/index.ts +3 -0
  209. package/src/decorators/lifecycles.ts +119 -30
  210. package/src/decorators/publishSwcAppMessage.ts +2 -3
  211. package/src/decorators/query.ts +4 -4
  212. package/src/decorators/queryAll.ts +1 -1
  213. package/src/decorators/setProperty.ts +1 -1
  214. package/src/decorators/state.ts +84 -0
  215. package/src/decorators/subscribeSwcAppMessageWhileConnected.ts +1 -1
  216. package/src/decorators/subscribeSwcAppRouteChangeWhileConnected.ts +4 -3
  217. package/src/elements/SwcApp.ts +241 -0
  218. package/src/elements/SwcAppMixin.ts +98 -146
  219. package/src/elements/index.ts +4 -1
  220. package/src/elements/tt/SwcAppMixin.ts +13 -0
  221. package/src/elements/tt/SwcAsync.ts +139 -0
  222. package/src/elements/tt/SwcAsyncTemplate.ts +126 -0
  223. package/src/elements/tt/SwcChoose.ts +182 -0
  224. package/src/elements/tt/SwcChooseTemplate.ts +229 -0
  225. package/src/elements/tt/SwcIf.ts +145 -0
  226. package/src/elements/tt/SwcIfTemplate.ts +158 -0
  227. package/src/elements/tt/SwcLoop.ts +222 -0
  228. package/src/elements/tt/SwcLoopTemplate.ts +255 -0
  229. package/src/elements/tt/SwcSubTemplates.ts +6 -0
  230. package/src/elements/tt/register.ts +720 -0
  231. package/src/index.ts +11 -9
  232. package/src/{types.ts → types/index.ts} +15 -11
  233. package/src/types/window.d.ts +46 -0
  234. package/src/utils/Utils.ts +214 -24
  235. package/dist/cjs/elements/SwcAppEngine.js.map +0 -7
  236. package/dist/cjs/elements/SwcAsync.js +0 -129
  237. package/dist/cjs/elements/SwcAsync.js.map +0 -7
  238. package/dist/cjs/elements/SwcChoose.js +0 -155
  239. package/dist/cjs/elements/SwcChoose.js.map +0 -7
  240. package/dist/cjs/elements/SwcIf.js +0 -117
  241. package/dist/cjs/elements/SwcIf.js.map +0 -7
  242. package/dist/cjs/elements/SwcLoop.js +0 -176
  243. package/dist/cjs/elements/SwcLoop.js.map +0 -7
  244. package/dist/cjs/elements/SwcSubTemplates.js +0 -13
  245. package/dist/cjs/elements/SwcSubTemplates.js.map +0 -7
  246. package/dist/cjs/elements/register.js +0 -1026
  247. package/dist/cjs/elements/register.js.map +0 -7
  248. package/dist/cjs/types.js.map +0 -7
  249. package/dist/esm/elements/SwcAppEngine.js.map +0 -7
  250. package/dist/esm/elements/SwcAsync.js +0 -129
  251. package/dist/esm/elements/SwcAsync.js.map +0 -7
  252. package/dist/esm/elements/SwcChoose.js +0 -155
  253. package/dist/esm/elements/SwcChoose.js.map +0 -7
  254. package/dist/esm/elements/SwcIf.js +0 -117
  255. package/dist/esm/elements/SwcIf.js.map +0 -7
  256. package/dist/esm/elements/SwcLoop.js +0 -176
  257. package/dist/esm/elements/SwcLoop.js.map +0 -7
  258. package/dist/esm/elements/SwcSubTemplates.js +0 -13
  259. package/dist/esm/elements/SwcSubTemplates.js.map +0 -7
  260. package/dist/esm/elements/register.js +0 -1007
  261. package/dist/esm/elements/register.js.map +0 -7
  262. package/dist/esm/types.js.map +0 -7
  263. package/dist/types/elements/SwcAppEngine.d.ts.map +0 -1
  264. package/dist/types/elements/SwcAsync.d.ts +0 -2
  265. package/dist/types/elements/SwcAsync.d.ts.map +0 -1
  266. package/dist/types/elements/SwcChoose.d.ts +0 -2
  267. package/dist/types/elements/SwcChoose.d.ts.map +0 -1
  268. package/dist/types/elements/SwcIf.d.ts +0 -2
  269. package/dist/types/elements/SwcLoop.d.ts +0 -2
  270. package/dist/types/elements/SwcLoop.d.ts.map +0 -1
  271. package/dist/types/elements/SwcSubTemplates.d.ts +0 -13
  272. package/dist/types/elements/SwcSubTemplates.d.ts.map +0 -1
  273. package/dist/types/elements/register.d.ts +0 -4
  274. package/dist/types/elements/register.d.ts.map +0 -1
  275. package/dist/types/types.d.ts.map +0 -1
  276. package/src/elements/SwcAsync.ts +0 -126
  277. package/src/elements/SwcChoose.ts +0 -190
  278. package/src/elements/SwcIf.ts +0 -124
  279. package/src/elements/SwcLoop.ts +0 -205
  280. package/src/elements/SwcSubTemplates.ts +0 -6
  281. package/src/elements/register.ts +0 -1022
@@ -19,34 +19,44 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
20
20
  var SwcAppMixin_exports = {};
21
21
  __export(SwcAppMixin_exports, {
22
- SwcAppMixin: () => SwcAppMixin
22
+ SwcAppMixin: () => SwcAppMixin,
23
+ isSSR: () => isSSR,
24
+ removeSSRAttribute: () => removeSSRAttribute,
25
+ setSSRAttribute: () => setSSRAttribute
23
26
  });
24
27
  module.exports = __toCommonJS(SwcAppMixin_exports);
25
- var import_SwcAppEngine = require("./SwcAppEngine");
26
- var import_Utils = require("../utils/Utils");
28
+ var import_decorators = require("../decorators");
29
+ var import_SwcAppEngine = require("../SwcAppEngine");
27
30
  var import_core = require("@dooboostore/core");
28
- var import_subscribeSwcAppRouteChangeWhileConnected = require("../decorators/subscribeSwcAppRouteChangeWhileConnected");
29
- var import_subscribeSwcAppMessageWhileConnected = require("../decorators/subscribeSwcAppMessageWhileConnected");
31
+ var import_Utils = require("../utils/Utils");
32
+ const isSSR = (i) => {
33
+ return i.hasAttribute("swc-use-ssr");
34
+ };
35
+ const setSSRAttribute = (i) => {
36
+ i.setAttribute("swc-use-ssr", i._swcId ?? "");
37
+ };
38
+ const removeSSRAttribute = (i) => {
39
+ i.removeAttribute("swc-use-ssr");
40
+ };
30
41
  function SwcAppMixin(Base) {
31
- return class extends Base {
32
- constructor() {
33
- super(...arguments);
42
+ return class SwcAppMixinClass extends Base {
43
+ constructor(...args) {
44
+ super(...args);
34
45
  __publicField(this, "__swc_engine", new import_SwcAppEngine.SwcAppEngine(this));
35
46
  __publicField(this, "_swc_connected_instance", /* @__PURE__ */ new Set());
36
- // _swc_notified_routes = new WeakMap<any, RouterEventType>();
37
47
  __publicField(this, "_routerSubscription");
38
48
  __publicField(this, "_lastRouterEvent");
39
49
  __publicField(this, "_routeChangeInvocations", 0);
40
50
  __publicField(this, "_connectedInvocations", 0);
41
51
  __publicField(this, "_childrenRouteChangedInterval");
42
52
  __publicField(this, "_childrenConnectedDoneInterval");
43
- /*
44
- 사파리 is 일경우
45
- <script src="https://unpkg.com/@ungap/custom-elements"><\/script>
46
- 이걸사용하는데 is 대응하는거다 그런데 이때 처리되는 순서가 크롬이나 표준에서는 부모부터 만들어지고 자식들이 만들어지는데
47
- 저 polyfill에서는 자식부터 만들어지고 부모가 만들어진다 is일때 아 .. 이문제때문에 자식이 _connected_safari 에 강제로 자기자식넣어준다
53
+ /**
54
+ * Safari is 속성 처리
55
+ * Safari polyfill에서는 자식부터 만들어지고 부모가 만들어지므로
56
+ * 부모가 자식들을 강제로 등록해주는 형태로 처리
48
57
  */
49
- __publicField(this, "_connected_safari", []);
58
+ __publicField(this, "_connected_safari_and_standby", []);
59
+ console.log("[SWC-APP-MIXIN] constructor");
50
60
  }
51
61
  get simpleApplication() {
52
62
  return this.__swc_engine.simpleApplication;
@@ -61,21 +71,22 @@ function SwcAppMixin(Base) {
61
71
  if (instance.isConnected === false) return;
62
72
  this._routeChangeInvocations++;
63
73
  if (this._childrenRouteChangedInterval) {
64
- clearInterval(this._childrenRouteChangedInterval);
74
+ this.config.window.clearInterval(this._childrenRouteChangedInterval);
65
75
  }
76
+ const intervalConfig = { setInterval: this.config.window.setInterval.bind(this.config.window), clearInterval: this.config.window.clearInterval.bind(this.config.window) };
66
77
  this._childrenRouteChangedInterval = (0, import_core.debounceTimeIntervalLock)(
67
78
  () => this._routeChangeInvocations === 0,
68
79
  () => {
69
80
  this._childrenRouteChangedInterval = null;
70
- this.config.onChildrenRouteChanged(re, this);
81
+ this.config.onChildrenRouteChanged?.(re, this);
71
82
  },
72
83
  this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,
73
- { setInterval: window.setInterval, clearInterval: window.clearInterval }
74
- // {setInterval: window.setInterval, clearInterval: window.clearInterval}
84
+ intervalConfig
75
85
  );
76
86
  try {
77
- const routeChangeSubscribers = (0, import_subscribeSwcAppRouteChangeWhileConnected.getSubscribeSwcAppRouteChangeWhileConnectedMetadata)(instance);
87
+ const routeChangeSubscribers = (0, import_decorators.getSubscribeSwcAppRouteChangeWhileConnectedMetadata)(instance);
78
88
  if (routeChangeSubscribers && Array.isArray(routeChangeSubscribers)) {
89
+ console.log("[SWC-MIXIN] Route change subscribers found");
79
90
  const ps = routeChangeSubscribers.map(async (metadata) => {
80
91
  const methodName = metadata.propertyKey;
81
92
  let pathPattern = metadata.options?.path;
@@ -101,7 +112,8 @@ function SwcAppMixin(Base) {
101
112
  pathData = import_Utils.SwcUtils.parsePathPattern(pathPattern, re.path || "/");
102
113
  pathMatched = pathData !== null;
103
114
  }
104
- const filterPassed = !filter || filter(this.router, instance);
115
+ const hostSet = import_Utils.SwcUtils.getHelperAndHostSet(this.config.window, this);
116
+ const filterPassed = !filter || filter(this.router, { helper: hostSet, currentThis: instance });
105
117
  if (pathMatched && filterPassed && instance[methodName]) {
106
118
  await instance[methodName]({ ...re, pathData });
107
119
  }
@@ -109,24 +121,41 @@ function SwcAppMixin(Base) {
109
121
  await Promise.allSettled(ps);
110
122
  }
111
123
  } finally {
112
- this._routeChangeInvocations--;
124
+ if (this.config?.ssr) {
125
+ setSSRAttribute(instance);
126
+ } else {
127
+ removeSSRAttribute(instance);
128
+ }
129
+ this._routeChangeInvocations = Math.max(0, this._routeChangeInvocations - 1);
113
130
  }
114
131
  }
115
- async _connected(instance) {
132
+ async _connected(instance, option) {
116
133
  if (instance) {
117
- this._connectedInvocations++;
134
+ if (!this.simpleApplication && !this.config) {
135
+ this._connected_safari_and_standby.push(instance);
136
+ return;
137
+ }
138
+ this.config.onConnectedChildBefore?.(instance);
139
+ if (!option?.noIncrements) {
140
+ this._connectedInvocations++;
141
+ }
118
142
  this._swc_connected_instance.add(instance);
143
+ const connectedSwcAppCallBacks = (0, import_decorators.findAllLifecycleMetadata)(instance, import_decorators.ON_CONNECTED_SWC_APP_METADATA_KEY) ?? [];
144
+ for (let connectedSwcAppCallBack of connectedSwcAppCallBacks) {
145
+ await instance?._invokeLifecycleMethod?.(connectedSwcAppCallBack);
146
+ }
119
147
  if (this._childrenConnectedDoneInterval) {
120
- clearInterval(this._childrenConnectedDoneInterval);
148
+ this.config.window.clearInterval(this._childrenConnectedDoneInterval);
121
149
  }
150
+ const intervalConfig = { setInterval: this.config.window.setInterval.bind(this.config.window), clearInterval: this.config.window.clearInterval.bind(this.config.window) };
122
151
  this._childrenConnectedDoneInterval = (0, import_core.debounceTimeIntervalLock)(
123
152
  () => this._connectedInvocations === 0,
124
153
  () => {
125
154
  this._childrenConnectedDoneInterval = null;
126
- this.config.onChildrenConnectedDone(this);
155
+ this.config.onChildrenConnectedDone?.(this);
127
156
  },
128
157
  this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,
129
- { setInterval: window.setInterval, clearInterval: window.clearInterval }
158
+ intervalConfig
130
159
  );
131
160
  if (this.simpleApplication) {
132
161
  try {
@@ -137,17 +166,25 @@ function SwcAppMixin(Base) {
137
166
  throw e;
138
167
  }
139
168
  }
169
+ if (this.config?.ssr) {
170
+ setSSRAttribute(instance);
171
+ } else {
172
+ removeSSRAttribute(instance);
173
+ }
140
174
  }
175
+ this.config.onConnectedChildAfter?.(instance);
176
+ return this;
141
177
  }
142
178
  async _connectedDone(instance) {
143
179
  try {
144
180
  } finally {
145
- this._connectedInvocations--;
181
+ this._connectedInvocations = Math.max(0, this._connectedInvocations - 1);
146
182
  }
147
183
  }
148
184
  _disconnected(instance) {
149
185
  if (instance) {
150
186
  this._swc_connected_instance.delete(instance);
187
+ this.config?.onDisconnectedChildAfter?.(instance);
151
188
  }
152
189
  }
153
190
  async _handleRouteChange(route) {
@@ -157,73 +194,31 @@ function SwcAppMixin(Base) {
157
194
  await Promise.allSettled(ps);
158
195
  }
159
196
  async connect(config) {
197
+ console.log("[SWC-MIXIN] connect");
160
198
  const swcConfig = {
161
199
  routeType: "element",
162
200
  window: config?.window,
163
201
  ...config
164
202
  };
165
- const mode = config?.connectMode || "direct";
166
- if (mode === "direct") {
167
- await this.__swc_engine.connect(swcConfig);
168
- this.setAttribute("swc-connect-mode", "direct");
169
- } else if (mode === "swap" || mode === "clear-swap") {
170
- if (!this.parentNode) {
171
- await this.__swc_engine.connect(swcConfig);
172
- this.setAttribute("swc-connect-mode", "direct");
173
- } else {
174
- const clonedApp = this.cloneNode(mode === "swap");
175
- clonedApp.style.display = "none";
176
- this.parentNode.insertBefore(clonedApp, this.nextSibling);
177
- try {
178
- await clonedApp.connect({ ...config || {}, connectMode: "direct" });
179
- if (this.parentNode) {
180
- this.parentNode.removeChild(this);
181
- }
182
- clonedApp.style.display = "";
183
- clonedApp.setAttribute("swc-connect-mode", mode);
184
- return;
185
- } catch (e) {
186
- if (clonedApp.parentNode) {
187
- clonedApp.parentNode.removeChild(clonedApp);
188
- }
189
- await this.__swc_engine.connect(swcConfig);
190
- this.setAttribute("swc-connect-mode", "direct");
191
- }
192
- }
193
- }
194
- this._connected_safari.forEach((instance) => {
195
- this._connected(instance);
203
+ await this.__swc_engine.connect(swcConfig);
204
+ this._connected_safari_and_standby.forEach((instance) => {
205
+ this._connected(instance, { noIncrements: true });
196
206
  });
197
207
  if (!this._routerSubscription && this.router) {
198
208
  const config2 = this.__swc_engine.config;
199
209
  this._routerSubscription = this.router.observable.subscribe(async (route) => {
210
+ console.log("[SWC-MIXIN] Router event received:", route.triggerPoint);
200
211
  if (route.triggerPoint === "end") {
201
212
  await this._handleRouteChange(route);
202
213
  }
203
214
  });
204
215
  if (config2?.path) {
205
- this.router.go(config2.path);
216
+ console.log("[DEBUG] Navigating to initial path:", config2.path);
206
217
  }
207
218
  }
208
219
  }
209
- // async _invokeOnConnectedSwcAppStarted(instance: any) {
210
- // this._swcAppStartedInvocations++;
211
- // try {
212
- // // 이미 시작된 인스턴스라면 스킵 (비동기 병렬 중복 호출 방지)
213
- // if (this._swc_started_instances.has(instance)) return;
214
- // this._swc_started_instances.add(instance);
215
- //
216
- // const startedMethods = findAllLifecycleMetadata(instance, ON_CONNECTED_SWC_APP_METADATA_KEY);
217
- // if (startedMethods) {
218
- // const ps = startedMethods.map(m => instance._invokeLifecycleMethod(m));
219
- // await Promise.allSettled(ps);
220
- // }
221
- // } finally {
222
- // this._swcAppStartedInvocations--;
223
- // }
224
- // }
225
220
  connectedCallback() {
226
- if (super.connectedCallback) super.connectedCallback();
221
+ super.connectedCallback?.();
227
222
  const configStr = this.getAttribute("swc-get-application-config");
228
223
  const win = this.ownerDocument?.defaultView || window;
229
224
  if (configStr && win) {
@@ -235,18 +230,21 @@ function SwcAppMixin(Base) {
235
230
  });
236
231
  this.connect(userConfig);
237
232
  } catch (e) {
238
- console.error("[SWC-APP-ENGINE] Script execution failed:", e);
233
+ console.error("[SWC-MIXIN] Script execution failed:", e);
239
234
  }
240
235
  }
236
+ this._connected(this);
241
237
  this.__swc_engine?.config?.onConnected?.(this);
238
+ this._connectedDone(this);
242
239
  }
243
240
  disconnectedCallback() {
244
- if (super.disconnectedCallback) super.disconnectedCallback();
241
+ super.disconnectedCallback?.();
245
242
  this._routerSubscription?.unsubscribe();
246
243
  this._routerSubscription = void 0;
247
244
  this._lastRouterEvent = void 0;
248
245
  this.__swc_engine.disconnect();
249
246
  this.__swc_engine?.config?.onDisconnected?.(this);
247
+ this._disconnected(this);
250
248
  }
251
249
  async routing(path) {
252
250
  await this.router?.go(path);
@@ -266,7 +264,7 @@ function SwcAppMixin(Base) {
266
264
  });
267
265
  }
268
266
  _invokeMessageSubscribers(instance, message) {
269
- const messageSubscribers = (0, import_subscribeSwcAppMessageWhileConnected.getSubscribeSwcAppMessageWhileConnectedMetadata)(instance);
267
+ const messageSubscribers = (0, import_decorators.getSubscribeSwcAppMessageWhileConnectedMetadata)(instance);
270
268
  if (messageSubscribers && Array.isArray(messageSubscribers)) {
271
269
  messageSubscribers.forEach((metadata) => {
272
270
  const methodName = metadata.propertyKey;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcAppMixin.ts"],
4
- "sourcesContent": ["import {SwcAppEngine, SwcAttributeConfigType, SwcConfigType} from './SwcAppEngine';\nimport {SwcAppInterface, SwcAppMessage} from '../types';\nimport {SwcUtils} from '../utils/Utils';\nimport {debounceTimeIntervalLock, FunctionUtils, Subscription} from '@dooboostore/core';\nimport {RouterEventType} from '@dooboostore/core-web';\nimport {getSubscribeSwcAppRouteChangeWhileConnectedMetadata} from '../decorators/subscribeSwcAppRouteChangeWhileConnected';\nimport {getSubscribeSwcAppMessageWhileConnectedMetadata} from '../decorators/subscribeSwcAppMessageWhileConnected';\n\nexport function SwcAppMixin<T extends { new(...args: any[]): HTMLElement }>(Base: T) {\n //@ts-ignore\n return class extends Base implements SwcAppInterface {\n __swc_engine = new SwcAppEngine(this as any);\n _swc_connected_instance = new Set<any>();\n // _swc_notified_routes = new WeakMap<any, RouterEventType>();\n _routerSubscription?: Subscription;\n _lastRouterEvent?: RouterEventType;\n _routeChangeInvocations = 0;\n _connectedInvocations = 0;\n\n _childrenRouteChangedInterval: any;\n _childrenConnectedDoneInterval: any;\n\n /*\n \uC0AC\uD30C\uB9AC is \uC77C\uACBD\uC6B0\n <script src=\"https://unpkg.com/@ungap/custom-elements\"></script>\n \uC774\uAC78\uC0AC\uC6A9\uD558\uB294\uB370 is \uB300\uC751\uD558\uB294\uAC70\uB2E4 \uADF8\uB7F0\uB370 \uC774\uB54C \uCC98\uB9AC\uB418\uB294 \uC21C\uC11C\uAC00 \uD06C\uB86C\uC774\uB098 \uD45C\uC900\uC5D0\uC11C\uB294 \uBD80\uBAA8\uBD80\uD130 \uB9CC\uB4E4\uC5B4\uC9C0\uACE0 \uC790\uC2DD\uB4E4\uC774 \uB9CC\uB4E4\uC5B4\uC9C0\uB294\uB370\n \uC800 polyfill\uC5D0\uC11C\uB294 \uC790\uC2DD\uBD80\uD130 \uB9CC\uB4E4\uC5B4\uC9C0\uACE0 \uBD80\uBAA8\uAC00 \uB9CC\uB4E4\uC5B4\uC9C4\uB2E4 is\uC77C\uB54C \uC544 .. \uC774\uBB38\uC81C\uB54C\uBB38\uC5D0 \uC790\uC2DD\uC774 _connected_safari \uC5D0 \uAC15\uC81C\uB85C \uC790\uAE30\uC790\uC2DD\uB123\uC5B4\uC900\uB2E4\n */\n _connected_safari = [];\n\n get simpleApplication() {\n return this.__swc_engine.simpleApplication;\n }\n\n get config() {\n return this.__swc_engine?.config;\n }\n\n get router() {\n return this.__swc_engine?.router;\n }\n\n async _invokeRouteChangeSubscribers(instance: any, re: RouterEventType) {\n if (instance.isConnected === false) return;\n\n this._routeChangeInvocations++;\n\n if (this._childrenRouteChangedInterval) {\n clearInterval(this._childrenRouteChangedInterval);\n }\n this._childrenRouteChangedInterval = debounceTimeIntervalLock(\n () => this._routeChangeInvocations === 0,\n () => {\n this._childrenRouteChangedInterval = null;\n this.config.onChildrenRouteChanged(re, this)\n },\n this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,\n {setInterval: window.setInterval, clearInterval: window.clearInterval}\n // {setInterval: window.setInterval, clearInterval: window.clearInterval}\n );\n\n\n // debounceTimeIntervalLock({\n // unlockChecker: () => this._routeChangeInvocations === 0,\n // unlocked: () => this.config.onChildrenRouteChanged(re, this)\n // }, {\n // intervalId: this._childrenRouteChangedInterval,\n // setIntervalId: (id) => this._childrenRouteChangedInterval = id,\n // intervalTime: this.config?.childrenRouteChangedCheckIntervalTime ?? 30\n // }, {\n // setInterval: window.setInterval,\n // clearInterval: window.clearInterval\n // });\n\n try {\n // if (this._swc_notified_routes.get(instance) === re) {\n // return;\n // }\n // this._swc_notified_routes.set(instance, re);\n\n const routeChangeSubscribers = getSubscribeSwcAppRouteChangeWhileConnectedMetadata(instance);\n if (routeChangeSubscribers && Array.isArray(routeChangeSubscribers)) {\n const ps = routeChangeSubscribers.map(async metadata => {\n const methodName = metadata.propertyKey;\n let pathPattern = metadata.options?.path as any;\n const filter = metadata.options?.filter;\n\n if (typeof pathPattern === 'function') {\n pathPattern = (pathPattern as Function)(instance);\n }\n\n let pathMatched = false;\n let pathData: any = null;\n\n if (!pathPattern) {\n pathMatched = true;\n pathData = {};\n } else if (Array.isArray(pathPattern)) {\n for (const pattern of pathPattern) {\n const data = SwcUtils.parsePathPattern(pattern, re.path || '/');\n if (data !== null) {\n pathMatched = true;\n pathData = data;\n break;\n }\n }\n } else {\n pathData = SwcUtils.parsePathPattern(pathPattern, re.path || '/');\n pathMatched = pathData !== null;\n }\n\n const filterPassed = !filter || filter(this.router!, instance);\n\n if (pathMatched && filterPassed && instance[methodName]) {\n await instance[methodName]({...re, pathData: pathData});\n }\n });\n await Promise.allSettled(ps);\n }\n } finally {\n this._routeChangeInvocations--;\n }\n }\n\n async _connected(instance: any) {\n if (instance) {\n this._connectedInvocations++;\n this._swc_connected_instance.add(instance);\n\n if (this._childrenConnectedDoneInterval) {\n clearInterval(this._childrenConnectedDoneInterval);\n }\n this._childrenConnectedDoneInterval = debounceTimeIntervalLock(\n () => this._connectedInvocations === 0,\n () => {\n this._childrenConnectedDoneInterval = null;\n this.config.onChildrenConnectedDone(this)\n },\n this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,\n {setInterval: window.setInterval, clearInterval: window.clearInterval}\n );\n\n\n if (this.simpleApplication) {\n try {\n // await this._invokeOnConnectedSwcAppStarted(instance);\n\n if (this.router && this._lastRouterEvent) {\n await this._invokeRouteChangeSubscribers(instance, this._lastRouterEvent!);\n }\n } catch (e) {\n throw e;\n }\n }\n }\n }\n\n async _connectedDone(instance: any) {\n try {\n // \uB0B4\uBD80 \uC5F0\uACB0 \uCC98\uB9AC \uB85C\uC9C1\uC774 \uC788\uB2E4\uBA74 \uC5EC\uAE30\uC5D0 \uCD94\uAC00\n } finally {\n this._connectedInvocations--;\n }\n }\n\n _disconnected(instance: any) {\n // console.log('_disconnected', instance);\n if (instance) {\n this._swc_connected_instance.delete(instance);\n // this._swc_notified_routes.delete(instance);\n }\n }\n\n async _handleRouteChange(route: RouterEventType) {\n // Save last router event\n this._lastRouterEvent = route;\n // if (route.triggerPoint === 'end') {\n // Iterate through all connected component instances\n const swcConnectedInstance = Array.from(this._swc_connected_instance);\n // console.log('routing handle-->', swcConnectedInstance)\n const ps = swcConnectedInstance.map((instance: any) => this._invokeRouteChangeSubscribers(instance, route));\n await Promise.allSettled(ps);\n // }\n }\n\n async connect(config?: SwcAttributeConfigType) {\n const swcConfig = {\n routeType: 'element',\n window: config?.window,\n ...config\n } as SwcConfigType;\n\n const mode = config?.connectMode || 'direct';\n\n if (mode === 'direct') {\n await this.__swc_engine.connect(swcConfig);\n this.setAttribute('swc-connect-mode', 'direct');\n } else if (mode === 'swap' || mode === 'clear-swap') {\n if (!this.parentNode) {\n // \uBD80\uBAA8\uAC00 \uC5C6\uC73C\uBA74 swap\uC744 \uD560 \uC218 \uC5C6\uC73C\uBBC0\uB85C direct\uB85C \uD3F4\uBC31\uD569\uB2C8\uB2E4.\n await this.__swc_engine.connect(swcConfig);\n this.setAttribute('swc-connect-mode', 'direct');\n } else {\n // 1. \uD604\uC7AC SSR \uC0C1\uD0DC(\uD654\uBA74)\uB97C \uADF8\uB300\uB85C \uC720\uC9C0\uD55C \uCC44\uB85C, \uBC31\uADF8\uB77C\uC6B4\uB4DC\uC6A9 \uD074\uB860\uC744 \uB9CC\uB4ED\uB2C8\uB2E4.\n const clonedApp = this.cloneNode(mode === 'swap') as any; // clear-swap \uBAA8\uB4DC\uBA74 \uC790\uC2DD \uB178\uB4DC\uB97C \uD074\uB860\uD558\uC9C0 \uC54A\uC74C(false)\n clonedApp.style.display = 'none';\n\n // 2. DOM\uC5D0 \uD074\uB860\uC744 \uBAB0\uB798 \uBD99\uC785\uB2C8\uB2E4.\n this.parentNode.insertBefore(clonedApp, this.nextSibling);\n\n try {\n // 3. \uD074\uB860\uC744 direct \uBAA8\uB4DC\uB85C \uC5F0\uACB0(\uCD08\uAE30\uD654/\uB80C\uB354\uB9C1) \uC2DC\uD0B5\uB2C8\uB2E4.\n await clonedApp.connect({...(config || {}), connectMode: 'direct'});\n\n // 4. \uD074\uB860\uC758 \uB80C\uB354\uB9C1\uC774 \uC644\uC804\uD788 \uB05D\uB098\uBA74, \uAE30\uC874 SSR \uD654\uBA74(this)\uC744 \uC9C0\uC6B0\uACE0 \uD074\uB860\uC744 \uBCF4\uC5EC\uC90D\uB2C8\uB2E4.\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n clonedApp.style.display = '';\n clonedApp.setAttribute('swc-connect-mode', mode);\n\n // \u2605 \uB9E4\uC6B0 \uC911\uC694: \uAD50\uCCB4\uAC00 \uC644\uB8CC\uB418\uC5C8\uC73C\uBBC0\uB85C \uAE30\uC874 \uC571(this)\uC740 \uC5EC\uAE30\uC11C \uC989\uC2DC \uC885\uB8CC\uD558\uC5EC \uBD88\uD544\uC694\uD55C \uB77C\uC6B0\uD130/\uC774\uBCA4\uD2B8 \uAD6C\uB3C5\uC744 \uB9C9\uC544\uC57C \uD569\uB2C8\uB2E4!\n return;\n } catch (e) {\n // \uC2E4\uD328 \uC2DC \uD074\uB860\uC744 \uC9C0\uC6B0\uACE0 \uC6D0\uBCF8\uC744 direct\uB85C \uAC15\uC81C \uC5F0\uACB0\uD569\uB2C8\uB2E4.\n if (clonedApp.parentNode) {\n clonedApp.parentNode.removeChild(clonedApp);\n }\n await this.__swc_engine.connect(swcConfig);\n this.setAttribute('swc-connect-mode', 'direct');\n }\n }\n }\n\n // \uC0AC\uD30C\uB9AC\uC77C\uB584 \uC608\uC678\uC774\uB2E4 is \uC77C\uB54C polyfill\uB418\uB294\uB370 \uC774\uB584 \uBD80\uBAA8\uBD80\uD130 \uB9CC\uB4E4\uC5B4\uC9C0\uB294\uAC8C \uC544\uB2C8\uB77C \uC790\uC2DD\uBD80\uD130 \uB9CC\uB4E4\uC5B4\uC9C4\uB2E4 \uADF8\uB798\uC11C \uBD80\uBAA8\uAC00 \uB9CC\uB4E4\uC5B4\uC9C8\uB54C \uC790\uC2DD\uB4E4\uC774 \uC774\uBBF8 \uB9CC\uB4E4\uC5B4\uC838\uC788\uC5B4\uC11C \uBD80\uBAA8\uAC00 \uC790\uC2DD\uB4E4\uC744 \uB4F1\uB85D\uD574\uC8FC\uB294 \uD615\uD0DC\uB85C \uAC15\uC81C\uB85C \uB4F1\uB85D\uD574\uC900\uB2E4\n this._connected_safari.forEach((instance: any) => {\n // console.log('safari!!!!!!!!!!', instance)\n this._connected(instance);\n // this._swc_connected_instance.add(instance);\n });\n // Invoke @onConnectedSwcApp lifecycle methods on all connected component instances\n // const hostSet = SwcUtils.getHostSet(this as any);\n\n // const scis = Array.from(this._swc_connected_instance);\n // await Promise.allSettled(scis.map(instance => this._invokeOnConnectedSwcAppStarted(instance)));\n\n // this._swc_connected_instance.forEach((instance: any) => {\n // this._invokeOnConnectedSwcAppStarted(instance);\n // });\n\n // Subscribe to router changes after connect\n if (!this._routerSubscription && this.router) {\n const config = this.__swc_engine.config;\n\n this._routerSubscription = this.router.observable.subscribe(async (route: RouterEventType) => {\n // console.log('[SWC] Router event received:', route.triggerPoint);\n if (route.triggerPoint === 'end') {\n // 1. \uBAA8\uB4E0 \uAE30\uC874 \uC5F0\uACB0\uB41C \uC790\uC2DD\uB4E4\uC5D0\uAC8C \uB77C\uC6B0\uD2B8 \uC774\uBCA4\uD2B8 \uC54C\uB9BC\n await this._handleRouteChange(route);\n }\n });\n\n // Navigate to initial path if specified\n if (config?.path) {\n // console.log('[DEBUG] Navigating to initial path:', config.path);\n this.router.go(config.path);\n }\n }\n }\n\n // async _invokeOnConnectedSwcAppStarted(instance: any) {\n // this._swcAppStartedInvocations++;\n // try {\n // // \uC774\uBBF8 \uC2DC\uC791\uB41C \uC778\uC2A4\uD134\uC2A4\uB77C\uBA74 \uC2A4\uD0B5 (\uBE44\uB3D9\uAE30 \uBCD1\uB82C \uC911\uBCF5 \uD638\uCD9C \uBC29\uC9C0)\n // if (this._swc_started_instances.has(instance)) return;\n // this._swc_started_instances.add(instance);\n //\n // const startedMethods = findAllLifecycleMetadata(instance, ON_CONNECTED_SWC_APP_METADATA_KEY);\n // if (startedMethods) {\n // const ps = startedMethods.map(m => instance._invokeLifecycleMethod(m));\n // await Promise.allSettled(ps);\n // }\n // } finally {\n // this._swcAppStartedInvocations--;\n // }\n // }\n\n connectedCallback() {\n // this.innerHTML='';\n // @ts-ignore\n if (super.connectedCallback) super.connectedCallback();\n\n const configStr = this.getAttribute('swc-get-application-config');\n const win = this.ownerDocument?.defaultView || window;\n if (configStr && win) {\n try {\n // console.log('vvvvvvvvvvvvvvvv->>>>', SwcUtils.findNearestSwcHost(this.host), SwcUtils.getHostSet(this.host))\n const userConfig = FunctionUtils.executeReturn({\n script: configStr,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n this.connect(userConfig);\n } catch (e) {\n console.error('[SWC-APP-ENGINE] Script execution failed:', e);\n }\n }\n\n this.__swc_engine?.config?.onConnected?.(this);\n }\n\n disconnectedCallback() {\n // @ts-ignore\n if (super.disconnectedCallback) super.disconnectedCallback();\n this._routerSubscription?.unsubscribe();\n this._routerSubscription = undefined;\n this._lastRouterEvent = undefined;\n this.__swc_engine.disconnect();\n this.__swc_engine?.config?.onDisconnected?.(this);\n }\n\n async routing(path: string) {\n await this.router?.go(path);\n }\n\n back(): void {\n this.router?.back();\n }\n\n forward(): void {\n this.router?.forward();\n }\n\n reload(): void {\n this.router?.reload();\n }\n\n publishMessage(message: SwcAppMessage): void {\n // \uBA54\uC2DC\uC9C0\uB97C \uBAA8\uB4E0 connected component instances\uB85C \uBD84\uBC30\n this._swc_connected_instance.forEach((instance: any) => {\n this._invokeMessageSubscribers(instance, message);\n });\n }\n\n _invokeMessageSubscribers(instance: any, message: SwcAppMessage) {\n const messageSubscribers = getSubscribeSwcAppMessageWhileConnectedMetadata(instance);\n if (messageSubscribers && Array.isArray(messageSubscribers)) {\n messageSubscribers.forEach(metadata => {\n const methodName = metadata.propertyKey;\n const messageType = metadata.messageType;\n const filter = metadata.filter;\n\n // \uBA54\uC2DC\uC9C0 \uD0C0\uC785 \uD655\uC778\n let typeMatched = false;\n if (!messageType) {\n // messageType\uC774 \uC5C6\uC73C\uBA74 \uBAA8\uB4E0 \uBA54\uC2DC\uC9C0 \uB9E4\uCE6D (\uC640\uC77C\uB4DC\uCE74\uB4DC)\n typeMatched = true;\n } else if (message.type === messageType) {\n typeMatched = true;\n }\n\n // \uD544\uD130 \uC801\uC6A9\n let filterMatched = true;\n if (filter && typeMatched) {\n filterMatched = filter(message, instance);\n }\n\n // \uC870\uAC74\uC744 \uB9CC\uC871\uD558\uBA74 \uBA54\uC11C\uB4DC \uD638\uCD9C\n if (typeMatched && filterMatched && typeof instance[methodName] === 'function') {\n instance[methodName](message);\n }\n });\n }\n }\n };\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {SwcAppInterface, SwcAppMessage} from \"../types\";\nimport {findAllLifecycleMetadata, getSubscribeSwcAppMessageWhileConnectedMetadata, getSubscribeSwcAppRouteChangeWhileConnectedMetadata, ON_CONNECTED_SWC_APP_METADATA_KEY} from \"../decorators\";\nimport {SwcAppEngine, SwcAttributeConfigType, SwcConfigType} from \"../SwcAppEngine\";\nimport {debounceTimeIntervalLock, FunctionUtils, Subscription} from \"@dooboostore/core\";\nimport {RouterEventType} from \"@dooboostore/core-web\";\nimport {SwcUtils} from \"../utils/Utils\";\n\nexport const isSSR = (i: HTMLElement) => {\n return i.hasAttribute('swc-use-ssr');\n}\nexport const setSSRAttribute = (i: HTMLElement) => {\n i.setAttribute('swc-use-ssr', (i as any)._swcId ?? '');\n}\nexport const removeSSRAttribute = (i: HTMLElement) => {\n i.removeAttribute('swc-use-ssr');\n}\n\n/**\n * SwcAppMixin: SwcApp \uAE30\uB2A5\uC744 \uBAA8\uB4E0 HTMLElement\uC5D0 \uCD94\uAC00\uD560 \uC218 \uC788\uB294 Mixin\n * \n * \uC0AC\uC6A9 \uC608:\n * @elementDefine('custom-app', { window: w })\n * class CustomApp extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n * // \uCD94\uAC00 \uAE30\uB2A5 \uAD6C\uD604\n * }\n */\nexport function SwcAppMixin<T extends { new(...args: any[]): HTMLElement }>(Base: T) {\n return class SwcAppMixinClass extends Base implements SwcAppInterface {\n __swc_engine = new SwcAppEngine(this as any);\n _swc_connected_instance = new Set<any>();\n _routerSubscription?: Subscription;\n _lastRouterEvent?: RouterEventType;\n _routeChangeInvocations = 0;\n _connectedInvocations = 0;\n\n _childrenRouteChangedInterval: any;\n _childrenConnectedDoneInterval: any;\n\n /**\n * Safari is \uC18D\uC131 \uCC98\uB9AC\n * Safari polyfill\uC5D0\uC11C\uB294 \uC790\uC2DD\uBD80\uD130 \uB9CC\uB4E4\uC5B4\uC9C0\uACE0 \uBD80\uBAA8\uAC00 \uB9CC\uB4E4\uC5B4\uC9C0\uBBC0\uB85C\n * \uBD80\uBAA8\uAC00 \uC790\uC2DD\uB4E4\uC744 \uAC15\uC81C\uB85C \uB4F1\uB85D\uD574\uC8FC\uB294 \uD615\uD0DC\uB85C \uCC98\uB9AC\n */\n _connected_safari_and_standby = [];\n\n constructor(...args: any[]) {\n super(...args);\n console.log('[SWC-APP-MIXIN] constructor')\n }\n\n get simpleApplication() {\n return this.__swc_engine.simpleApplication;\n }\n\n get config() {\n return this.__swc_engine?.config;\n }\n\n get router() {\n return this.__swc_engine?.router;\n }\n\n async _invokeRouteChangeSubscribers(instance: HTMLElement, re: RouterEventType) {\n if (instance.isConnected === false) return;\n\n this._routeChangeInvocations++;\n\n if (this._childrenRouteChangedInterval) {\n this.config.window.clearInterval(this._childrenRouteChangedInterval);\n }\n const intervalConfig = {setInterval: this.config.window.setInterval.bind(this.config.window), clearInterval: this.config.window.clearInterval.bind(this.config.window)};\n this._childrenRouteChangedInterval = debounceTimeIntervalLock(\n () => this._routeChangeInvocations === 0,\n () => {\n this._childrenRouteChangedInterval = null;\n this.config.onChildrenRouteChanged?.(re, this)\n },\n this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,\n intervalConfig\n );\n\n try {\n const routeChangeSubscribers = getSubscribeSwcAppRouteChangeWhileConnectedMetadata(instance);\n if (routeChangeSubscribers && Array.isArray(routeChangeSubscribers)) {\n console.log('[SWC-MIXIN] Route change subscribers found')\n const ps = routeChangeSubscribers.map(async metadata => {\n const methodName = metadata.propertyKey;\n let pathPattern = metadata.options?.path as any;\n const filter = metadata.options?.filter;\n\n if (typeof pathPattern === 'function') {\n pathPattern = (pathPattern as Function)(instance);\n }\n\n let pathMatched = false;\n let pathData: any = null;\n\n if (!pathPattern) {\n pathMatched = true;\n pathData = {};\n } else if (Array.isArray(pathPattern)) {\n for (const pattern of pathPattern) {\n const data = SwcUtils.parsePathPattern(pattern, re.path || '/');\n if (data !== null) {\n pathMatched = true;\n pathData = data;\n break;\n }\n }\n } else {\n pathData = SwcUtils.parsePathPattern(pathPattern, re.path || '/');\n pathMatched = pathData !== null;\n }\n\n const hostSet = SwcUtils.getHelperAndHostSet(this.config.window, this);\n const filterPassed = !filter || filter(this.router!, {helper:hostSet, currentThis:instance});\n\n if (pathMatched && filterPassed && instance[methodName]) {\n await instance[methodName]({...re, pathData: pathData});\n }\n });\n await Promise.allSettled(ps);\n }\n } finally {\n if (this.config?.ssr) {\n setSSRAttribute(instance);\n } else {\n removeSSRAttribute(instance);\n }\n this._routeChangeInvocations = Math.max(0, this._routeChangeInvocations - 1);\n }\n }\n\n async _connected(instance: HTMLElement, option?: { noIncrements: boolean }) {\n if (instance) {\n if (!this.simpleApplication && !this.config) {\n this._connected_safari_and_standby.push(instance);\n return;\n }\n\n this.config.onConnectedChildBefore?.(instance);\n if (!option?.noIncrements) {\n this._connectedInvocations++;\n }\n this._swc_connected_instance.add(instance);\n\n const connectedSwcAppCallBacks = findAllLifecycleMetadata(instance, ON_CONNECTED_SWC_APP_METADATA_KEY) ?? [];\n for (let connectedSwcAppCallBack of connectedSwcAppCallBacks) {\n await (instance as any)?._invokeLifecycleMethod?.(connectedSwcAppCallBack);\n }\n\n if (this._childrenConnectedDoneInterval) {\n this.config.window.clearInterval(this._childrenConnectedDoneInterval);\n }\n const intervalConfig = {setInterval: this.config.window.setInterval.bind(this.config.window), clearInterval: this.config.window.clearInterval.bind(this.config.window)};\n this._childrenConnectedDoneInterval = debounceTimeIntervalLock(\n () => this._connectedInvocations === 0,\n () => {\n this._childrenConnectedDoneInterval = null;\n this.config.onChildrenConnectedDone?.(this)\n },\n this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,\n intervalConfig\n );\n\n if (this.simpleApplication) {\n try {\n if (this.router && this._lastRouterEvent) {\n await this._invokeRouteChangeSubscribers(instance, this._lastRouterEvent!);\n }\n } catch (e) {\n throw e;\n }\n }\n\n if (this.config?.ssr) {\n setSSRAttribute(instance);\n } else {\n removeSSRAttribute(instance);\n }\n }\n\n this.config.onConnectedChildAfter?.(instance);\n return this;\n }\n\n async _connectedDone(instance: any) {\n try {\n // \uB0B4\uBD80 \uC5F0\uACB0 \uCC98\uB9AC \uB85C\uC9C1\n } finally {\n this._connectedInvocations = Math.max(0, this._connectedInvocations - 1);\n }\n }\n\n _disconnected(instance: any) {\n if (instance) {\n this._swc_connected_instance.delete(instance);\n this.config?.onDisconnectedChildAfter?.(instance);\n }\n }\n\n async _handleRouteChange(route: RouterEventType) {\n this._lastRouterEvent = route;\n const swcConnectedInstance = Array.from(this._swc_connected_instance);\n const ps = swcConnectedInstance.map((instance: any) => this._invokeRouteChangeSubscribers(instance, route));\n await Promise.allSettled(ps);\n }\n\n async connect(config?: SwcAttributeConfigType) {\n console.log('[SWC-MIXIN] connect')\n const swcConfig = {\n routeType: 'element',\n window: config?.window,\n ...config\n } as SwcConfigType;\n\n await this.__swc_engine.connect(swcConfig);\n\n // Safari is \uC18D\uC131 \uCC98\uB9AC\n this._connected_safari_and_standby.forEach((instance: any) => {\n this._connected(instance, {noIncrements: true});\n });\n\n // \uB77C\uC6B0\uD130 \uBCC0\uACBD \uAD6C\uB3C5\n if (!this._routerSubscription && this.router) {\n const config = this.__swc_engine.config;\n\n this._routerSubscription = this.router.observable.subscribe(async (route: RouterEventType) => {\n console.log('[SWC-MIXIN] Router event received:', route.triggerPoint);\n if (route.triggerPoint === 'end') {\n await this._handleRouteChange(route);\n }\n });\n\n if (config?.path) {\n console.log('[DEBUG] Navigating to initial path:', config.path);\n }\n }\n }\n\n connectedCallback() {\n // \uBD80\uBAA8 \uD074\uB798\uC2A4\uC758 connectedCallback \uD638\uCD9C\n // @ts-ignore\n super.connectedCallback?.();\n\n const configStr = this.getAttribute('swc-get-application-config');\n const win = this.ownerDocument?.defaultView || window;\n if (configStr && win) {\n try {\n const userConfig = FunctionUtils.executeReturn({\n script: configStr,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n this.connect(userConfig);\n } catch (e) {\n console.error('[SWC-MIXIN] Script execution failed:', e);\n }\n }\n\n this._connected(this);\n this.__swc_engine?.config?.onConnected?.(this);\n this._connectedDone(this);\n }\n\n disconnectedCallback() {\n // \uBD80\uBAA8 \uD074\uB798\uC2A4\uC758 disconnectedCallback \uD638\uCD9C\n // @ts-ignore\n super.disconnectedCallback?.();\n \n this._routerSubscription?.unsubscribe();\n this._routerSubscription = undefined;\n this._lastRouterEvent = undefined;\n this.__swc_engine.disconnect();\n this.__swc_engine?.config?.onDisconnected?.(this);\n this._disconnected(this);\n }\n\n async routing(path: string) {\n await this.router?.go(path);\n }\n\n back(): void {\n this.router?.back();\n }\n\n forward(): void {\n this.router?.forward();\n }\n\n reload(): void {\n this.router?.reload();\n }\n\n publishMessage(message: SwcAppMessage): void {\n this._swc_connected_instance.forEach((instance: any) => {\n this._invokeMessageSubscribers(instance, message);\n });\n }\n\n _invokeMessageSubscribers(instance: any, message: SwcAppMessage) {\n const messageSubscribers = getSubscribeSwcAppMessageWhileConnectedMetadata(instance);\n if (messageSubscribers && Array.isArray(messageSubscribers)) {\n messageSubscribers.forEach(metadata => {\n const methodName = metadata.propertyKey;\n const messageType = metadata.messageType;\n const filter = metadata.filter;\n\n let typeMatched = false;\n if (!messageType) {\n typeMatched = true;\n } else if (message.type === messageType) {\n typeMatched = true;\n }\n\n let filterMatched = true;\n if (filter && typeMatched) {\n filterMatched = filter(message, instance);\n }\n\n if (typeMatched && filterMatched && typeof instance[methodName] === 'function') {\n instance[methodName](message);\n }\n });\n }\n }\n };\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["config"]
7
7
  }
@@ -14,5 +14,6 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
15
  var elements_exports = {};
16
16
  module.exports = __toCommonJS(elements_exports);
17
- __reExport(elements_exports, require("./register"), module.exports);
17
+ __reExport(elements_exports, require("./SwcAppMixin"), module.exports);
18
+ __reExport(elements_exports, require("./SwcApp"), module.exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/index.ts"],
4
- "sourcesContent": ["export * from './register';\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,6BAAc,uBAAd;",
4
+ "sourcesContent": ["// export * from './tt/register';\nexport * from './SwcAppMixin'\nexport * from './SwcApp'\n\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AACA,6BAAc,0BADd;AAEA,6BAAc,qBAFd;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcAppMixin.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcAsync.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcAsyncTemplate.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcChoose.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcChooseTemplate.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcIf.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcIfTemplate.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcLoop.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcLoopTemplate.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SwcSubTemplates.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
package/dist/cjs/index.js CHANGED
@@ -22,19 +22,21 @@ __export(src_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(src_exports);
24
24
  var import_reflect_metadata = require("reflect-metadata");
25
- var import_register = require("./elements/register");
25
+ __reExport(src_exports, require("./elements"), module.exports);
26
+ var import_elements = require("./elements");
26
27
  __reExport(src_exports, require("./decorators"), module.exports);
27
28
  __reExport(src_exports, require("./types"), module.exports);
28
29
  __reExport(src_exports, require("./utils/Utils"), module.exports);
29
30
  __reExport(src_exports, require("./config/config"), module.exports);
30
- var src_default = (w, other) => {
31
- const cr = (0, import_register.registerAllElements)(w);
32
- const r = other?.map((fn) => {
33
- if (typeof fn === "function") {
34
- const a = fn(w);
35
- } else {
31
+ var src_default = async (w, other) => {
32
+ const cr = await (0, import_elements.defineSwcAppAll)(w);
33
+ if (other) {
34
+ for (const fn of other) {
35
+ if (typeof fn === "function") {
36
+ await fn(w);
37
+ }
36
38
  }
37
- });
39
+ }
38
40
  return cr;
39
41
  };
40
42
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import 'reflect-metadata';\nimport { registerAllElements } from './elements/register';\nimport {ConstructorType} from \"@dooboostore/core\";\n\n// Decorators\nexport * from './decorators';\n\n// Types\nexport * from './types';\n\n// Utilities\nexport * from './utils/Utils';\n\n// Config\nexport * from './config/config';\n\n// Registration Factory\nexport default (w: Window, other?: (((w: Window) => ConstructorType<any>) | any) []) => {\n const cr = registerAllElements(w);\n const r = other?.map(fn => {\n if (typeof fn === 'function') {\n const a = fn(w);\n } else {\n }\n });\n\n return cr;\n // return r??[];\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAO;AACP,sBAAoC;AAIpC,wBAAc,yBALd;AAQA,wBAAc,oBARd;AAWA,wBAAc,0BAXd;AAcA,wBAAc,4BAdd;AAiBA,IAAO,cAAQ,CAAC,GAAW,UAA6D;AACtF,QAAM,SAAK,qCAAoB,CAAC;AAChC,QAAM,IAAI,OAAO,IAAI,QAAM;AACzB,QAAI,OAAO,OAAO,YAAY;AAC5B,YAAM,IAAI,GAAG,CAAC;AAAA,IAChB,OAAO;AAAA,IACP;AAAA,EACF,CAAC;AAED,SAAO;AAET;",
4
+ "sourcesContent": ["import 'reflect-metadata';\nexport * from './elements'\nimport { defineSwcAppAll } from './elements';\nimport {ConstructorType} from \"@dooboostore/core\";\n\n// Decorators\nexport * from './decorators';\n\n// Types\nexport * from './types';\n\n// Utilities\nexport * from './utils/Utils';\n\n// Config\nexport * from './config/config';\n\n// Registration Factory\nexport default async (w: Window, other?: (((w: Window) => Promise<CustomElementConstructor> | CustomElementConstructor) | any) []) => {\n const cr = await defineSwcAppAll(w);\n // const cr = await elementFactories(w);\n if (other) {\n for (const fn of other) {\n if (typeof fn === 'function') {\n await fn(w);\n }\n }\n }\n\n return cr;\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAO;AACP,wBAAc,uBADd;AAEA,sBAAgC;AAIhC,wBAAc,yBANd;AASA,wBAAc,oBATd;AAYA,wBAAc,0BAZd;AAeA,wBAAc,4BAfd;AAkBA,IAAO,cAAQ,OAAO,GAAW,UAAqG;AACpI,QAAM,KAAK,UAAM,iCAAgB,CAAC;AAElC,MAAI,OAAO;AACT,eAAW,MAAM,OAAO;AACtB,UAAI,OAAO,OAAO,YAAY;AAC5B,cAAM,GAAG,CAAC;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -33,4 +33,4 @@ var InjectSituationType = /* @__PURE__ */ ((InjectSituationType2) => {
33
33
  InjectSituationType2["LAST_APP_HOST"] = "SIMPLE_WEB_COMPONENT://LASTAPPHOST";
34
34
  return InjectSituationType2;
35
35
  })(InjectSituationType || {});
36
- //# sourceMappingURL=types.js.map
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/index.ts"],
4
+ "sourcesContent": ["import { SimpleApplication } from '@dooboostore/simple-boot';\nimport { Router } from '@dooboostore/core-web';\nimport {SwcAttributeConfigType, SwcConfigType} from \"../SwcAppEngine\";\n\nexport enum InjectSituationType {\n HOST_SET = 'SIMPLE_WEB_COMPONENT://HOSTSET',\n APP_HOST = 'SIMPLE_WEB_COMPONENT://APPHOST',\n APP_HOSTS = 'SIMPLE_WEB_COMPONENT://APPHOSTS',\n HOST = 'SIMPLE_WEB_COMPONENT://HOST',\n PARENT_HOST = 'SIMPLE_WEB_COMPONENT://PARENTHOST',\n HOSTS = 'SIMPLE_WEB_COMPONENT://HOSTS',\n FIRST_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTHOST',\n LAST_HOST = 'SIMPLE_WEB_COMPONENT://LASTHOST',\n FIRST_APP_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTAPPHOST',\n LAST_APP_HOST = 'SIMPLE_WEB_COMPONENT://LASTAPPHOST'\n}\n\nexport type SwcRootType = 'light' | 'shadow' | 'all' | 'auto';\n\nexport type SpecialSelector = '$this' | '$window' | '$document' | '$host' | '$appHost' | '$firstHost' | '$lastHost' | '$firstAppHost' | '$lastAppHost' | '$hosts' | '$appHosts';\n\nexport type SwcQueryOptions = { root?: SwcRootType };\n\nexport type HelperSet = {\n $d: Document;\n $w: Window;\n $q: (selector: string, root?: Element | Document | ShadowRoot) => HTMLElement | null;\n $qa: (selector: string, root?: Element | Document | ShadowRoot) => HTMLElement[];\n $qi: (id: string, root?: Document | ShadowRoot) => HTMLElement | null;\n};\n\nexport type HostSet = {\n $host: HTMLElement | null; // Nearest parent SWC component\n $parentHost: HTMLElement | null; // Grandparent SWC ancestor\n $hosts: HTMLElement[]; // All SWC ancestors [root, ..., parent]\n $firstHost: HTMLElement | null; // Top-most SWC ancestor\n $lastHost: HTMLElement | null; // Same as $host\n // $templateHost: HTMLTemplateElement | null | undefined;\n $appHost: SwcAppInterface | null;\n $appHosts: SwcAppInterface[];\n $firstAppHost: SwcAppInterface | null;\n $lastAppHost: SwcAppInterface | null;\n};\n\nexport type HelperHostSet = HelperSet & HostSet & {$this: any};\n\nexport type SwcAppMessage<T = any> = {\n publisher?: any;\n data?: T;\n type?: string;\n};\n\n\nexport interface SwcAppInterface extends HTMLElement {\n simpleApplication?: SimpleApplication;\n config?: SwcConfigType;\n router?: Router;\n connect(config?: SwcAttributeConfigType): Promise<void>;\n routing(path: string): Promise<void>;\n reload(): void;\n back(): void;\n forward(): void;\n publishMessage(message: SwcAppMessage): void;\n}\n\nexport interface SwcElement {\n // _swcId: string;\n createSlotString(id: string): string\n createEaHtml(id: string, script: string): string\n createEaText(id: string, script: string): string\n createEaAttribute(id: string, attributeName: string): string\n createEaEvent(id: string, eventName: string): string\n createEaProperty(id: string, propertyName: string): string\n}"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,IAAK,sBAAL,kBAAKA,yBAAL;AACL,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,eAAY;AACZ,EAAAA,qBAAA,UAAO;AACP,EAAAA,qBAAA,iBAAc;AACd,EAAAA,qBAAA,WAAQ;AACR,EAAAA,qBAAA,gBAAa;AACb,EAAAA,qBAAA,eAAY;AACZ,EAAAA,qBAAA,oBAAiB;AACjB,EAAAA,qBAAA,mBAAgB;AAVN,SAAAA;AAAA,GAAA;",
6
+ "names": ["InjectSituationType"]
7
+ }