@dooboostore/simple-web-component 1.0.50 → 1.0.52

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 (241) hide show
  1. package/README.md +735 -354
  2. package/dist/cjs/SwcAppEngine.js.map +2 -2
  3. package/dist/cjs/decorators/addEventListener.js +64 -146
  4. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  5. package/dist/cjs/decorators/applyAttribute.js +36 -48
  6. package/dist/cjs/decorators/applyAttribute.js.map +2 -2
  7. package/dist/cjs/decorators/applyClass.js +9 -12
  8. package/dist/cjs/decorators/applyClass.js.map +2 -2
  9. package/dist/cjs/decorators/applyNode.js +14 -22
  10. package/dist/cjs/decorators/applyNode.js.map +2 -2
  11. package/dist/cjs/decorators/applyProperty.js +12 -42
  12. package/dist/cjs/decorators/applyProperty.js.map +2 -2
  13. package/dist/cjs/decorators/applySlot.js +3 -3
  14. package/dist/cjs/decorators/applySlot.js.map +2 -2
  15. package/dist/cjs/decorators/applyStyle.js +9 -12
  16. package/dist/cjs/decorators/applyStyle.js.map +2 -2
  17. package/dist/cjs/decorators/around.js +124 -0
  18. package/dist/cjs/decorators/around.js.map +7 -0
  19. package/dist/cjs/decorators/changedAttribute.js +40 -12
  20. package/dist/cjs/decorators/changedAttribute.js.map +2 -2
  21. package/dist/cjs/decorators/elementDefine.js +224 -195
  22. package/dist/cjs/decorators/elementDefine.js.map +3 -3
  23. package/dist/cjs/decorators/emitCustomEvent.js +14 -12
  24. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  25. package/dist/cjs/decorators/eventMedia.js +36 -8
  26. package/dist/cjs/decorators/eventMedia.js.map +2 -2
  27. package/dist/cjs/decorators/fetch.js +278 -0
  28. package/dist/cjs/decorators/fetch.js.map +7 -0
  29. package/dist/cjs/decorators/index.js +5 -2
  30. package/dist/cjs/decorators/index.js.map +2 -2
  31. package/dist/cjs/decorators/intersectionObserver.js +33 -13
  32. package/dist/cjs/decorators/intersectionObserver.js.map +2 -2
  33. package/dist/cjs/decorators/lifecycles.js +11 -11
  34. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  35. package/dist/cjs/decorators/mutationObserver.js +55 -39
  36. package/dist/cjs/decorators/mutationObserver.js.map +3 -3
  37. package/dist/cjs/decorators/parameter.js +92 -9
  38. package/dist/cjs/decorators/parameter.js.map +2 -2
  39. package/dist/cjs/decorators/publishSwcAppMessage.js +2 -2
  40. package/dist/cjs/decorators/publishSwcAppMessage.js.map +2 -2
  41. package/dist/cjs/decorators/query.js +11 -5
  42. package/dist/cjs/decorators/query.js.map +2 -2
  43. package/dist/cjs/decorators/requestAnimationFrame.js +7 -16
  44. package/dist/cjs/decorators/requestAnimationFrame.js.map +2 -2
  45. package/dist/cjs/decorators/resizeObserver.js +41 -17
  46. package/dist/cjs/decorators/resizeObserver.js.map +3 -3
  47. package/dist/cjs/decorators/setInterval.js +36 -25
  48. package/dist/cjs/decorators/setInterval.js.map +2 -2
  49. package/dist/cjs/decorators/setTimeout.js +36 -25
  50. package/dist/cjs/decorators/setTimeout.js.map +2 -2
  51. package/dist/cjs/decorators/state.js +13 -10
  52. package/dist/cjs/decorators/state.js.map +2 -2
  53. package/dist/cjs/decorators/{subscribeSwcAppMessageWhileConnected.js → subscribeSwcAppMessage.js} +20 -21
  54. package/dist/cjs/decorators/subscribeSwcAppMessage.js.map +7 -0
  55. package/dist/cjs/decorators/{subscribeSwcAppRouteChangeWhileConnected.js → subscribeSwcAppRouteChange.js} +23 -19
  56. package/dist/cjs/decorators/subscribeSwcAppRouteChange.js.map +7 -0
  57. package/dist/cjs/decorators/swcAppRoute.js +149 -0
  58. package/dist/cjs/decorators/swcAppRoute.js.map +7 -0
  59. package/dist/cjs/elements/SwcApp.js +70 -0
  60. package/dist/cjs/elements/SwcApp.js.map +2 -2
  61. package/dist/cjs/elements/SwcAppMixin.js +262 -83
  62. package/dist/cjs/elements/SwcAppMixin.js.map +3 -3
  63. package/dist/cjs/types/index.js +5 -1
  64. package/dist/cjs/types/index.js.map +2 -2
  65. package/dist/cjs/utils/Utils.js +36 -15
  66. package/dist/cjs/utils/Utils.js.map +2 -2
  67. package/dist/esm/SwcAppEngine.js.map +2 -2
  68. package/dist/esm/decorators/addEventListener.js +64 -146
  69. package/dist/esm/decorators/addEventListener.js.map +2 -2
  70. package/dist/esm/decorators/applyAttribute.js +36 -48
  71. package/dist/esm/decorators/applyAttribute.js.map +2 -2
  72. package/dist/esm/decorators/applyClass.js +9 -12
  73. package/dist/esm/decorators/applyClass.js.map +2 -2
  74. package/dist/esm/decorators/applyNode.js +15 -23
  75. package/dist/esm/decorators/applyNode.js.map +2 -2
  76. package/dist/esm/decorators/applyProperty.js +12 -42
  77. package/dist/esm/decorators/applyProperty.js.map +2 -2
  78. package/dist/esm/decorators/applySlot.js +3 -3
  79. package/dist/esm/decorators/applySlot.js.map +2 -2
  80. package/dist/esm/decorators/applyStyle.js +9 -12
  81. package/dist/esm/decorators/applyStyle.js.map +2 -2
  82. package/dist/esm/decorators/around.js +105 -0
  83. package/dist/esm/decorators/around.js.map +7 -0
  84. package/dist/esm/decorators/changedAttribute.js +40 -12
  85. package/dist/esm/decorators/changedAttribute.js.map +2 -2
  86. package/dist/esm/decorators/elementDefine.js +222 -193
  87. package/dist/esm/decorators/elementDefine.js.map +3 -3
  88. package/dist/esm/decorators/emitCustomEvent.js +15 -13
  89. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  90. package/dist/esm/decorators/eventMedia.js +36 -8
  91. package/dist/esm/decorators/eventMedia.js.map +2 -2
  92. package/dist/esm/decorators/fetch.js +259 -0
  93. package/dist/esm/decorators/fetch.js.map +7 -0
  94. package/dist/esm/decorators/index.js +5 -2
  95. package/dist/esm/decorators/index.js.map +2 -2
  96. package/dist/esm/decorators/intersectionObserver.js +33 -13
  97. package/dist/esm/decorators/intersectionObserver.js.map +2 -2
  98. package/dist/esm/decorators/lifecycles.js +11 -11
  99. package/dist/esm/decorators/lifecycles.js.map +2 -2
  100. package/dist/esm/decorators/mutationObserver.js +55 -39
  101. package/dist/esm/decorators/mutationObserver.js.map +3 -3
  102. package/dist/esm/decorators/parameter.js +92 -9
  103. package/dist/esm/decorators/parameter.js.map +2 -2
  104. package/dist/esm/decorators/publishSwcAppMessage.js +2 -2
  105. package/dist/esm/decorators/publishSwcAppMessage.js.map +2 -2
  106. package/dist/esm/decorators/query.js +11 -5
  107. package/dist/esm/decorators/query.js.map +2 -2
  108. package/dist/esm/decorators/requestAnimationFrame.js +8 -17
  109. package/dist/esm/decorators/requestAnimationFrame.js.map +2 -2
  110. package/dist/esm/decorators/resizeObserver.js +41 -17
  111. package/dist/esm/decorators/resizeObserver.js.map +2 -2
  112. package/dist/esm/decorators/setInterval.js +37 -26
  113. package/dist/esm/decorators/setInterval.js.map +2 -2
  114. package/dist/esm/decorators/setTimeout.js +37 -26
  115. package/dist/esm/decorators/setTimeout.js.map +2 -2
  116. package/dist/esm/decorators/state.js +13 -10
  117. package/dist/esm/decorators/state.js.map +2 -2
  118. package/dist/esm/decorators/subscribeSwcAppMessage.js +53 -0
  119. package/dist/esm/decorators/subscribeSwcAppMessage.js.map +7 -0
  120. package/dist/esm/decorators/{subscribeSwcAppRouteChangeWhileConnected.js → subscribeSwcAppRouteChange.js} +20 -16
  121. package/dist/esm/decorators/subscribeSwcAppRouteChange.js.map +7 -0
  122. package/dist/esm/decorators/swcAppRoute.js +130 -0
  123. package/dist/esm/decorators/swcAppRoute.js.map +7 -0
  124. package/dist/esm/elements/SwcApp.js +70 -0
  125. package/dist/esm/elements/SwcApp.js.map +2 -2
  126. package/dist/esm/elements/SwcAppMixin.js +264 -85
  127. package/dist/esm/elements/SwcAppMixin.js.map +3 -3
  128. package/dist/esm/types/index.js +5 -1
  129. package/dist/esm/types/index.js.map +2 -2
  130. package/dist/esm/utils/Utils.js +36 -15
  131. package/dist/esm/utils/Utils.js.map +2 -2
  132. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +1893 -1000
  133. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  134. package/dist/types/SwcAppEngine.d.ts +1 -0
  135. package/dist/types/SwcAppEngine.d.ts.map +1 -1
  136. package/dist/types/decorators/addEventListener.d.ts +923 -960
  137. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  138. package/dist/types/decorators/applyAttribute.d.ts +26 -38
  139. package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
  140. package/dist/types/decorators/applyClass.d.ts +1 -3
  141. package/dist/types/decorators/applyClass.d.ts.map +1 -1
  142. package/dist/types/decorators/applyNode.d.ts +15 -17
  143. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  144. package/dist/types/decorators/applyProperty.d.ts +25 -45
  145. package/dist/types/decorators/applyProperty.d.ts.map +1 -1
  146. package/dist/types/decorators/applyStyle.d.ts +1 -3
  147. package/dist/types/decorators/applyStyle.d.ts.map +1 -1
  148. package/dist/types/decorators/around.d.ts +87 -0
  149. package/dist/types/decorators/around.d.ts.map +1 -0
  150. package/dist/types/decorators/changedAttribute.d.ts +21 -1
  151. package/dist/types/decorators/changedAttribute.d.ts.map +1 -1
  152. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  153. package/dist/types/decorators/emitCustomEvent.d.ts +0 -1
  154. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  155. package/dist/types/decorators/eventMedia.d.ts +24 -1
  156. package/dist/types/decorators/eventMedia.d.ts.map +1 -1
  157. package/dist/types/decorators/fetch.d.ts +139 -0
  158. package/dist/types/decorators/fetch.d.ts.map +1 -0
  159. package/dist/types/decorators/index.d.ts +5 -2
  160. package/dist/types/decorators/index.d.ts.map +1 -1
  161. package/dist/types/decorators/intersectionObserver.d.ts +24 -11
  162. package/dist/types/decorators/intersectionObserver.d.ts.map +1 -1
  163. package/dist/types/decorators/lifecycles.d.ts +8 -7
  164. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  165. package/dist/types/decorators/mutationObserver.d.ts +26 -13
  166. package/dist/types/decorators/mutationObserver.d.ts.map +1 -1
  167. package/dist/types/decorators/parameter.d.ts +84 -6
  168. package/dist/types/decorators/parameter.d.ts.map +1 -1
  169. package/dist/types/decorators/publishSwcAppMessage.d.ts +0 -1
  170. package/dist/types/decorators/publishSwcAppMessage.d.ts.map +1 -1
  171. package/dist/types/decorators/query.d.ts +7 -7
  172. package/dist/types/decorators/query.d.ts.map +1 -1
  173. package/dist/types/decorators/requestAnimationFrame.d.ts +1 -1
  174. package/dist/types/decorators/requestAnimationFrame.d.ts.map +1 -1
  175. package/dist/types/decorators/resizeObserver.d.ts +26 -13
  176. package/dist/types/decorators/resizeObserver.d.ts.map +1 -1
  177. package/dist/types/decorators/setInterval.d.ts +10 -0
  178. package/dist/types/decorators/setInterval.d.ts.map +1 -1
  179. package/dist/types/decorators/setTimeout.d.ts +10 -0
  180. package/dist/types/decorators/setTimeout.d.ts.map +1 -1
  181. package/dist/types/decorators/state.d.ts.map +1 -1
  182. package/dist/types/decorators/subscribeSwcAppMessage.d.ts +44 -0
  183. package/dist/types/decorators/subscribeSwcAppMessage.d.ts.map +1 -0
  184. package/dist/types/decorators/subscribeSwcAppRouteChange.d.ts +60 -0
  185. package/dist/types/decorators/subscribeSwcAppRouteChange.d.ts.map +1 -0
  186. package/dist/types/decorators/swcAppRoute.d.ts +94 -0
  187. package/dist/types/decorators/swcAppRoute.d.ts.map +1 -0
  188. package/dist/types/elements/SwcApp.d.ts.map +1 -1
  189. package/dist/types/elements/SwcAppMixin.d.ts +423 -388
  190. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  191. package/dist/types/types/index.d.ts +43 -4
  192. package/dist/types/types/index.d.ts.map +1 -1
  193. package/dist/types/utils/Utils.d.ts +15 -5
  194. package/dist/types/utils/Utils.d.ts.map +1 -1
  195. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +1893 -1000
  196. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  197. package/package.json +8 -6
  198. package/src/SwcAppEngine.ts +1 -0
  199. package/src/decorators/addEventListener.ts +102 -96
  200. package/src/decorators/applyAttribute.ts +76 -138
  201. package/src/decorators/applyClass.ts +8 -14
  202. package/src/decorators/applyNode.ts +33 -41
  203. package/src/decorators/applyProperty.ts +51 -99
  204. package/src/decorators/applySlot.ts +3 -3
  205. package/src/decorators/applyStyle.ts +8 -14
  206. package/src/decorators/around.ts +196 -0
  207. package/src/decorators/changedAttribute.ts +39 -15
  208. package/src/decorators/elementDefine.ts +270 -219
  209. package/src/decorators/emitCustomEvent.ts +17 -13
  210. package/src/decorators/eventMedia.ts +50 -9
  211. package/src/decorators/fetch.ts +454 -0
  212. package/src/decorators/index.ts +5 -2
  213. package/src/decorators/intersectionObserver.ts +38 -24
  214. package/src/decorators/lifecycles.ts +24 -22
  215. package/src/decorators/mutationObserver.ts +71 -52
  216. package/src/decorators/parameter.ts +145 -14
  217. package/src/decorators/publishSwcAppMessage.ts +3 -4
  218. package/src/decorators/query.ts +22 -14
  219. package/src/decorators/requestAnimationFrame.ts +10 -19
  220. package/src/decorators/resizeObserver.ts +50 -29
  221. package/src/decorators/setInterval.ts +37 -26
  222. package/src/decorators/setTimeout.ts +37 -26
  223. package/src/decorators/state.ts +19 -13
  224. package/src/decorators/subscribeSwcAppMessage.ts +106 -0
  225. package/src/decorators/subscribeSwcAppRouteChange.ts +131 -0
  226. package/src/decorators/swcAppRoute.ts +231 -0
  227. package/src/elements/SwcApp.ts +40 -10
  228. package/src/elements/SwcAppMixin.ts +340 -101
  229. package/src/types/index.ts +38 -5
  230. package/src/utils/Utils.ts +50 -18
  231. package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js.map +0 -7
  232. package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +0 -7
  233. package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js +0 -54
  234. package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js.map +0 -7
  235. package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +0 -7
  236. package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts +0 -23
  237. package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts.map +0 -1
  238. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts +0 -31
  239. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts.map +0 -1
  240. package/src/decorators/subscribeSwcAppMessageWhileConnected.ts +0 -91
  241. package/src/decorators/subscribeSwcAppRouteChangeWhileConnected.ts +0 -107
@@ -0,0 +1,149 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var swcAppRoute_exports = {};
19
+ __export(swcAppRoute_exports, {
20
+ SWC_APP_ROUTE_METADATA_KEY: () => SWC_APP_ROUTE_METADATA_KEY,
21
+ getSwcAppRouteMetadata: () => getSwcAppRouteMetadata,
22
+ swcAppRoute: () => swcAppRoute,
23
+ swcAppRouteGo: () => swcAppRouteGo,
24
+ swcAppRoutePush: () => swcAppRoutePush,
25
+ swcAppRoutePushAddSearchParam: () => swcAppRoutePushAddSearchParam,
26
+ swcAppRoutePushDeleteHashSearchParam: () => swcAppRoutePushDeleteHashSearchParam,
27
+ swcAppRoutePushDeleteSearchParam: () => swcAppRoutePushDeleteSearchParam,
28
+ swcAppRoutePushUpsertSearchParam: () => swcAppRoutePushUpsertSearchParam,
29
+ swcAppRouteReplace: () => swcAppRouteReplace,
30
+ swcAppRouteReplaceAddSearchParam: () => swcAppRouteReplaceAddSearchParam,
31
+ swcAppRouteReplaceDeleteHashSearchParam: () => swcAppRouteReplaceDeleteHashSearchParam,
32
+ swcAppRouteReplaceDeleteSearchParam: () => swcAppRouteReplaceDeleteSearchParam,
33
+ swcAppRouteReplaceUpsertSearchParam: () => swcAppRouteReplaceUpsertSearchParam
34
+ });
35
+ module.exports = __toCommonJS(swcAppRoute_exports);
36
+ var import_core = require("@dooboostore/core");
37
+ var import_Utils = require("../utils/Utils");
38
+ const SWC_APP_ROUTE_METADATA_KEY = Symbol.for("simple-web-component:swc-app-route");
39
+ const isGoConfig = (v) => !!v && typeof v === "object" && "path" in v && ("replace" in v || "state" in v || "scrollToTop" in v || typeof v.path === "object");
40
+ function createSwcAppRoute(options) {
41
+ return (target, propertyKey, descriptor) => {
42
+ const constructor = target.constructor;
43
+ let list = import_core.ReflectUtils.getOwnMetadata(SWC_APP_ROUTE_METADATA_KEY, constructor);
44
+ if (!list) {
45
+ list = [];
46
+ import_core.ReflectUtils.defineMetadata(SWC_APP_ROUTE_METADATA_KEY, list, constructor);
47
+ }
48
+ list.push({ propertyKey, options });
49
+ if (!descriptor) {
50
+ return descriptor;
51
+ }
52
+ const originalMethod = descriptor.value;
53
+ descriptor.value = function(...args) {
54
+ const result = originalMethod.apply(this, args);
55
+ const extractValue = (v) => {
56
+ const keyToUse = options?.valueKey ?? SWC_APP_ROUTE_METADATA_KEY;
57
+ if (v && typeof v === "object" && keyToUse in v) {
58
+ return v[keyToUse];
59
+ }
60
+ return v;
61
+ };
62
+ const route = (value) => {
63
+ if (value === void 0 || value === null || value === false) return;
64
+ const router = import_Utils.SwcUtils.getAppHost(this)?.router;
65
+ if (!router) {
66
+ console.warn("swcAppRoute: no SwcApp router found for", this);
67
+ return;
68
+ }
69
+ if (options?.filter) {
70
+ const helper = import_Utils.SwcUtils.getHelperAndHostSet(this);
71
+ if (!options.filter(router, value, { currentThis: this, helper })) return;
72
+ }
73
+ const type = options?.type ?? "go";
74
+ if (type === "go") {
75
+ if (typeof value === "number") return router.go(value);
76
+ const defaults = { replace: options?.replace, state: options?.state, scrollToTop: options?.scrollToTop };
77
+ return router.go(isGoConfig(value) ? { ...defaults, ...value } : { ...defaults, path: value });
78
+ }
79
+ const state = options?.state;
80
+ if ((type === "push" || type === "replace") && router.hasLeaveGuards) {
81
+ return router.canLeave(router.getRouteData({ pathOrUrl: router.toUrl(value) }), router.value).then((ok) => {
82
+ if (!ok) return;
83
+ if (type === "push") router.push(value, state);
84
+ else router.replace(value, state);
85
+ });
86
+ }
87
+ switch (type) {
88
+ case "push":
89
+ return router.push(value, state);
90
+ case "replace":
91
+ return router.replace(value, state);
92
+ case "pushDeleteSearchParam":
93
+ return router.pushDeleteSearchParam(value, state);
94
+ case "pushDeleteHashSearchParam":
95
+ return router.pushDeleteHashSearchParam(value, state);
96
+ case "pushAddSearchParam":
97
+ return router.pushAddSearchParam(value, state);
98
+ case "pushUpsertSearchParam":
99
+ return router.pushUpsertSearchParam(value, state);
100
+ case "replaceDeleteSearchParam":
101
+ return router.replaceDeleteSearchParam(value, state);
102
+ case "replaceDeleteHashSearchParam":
103
+ return router.replaceDeleteHashSearchParam(value, state);
104
+ case "replaceAddSearchParam":
105
+ return router.replaceAddSearchParam(value, state);
106
+ case "replaceUpsertSearchParam":
107
+ return router.replaceUpsertSearchParam(value, state);
108
+ }
109
+ };
110
+ if (result instanceof Promise) {
111
+ result.then((data) => route(extractValue(data))).catch((err) => {
112
+ console.warn("swcAppRoute async error:", err);
113
+ });
114
+ } else {
115
+ route(extractValue(result));
116
+ }
117
+ return result;
118
+ };
119
+ return descriptor;
120
+ };
121
+ }
122
+ function swcAppRoute(targetOrOptions, propertyKey, descriptor) {
123
+ if (targetOrOptions && typeof targetOrOptions === "object" && propertyKey && (typeof propertyKey === "string" || typeof propertyKey === "symbol") && descriptor) {
124
+ return createSwcAppRoute()(targetOrOptions, propertyKey, descriptor);
125
+ }
126
+ return createSwcAppRoute(targetOrOptions);
127
+ }
128
+ const typedRoute = (type) => (targetOrOptions, propertyKey, descriptor) => {
129
+ if (targetOrOptions && typeof targetOrOptions === "object" && propertyKey && (typeof propertyKey === "string" || typeof propertyKey === "symbol") && descriptor) {
130
+ return createSwcAppRoute({ type })(targetOrOptions, propertyKey, descriptor);
131
+ }
132
+ return createSwcAppRoute({ ...targetOrOptions ?? {}, type });
133
+ };
134
+ const swcAppRouteGo = typedRoute("go");
135
+ const swcAppRoutePush = typedRoute("push");
136
+ const swcAppRouteReplace = typedRoute("replace");
137
+ const swcAppRoutePushDeleteSearchParam = typedRoute("pushDeleteSearchParam");
138
+ const swcAppRoutePushDeleteHashSearchParam = typedRoute("pushDeleteHashSearchParam");
139
+ const swcAppRoutePushAddSearchParam = typedRoute("pushAddSearchParam");
140
+ const swcAppRoutePushUpsertSearchParam = typedRoute("pushUpsertSearchParam");
141
+ const swcAppRouteReplaceDeleteSearchParam = typedRoute("replaceDeleteSearchParam");
142
+ const swcAppRouteReplaceDeleteHashSearchParam = typedRoute("replaceDeleteHashSearchParam");
143
+ const swcAppRouteReplaceAddSearchParam = typedRoute("replaceAddSearchParam");
144
+ const swcAppRouteReplaceUpsertSearchParam = typedRoute("replaceUpsertSearchParam");
145
+ const getSwcAppRouteMetadata = (target) => {
146
+ const constructor = typeof target === "function" ? target : target.constructor;
147
+ return import_core.ReflectUtils.findAllMetadata(SWC_APP_ROUTE_METADATA_KEY, constructor).flat();
148
+ };
149
+ //# sourceMappingURL=swcAppRoute.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/decorators/swcAppRoute.ts"],
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport type { RouteAction, Router, RouterMethodOptions } from '@dooboostore/core-web';\nimport { SwcUtils } from '../utils/Utils';\nimport type { HelperHostSet } from '../types';\n\nexport const SWC_APP_ROUTE_METADATA_KEY = Symbol.for('simple-web-component:swc-app-route');\n\nexport interface SwcAppRouteMetadata {\n propertyKey: string | symbol;\n options?: SwcAppRouteOptions;\n}\n\n/** router.go \uC758 \uC774\uB3D9 \uC124\uC815 (\uB9AC\uD134\uAC12\uC73C\uB85C \uC9C1\uC811 \uC904 \uB54C) */\nexport type SwcAppRouteGoConfig = { path: RouteAction; replace?: boolean; state?: RouterMethodOptions; scrollToTop?: boolean };\n\n/**\n * type 'go' \uC77C \uB54C \uBA54\uC11C\uB4DC \uB9AC\uD134\uAC12 \u2192 \uC774\uB3D9\uD560 \uACF3.\n * - string / RouteAction({ path, searchParams }) : router.go \uB85C \uC774\uB3D9\n * - SwcAppRouteGoConfig({ path, replace, state, scrollToTop }) : \uADF8\uB300\uB85C router.go\n * - number : history \uC774\uB3D9 (-1 = \uB4A4\uB85C)\n * - undefined / null / false : \uC774\uB3D9\uD558\uC9C0 \uC54A\uC74C (\uC870\uAC74\uBD80 \uC774\uB3D9)\n */\nexport type SwcAppRouteGoValue = RouteAction | SwcAppRouteGoConfig | number | undefined | null | false;\n\n/**\n * \uC5B4\uB5A4 Router \uBA54\uC11C\uB4DC\uB85C \uC774\uB3D9\uD560\uC9C0. \uAE30\uBCF8 'go'.\n * - go: string / RouteAction / SwcAppRouteGoConfig / number (\uAC00\uB4DC \uC801\uC6A9)\n * - push / replace: RouteAction (\uAC00\uB4DC \uC801\uC6A9)\n * - pushDeleteSearchParam / replaceDeleteSearchParam / pushDeleteHashSearchParam / replaceDeleteHashSearchParam: string | string[]\n * - pushAddSearchParam / replaceAddSearchParam: [[key, value], ...]\n * - pushUpsertSearchParam / replaceUpsertSearchParam: { key: value | value[] }\n * query \uB9CC \uBC14\uAFB8\uB294 \uBA54\uC11C\uB4DC\uB294 \uACBD\uB85C\uAC00 \uADF8\uB300\uB85C\uB77C beforeLeave \uAC00\uB4DC \uB300\uC0C1\uC774 \uC544\uB2C8\uB2E4.\n * \uC5B4\uB290 \uACBD\uC6B0\uB4E0 undefined / null / false \uB97C \uB9AC\uD134\uD558\uBA74 \uC544\uBB34 \uAC83\uB3C4 \uD558\uC9C0 \uC54A\uB294\uB2E4.\n */\nexport type SwcAppRouteType =\n | 'go' | 'push' | 'replace'\n | 'pushDeleteSearchParam' | 'pushDeleteHashSearchParam' | 'pushAddSearchParam' | 'pushUpsertSearchParam'\n | 'replaceDeleteSearchParam' | 'replaceDeleteHashSearchParam' | 'replaceAddSearchParam' | 'replaceUpsertSearchParam';\n\nexport interface SwcAppRouteOptions {\n /** Router \uBA54\uC11C\uB4DC. \uAE30\uBCF8 'go' */\n type?: SwcAppRouteType;\n /** \uAE30\uBCF8 replace (type 'go' \uC804\uC6A9. \uB9AC\uD134\uAC12\uC774 SwcAppRouteGoConfig \uBA74 \uADF8\uCABD\uC774 \uC6B0\uC120) */\n replace?: boolean;\n /** \uAE30\uBCF8 state (go \uB294 SwcAppRouteGoConfig \uC758 state, \uB098\uBA38\uC9C0\uB294 \uB450 \uBC88\uC9F8 \uC778\uC790) */\n state?: RouterMethodOptions;\n /** \uAE30\uBCF8 scrollToTop (type 'go' \uC804\uC6A9. router.go \uAE30\uBCF8\uAC12 true) */\n scrollToTop?: boolean;\n /** false \uB97C \uB9AC\uD134\uD558\uBA74 \uC774\uB3D9\uD558\uC9C0 \uC54A\uB294\uB2E4. target = \uC774\uB3D9\uC744 \uD558\uB294 Router, value = valueKey \uB85C \uAEBC\uB0B8 \uB9AC\uD134\uAC12 */\n filter?: (target: Router, value: any, meta: { currentThis: any; helper: HelperHostSet }) => boolean;\n /**\n * Custom key to extract value from return object.\n * If not provided, uses SWC_APP_ROUTE_METADATA_KEY by default.\n * Useful when this decorator is stacked with others on the same method.\n *\n * Example:\n * @swcAppRoute({ valueKey: 'go' })\n * @publishSwcAppMessage('saved', { valueKey: 'saved' })\n * save() {\n * return { go: '/done', saved: { id: 1 } };\n * }\n */\n valueKey?: symbol | string;\n}\n\nconst isGoConfig = (v: any): v is SwcAppRouteGoConfig =>\n !!v && typeof v === 'object' && 'path' in v && ('replace' in v || 'state' in v || 'scrollToTop' in v || typeof v.path === 'object');\n\nfunction createSwcAppRoute(options?: SwcAppRouteOptions): MethodDecorator {\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getOwnMetadata(SWC_APP_ROUTE_METADATA_KEY, constructor) as SwcAppRouteMetadata[];\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(SWC_APP_ROUTE_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n\n if (!descriptor) {\n return descriptor;\n }\n\n // \uBA54\uC11C\uB4DC \uB798\uD551 - \uC6D0\uBCF8 \uBA54\uC11C\uB4DC\uC758 \uBC18\uD658\uAC12\uC73C\uB85C \uC774\uB3D9 (DI \uB85C router \uB97C \uBC1B\uC744 \uD544\uC694 \uC5C6\uC74C: \uC694\uC18C\uAC00 \uC18D\uD55C SwcApp \uC758 router \uC0AC\uC6A9)\n const originalMethod = descriptor.value;\n descriptor.value = function (...args: any[]) {\n const result = originalMethod.apply(this, args);\n\n /**\n * Extract value for this decorator from method return value\n *\n * If return value is an object with this decorator's key,\n * use that value. Otherwise use the entire return value.\n *\n * Uses valueKey from options if provided, otherwise uses SWC_APP_ROUTE_METADATA_KEY.\n */\n const extractValue = (v: any) => {\n const keyToUse = options?.valueKey ?? SWC_APP_ROUTE_METADATA_KEY;\n if (v && typeof v === 'object' && keyToUse in v) {\n return v[keyToUse];\n }\n return v;\n };\n\n const route = (value: any) => {\n if (value === undefined || value === null || value === false) return;\n const router = SwcUtils.getAppHost(this as HTMLElement)?.router;\n if (!router) {\n console.warn('swcAppRoute: no SwcApp router found for', this);\n return;\n }\n if (options?.filter) {\n const helper = SwcUtils.getHelperAndHostSet(this as HTMLElement);\n if (!options.filter(router, value, { currentThis: this, helper })) return;\n }\n const type = options?.type ?? 'go';\n if (type === 'go') {\n if (typeof value === 'number') return router.go(value);\n const defaults = { replace: options?.replace, state: options?.state, scrollToTop: options?.scrollToTop };\n return router.go(isGoConfig(value) ? { ...defaults, ...value } : { ...defaults, path: value as RouteAction });\n }\n const state = options?.state;\n // push/replace \uB294 \uACBD\uB85C\uAC00 \uBC14\uB00C\uBBC0\uB85C go \uC640 \uAC19\uC774 beforeLeave \uAC00\uB4DC\uB97C \uAC70\uCE5C\uB2E4 (\uAC00\uB4DC \uC5C6\uC73C\uBA74 \uB3D9\uAE30)\n if ((type === 'push' || type === 'replace') && router.hasLeaveGuards) {\n return router.canLeave(router.getRouteData({ pathOrUrl: router.toUrl(value) }), router.value).then(ok => {\n if (!ok) return;\n if (type === 'push') router.push(value as RouteAction, state);\n else router.replace(value as RouteAction, state);\n });\n }\n switch (type) {\n case 'push':\n return router.push(value as RouteAction, state);\n case 'replace':\n return router.replace(value as RouteAction, state);\n case 'pushDeleteSearchParam':\n return router.pushDeleteSearchParam(value as string | string[], state);\n case 'pushDeleteHashSearchParam':\n return router.pushDeleteHashSearchParam(value as string | string[], state);\n case 'pushAddSearchParam':\n return router.pushAddSearchParam(value as [[string, string]], state);\n case 'pushUpsertSearchParam':\n return router.pushUpsertSearchParam(value as Record<string, string | string[]>, state);\n case 'replaceDeleteSearchParam':\n return router.replaceDeleteSearchParam(value as string | string[], state);\n case 'replaceDeleteHashSearchParam':\n return router.replaceDeleteHashSearchParam(value as string | string[], state);\n case 'replaceAddSearchParam':\n return router.replaceAddSearchParam(value as [[string, string]], state);\n case 'replaceUpsertSearchParam':\n return router.replaceUpsertSearchParam(value as Record<string, string | string[]>, state);\n }\n };\n\n // Promise \uCCB4\uD06C\n if (result instanceof Promise) {\n result\n .then(data => route(extractValue(data)))\n .catch(err => {\n console.warn('swcAppRoute async error:', err);\n });\n } else {\n route(extractValue(result));\n }\n\n return result;\n };\n\n return descriptor;\n };\n}\n\n// \uC624\uBC84\uB85C\uB4DC \uC2DC\uADF8\uB2C8\uCC98 - \uC9C1\uC811 \uC0AC\uC6A9 (\uAD04\uD638 \uC5C6\uC74C)\nexport function swcAppRoute(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\n// \uC624\uBC84\uB85C\uB4DC \uC2DC\uADF8\uB2C8\uCC98 - \uD568\uC218 \uD638\uCD9C (\uAD04\uD638 \uC788\uC74C)\nexport function swcAppRoute(options: SwcAppRouteOptions): MethodDecorator;\n\nexport function swcAppRoute(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n // \uC9C1\uC811 \uB370\uCF54\uB808\uC774\uD130\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0 (\uAD04\uD638 \uC5C6\uC74C): @swcAppRoute\n if (targetOrOptions && typeof targetOrOptions === 'object' && propertyKey && (typeof propertyKey === 'string' || typeof propertyKey === 'symbol') && descriptor) {\n return createSwcAppRoute()(targetOrOptions, propertyKey, descriptor);\n }\n // \uD568\uC218\uB85C \uD638\uCD9C\uB41C \uACBD\uC6B0 (\uC778\uC790 \uC788\uC74C): @swcAppRoute({...})\n return createSwcAppRoute(targetOrOptions as SwcAppRouteOptions | undefined);\n}\n\n// --- Aliases ---\n\n/** type \uC744 \uACE0\uC815\uD55C \uBCC4\uCE6D. @swcAppRoutePush / @swcAppRoutePush({ state }) \uB458 \uB2E4. replace/scrollToTop \uC740 go \uC804\uC6A9 */\ntype SwcAppRouteTypedOptions<T extends SwcAppRouteType> = T extends 'go'\n ? Omit<SwcAppRouteOptions, 'type'>\n : Omit<SwcAppRouteOptions, 'type' | 'replace' | 'scrollToTop'>;\ntype SwcAppRouteTypedDecorator<T extends SwcAppRouteType> = {\n (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\n (options: SwcAppRouteTypedOptions<T>): MethodDecorator; // \uBE48 \uAD04\uD638 \uAE08\uC9C0 \u2014 \uC778\uC790\uAC00 \uC5C6\uC73C\uBA74 bare\n};\nconst typedRoute = <T extends SwcAppRouteType>(type: T): SwcAppRouteTypedDecorator<T> =>\n ((targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any => {\n if (targetOrOptions && typeof targetOrOptions === 'object' && propertyKey && (typeof propertyKey === 'string' || typeof propertyKey === 'symbol') && descriptor) {\n return createSwcAppRoute({ type })(targetOrOptions, propertyKey, descriptor);\n }\n return createSwcAppRoute({ ...(targetOrOptions ?? {}), type });\n }) as SwcAppRouteTypedDecorator<T>;\n\n/** \uB9AC\uD134: string / RouteAction / SwcAppRouteGoConfig / number \u2192 router.go */\nexport const swcAppRouteGo = typedRoute('go');\n/** \uB9AC\uD134: RouteAction \u2192 router.push */\nexport const swcAppRoutePush = typedRoute('push');\n/** \uB9AC\uD134: RouteAction \u2192 router.replace */\nexport const swcAppRouteReplace = typedRoute('replace');\n/** \uB9AC\uD134: string | string[] \u2192 router.pushDeleteSearchParam */\nexport const swcAppRoutePushDeleteSearchParam = typedRoute('pushDeleteSearchParam');\n/** \uB9AC\uD134: string | string[] \u2192 router.pushDeleteHashSearchParam */\nexport const swcAppRoutePushDeleteHashSearchParam = typedRoute('pushDeleteHashSearchParam');\n/** \uB9AC\uD134: [[key, value], ...] \u2192 router.pushAddSearchParam */\nexport const swcAppRoutePushAddSearchParam = typedRoute('pushAddSearchParam');\n/** \uB9AC\uD134: { key: value | value[] } \u2192 router.pushUpsertSearchParam */\nexport const swcAppRoutePushUpsertSearchParam = typedRoute('pushUpsertSearchParam');\n/** \uB9AC\uD134: string | string[] \u2192 router.replaceDeleteSearchParam */\nexport const swcAppRouteReplaceDeleteSearchParam = typedRoute('replaceDeleteSearchParam');\n/** \uB9AC\uD134: string | string[] \u2192 router.replaceDeleteHashSearchParam */\nexport const swcAppRouteReplaceDeleteHashSearchParam = typedRoute('replaceDeleteHashSearchParam');\n/** \uB9AC\uD134: [[key, value], ...] \u2192 router.replaceAddSearchParam */\nexport const swcAppRouteReplaceAddSearchParam = typedRoute('replaceAddSearchParam');\n/** \uB9AC\uD134: { key: value | value[] } \u2192 router.replaceUpsertSearchParam */\nexport const swcAppRouteReplaceUpsertSearchParam = typedRoute('replaceUpsertSearchParam');\n\n// Helper function to retrieve route metadata\nexport const getSwcAppRouteMetadata = (target: any): SwcAppRouteMetadata[] | undefined => {\n const constructor = typeof target === 'function' ? target : target.constructor;\n return ReflectUtils.findAllMetadata<any[]>(SWC_APP_ROUTE_METADATA_KEY, constructor).flat();\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -70,6 +70,13 @@ const defineSwcApp = async (w) => {
70
70
  if (existing)
71
71
  return existing;
72
72
  let SwcAppImpl = class SwcAppImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLElement) {
73
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
74
+ onConnected() {
75
+ }
76
+ onDisconnected() {
77
+ }
78
+ onSwcAppConnected() {
79
+ }
73
80
  };
74
81
  SwcAppImpl = __decorate([
75
82
  (0, import_decorators.elementDefine)(swcAppTagName, { window: w })
@@ -85,6 +92,13 @@ const defineSwcAppBody = async (w) => {
85
92
  if (existing)
86
93
  return existing;
87
94
  let SwcAppBodyImpl = class SwcAppBodyImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLBodyElement) {
95
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
96
+ onConnected() {
97
+ }
98
+ onDisconnected() {
99
+ }
100
+ onSwcAppConnected() {
101
+ }
88
102
  };
89
103
  SwcAppBodyImpl = __decorate([
90
104
  (0, import_decorators.elementDefine)(swcAppBodyTagName, { window: w, extends: "body" })
@@ -100,6 +114,13 @@ const defineSwcAppDiv = async (w) => {
100
114
  if (existing)
101
115
  return existing;
102
116
  let SwcAppDivImpl = class SwcAppDivImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLDivElement) {
117
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
118
+ onConnected() {
119
+ }
120
+ onDisconnected() {
121
+ }
122
+ onSwcAppConnected() {
123
+ }
103
124
  };
104
125
  SwcAppDivImpl = __decorate([
105
126
  (0, import_decorators.elementDefine)(swcAppDivTagName, { window: w, extends: "div" })
@@ -115,6 +136,13 @@ const defineSwcAppSection = async (w) => {
115
136
  if (existing)
116
137
  return existing;
117
138
  let SwcAppSectionImpl = class SwcAppSectionImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLElement) {
139
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
140
+ onConnected() {
141
+ }
142
+ onDisconnected() {
143
+ }
144
+ onSwcAppConnected() {
145
+ }
118
146
  };
119
147
  SwcAppSectionImpl = __decorate([
120
148
  (0, import_decorators.elementDefine)(swcAppSectionTagName, { window: w, extends: "section" })
@@ -130,6 +158,13 @@ const defineSwcAppMain = async (w) => {
130
158
  if (existing)
131
159
  return existing;
132
160
  let SwcAppMainImpl = class SwcAppMainImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLElement) {
161
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
162
+ onConnected() {
163
+ }
164
+ onDisconnected() {
165
+ }
166
+ onSwcAppConnected() {
167
+ }
133
168
  };
134
169
  SwcAppMainImpl = __decorate([
135
170
  (0, import_decorators.elementDefine)(swcAppMainTagName, { window: w, extends: "main" })
@@ -145,6 +180,13 @@ const defineSwcAppArticle = async (w) => {
145
180
  if (existing)
146
181
  return existing;
147
182
  let SwcAppArticleImpl = class SwcAppArticleImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLElement) {
183
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
184
+ onConnected() {
185
+ }
186
+ onDisconnected() {
187
+ }
188
+ onSwcAppConnected() {
189
+ }
148
190
  };
149
191
  SwcAppArticleImpl = __decorate([
150
192
  (0, import_decorators.elementDefine)(swcAppArticleTagName, { window: w, extends: "article" })
@@ -160,6 +202,13 @@ const defineSwcAppHeader = async (w) => {
160
202
  if (existing)
161
203
  return existing;
162
204
  let SwcAppHeaderImpl = class SwcAppHeaderImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLElement) {
205
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
206
+ onConnected() {
207
+ }
208
+ onDisconnected() {
209
+ }
210
+ onSwcAppConnected() {
211
+ }
163
212
  };
164
213
  SwcAppHeaderImpl = __decorate([
165
214
  (0, import_decorators.elementDefine)(swcAppHeaderTagName, { window: w, extends: "header" })
@@ -175,6 +224,13 @@ const defineSwcAppFooter = async (w) => {
175
224
  if (existing)
176
225
  return existing;
177
226
  let SwcAppFooterImpl = class SwcAppFooterImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLElement) {
227
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
228
+ onConnected() {
229
+ }
230
+ onDisconnected() {
231
+ }
232
+ onSwcAppConnected() {
233
+ }
178
234
  };
179
235
  SwcAppFooterImpl = __decorate([
180
236
  (0, import_decorators.elementDefine)(swcAppFooterTagName, { window: w, extends: "footer" })
@@ -190,6 +246,13 @@ const defineSwcAppNav = async (w) => {
190
246
  if (existing)
191
247
  return existing;
192
248
  let SwcAppNavImpl = class SwcAppNavImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLElement) {
249
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
250
+ onConnected() {
251
+ }
252
+ onDisconnected() {
253
+ }
254
+ onSwcAppConnected() {
255
+ }
193
256
  };
194
257
  SwcAppNavImpl = __decorate([
195
258
  (0, import_decorators.elementDefine)(swcAppNavTagName, { window: w, extends: "nav" })
@@ -205,6 +268,13 @@ const defineSwcAppAside = async (w) => {
205
268
  if (existing)
206
269
  return existing;
207
270
  let SwcAppAsideImpl = class SwcAppAsideImpl extends (0, import_SwcAppMixin.SwcAppMixin)(w.HTMLElement) {
271
+ // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.
272
+ onConnected() {
273
+ }
274
+ onDisconnected() {
275
+ }
276
+ onSwcAppConnected() {
277
+ }
208
278
  };
209
279
  SwcAppAsideImpl = __decorate([
210
280
  (0, import_decorators.elementDefine)(swcAppAsideTagName, { window: w, extends: "aside" })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcApp.ts"],
4
- "sourcesContent": ["import {elementDefine} from \"../decorators\";\nimport {SwcAppInterface} from \"../types\";\nimport {SwcAppMixin} from \"./SwcAppMixin\";\nimport {SwcUtils, createElement, CreateElementConfig} from \"../utils/Utils\";\n\n// ============================================\n// SwcApp (HTMLElement)\n// ============================================\nexport const swcAppTagName = 'swc-app';\n\nexport const SwcApp = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface>(w, swcAppTagName, data);\n};\n\nexport const defineSwcApp = async (w: Window) => {\n const existing = w.customElements.get(swcAppTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppTagName, {window: w})\n class SwcAppImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n\n return w.customElements.whenDefined(swcAppTagName);\n};\n\n// ============================================\n// SwcAppBody (HTMLBodyElement)\n// ============================================\nexport const swcAppBodyTagName = 'swc-app-body';\n\nexport const SwcAppBody = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLBodyElement>(w, swcAppBodyTagName, data);\n};\n\nexport const defineSwcAppBody = async (w: Window) => {\n const existing = w.customElements.get(swcAppBodyTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppBodyTagName, {window: w, extends: 'body'})\n class SwcAppBodyImpl extends SwcAppMixin(w.HTMLBodyElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n return w.customElements.whenDefined(swcAppBodyTagName);\n};\n\n// ============================================\n// SwcAppDiv (HTMLDivElement)\n// ============================================\nexport const swcAppDivTagName = 'swc-app-div';\n\nexport const SwcAppDiv = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLDivElement>(w, swcAppDivTagName, data);\n};\n\nexport const defineSwcAppDiv = async (w: Window) => {\n const existing = w.customElements.get(swcAppDivTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppDivTagName, {window: w, extends: 'div'})\n class SwcAppDivImpl extends SwcAppMixin(w.HTMLDivElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n\n return w.customElements.whenDefined(swcAppDivTagName);\n};\n\n// ============================================\n// SwcAppSection (HTMLElement)\n// ============================================\nexport const swcAppSectionTagName = 'swc-app-section';\n\nexport const SwcAppSection = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppSectionTagName, data);\n};\n\nexport const defineSwcAppSection = async (w: Window) => {\n const existing = w.customElements.get(swcAppSectionTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppSectionTagName, {window: w, extends: 'section'})\n class SwcAppSectionImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n\n return w.customElements.whenDefined(swcAppSectionTagName);\n};\n\n// ============================================\n// SwcAppMain (HTMLElement)\n// ============================================\nexport const swcAppMainTagName = 'swc-app-main';\n\nexport const SwcAppMain = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppMainTagName, data);\n};\n\nexport const defineSwcAppMain = async (w: Window) => {\n const existing = w.customElements.get(swcAppMainTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppMainTagName, {window: w, extends: 'main'})\n class SwcAppMainImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n\n return w.customElements.whenDefined(swcAppMainTagName);\n};\n\n// ============================================\n// SwcAppArticle (HTMLElement)\n// ============================================\nexport const swcAppArticleTagName = 'swc-app-article';\n\nexport const SwcAppArticle = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppArticleTagName, data);\n};\n\nexport const defineSwcAppArticle = async (w: Window) => {\n const existing = w.customElements.get(swcAppArticleTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppArticleTagName, {window: w, extends: 'article'})\n class SwcAppArticleImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n\n return w.customElements.whenDefined(swcAppArticleTagName);\n};\n\n// ============================================\n// SwcAppHeader (HTMLElement)\n// ============================================\nexport const swcAppHeaderTagName = 'swc-app-header';\n\nexport const SwcAppHeader = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppHeaderTagName, data);\n};\n\nexport const defineSwcAppHeader = async (w: Window) => {\n const existing = w.customElements.get(swcAppHeaderTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppHeaderTagName, {window: w, extends: 'header'})\n class SwcAppHeaderImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n\n return w.customElements.whenDefined(swcAppHeaderTagName);\n};\n\n// ============================================\n// SwcAppFooter (HTMLElement)\n// ============================================\nexport const swcAppFooterTagName = 'swc-app-footer';\n\nexport const SwcAppFooter = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppFooterTagName, data);\n};\n\nexport const defineSwcAppFooter = async (w: Window) => {\n const existing = w.customElements.get(swcAppFooterTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppFooterTagName, {window: w, extends: 'footer'})\n class SwcAppFooterImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n\n return w.customElements.whenDefined(swcAppFooterTagName);\n};\n\n// ============================================\n// SwcAppNav (HTMLElement)\n// ============================================\nexport const swcAppNavTagName = 'swc-app-nav';\n\nexport const SwcAppNav = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppNavTagName, data);\n};\n\nexport const defineSwcAppNav = async (w: Window) => {\n const existing = w.customElements.get(swcAppNavTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppNavTagName, {window: w, extends: 'nav'})\n class SwcAppNavImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n\n return w.customElements.whenDefined(swcAppNavTagName);\n};\n\n// ============================================\n// SwcAppAside (HTMLElement)\n// ============================================\nexport const swcAppAsideTagName = 'swc-app-aside';\n\nexport const SwcAppAside = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppAsideTagName, data);\n};\n\nexport const defineSwcAppAside = async (w: Window) => {\n const existing = w.customElements.get(swcAppAsideTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppAsideTagName, {window: w, extends: 'aside'})\n class SwcAppAsideImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음\n }\n\n return w.customElements.whenDefined(swcAppAsideTagName);\n};\n\n// ============================================\n// Factory Array\n// ============================================\nexport const swcAppFactories = [\n defineSwcApp,\n defineSwcAppBody,\n defineSwcAppDiv,\n defineSwcAppSection,\n defineSwcAppMain,\n defineSwcAppArticle,\n defineSwcAppHeader,\n defineSwcAppFooter,\n defineSwcAppNav,\n defineSwcAppAside\n];\n\n// ============================================\n// Define All SwcApp Elements\n// ============================================\nexport const defineSwcAppAll = async (w: Window) => {\n await Promise.all(swcAppFactories.map(factory => factory(w)));\n return w.customElements.whenDefined(swcAppTagName);\n};\n\n// Default export for backward compatibility\nexport default defineSwcAppAll;"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {elementDefine} from \"../decorators\";\nimport {SwcAppInterface} from \"../types\";\nimport {SwcAppMixin} from \"./SwcAppMixin\";\nimport {SwcUtils, createElement, CreateElementConfig} from \"../utils/Utils\";\n\n// ============================================\n// SwcApp (HTMLElement)\n// ============================================\nexport const swcAppTagName = 'swc-app';\n\nexport const SwcApp = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface>(w, swcAppTagName, data);\n};\n\nexport const defineSwcApp = async (w: Window) => {\n const existing = w.customElements.get(swcAppTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppTagName, {window: w})\n class SwcAppImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n\n return w.customElements.whenDefined(swcAppTagName);\n};\n\n// ============================================\n// SwcAppBody (HTMLBodyElement)\n// ============================================\nexport const swcAppBodyTagName = 'swc-app-body';\n\nexport const SwcAppBody = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLBodyElement>(w, swcAppBodyTagName, data);\n};\n\nexport const defineSwcAppBody = async (w: Window) => {\n const existing = w.customElements.get(swcAppBodyTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppBodyTagName, {window: w, extends: 'body'})\n class SwcAppBodyImpl extends SwcAppMixin(w.HTMLBodyElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n return w.customElements.whenDefined(swcAppBodyTagName);\n};\n\n// ============================================\n// SwcAppDiv (HTMLDivElement)\n// ============================================\nexport const swcAppDivTagName = 'swc-app-div';\n\nexport const SwcAppDiv = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLDivElement>(w, swcAppDivTagName, data);\n};\n\nexport const defineSwcAppDiv = async (w: Window) => {\n const existing = w.customElements.get(swcAppDivTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppDivTagName, {window: w, extends: 'div'})\n class SwcAppDivImpl extends SwcAppMixin(w.HTMLDivElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n\n return w.customElements.whenDefined(swcAppDivTagName);\n};\n\n// ============================================\n// SwcAppSection (HTMLElement)\n// ============================================\nexport const swcAppSectionTagName = 'swc-app-section';\n\nexport const SwcAppSection = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppSectionTagName, data);\n};\n\nexport const defineSwcAppSection = async (w: Window) => {\n const existing = w.customElements.get(swcAppSectionTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppSectionTagName, {window: w, extends: 'section'})\n class SwcAppSectionImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n\n return w.customElements.whenDefined(swcAppSectionTagName);\n};\n\n// ============================================\n// SwcAppMain (HTMLElement)\n// ============================================\nexport const swcAppMainTagName = 'swc-app-main';\n\nexport const SwcAppMain = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppMainTagName, data);\n};\n\nexport const defineSwcAppMain = async (w: Window) => {\n const existing = w.customElements.get(swcAppMainTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppMainTagName, {window: w, extends: 'main'})\n class SwcAppMainImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n\n return w.customElements.whenDefined(swcAppMainTagName);\n};\n\n// ============================================\n// SwcAppArticle (HTMLElement)\n// ============================================\nexport const swcAppArticleTagName = 'swc-app-article';\n\nexport const SwcAppArticle = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppArticleTagName, data);\n};\n\nexport const defineSwcAppArticle = async (w: Window) => {\n const existing = w.customElements.get(swcAppArticleTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppArticleTagName, {window: w, extends: 'article'})\n class SwcAppArticleImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n\n return w.customElements.whenDefined(swcAppArticleTagName);\n};\n\n// ============================================\n// SwcAppHeader (HTMLElement)\n// ============================================\nexport const swcAppHeaderTagName = 'swc-app-header';\n\nexport const SwcAppHeader = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppHeaderTagName, data);\n};\n\nexport const defineSwcAppHeader = async (w: Window) => {\n const existing = w.customElements.get(swcAppHeaderTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppHeaderTagName, {window: w, extends: 'header'})\n class SwcAppHeaderImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n\n return w.customElements.whenDefined(swcAppHeaderTagName);\n};\n\n// ============================================\n// SwcAppFooter (HTMLElement)\n// ============================================\nexport const swcAppFooterTagName = 'swc-app-footer';\n\nexport const SwcAppFooter = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppFooterTagName, data);\n};\n\nexport const defineSwcAppFooter = async (w: Window) => {\n const existing = w.customElements.get(swcAppFooterTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppFooterTagName, {window: w, extends: 'footer'})\n class SwcAppFooterImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n\n return w.customElements.whenDefined(swcAppFooterTagName);\n};\n\n// ============================================\n// SwcAppNav (HTMLElement)\n// ============================================\nexport const swcAppNavTagName = 'swc-app-nav';\n\nexport const SwcAppNav = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppNavTagName, data);\n};\n\nexport const defineSwcAppNav = async (w: Window) => {\n const existing = w.customElements.get(swcAppNavTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppNavTagName, {window: w, extends: 'nav'})\n class SwcAppNavImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n\n return w.customElements.whenDefined(swcAppNavTagName);\n};\n\n// ============================================\n// SwcAppAside (HTMLElement)\n// ============================================\nexport const swcAppAsideTagName = 'swc-app-aside';\n\nexport const SwcAppAside = (w: Window, data?: CreateElementConfig) => {\n return createElement<SwcAppInterface & HTMLElement>(w, swcAppAsideTagName, data);\n};\n\nexport const defineSwcAppAside = async (w: Window) => {\n const existing = w.customElements.get(swcAppAsideTagName);\n if (existing) return existing;\n\n @elementDefine(swcAppAsideTagName, {window: w, extends: 'aside'})\n class SwcAppAsideImpl extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n // SwcAppMixin에서 모든 기능을 상속받음. 기본 요소라 훅에서 할 일은 없음.\n onConnected(): void {}\n onDisconnected(): void {}\n onSwcAppConnected(): void {}\n }\n\n return w.customElements.whenDefined(swcAppAsideTagName);\n};\n\n// ============================================\n// Factory Array\n// ============================================\nexport const swcAppFactories = [\n defineSwcApp,\n defineSwcAppBody,\n defineSwcAppDiv,\n defineSwcAppSection,\n defineSwcAppMain,\n defineSwcAppArticle,\n defineSwcAppHeader,\n defineSwcAppFooter,\n defineSwcAppNav,\n defineSwcAppAside\n];\n\n// ============================================\n// Define All SwcApp Elements\n// ============================================\nexport const defineSwcAppAll = async (w: Window) => {\n await Promise.all(swcAppFactories.map(factory => factory(w)));\n return w.customElements.whenDefined(swcAppTagName);\n};\n\n// Default export for backward compatibility\nexport default defineSwcAppAll;"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAA4B;AAE5B,yBAA0B;AAC1B,mBAA2D;;;;;;;AAKpD,MAAM,gBAAgB;AAEtB,MAAM,SAAS,CAAC,GAAW,SAA8B;AAC9D,aAAO,4BAA+B,GAAG,eAAe,IAAI;AAC9D;AAEO,MAAM,eAAe,OAAO,MAAa;AAC9C,QAAM,WAAW,EAAE,eAAe,IAAI,aAAa;AACnD,MAAI;AAAU,WAAO;AAGrB,MAAM,aAAN,MAAM,uBAAmB,gCAAY,EAAE,WAAW,EAAC;;IAEjD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,eAAU,WAAA;QADf,iCAAc,eAAe,EAAC,QAAQ,EAAC,CAAC;KACnC,UAAU;AAOhB,SAAO,EAAE,eAAe,YAAY,aAAa;AACnD;AAKO,MAAM,oBAAoB;AAE1B,MAAM,aAAa,CAAC,GAAW,SAA8B;AAClE,aAAO,4BAAiD,GAAG,mBAAmB,IAAI;AACpF;AAEO,MAAM,mBAAmB,OAAO,MAAa;AAClD,QAAM,WAAW,EAAE,eAAe,IAAI,iBAAiB;AACvD,MAAI;AAAU,WAAO;AAGrB,MAAM,iBAAN,MAAM,2BAAuB,gCAAY,EAAE,eAAe,EAAC;;IAEzD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,mBAAc,WAAA;QADnB,iCAAc,mBAAmB,EAAC,QAAQ,GAAG,SAAS,OAAM,CAAC;KACxD,cAAc;AAMpB,SAAO,EAAE,eAAe,YAAY,iBAAiB;AACvD;AAKO,MAAM,mBAAmB;AAEzB,MAAM,YAAY,CAAC,GAAW,SAA8B;AACjE,aAAO,4BAAgD,GAAG,kBAAkB,IAAI;AAClF;AAEO,MAAM,kBAAkB,OAAO,MAAa;AACjD,QAAM,WAAW,EAAE,eAAe,IAAI,gBAAgB;AACtD,MAAI;AAAU,WAAO;AAGrB,MAAM,gBAAN,MAAM,0BAAsB,gCAAY,EAAE,cAAc,EAAC;;IAEvD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,kBAAa,WAAA;QADlB,iCAAc,kBAAkB,EAAC,QAAQ,GAAG,SAAS,MAAK,CAAC;KACtD,aAAa;AAOnB,SAAO,EAAE,eAAe,YAAY,gBAAgB;AACtD;AAKO,MAAM,uBAAuB;AAE7B,MAAM,gBAAgB,CAAC,GAAW,SAA8B;AACrE,aAAO,4BAA6C,GAAG,sBAAsB,IAAI;AACnF;AAEO,MAAM,sBAAsB,OAAO,MAAa;AACrD,QAAM,WAAW,EAAE,eAAe,IAAI,oBAAoB;AAC1D,MAAI;AAAU,WAAO;AAGrB,MAAM,oBAAN,MAAM,8BAA0B,gCAAY,EAAE,WAAW,EAAC;;IAExD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,sBAAiB,WAAA;QADtB,iCAAc,sBAAsB,EAAC,QAAQ,GAAG,SAAS,UAAS,CAAC;KAC9D,iBAAiB;AAOvB,SAAO,EAAE,eAAe,YAAY,oBAAoB;AAC1D;AAKO,MAAM,oBAAoB;AAE1B,MAAM,aAAa,CAAC,GAAW,SAA8B;AAClE,aAAO,4BAA6C,GAAG,mBAAmB,IAAI;AAChF;AAEO,MAAM,mBAAmB,OAAO,MAAa;AAClD,QAAM,WAAW,EAAE,eAAe,IAAI,iBAAiB;AACvD,MAAI;AAAU,WAAO;AAGrB,MAAM,iBAAN,MAAM,2BAAuB,gCAAY,EAAE,WAAW,EAAC;;IAErD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,mBAAc,WAAA;QADnB,iCAAc,mBAAmB,EAAC,QAAQ,GAAG,SAAS,OAAM,CAAC;KACxD,cAAc;AAOpB,SAAO,EAAE,eAAe,YAAY,iBAAiB;AACvD;AAKO,MAAM,uBAAuB;AAE7B,MAAM,gBAAgB,CAAC,GAAW,SAA8B;AACrE,aAAO,4BAA6C,GAAG,sBAAsB,IAAI;AACnF;AAEO,MAAM,sBAAsB,OAAO,MAAa;AACrD,QAAM,WAAW,EAAE,eAAe,IAAI,oBAAoB;AAC1D,MAAI;AAAU,WAAO;AAGrB,MAAM,oBAAN,MAAM,8BAA0B,gCAAY,EAAE,WAAW,EAAC;;IAExD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,sBAAiB,WAAA;QADtB,iCAAc,sBAAsB,EAAC,QAAQ,GAAG,SAAS,UAAS,CAAC;KAC9D,iBAAiB;AAOvB,SAAO,EAAE,eAAe,YAAY,oBAAoB;AAC1D;AAKO,MAAM,sBAAsB;AAE5B,MAAM,eAAe,CAAC,GAAW,SAA8B;AACpE,aAAO,4BAA6C,GAAG,qBAAqB,IAAI;AAClF;AAEO,MAAM,qBAAqB,OAAO,MAAa;AACpD,QAAM,WAAW,EAAE,eAAe,IAAI,mBAAmB;AACzD,MAAI;AAAU,WAAO;AAGrB,MAAM,mBAAN,MAAM,6BAAyB,gCAAY,EAAE,WAAW,EAAC;;IAEvD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,qBAAgB,WAAA;QADrB,iCAAc,qBAAqB,EAAC,QAAQ,GAAG,SAAS,SAAQ,CAAC;KAC5D,gBAAgB;AAOtB,SAAO,EAAE,eAAe,YAAY,mBAAmB;AACzD;AAKO,MAAM,sBAAsB;AAE5B,MAAM,eAAe,CAAC,GAAW,SAA8B;AACpE,aAAO,4BAA6C,GAAG,qBAAqB,IAAI;AAClF;AAEO,MAAM,qBAAqB,OAAO,MAAa;AACpD,QAAM,WAAW,EAAE,eAAe,IAAI,mBAAmB;AACzD,MAAI;AAAU,WAAO;AAGrB,MAAM,mBAAN,MAAM,6BAAyB,gCAAY,EAAE,WAAW,EAAC;;IAEvD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,qBAAgB,WAAA;QADrB,iCAAc,qBAAqB,EAAC,QAAQ,GAAG,SAAS,SAAQ,CAAC;KAC5D,gBAAgB;AAOtB,SAAO,EAAE,eAAe,YAAY,mBAAmB;AACzD;AAKO,MAAM,mBAAmB;AAEzB,MAAM,YAAY,CAAC,GAAW,SAA8B;AACjE,aAAO,4BAA6C,GAAG,kBAAkB,IAAI;AAC/E;AAEO,MAAM,kBAAkB,OAAO,MAAa;AACjD,QAAM,WAAW,EAAE,eAAe,IAAI,gBAAgB;AACtD,MAAI;AAAU,WAAO;AAGrB,MAAM,gBAAN,MAAM,0BAAsB,gCAAY,EAAE,WAAW,EAAC;;IAEpD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,kBAAa,WAAA;QADlB,iCAAc,kBAAkB,EAAC,QAAQ,GAAG,SAAS,MAAK,CAAC;KACtD,aAAa;AAOnB,SAAO,EAAE,eAAe,YAAY,gBAAgB;AACtD;AAKO,MAAM,qBAAqB;AAE3B,MAAM,cAAc,CAAC,GAAW,SAA8B;AACnE,aAAO,4BAA6C,GAAG,oBAAoB,IAAI;AACjF;AAEO,MAAM,oBAAoB,OAAO,MAAa;AACnD,QAAM,WAAW,EAAE,eAAe,IAAI,kBAAkB;AACxD,MAAI;AAAU,WAAO;AAGrB,MAAM,kBAAN,MAAM,4BAAwB,gCAAY,EAAE,WAAW,EAAC;;IAEtD,cAAW;IAAU;IACrB,iBAAc;IAAU;IACxB,oBAAiB;IAAU;;AAJvB,oBAAe,WAAA;QADpB,iCAAc,oBAAoB,EAAC,QAAQ,GAAG,SAAS,QAAO,CAAC;KAC1D,eAAe;AAOrB,SAAO,EAAE,eAAe,YAAY,kBAAkB;AACxD;AAKO,MAAM,kBAAkB;EAC7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMK,MAAM,kBAAkB,OAAO,MAAa;AACjD,QAAM,QAAQ,IAAI,gBAAgB,IAAI,aAAW,QAAQ,CAAC,CAAC,CAAC;AAC5D,SAAO,EAAE,eAAe,YAAY,aAAa;AACnD;AAGA,IAAA,iBAAe;",
6
6
  "names": []
7
7
  }