@dooboostore/simple-web-component 1.0.49 → 1.0.51

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 (251) hide show
  1. package/README.md +790 -337
  2. package/dist/cjs/SwcAppEngine.js.map +2 -2
  3. package/dist/cjs/decorators/addEventListener.js +1925 -22
  4. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  5. package/dist/cjs/decorators/applyAttribute.js +41 -47
  6. package/dist/cjs/decorators/applyAttribute.js.map +2 -2
  7. package/dist/cjs/decorators/applyClass.js +14 -11
  8. package/dist/cjs/decorators/applyClass.js.map +2 -2
  9. package/dist/cjs/decorators/applyNode.js +19 -21
  10. package/dist/cjs/decorators/applyNode.js.map +2 -2
  11. package/dist/cjs/decorators/applyProperty.js +24 -48
  12. package/dist/cjs/decorators/applyProperty.js.map +2 -2
  13. package/dist/cjs/decorators/applySlot.js +9 -8
  14. package/dist/cjs/decorators/applySlot.js.map +2 -2
  15. package/dist/cjs/decorators/applyStyle.js +14 -11
  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 +61 -24
  20. package/dist/cjs/decorators/changedAttribute.js.map +2 -2
  21. package/dist/cjs/decorators/elementDefine.js +240 -196
  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 +112 -0
  26. package/dist/cjs/decorators/eventMedia.js.map +7 -0
  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 +8 -2
  30. package/dist/cjs/decorators/index.js.map +2 -2
  31. package/dist/cjs/decorators/intersectionObserver.js +76 -65
  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 +97 -90
  36. package/dist/cjs/decorators/mutationObserver.js.map +3 -3
  37. package/dist/cjs/decorators/parameter.js +156 -0
  38. package/dist/cjs/decorators/parameter.js.map +7 -0
  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 +115 -0
  44. package/dist/cjs/decorators/requestAnimationFrame.js.map +7 -0
  45. package/dist/cjs/decorators/resizeObserver.js +84 -69
  46. package/dist/cjs/decorators/resizeObserver.js.map +3 -3
  47. package/dist/cjs/decorators/setInterval.js +65 -22
  48. package/dist/cjs/decorators/setInterval.js.map +2 -2
  49. package/dist/cjs/decorators/setTimeout.js +68 -22
  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 +256 -67
  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/types/window.d.js.map +1 -1
  66. package/dist/cjs/utils/Utils.js +36 -15
  67. package/dist/cjs/utils/Utils.js.map +2 -2
  68. package/dist/esm/SwcAppEngine.js.map +2 -2
  69. package/dist/esm/decorators/addEventListener.js +1925 -22
  70. package/dist/esm/decorators/addEventListener.js.map +2 -2
  71. package/dist/esm/decorators/applyAttribute.js +41 -47
  72. package/dist/esm/decorators/applyAttribute.js.map +2 -2
  73. package/dist/esm/decorators/applyClass.js +14 -11
  74. package/dist/esm/decorators/applyClass.js.map +2 -2
  75. package/dist/esm/decorators/applyNode.js +20 -22
  76. package/dist/esm/decorators/applyNode.js.map +2 -2
  77. package/dist/esm/decorators/applyProperty.js +24 -48
  78. package/dist/esm/decorators/applyProperty.js.map +2 -2
  79. package/dist/esm/decorators/applySlot.js +9 -8
  80. package/dist/esm/decorators/applySlot.js.map +2 -2
  81. package/dist/esm/decorators/applyStyle.js +14 -11
  82. package/dist/esm/decorators/applyStyle.js.map +2 -2
  83. package/dist/esm/decorators/around.js +105 -0
  84. package/dist/esm/decorators/around.js.map +7 -0
  85. package/dist/esm/decorators/changedAttribute.js +61 -24
  86. package/dist/esm/decorators/changedAttribute.js.map +2 -2
  87. package/dist/esm/decorators/elementDefine.js +238 -194
  88. package/dist/esm/decorators/elementDefine.js.map +3 -3
  89. package/dist/esm/decorators/emitCustomEvent.js +15 -13
  90. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  91. package/dist/esm/decorators/eventMedia.js +94 -0
  92. package/dist/esm/decorators/eventMedia.js.map +7 -0
  93. package/dist/esm/decorators/fetch.js +259 -0
  94. package/dist/esm/decorators/fetch.js.map +7 -0
  95. package/dist/esm/decorators/index.js +8 -2
  96. package/dist/esm/decorators/index.js.map +2 -2
  97. package/dist/esm/decorators/intersectionObserver.js +76 -65
  98. package/dist/esm/decorators/intersectionObserver.js.map +2 -2
  99. package/dist/esm/decorators/lifecycles.js +11 -11
  100. package/dist/esm/decorators/lifecycles.js.map +2 -2
  101. package/dist/esm/decorators/mutationObserver.js +97 -90
  102. package/dist/esm/decorators/mutationObserver.js.map +3 -3
  103. package/dist/esm/decorators/parameter.js +137 -0
  104. package/dist/esm/decorators/parameter.js.map +7 -0
  105. package/dist/esm/decorators/publishSwcAppMessage.js +2 -2
  106. package/dist/esm/decorators/publishSwcAppMessage.js.map +2 -2
  107. package/dist/esm/decorators/query.js +11 -5
  108. package/dist/esm/decorators/query.js.map +2 -2
  109. package/dist/esm/decorators/requestAnimationFrame.js +96 -0
  110. package/dist/esm/decorators/requestAnimationFrame.js.map +7 -0
  111. package/dist/esm/decorators/resizeObserver.js +84 -69
  112. package/dist/esm/decorators/resizeObserver.js.map +2 -2
  113. package/dist/esm/decorators/setInterval.js +65 -23
  114. package/dist/esm/decorators/setInterval.js.map +2 -2
  115. package/dist/esm/decorators/setTimeout.js +68 -23
  116. package/dist/esm/decorators/setTimeout.js.map +2 -2
  117. package/dist/esm/decorators/state.js +13 -10
  118. package/dist/esm/decorators/state.js.map +2 -2
  119. package/dist/esm/decorators/subscribeSwcAppMessage.js +53 -0
  120. package/dist/esm/decorators/subscribeSwcAppMessage.js.map +7 -0
  121. package/dist/esm/decorators/{subscribeSwcAppRouteChangeWhileConnected.js → subscribeSwcAppRouteChange.js} +20 -16
  122. package/dist/esm/decorators/subscribeSwcAppRouteChange.js.map +7 -0
  123. package/dist/esm/decorators/swcAppRoute.js +130 -0
  124. package/dist/esm/decorators/swcAppRoute.js.map +7 -0
  125. package/dist/esm/elements/SwcApp.js +70 -0
  126. package/dist/esm/elements/SwcApp.js.map +2 -2
  127. package/dist/esm/elements/SwcAppMixin.js +258 -69
  128. package/dist/esm/elements/SwcAppMixin.js.map +3 -3
  129. package/dist/esm/types/index.js +5 -1
  130. package/dist/esm/types/index.js.map +2 -2
  131. package/dist/esm/utils/Utils.js +36 -15
  132. package/dist/esm/utils/Utils.js.map +2 -2
  133. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +4395 -1266
  134. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  135. package/dist/types/SwcAppEngine.d.ts +1 -0
  136. package/dist/types/SwcAppEngine.d.ts.map +1 -1
  137. package/dist/types/decorators/addEventListener.d.ts +936 -11
  138. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  139. package/dist/types/decorators/applyAttribute.d.ts +27 -37
  140. package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
  141. package/dist/types/decorators/applyClass.d.ts +2 -2
  142. package/dist/types/decorators/applyClass.d.ts.map +1 -1
  143. package/dist/types/decorators/applyNode.d.ts +16 -16
  144. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  145. package/dist/types/decorators/applyProperty.d.ts +28 -44
  146. package/dist/types/decorators/applyProperty.d.ts.map +1 -1
  147. package/dist/types/decorators/applySlot.d.ts.map +1 -1
  148. package/dist/types/decorators/applyStyle.d.ts +2 -2
  149. package/dist/types/decorators/applyStyle.d.ts.map +1 -1
  150. package/dist/types/decorators/around.d.ts +87 -0
  151. package/dist/types/decorators/around.d.ts.map +1 -0
  152. package/dist/types/decorators/changedAttribute.d.ts +22 -4
  153. package/dist/types/decorators/changedAttribute.d.ts.map +1 -1
  154. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  155. package/dist/types/decorators/emitCustomEvent.d.ts +0 -1
  156. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  157. package/dist/types/decorators/eventMedia.d.ts +48 -0
  158. package/dist/types/decorators/eventMedia.d.ts.map +1 -0
  159. package/dist/types/decorators/fetch.d.ts +139 -0
  160. package/dist/types/decorators/fetch.d.ts.map +1 -0
  161. package/dist/types/decorators/index.d.ts +8 -2
  162. package/dist/types/decorators/index.d.ts.map +1 -1
  163. package/dist/types/decorators/intersectionObserver.d.ts +32 -10
  164. package/dist/types/decorators/intersectionObserver.d.ts.map +1 -1
  165. package/dist/types/decorators/lifecycles.d.ts +8 -7
  166. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  167. package/dist/types/decorators/mutationObserver.d.ts +34 -12
  168. package/dist/types/decorators/mutationObserver.d.ts.map +1 -1
  169. package/dist/types/decorators/parameter.d.ts +113 -0
  170. package/dist/types/decorators/parameter.d.ts.map +1 -0
  171. package/dist/types/decorators/publishSwcAppMessage.d.ts +0 -1
  172. package/dist/types/decorators/publishSwcAppMessage.d.ts.map +1 -1
  173. package/dist/types/decorators/query.d.ts +7 -7
  174. package/dist/types/decorators/query.d.ts.map +1 -1
  175. package/dist/types/decorators/requestAnimationFrame.d.ts +47 -0
  176. package/dist/types/decorators/requestAnimationFrame.d.ts.map +1 -0
  177. package/dist/types/decorators/resizeObserver.d.ts +34 -12
  178. package/dist/types/decorators/resizeObserver.d.ts.map +1 -1
  179. package/dist/types/decorators/setInterval.d.ts +27 -5
  180. package/dist/types/decorators/setInterval.d.ts.map +1 -1
  181. package/dist/types/decorators/setTimeout.d.ts +27 -5
  182. package/dist/types/decorators/setTimeout.d.ts.map +1 -1
  183. package/dist/types/decorators/state.d.ts.map +1 -1
  184. package/dist/types/decorators/subscribeSwcAppMessage.d.ts +44 -0
  185. package/dist/types/decorators/subscribeSwcAppMessage.d.ts.map +1 -0
  186. package/dist/types/decorators/subscribeSwcAppRouteChange.d.ts +60 -0
  187. package/dist/types/decorators/subscribeSwcAppRouteChange.d.ts.map +1 -0
  188. package/dist/types/decorators/swcAppRoute.d.ts +94 -0
  189. package/dist/types/decorators/swcAppRoute.d.ts.map +1 -0
  190. package/dist/types/elements/SwcApp.d.ts.map +1 -1
  191. package/dist/types/elements/SwcAppMixin.d.ts +423 -388
  192. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  193. package/dist/types/types/index.d.ts +43 -4
  194. package/dist/types/types/index.d.ts.map +1 -1
  195. package/dist/types/utils/Utils.d.ts +15 -5
  196. package/dist/types/utils/Utils.d.ts.map +1 -1
  197. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +4395 -1266
  198. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  199. package/package.json +8 -6
  200. package/src/SwcAppEngine.ts +1 -0
  201. package/src/decorators/addEventListener.ts +1086 -28
  202. package/src/decorators/applyAttribute.ts +82 -134
  203. package/src/decorators/applyClass.ts +14 -10
  204. package/src/decorators/applyNode.ts +39 -37
  205. package/src/decorators/applyProperty.ts +72 -100
  206. package/src/decorators/applySlot.ts +9 -8
  207. package/src/decorators/applyStyle.ts +14 -10
  208. package/src/decorators/around.ts +196 -0
  209. package/src/decorators/changedAttribute.ts +65 -26
  210. package/src/decorators/elementDefine.ts +298 -220
  211. package/src/decorators/emitCustomEvent.ts +17 -13
  212. package/src/decorators/eventMedia.ts +119 -0
  213. package/src/decorators/fetch.ts +454 -0
  214. package/src/decorators/index.ts +8 -2
  215. package/src/decorators/intersectionObserver.ts +108 -78
  216. package/src/decorators/lifecycles.ts +24 -22
  217. package/src/decorators/mutationObserver.ts +140 -104
  218. package/src/decorators/parameter.ts +212 -0
  219. package/src/decorators/publishSwcAppMessage.ts +3 -4
  220. package/src/decorators/query.ts +22 -14
  221. package/src/decorators/requestAnimationFrame.ts +149 -0
  222. package/src/decorators/resizeObserver.ts +119 -82
  223. package/src/decorators/setInterval.ts +90 -23
  224. package/src/decorators/setTimeout.ts +93 -23
  225. package/src/decorators/state.ts +19 -13
  226. package/src/decorators/subscribeSwcAppMessage.ts +106 -0
  227. package/src/decorators/subscribeSwcAppRouteChange.ts +131 -0
  228. package/src/decorators/swcAppRoute.ts +231 -0
  229. package/src/elements/SwcApp.ts +40 -10
  230. package/src/elements/SwcAppMixin.ts +329 -85
  231. package/src/types/index.ts +38 -5
  232. package/src/types/window.d.ts +2 -18
  233. package/src/utils/Utils.ts +50 -18
  234. package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js.map +0 -7
  235. package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +0 -7
  236. package/dist/cjs/examples/RxJSOperatorsExample.js +0 -285
  237. package/dist/cjs/examples/RxJSOperatorsExample.js.map +0 -7
  238. package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js +0 -54
  239. package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js.map +0 -7
  240. package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +0 -7
  241. package/dist/esm/examples/RxJSOperatorsExample.js +0 -266
  242. package/dist/esm/examples/RxJSOperatorsExample.js.map +0 -7
  243. package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts +0 -23
  244. package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts.map +0 -1
  245. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts +0 -31
  246. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts.map +0 -1
  247. package/dist/types/examples/RxJSOperatorsExample.d.ts +0 -94
  248. package/dist/types/examples/RxJSOperatorsExample.d.ts.map +0 -1
  249. package/src/decorators/subscribeSwcAppMessageWhileConnected.ts +0 -91
  250. package/src/decorators/subscribeSwcAppRouteChangeWhileConnected.ts +0 -107
  251. package/src/examples/RxJSOperatorsExample.ts +0 -279
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/intersectionObserver.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions, SwcFnSelector, SwcSelector, HelperHostSet } from '../types';\n\n// \uACF5\uD1B5 \uC635\uC158 \u2014 IntersectionObserverInit + filter/removeObserver. root\u00B7delegate \uC81C\uC678.\n// \uC8FC\uC758: \uB370\uCF54\uB808\uC774\uD130\uC758 root(light/shadow/all/auto) \uB294 \uC140\uB809\uD130 \uC2A4\uCF54\uD504 \uC120\uD0DD\uC6A9\uC774\uB2E4.\n// IntersectionObserver \uC758 \uC2A4\uD06C\uB864 \uCEE8\uD14C\uC774\uB108 root \uB294 intersectionRoot \uB85C \uC9C0\uC815\uD55C\uB2E4.\nexport interface IntersectionObserverBaseOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** IntersectionObserver \uC758 \uC2A4\uD06C\uB864 \uCEE8\uD14C\uC774\uB108 (viewport \uB300\uC2E0). \uB370\uCF54\uB808\uC774\uD130 root \uC640 \uD63C\uB3D9 \uC8FC\uC758. */\n intersectionRoot?: Element | Document;\n filter?: (matchedEls: HTMLElement[], meta: { currentThis: any, helper: HelperHostSet }) => boolean;\n removeObserver?: (target: Element, optionValue: IntersectionObserverQueryOptions) => void;\n}\n\n// \uBB38\uC790\uC5F4 \uC140\uB809\uD130 \uC804\uC6A9 \u2014 root\u00B7delegate \uD5C8\uC6A9\nexport type IntersectionObserverQueryOptions = IntersectionObserverBaseOptions & SwcQueryOptions & { delegate?: boolean };\n// \uD568\uC218 \uC140\uB809\uD130 \uC804\uC6A9 \u2014 root\u00B7delegate \uAE08\uC9C0\nexport type IntersectionObserverNonQueryOptions = IntersectionObserverBaseOptions;\n// \uB0B4\uBD80 \uC800\uC7A5/\uD574\uC11D\uC6A9\nexport type IntersectionObserverOptions = IntersectionObserverQueryOptions;\n\n// \uC140\uB809\uD130 \uC885\uB958\uC5D0 \uB530\uB77C \uC635\uC158 \uD0C0\uC785 \uBD84\uAE30\nexport type IntersectionObserverOptionsOf<S extends SwcSelector> = S extends string ? IntersectionObserverQueryOptions : IntersectionObserverNonQueryOptions;\n\nexport interface IntersectionObserverMetadata {\n propertyKey: string | symbol;\n selector: SwcSelector;\n options: IntersectionObserverOptions;\n}\n\nexport const INTERSECTION_OBSERVER_METADATA_KEY = Symbol.for('simple-web-component:intersection-observer');\n\nexport function intersectionObserver(target: SpecialSelector, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserver(selector: string, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserver(selector: SwcFnSelector, options?: IntersectionObserverNonQueryOptions): MethodDecorator;\nexport function intersectionObserver(options?: IntersectionObserverQueryOptions): MethodDecorator;\n/**\n * @intersectionObserver decorator to observe element intersection changes.\n *\n * IntersectionObserver \uB294 \uC0DD\uC131 \uC2DC\uC810\uC5D0 \uC635\uC158(threshold/rootMargin/root)\uC774 \uACE0\uC815\uB418\uBBC0\uB85C,\n * \uC635\uC158\uBCC4\uB85C \uADF8\uB8F9\uC744 \uB9CC\uB4E4\uC5B4 observer \uB97C \uC0DD\uC131\uD55C\uB2E4. \uAC19\uC740 \uC635\uC158 \uADF8\uB8F9 \uC548\uC5D0\uC11C delegate \uB3D9\uC801 \uCD94\uC801\uC774 \uAC00\uB2A5\uD558\uB2E4.\n */\nexport function intersectionObserver(selectorOrOptions?: SwcSelector | IntersectionObserverOptions, maybeOptions?: IntersectionObserverOptions): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n let selector: SwcSelector = '$this';\n let options: IntersectionObserverOptions = {};\n\n if (typeof selectorOrOptions === 'string' || typeof selectorOrOptions === 'function') {\n selector = selectorOrOptions;\n options = maybeOptions ?? {};\n } else {\n selector = '$this';\n options = selectorOrOptions ?? {};\n }\n\n const constructor = targetObj.constructor;\n\n let observers = ReflectUtils.getMetadata<IntersectionObserverMetadata[]>(INTERSECTION_OBSERVER_METADATA_KEY, constructor);\n if (!observers) {\n observers = [];\n ReflectUtils.defineMetadata(INTERSECTION_OBSERVER_METADATA_KEY, observers, constructor);\n }\n\n observers.push({ propertyKey, selector, options });\n };\n}\n\nexport function intersectionObserverThis(options?: IntersectionObserverQueryOptions): MethodDecorator {\n return intersectionObserver('$this', options);\n}\n\n// \u2500\u2500\u2500 root\uBCC4 delegate \uD5EC\uD37C (root \uC8FC\uC785 \u2192 \uBB38\uC790\uC5F4 \uC140\uB809\uD130 \uC804\uC6A9) \u2500\u2500\u2500\n\nexport function intersectionObserverDelegateLight(selector: string, options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateLight(options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateLight(selectorOrOptions?: string | Omit<IntersectionObserverQueryOptions, 'delegate'>, maybeOptions?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator {\n if (typeof selectorOrOptions === 'string' || typeof selectorOrOptions === 'function') {\n return intersectionObserver(selectorOrOptions as any, {...maybeOptions ?? {}, root: 'light', delegate: true});\n }\n return intersectionObserver({...selectorOrOptions ?? {}, root: 'light', delegate: true});\n}\n\nexport function intersectionObserverDelegateShadow(selector: string, options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateShadow(options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateShadow(selectorOrOptions?: string | Omit<IntersectionObserverQueryOptions, 'delegate'>, maybeOptions?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator {\n if (typeof selectorOrOptions === 'string' || typeof selectorOrOptions === 'function') {\n return intersectionObserver(selectorOrOptions as any, {...maybeOptions ?? {}, root: 'shadow', delegate: true});\n }\n return intersectionObserver({...selectorOrOptions ?? {}, root: 'shadow', delegate: true});\n}\n\nexport function intersectionObserverDelegateAll(selector: string, options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateAll(options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateAll(selectorOrOptions?: string | Omit<IntersectionObserverQueryOptions, 'delegate'>, maybeOptions?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator {\n if (typeof selectorOrOptions === 'string' || typeof selectorOrOptions === 'function') {\n return intersectionObserver(selectorOrOptions as any, {...maybeOptions ?? {}, root: 'all', delegate: true});\n }\n return intersectionObserver({...selectorOrOptions ?? {}, root: 'all', delegate: true});\n}\n\nexport function intersectionObserverDelegate(selector: string, options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegate(options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegate(selectorOrOptions?: string | Omit<IntersectionObserverQueryOptions, 'delegate'>, maybeOptions?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator {\n if (typeof selectorOrOptions === 'string' || typeof selectorOrOptions === 'function') {\n return intersectionObserver(selectorOrOptions as any, {...maybeOptions ?? {}, root: 'auto', delegate: true});\n }\n return intersectionObserver({...selectorOrOptions ?? {}, root: 'auto', delegate: true});\n}\n\n// \u2500\u2500\u2500 root\uBCC4 \uC77C\uBC18 \uD5EC\uD37C (delegate \uC5C6\uC774, \uC140\uB809\uD130 \uC0DD\uB7B5 \uC2DC $this) \u2500\u2500\u2500\n\nexport function intersectionObserverLight(selector: string, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverLight(options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverLight(selectorOrOptions?: string | IntersectionObserverQueryOptions, maybeOptions?: IntersectionObserverQueryOptions): MethodDecorator {\n if (typeof selectorOrOptions === 'string' || typeof selectorOrOptions === 'function') {\n return intersectionObserver(selectorOrOptions as any, {...maybeOptions ?? {}, root: 'light'});\n }\n return intersectionObserver({...selectorOrOptions ?? {}, root: 'light'});\n}\n\nexport function intersectionObserverShadow(selector: string, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverShadow(options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverShadow(selectorOrOptions?: string | IntersectionObserverQueryOptions, maybeOptions?: IntersectionObserverQueryOptions): MethodDecorator {\n if (typeof selectorOrOptions === 'string' || typeof selectorOrOptions === 'function') {\n return intersectionObserver(selectorOrOptions as any, {...maybeOptions ?? {}, root: 'shadow'});\n }\n return intersectionObserver({...selectorOrOptions ?? {}, root: 'shadow'});\n}\n\nexport function intersectionObserverAll(selector: string, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverAll(options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverAll(selectorOrOptions?: string | IntersectionObserverQueryOptions, maybeOptions?: IntersectionObserverQueryOptions): MethodDecorator {\n if (typeof selectorOrOptions === 'string' || typeof selectorOrOptions === 'function') {\n return intersectionObserver(selectorOrOptions as any, {...maybeOptions ?? {}, root: 'all'});\n }\n return intersectionObserver({...selectorOrOptions ?? {}, root: 'all'});\n}\n\nexport function getIntersectionObserverMetadata(target: any): IntersectionObserverMetadata[] | undefined {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(INTERSECTION_OBSERVER_METADATA_KEY, constructor);\n}\n\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// IntersectionObserverLifeCycler\n// observer \uB97C \uC9C1\uC811 \uC0DD\uC131\uD558\uC9C0 \uC54A\uACE0 \uC635\uC158 \uADF8\uB8F9 \uBC30\uC5F4(IntersectionObserverSet)\uC744 \uBC18\uD658\uD55C\uB2E4.\n// elementDefine \uC774 \uADF8\uB8F9\uBCC4\uB85C observer \uB97C \uC0DD\uC131\uD55C\uB2E4.\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nimport { ElementDefineLifeCycler, OnConnectedResult, IntersectionObserverSet, IntersectionObserverGroup, IntersectionObserverSetEntry } from '../types';\nimport { SwcUtils } from '../utils/Utils';\n\nexport class IntersectionObserverLifeCycler implements ElementDefineLifeCycler {\n private readonly removeObserverCallbacksMap = new WeakMap<Element, Array<{ fn: (target: Element, opts: unknown) => void; target: any; opts: unknown }>>();\n\n onConnected(helperHostSet: HelperHostSet): OnConnectedResult | void {\n const inst = helperHostSet.$this;\n const currentWin = helperHostSet.$w;\n\n const removeObserverCallbacks: Array<{ fn: (target: Element, opts: unknown) => void; target: any; opts: unknown }> = [];\n this.removeObserverCallbacksMap.set(inst, removeObserverCallbacks);\n\n const allMeta = getIntersectionObserverMetadata(inst) ?? [];\n if (allMeta.length === 0) return;\n\n const root: HTMLElement | ShadowRoot = inst.shadowRoot || inst;\n\n // removeObserver \uCF5C\uBC31 \uC218\uC9D1\n for (const m of allMeta) {\n if (m.options.removeObserver) removeObserverCallbacks.push({ fn: m.options.removeObserver, target: root, opts: m.options });\n }\n\n // \u2500\u2500 IntersectionObserver \uCF5C\uBC31 \u2500\u2500\n const buildCallback = (metas: IntersectionObserverMetadata[]): IntersectionObserverSetEntry['callback'] => {\n return (entries, obs) => {\n for (const m of metas) {\n let matchedEls: HTMLElement[];\n if (m.options.delegate && typeof m.selector === 'string') {\n const isThis = m.selector === '$this' || m.selector === '';\n matchedEls = entries.map(e => e.target as HTMLElement).filter(el => {\n if (!el || el.nodeType !== 1) return false;\n if (isThis) return true;\n return el.matches?.(m.selector as string) || !!el.closest?.(m.selector as string);\n });\n } else {\n matchedEls = entries.map(e => e.target as HTMLElement).filter(t => t && t.nodeType === 1);\n }\n if (matchedEls.length === 0) continue;\n if (m.options.filter) {\n if (!m.options.filter(matchedEls, { currentThis: inst, helper: helperHostSet })) continue;\n }\n const hostSet = SwcUtils.getHostSet(inst);\n inst[m.propertyKey](matchedEls, entries, obs, { ...hostSet, $root: root });\n }\n };\n };\n\n // \u2500\u2500 \uC635\uC158\uBCC4 \uADF8\uB8F9\uD551: \uAC19\uC740 observer \uC635\uC158(threshold/rootMargin/intersectionRoot)\uB07C\uB9AC \uBB36\uB294\uB2E4 \u2500\u2500\n // delegate:true \uD56D\uBAA9\uC740 \uB3D9\uC801 \uCD94\uC801\uC6A9 \uC140\uB809\uD130 \uBB38\uC790\uC5F4\uB85C \uC120\uC5B8\uB41C\uB2E4.\n const groups = new Map<string, { options: IntersectionObserverInit; metas: IntersectionObserverMetadata[] }>();\n for (const m of allMeta) {\n const obsOptions: IntersectionObserverInit = {\n root: m.options.intersectionRoot ?? null,\n rootMargin: m.options.rootMargin,\n threshold: m.options.threshold,\n };\n const key = JSON.stringify([obsOptions.root, obsOptions.rootMargin, obsOptions.threshold]);\n if (!groups.has(key)) groups.set(key, { options: obsOptions, metas: [] });\n groups.get(key)!.metas.push(m);\n }\n\n const intersectionObserverSet: IntersectionObserverSet = [];\n for (const [, group] of groups) {\n const callback = buildCallback(group.metas);\n const observeTargets: IntersectionObserverGroup['observeTargets'] = [];\n\n for (const m of group.metas) {\n if (m.options.delegate && typeof m.selector === 'string') {\n observeTargets.push({ target: m.selector, delegate: true, delegateRoot: m.options.root, callback });\n continue;\n }\n let targets: HTMLElement[] = [];\n\n if (typeof m.selector === 'function') {\n const res = (m.selector as any)(inst, helperHostSet);\n if (res instanceof currentWin.HTMLElement) targets = [res as HTMLElement];\n else if (res instanceof currentWin.NodeList) targets = Array.from(res as NodeList).filter((e: any) => e instanceof currentWin.HTMLElement) as HTMLElement[];\n else if (Array.isArray(res)) targets = res.filter((e: any) => e instanceof currentWin.HTMLElement) as HTMLElement[];\n } else if (typeof m.selector === 'string') {\n if (m.selector === '$this' || m.selector === '') {\n targets = [inst as HTMLElement];\n } else {\n const r: any = m.options.root || 'auto';\n const scopes: any[] = [];\n if (r === 'auto') scopes.push(inst.shadowRoot || inst);\n else if (r === 'light') scopes.push(inst);\n else if (r === 'shadow' && inst.shadowRoot) scopes.push(inst.shadowRoot);\n else if (r === 'all') { scopes.push(inst); if (inst.shadowRoot) scopes.push(inst.shadowRoot); }\n for (const s of scopes) {\n const found = s?.querySelectorAll?.(m.selector as string) as NodeListOf<HTMLElement> | undefined;\n if (found?.length) targets.push(...Array.from(found));\n }\n }\n }\n for (const el of targets) observeTargets.push({ target: el, callback });\n }\n\n intersectionObserverSet.push({ options: group.options, observeTargets });\n }\n\n return { intersectionObserverSet };\n }\n\n onDisconnected(helperHostSet: HelperHostSet): void {\n const inst = helperHostSet.$this;\n for (const cb of this.removeObserverCallbacksMap.get(inst) ?? []) {\n try { cb.fn(cb.target, cb.opts); } catch (e) { console.error('[SWC] removeObserver error:', e); }\n }\n this.removeObserverCallbacksMap.delete(inst);\n }\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions, SwcFnSelector, SwcSelector, HelperHostSet } from '../types';\nimport { buildSwcParameterArgs } from './parameter';\n\n// \uACF5\uD1B5 \uC635\uC158 \u2014 IntersectionObserverInit + filter/removeObserver. root\u00B7delegate \uC81C\uC678.\n// \uC8FC\uC758: \uB370\uCF54\uB808\uC774\uD130\uC758 root(light/shadow/all/auto) \uB294 \uC140\uB809\uD130 \uC2A4\uCF54\uD504 \uC120\uD0DD\uC6A9\uC774\uB2E4.\n// IntersectionObserver \uC758 \uC2A4\uD06C\uB864 \uCEE8\uD14C\uC774\uB108 root \uB294 intersectionRoot \uB85C \uC9C0\uC815\uD55C\uB2E4.\nexport interface IntersectionObserverBaseOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** IntersectionObserver \uC758 \uC2A4\uD06C\uB864 \uCEE8\uD14C\uC774\uB108 (viewport \uB300\uC2E0). \uB370\uCF54\uB808\uC774\uD130 root \uC640 \uD63C\uB3D9 \uC8FC\uC758. */\n intersectionRoot?: Element | Document;\n /** \uB9E4\uCE6D \uC2DC \uD578\uB4E4\uB7EC \uC2E4\uD589 \uC5EC\uBD80 \uAC8C\uC774\uD2B8. Promise<boolean>\uB3C4 \uB418\uC5B4 async \uD310\uC815 \uAC00\uB2A5. false\uBA74 \uC2A4\uD0B5. */\n filter?: (matchedEls: HTMLElement[], meta: { currentThis: any, helper: HelperHostSet }) => boolean | Promise<boolean>;\n /** filter \uD1B5\uACFC \uD6C4 \uD578\uB4E4\uB7EC \uC9C1\uC804 \uD6C5. await\uB418\uACE0, \uB9AC\uD134\uAC12\uC740 @intersectionObserverBeforeReturn \uC73C\uB85C \uD578\uB4E4\uB7EC\uC5D0 \uC8FC\uC785\uB41C\uB2E4. */\n before?: (matchedEls: HTMLElement[], meta: { currentThis: any, helper: HelperHostSet }) => any | Promise<any>;\n /** \uD578\uB4E4\uB7EC\uAC00 \uC131\uACF5/\uC2E4\uD328\uD574\uB3C4 \uD56D\uC0C1 \uC2E4\uD589\uB418\uB294 \uC815\uB9AC \uD6C5. ctx\uB85C \uC778\uC790/\uACB0\uACFC/\uC5D0\uB7EC\uB97C \uBC1B\uB294\uB2E4. \uC5D0\uB7EC\uB294 \uB85C\uAE45\uB428. */\n finally?: (matchedEls: HTMLElement[], meta: { currentThis: any, helper: HelperHostSet }, ctx: { args: any[]; result?: any; error?: any }) => any | Promise<any>;\n removeObserver?: (target: Element, optionValue: IntersectionObserverQueryOptions) => void;\n}\n\n// \uBB38\uC790\uC5F4 \uC140\uB809\uD130 \uC804\uC6A9 \u2014 root\u00B7delegate \uD5C8\uC6A9\nexport type IntersectionObserverQueryOptions = IntersectionObserverBaseOptions & SwcQueryOptions & { delegate?: boolean };\n// \uD568\uC218 \uC140\uB809\uD130 \uC804\uC6A9 \u2014 root\u00B7delegate \uAE08\uC9C0\nexport type IntersectionObserverNonQueryOptions = IntersectionObserverBaseOptions;\n// \uB0B4\uBD80 \uC800\uC7A5/\uD574\uC11D\uC6A9\nexport type IntersectionObserverOptions = IntersectionObserverQueryOptions;\n\n// \uC140\uB809\uD130 \uC885\uB958\uC5D0 \uB530\uB77C \uC635\uC158 \uD0C0\uC785 \uBD84\uAE30\nexport type IntersectionObserverOptionsOf<S extends SwcSelector> = S extends string ? IntersectionObserverQueryOptions : IntersectionObserverNonQueryOptions;\n\nexport interface IntersectionObserverMetadata {\n propertyKey: string | symbol;\n selector: SwcSelector;\n options: IntersectionObserverOptions;\n}\n\nexport const INTERSECTION_OBSERVER_METADATA_KEY = Symbol.for('simple-web-component:intersection-observer');\n\nconst applyIntersectionObserver = (selector: SwcSelector, options: IntersectionObserverOptions, targetObj: Object, propertyKey: string | symbol): void => {\n const constructor = targetObj.constructor;\n let observers = ReflectUtils.getOwnMetadata(INTERSECTION_OBSERVER_METADATA_KEY, constructor) as IntersectionObserverMetadata[] | undefined;\n if (!observers) {\n observers = [];\n ReflectUtils.defineMetadata(INTERSECTION_OBSERVER_METADATA_KEY, observers, constructor);\n }\n observers.push({ propertyKey, selector, options });\n};\n\nconst resolveIntersectionObserverArgs = (\n selectorOrOptions: SwcSelector | IntersectionObserverOptions | undefined,\n maybeOptions: IntersectionObserverOptions | undefined,\n extra: Partial<IntersectionObserverOptions>\n): { selector: SwcSelector; options: IntersectionObserverOptions } => {\n if (typeof selectorOrOptions === 'string' || typeof selectorOrOptions === 'function') {\n return { selector: selectorOrOptions, options: { ...(maybeOptions ?? {}), ...extra } };\n }\n return { selector: '$this', options: { ...(selectorOrOptions ?? {}), ...extra } };\n};\n\n/**\n * bare(@decorator)\uC640 factory(@decorator(...), \uBE48 \uAD04\uD638\uB294 \uD0C0\uC785\uC5D0\uC11C \uB9C9\uC74C) \uD638\uCD9C\uC744 \uBAA8\uB450 \uCC98\uB9AC\uD558\uB294 \uACF5\uD1B5 \uB514\uC2A4\uD328\uCC98.\n * extra\uB294 Light/Shadow/All/Delegate \uBCC0\uD615\uC774 \uAC15\uC81C\uB85C \uB367\uC50C\uC6B0\uB294 \uC635\uC158(root, delegate \uB4F1)\uC774\uB2E4.\n */\nconst dispatchIntersectionObserver = (\n selectorOrOptionsOrTarget: SwcSelector | IntersectionObserverOptions | Object | undefined,\n maybeOptionsOrPropertyKey: IntersectionObserverOptions | string | symbol | undefined,\n descriptor: PropertyDescriptor | undefined,\n extra: Partial<IntersectionObserverOptions>\n): MethodDecorator | void => {\n if ((typeof maybeOptionsOrPropertyKey === 'string' || typeof maybeOptionsOrPropertyKey === 'symbol') && descriptor !== undefined) {\n // \uC635\uC158 \uC5C6\uC774: @decorator\n applyIntersectionObserver('$this', { ...extra }, selectorOrOptionsOrTarget as Object, maybeOptionsOrPropertyKey);\n return;\n }\n // \uC635\uC158\uACFC \uD568\uAED8: @decorator(selector, options) / @decorator(options)\n const { selector, options } = resolveIntersectionObserverArgs(\n selectorOrOptionsOrTarget as SwcSelector | IntersectionObserverOptions | undefined,\n maybeOptionsOrPropertyKey as IntersectionObserverOptions | undefined,\n extra\n );\n return (targetObj: Object, propertyKey: string | symbol) => {\n applyIntersectionObserver(selector, options, targetObj, propertyKey);\n };\n};\n\nexport function intersectionObserver(target: SpecialSelector, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserver(selector: string, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserver(selector: SwcFnSelector, options?: IntersectionObserverNonQueryOptions): MethodDecorator;\nexport function intersectionObserver(options: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserver(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\n/**\n * @intersectionObserver decorator to observe element intersection changes.\n *\n * IntersectionObserver \uB294 \uC0DD\uC131 \uC2DC\uC810\uC5D0 \uC635\uC158(threshold/rootMargin/root)\uC774 \uACE0\uC815\uB418\uBBC0\uB85C,\n * \uC635\uC158\uBCC4\uB85C \uADF8\uB8F9\uC744 \uB9CC\uB4E4\uC5B4 observer \uB97C \uC0DD\uC131\uD55C\uB2E4. \uAC19\uC740 \uC635\uC158 \uADF8\uB8F9 \uC548\uC5D0\uC11C delegate \uB3D9\uC801 \uCD94\uC801\uC774 \uAC00\uB2A5\uD558\uB2E4.\n * \uC635\uC158 \uC5C6\uC774 `@intersectionObserver` \uADF8\uB300\uB85C \uBD99\uC5EC\uB3C4 \uB418\uACE0, `@intersectionObserver(...)`\uCC98\uB7FC \uC140\uB809\uD130/\uC635\uC158\uC744 \uC904 \uC218\uB3C4 \uC788\uB2E4.\n */\nexport function intersectionObserver(selectorOrOptionsOrTarget?: SwcSelector | IntersectionObserverOptions | Object, maybeOptionsOrPropertyKey?: IntersectionObserverOptions | string | symbol, descriptor?: PropertyDescriptor): MethodDecorator | void {\n return dispatchIntersectionObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, {});\n}\n\n\n// \u2500\u2500\u2500 root\uBCC4 delegate \uD5EC\uD37C (root \uC8FC\uC785 \u2192 \uBB38\uC790\uC5F4 \uC140\uB809\uD130 \uC804\uC6A9) \u2500\u2500\u2500\n\nexport function intersectionObserverDelegateLight(selector: string, options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateLight(options: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateLight(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function intersectionObserverDelegateLight(selectorOrOptionsOrTarget?: string | Omit<IntersectionObserverQueryOptions, 'delegate'> | Object, maybeOptionsOrPropertyKey?: Omit<IntersectionObserverQueryOptions, 'delegate'> | string | symbol, descriptor?: PropertyDescriptor): MethodDecorator | void {\n return dispatchIntersectionObserver(selectorOrOptionsOrTarget as any, maybeOptionsOrPropertyKey as any, descriptor, { root: 'light', delegate: true });\n}\n\nexport function intersectionObserverDelegateShadow(selector: string, options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateShadow(options: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateShadow(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function intersectionObserverDelegateShadow(selectorOrOptionsOrTarget?: string | Omit<IntersectionObserverQueryOptions, 'delegate'> | Object, maybeOptionsOrPropertyKey?: Omit<IntersectionObserverQueryOptions, 'delegate'> | string | symbol, descriptor?: PropertyDescriptor): MethodDecorator | void {\n return dispatchIntersectionObserver(selectorOrOptionsOrTarget as any, maybeOptionsOrPropertyKey as any, descriptor, { root: 'shadow', delegate: true });\n}\n\nexport function intersectionObserverDelegateAll(selector: string, options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateAll(options: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegateAll(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function intersectionObserverDelegateAll(selectorOrOptionsOrTarget?: string | Omit<IntersectionObserverQueryOptions, 'delegate'> | Object, maybeOptionsOrPropertyKey?: Omit<IntersectionObserverQueryOptions, 'delegate'> | string | symbol, descriptor?: PropertyDescriptor): MethodDecorator | void {\n return dispatchIntersectionObserver(selectorOrOptionsOrTarget as any, maybeOptionsOrPropertyKey as any, descriptor, { root: 'all', delegate: true });\n}\n\nexport function intersectionObserverDelegate(selector: string, options?: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegate(options: Omit<IntersectionObserverQueryOptions, 'delegate'>): MethodDecorator;\nexport function intersectionObserverDelegate(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function intersectionObserverDelegate(selectorOrOptionsOrTarget?: string | Omit<IntersectionObserverQueryOptions, 'delegate'> | Object, maybeOptionsOrPropertyKey?: Omit<IntersectionObserverQueryOptions, 'delegate'> | string | symbol, descriptor?: PropertyDescriptor): MethodDecorator | void {\n return dispatchIntersectionObserver(selectorOrOptionsOrTarget as any, maybeOptionsOrPropertyKey as any, descriptor, { root: 'auto', delegate: true });\n}\n\n// \u2500\u2500\u2500 root\uBCC4 \uC77C\uBC18 \uD5EC\uD37C (delegate \uC5C6\uC774, \uC140\uB809\uD130 \uC0DD\uB7B5 \uC2DC $this) \u2500\u2500\u2500\n\nexport function intersectionObserverLight(selector: string, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverLight(options: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverLight(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function intersectionObserverLight(selectorOrOptionsOrTarget?: string | IntersectionObserverQueryOptions | Object, maybeOptionsOrPropertyKey?: IntersectionObserverQueryOptions | string | symbol, descriptor?: PropertyDescriptor): MethodDecorator | void {\n return dispatchIntersectionObserver(selectorOrOptionsOrTarget as any, maybeOptionsOrPropertyKey as any, descriptor, { root: 'light' });\n}\n\nexport function intersectionObserverShadow(selector: string, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverShadow(options: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverShadow(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function intersectionObserverShadow(selectorOrOptionsOrTarget?: string | IntersectionObserverQueryOptions | Object, maybeOptionsOrPropertyKey?: IntersectionObserverQueryOptions | string | symbol, descriptor?: PropertyDescriptor): MethodDecorator | void {\n return dispatchIntersectionObserver(selectorOrOptionsOrTarget as any, maybeOptionsOrPropertyKey as any, descriptor, { root: 'shadow' });\n}\n\nexport function intersectionObserverAll(selector: string, options?: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverAll(options: IntersectionObserverQueryOptions): MethodDecorator;\nexport function intersectionObserverAll(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function intersectionObserverAll(selectorOrOptionsOrTarget?: string | IntersectionObserverQueryOptions | Object, maybeOptionsOrPropertyKey?: IntersectionObserverQueryOptions | string | symbol, descriptor?: PropertyDescriptor): MethodDecorator | void {\n return dispatchIntersectionObserver(selectorOrOptionsOrTarget as any, maybeOptionsOrPropertyKey as any, descriptor, { root: 'all' });\n}\n\nexport function getIntersectionObserverMetadata(target: any): IntersectionObserverMetadata[] | undefined {\n const constructor = typeof target === 'function' ? target : target.constructor;\n return ReflectUtils.findAllMetadata<any[]>(INTERSECTION_OBSERVER_METADATA_KEY, constructor).flat();\n}\n\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// IntersectionObserverLifeCycler\n// observer \uB97C \uC9C1\uC811 \uC0DD\uC131\uD558\uC9C0 \uC54A\uACE0 \uC635\uC158 \uADF8\uB8F9 \uBC30\uC5F4(IntersectionObserverSet)\uC744 \uBC18\uD658\uD55C\uB2E4.\n// elementDefine \uC774 \uADF8\uB8F9\uBCC4\uB85C observer \uB97C \uC0DD\uC131\uD55C\uB2E4.\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nimport { ElementDefineLifeCycler, OnConnectedResult, IntersectionObserverSet, IntersectionObserverGroup, IntersectionObserverSetEntry } from '../types';\nimport { SwcUtils } from '../utils/Utils';\n\nexport class IntersectionObserverLifeCycler implements ElementDefineLifeCycler {\n private readonly removeObserverCallbacksMap = new WeakMap<Element, Array<{ fn: (target: Element, opts: unknown) => void; target: any; opts: unknown }>>();\n\n onConnected(helperHostSet: HelperHostSet): OnConnectedResult | void {\n const inst = helperHostSet.$this;\n const currentWin = helperHostSet.$w;\n\n const removeObserverCallbacks: Array<{ fn: (target: Element, opts: unknown) => void; target: any; opts: unknown }> = [];\n this.removeObserverCallbacksMap.set(inst, removeObserverCallbacks);\n\n const allMeta = getIntersectionObserverMetadata(inst) ?? [];\n if (allMeta.length === 0) return;\n\n const root: HTMLElement | ShadowRoot = inst.shadowRoot || inst;\n\n // removeObserver \uCF5C\uBC31 \uC218\uC9D1\n for (const m of allMeta) {\n if (m.options.removeObserver) removeObserverCallbacks.push({ fn: m.options.removeObserver, target: root, opts: m.options });\n }\n\n // \u2500\u2500 IntersectionObserver \uCF5C\uBC31 \u2500\u2500\n const buildCallback = (metas: IntersectionObserverMetadata[]): IntersectionObserverSetEntry['callback'] => {\n return (entries, obs) => {\n for (const m of metas) {\n let matchedEls: HTMLElement[];\n if (m.options.delegate && typeof m.selector === 'string') {\n const isThis = m.selector === '$this' || m.selector === '';\n matchedEls = entries.map(e => e.target as HTMLElement).filter(el => {\n if (!el || el.nodeType !== 1) return false;\n if (isThis) return true;\n return el.matches?.(m.selector as string) || !!el.closest?.(m.selector as string);\n });\n } else {\n matchedEls = entries.map(e => e.target as HTMLElement).filter(t => t && t.nodeType === 1);\n }\n if (matchedEls.length === 0) continue;\n const opts = m.options;\n void (async () => {\n const helper = SwcUtils.getHelperAndHostSet(inst);\n if (opts.filter && !(await opts.filter(matchedEls, { currentThis: inst, helper }))) return;\n const hostSet = SwcUtils.getHostSet(inst);\n const helperSet = SwcUtils.getHelperSet(helperHostSet.$w);\n const legacyArgs = [matchedEls, entries, obs, { ...hostSet, $root: root }];\n const buildArgs = (beforeReturn: any) => buildSwcParameterArgs(inst, m.propertyKey, {\n hostSet, helperHostSet: helper, helperSet, intersectionObserverBeforeReturn: beforeReturn\n }, [...legacyArgs, beforeReturn]);\n let args = buildArgs(undefined);\n if (opts.before) { const br = await opts.before(matchedEls, { currentThis: inst, helper }); args = buildArgs(br); }\n let result: any, error: any;\n try { result = await inst[m.propertyKey](...args); }\n catch (e) { error = e; }\n finally { if (opts.finally) await opts.finally(matchedEls, { currentThis: inst, helper }, { args, result, error }); }\n if (error) throw error;\n })().catch(e => console.error('[SWC] intersectionObserver handler error:', e));\n }\n };\n };\n\n // \u2500\u2500 \uC635\uC158\uBCC4 \uADF8\uB8F9\uD551: \uAC19\uC740 observer \uC635\uC158(threshold/rootMargin/intersectionRoot)\uB07C\uB9AC \uBB36\uB294\uB2E4 \u2500\u2500\n // delegate:true \uD56D\uBAA9\uC740 \uB3D9\uC801 \uCD94\uC801\uC6A9 \uC140\uB809\uD130 \uBB38\uC790\uC5F4\uB85C \uC120\uC5B8\uB41C\uB2E4.\n const groups = new Map<string, { options: IntersectionObserverInit; metas: IntersectionObserverMetadata[] }>();\n for (const m of allMeta) {\n const obsOptions: IntersectionObserverInit = {\n root: m.options.intersectionRoot ?? null,\n rootMargin: m.options.rootMargin,\n threshold: m.options.threshold,\n };\n const key = JSON.stringify([obsOptions.root, obsOptions.rootMargin, obsOptions.threshold]);\n if (!groups.has(key)) groups.set(key, { options: obsOptions, metas: [] });\n groups.get(key)!.metas.push(m);\n }\n\n const intersectionObserverSet: IntersectionObserverSet = [];\n for (const [, group] of groups) {\n const callback = buildCallback(group.metas);\n const observeTargets: IntersectionObserverGroup['observeTargets'] = [];\n\n for (const m of group.metas) {\n if (m.options.delegate && typeof m.selector === 'string') {\n observeTargets.push({ target: m.selector, delegate: true, delegateRoot: m.options.root, callback });\n continue;\n }\n let targets: HTMLElement[] = [];\n\n if (typeof m.selector === 'function') {\n const res = (m.selector as any)(inst, helperHostSet);\n if (res instanceof currentWin.HTMLElement) targets = [res as HTMLElement];\n else if (res instanceof currentWin.NodeList) targets = Array.from(res as NodeList).filter((e: any) => e instanceof currentWin.HTMLElement) as HTMLElement[];\n else if (Array.isArray(res)) targets = res.filter((e: any) => e instanceof currentWin.HTMLElement) as HTMLElement[];\n } else if (typeof m.selector === 'string') {\n if (m.selector === '$this' || m.selector === '') {\n targets = [inst as HTMLElement];\n } else {\n const r: any = m.options.root || 'auto';\n const scopes: any[] = [];\n if (r === 'auto') scopes.push(inst.shadowRoot || inst);\n else if (r === 'light') scopes.push(inst);\n else if (r === 'shadow' && inst.shadowRoot) scopes.push(inst.shadowRoot);\n else if (r === 'all') { scopes.push(inst); if (inst.shadowRoot) scopes.push(inst.shadowRoot); }\n for (const s of scopes) {\n const found = s?.querySelectorAll?.(m.selector as string) as NodeListOf<HTMLElement> | undefined;\n if (found?.length) targets.push(...Array.from(found));\n }\n }\n }\n for (const el of targets) observeTargets.push({ target: el, callback });\n }\n\n intersectionObserverSet.push({ options: group.options, observeTargets });\n }\n\n return { intersectionObserverSet };\n }\n\n onDisconnected(helperHostSet: HelperHostSet): void {\n const inst = helperHostSet.$this;\n for (const cb of this.removeObserverCallbacksMap.get(inst) ?? []) {\n try { cb.fn(cb.target, cb.opts); } catch (e) { console.error('[SWC] removeObserver error:', e); }\n }\n this.removeObserverCallbacksMap.delete(inst);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -65,7 +65,7 @@ const ATTRIBUTE_CHANGED_WILDCARD = "*";
65
65
  function onConnectedBefore(arg1, arg2, arg3) {
66
66
  const decorator2 = (options, target, propertyKey) => {
67
67
  const constructor = target.constructor;
68
- let list = import_core.ReflectUtils.getMetadata(ON_BEFORE_CONNECTED_METADATA_KEY, constructor);
68
+ let list = import_core.ReflectUtils.getOwnMetadata(ON_BEFORE_CONNECTED_METADATA_KEY, constructor);
69
69
  if (!list) {
70
70
  list = [];
71
71
  import_core.ReflectUtils.defineMetadata(ON_BEFORE_CONNECTED_METADATA_KEY, list, constructor);
@@ -82,7 +82,7 @@ function onConnectedBefore(arg1, arg2, arg3) {
82
82
  function onConnectedAfter(arg1, arg2, arg3) {
83
83
  const decorator2 = (options, target, propertyKey) => {
84
84
  const constructor = target.constructor;
85
- let list = import_core.ReflectUtils.getMetadata(ON_AFTER_CONNECTED_METADATA_KEY, constructor);
85
+ let list = import_core.ReflectUtils.getOwnMetadata(ON_AFTER_CONNECTED_METADATA_KEY, constructor);
86
86
  if (!list) {
87
87
  list = [];
88
88
  import_core.ReflectUtils.defineMetadata(ON_AFTER_CONNECTED_METADATA_KEY, list, constructor);
@@ -144,7 +144,7 @@ function onConnectedCompleted(optionOrTarget, propertyKey) {
144
144
  }
145
145
  const decorator = (options, target, propertyKey) => {
146
146
  const constructor = target.constructor;
147
- let list = import_core.ReflectUtils.getMetadata(ON_CONNECTED_BODY_METADATA_KEY, constructor);
147
+ let list = import_core.ReflectUtils.getOwnMetadata(ON_CONNECTED_BODY_METADATA_KEY, constructor);
148
148
  if (!list) {
149
149
  list = [];
150
150
  import_core.ReflectUtils.defineMetadata(ON_CONNECTED_BODY_METADATA_KEY, list, constructor);
@@ -176,13 +176,13 @@ function onConnectedBody(optionOrTarget, propertyKey, arg3) {
176
176
  };
177
177
  }
178
178
  const findAllLifecycleMetadata = (target, metadataKey) => {
179
- const constructor = target instanceof Function ? target : target.constructor;
180
- const results = import_core.ReflectUtils.getOwnMetadata(metadataKey, constructor) ?? [];
179
+ const constructor = typeof target === "function" ? target : target.constructor;
180
+ const results = import_core.ReflectUtils.findAllMetadata(metadataKey, constructor).flat();
181
181
  return [...results].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
182
182
  };
183
183
  const findAllOnConnectedMetadata = (target) => {
184
- const constructor = target instanceof Function ? target : target.constructor;
185
- const results = import_core.ReflectUtils.getMetadata(ON_CONNECTED_BODY_METADATA_KEY, constructor) ?? [];
184
+ const constructor = typeof target === "function" ? target : target.constructor;
185
+ const results = import_core.ReflectUtils.findAllMetadata(ON_CONNECTED_BODY_METADATA_KEY, constructor).flat();
186
186
  return [...results].sort((a, b) => {
187
187
  const orderA = a.options?.order ?? 0;
188
188
  const orderB = b.options?.order ?? 0;
@@ -190,13 +190,13 @@ const findAllOnConnectedMetadata = (target) => {
190
190
  });
191
191
  };
192
192
  const findAllOnConnectedBeforeMetadata = (target) => {
193
- const constructor = target instanceof Function ? target : target.constructor;
194
- const results = import_core.ReflectUtils.getMetadata(ON_BEFORE_CONNECTED_METADATA_KEY, constructor) ?? [];
193
+ const constructor = typeof target === "function" ? target : target.constructor;
194
+ const results = import_core.ReflectUtils.findAllMetadata(ON_BEFORE_CONNECTED_METADATA_KEY, constructor).flat();
195
195
  return [...results].sort((a, b) => (a.options?.order ?? 0) - (b.options?.order ?? 0));
196
196
  };
197
197
  const findAllOnConnectedAfterMetadata = (target) => {
198
- const constructor = target instanceof Function ? target : target.constructor;
199
- const results = import_core.ReflectUtils.getMetadata(ON_AFTER_CONNECTED_METADATA_KEY, constructor) ?? [];
198
+ const constructor = typeof target === "function" ? target : target.constructor;
199
+ const results = import_core.ReflectUtils.findAllMetadata(ON_AFTER_CONNECTED_METADATA_KEY, constructor).flat();
200
200
  return [...results].sort((a, b) => (a.options?.order ?? 0) - (b.options?.order ?? 0));
201
201
  };
202
202
  //# sourceMappingURL=lifecycles.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/lifecycles.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\n\nexport const ON_INITIALIZE_METADATA_KEY = Symbol.for('simple-web-component:on-constructor');\nexport const ON_BEFORE_CONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-before-connected');\nexport const ON_AFTER_CONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-after-connected');\nexport const ON_BEFORE_DISCONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-before-disconnected');\nexport const ON_AFTER_DISCONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-after-disconnected');\nexport const ON_BEFORE_ADOPTED_METADATA_KEY = Symbol.for('simple-web-component:on-before-adopted');\nexport const ON_AFTER_ADOPTED_METADATA_KEY = Symbol.for('simple-web-component:on-after-adopted');\nexport const ON_ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:on-add-event-listener');\nexport const ON_CONNECTED_BODY_METADATA_KEY = Symbol.for('simple-web-component:on-connected-body');\nexport const ON_CONNECTED_SWC_APP_METADATA_KEY = Symbol.for('simple-web-component:on-connected-swc-app');\nexport const ON_CONNECTED_COMPLETED_METADATA_KEY = Symbol.for('simple-web-component:on-completed');\n\nexport const ATTRIBUTE_CHANGED_WILDCARD = '*';\n\nexport interface OnConnectedAppendChildOptions {\n // ssrFirst?: boolean;\n // replaceWrap?:{ start: string, end:string},\n useShadow?: boolean;\n order?: number;\n}\nexport interface OnConnectedAppendChildOptionsMetadata {\n propertyKey: string | symbol;\n options: OnConnectedAppendChildOptions;\n}\n\nexport interface OnConnectedOptions {\n // ssrFirst?: boolean;\n order?: number;\n}\nexport interface OnConnectedMetadata {\n propertyKey: string | symbol;\n options: OnConnectedOptions;\n}\n\nexport interface LifecycleOptions {\n order?: number;\n}\nexport interface LifecycleMetadata {\n propertyKey: string | symbol;\n order?: number;\n}\n\n\nexport function onConnectedBefore(options: OnConnectedOptions): MethodDecorator;\nexport function onConnectedBefore(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedBefore(arg1?: OnConnectedOptions | Object, arg2?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n const decorator = (options: OnConnectedOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getMetadata<OnConnectedMetadata[]>(ON_BEFORE_CONNECTED_METADATA_KEY, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(ON_BEFORE_CONNECTED_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n };\n\n if (arg2) {\n return decorator({}, arg1!, arg2);\n }\n\n return (target: Object, propertyKey: string | symbol) => {\n decorator((arg1 as OnConnectedOptions) || {}, target, propertyKey);\n };\n}\n\nexport function onConnectedAfter(options: OnConnectedOptions): MethodDecorator;\nexport function onConnectedAfter(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedAfter(arg1?: OnConnectedOptions | Object, arg2?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n const decorator = (options: OnConnectedOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getMetadata<OnConnectedMetadata[]>(ON_AFTER_CONNECTED_METADATA_KEY, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(ON_AFTER_CONNECTED_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n };\n\n if (arg2) {\n return decorator({}, arg1!, arg2);\n }\n\n return (target: Object, propertyKey: string | symbol) => {\n decorator((arg1 as OnConnectedOptions) || {}, target, propertyKey);\n };\n}\n\n\n// function createLifecycleDecorator(metadataKey: symbol): ((options?: LifecycleOptions) => MethodDecorator) & MethodDecorator {\n// const decorator = (options?: LifecycleOptions): MethodDecorator => {\n// return (target: Object, propertyKey: string | symbol) => {\n// const constructor = target.constructor;\n// let list = ReflectUtils.getOwnMetadata(metadataKey, constructor) as LifecycleMetadata[];\n// if (!list) {\n// list = [];\n// ReflectUtils.defineMetadata(metadataKey, list, constructor);\n// }\n// list.push({ propertyKey, order: options?.order ?? 0 });\n// };\n// };\n//\n// // Support both @decorator and @decorator() syntax\n// return Object.assign(\n// (target: Object, propertyKey: string | symbol) => {\n// const constructor = target.constructor;\n// let list = ReflectUtils.getOwnMetadata(metadataKey, constructor) as LifecycleMetadata[];\n// if (!list) {\n// list = [];\n// ReflectUtils.defineMetadata(metadataKey, list, constructor);\n// }\n// list.push({ propertyKey, order: 0 });\n// },\n// { __isDecorator: true, __decorator: decorator }\n// ) as any;\n// }\n\n// Helper to handle both @decorator and @decorator() syntax\nfunction createLifecycleDecoratorWithOptions(metadataKey: symbol) {\n return function(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n if (propertyKey) {\n // Direct decorator usage: @decorator\n const constructor = (optionOrTarget as Object).constructor;\n let list = ReflectUtils.getOwnMetadata(metadataKey, constructor) as LifecycleMetadata[];\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(metadataKey, list, constructor);\n }\n list.push({ propertyKey, order: 0 });\n return;\n }\n\n // Decorator with options: @decorator({ order: 1 })\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getOwnMetadata(metadataKey, constructor) as LifecycleMetadata[];\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(metadataKey, list, constructor);\n }\n list.push({ propertyKey, order: (optionOrTarget as LifecycleOptions)?.order ?? 0 });\n };\n };\n}\n\nexport function onInitialize(options?: LifecycleOptions): MethodDecorator;\nexport function onInitialize(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onInitialize(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_INITIALIZE_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport function onDisconnectedBefore(options?: LifecycleOptions): MethodDecorator;\nexport function onDisconnectedBefore(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onDisconnectedBefore(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_BEFORE_DISCONNECTED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport function onDisconnectedAfter(options?: LifecycleOptions): MethodDecorator;\nexport function onDisconnectedAfter(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onDisconnectedAfter(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_AFTER_DISCONNECTED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport const onDisconnected = onDisconnectedAfter;\n\nexport function onAdoptedBefore(options?: LifecycleOptions): MethodDecorator;\nexport function onAdoptedBefore(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onAdoptedBefore(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_BEFORE_ADOPTED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport function onAdoptedAfter(options?: LifecycleOptions): MethodDecorator;\nexport function onAdoptedAfter(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onAdoptedAfter(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_AFTER_ADOPTED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport const onAdopted = onAdoptedAfter;\n\nexport function onConnectedSwcApp(options?: LifecycleOptions): MethodDecorator;\nexport function onConnectedSwcApp(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedSwcApp(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_CONNECTED_SWC_APP_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport function onConnectedCompleted(options?: LifecycleOptions): MethodDecorator;\nexport function onConnectedCompleted(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedCompleted(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_CONNECTED_COMPLETED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\n\n\n\n\nconst decorator = (options: OnConnectedAppendChildOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getMetadata<OnConnectedAppendChildOptionsMetadata[]>(ON_CONNECTED_BODY_METADATA_KEY, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(ON_CONNECTED_BODY_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n};\n\nexport function onConnectedBodyShadow(options: Omit<OnConnectedAppendChildOptions, 'useShadow'>): MethodDecorator; // \uD30C\uB77C\uBBF8\uD130\uC788\uC74C\nexport function onConnectedBodyShadow(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void; // \uD30C\uB77C\uBBF8\uD130\uC5C6\uC74C\nexport function onConnectedBodyShadow(optionOrTarget: Omit<OnConnectedAppendChildOptions, 'useShadow'> | Object, propertyKey?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n if (propertyKey) { // no parameter option @decorator\n return decorator({useShadow: true}, optionOrTarget!, propertyKey);\n }\n // parameter option @decorator()\n return (target: Object, propertyKey: string | symbol) => {\n decorator({...optionOrTarget??{}, useShadow: true}, target, propertyKey);\n };\n}\n\nexport function onConnectedBodyLight(options: Omit<OnConnectedAppendChildOptions, 'useShadow'>): MethodDecorator; // \uD30C\uB77C\uBBF8\uD130\uC788\uC74C\nexport function onConnectedBodyLight(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void; // \uD30C\uB77C\uBBF8\uD130\uC5C6\uC74C\nexport function onConnectedBodyLight(optionOrTarget: Omit<OnConnectedAppendChildOptions, 'useShadow'> | Object, propertyKey?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n if (propertyKey) { // no parameter option @decorator\n return decorator({useShadow: false}, optionOrTarget!, propertyKey);\n }\n // parameter option @decorator()\n return (target: Object, propertyKey: string | symbol) => {\n decorator({...optionOrTarget??{}, useShadow: false}, target, propertyKey);\n };\n}\nexport function onConnectedBody(options: OnConnectedAppendChildOptions): MethodDecorator;\nexport function onConnectedBody(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedBody(optionOrTarget: OnConnectedAppendChildOptions | Object, propertyKey?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n if (propertyKey) { // no parameter option @decorator\n return decorator({}, optionOrTarget!, propertyKey);\n }\n // parameter option @decorator()\n return (target: Object, propertyKey: string | symbol) => {\n decorator((optionOrTarget as OnConnectedAppendChildOptions) || {}, target, propertyKey);\n };\n}\n\n/**\n * \uD504\uB85C\uD1A0\uD0C0\uC785 \uCCB4\uC778\uC744 \uC21C\uD68C\uD558\uBA70 \uBAA8\uB4E0 \uB77C\uC774\uD504\uC0AC\uC774\uD074 \uBA54\uC11C\uB4DC\uB97C \uC218\uC9D1\uD569\uB2C8\uB2E4.\n */\nexport const findAllLifecycleMetadata = (target: any, metadataKey: symbol): LifecycleMetadata[] => {\n const constructor = target instanceof Function ? target : target.constructor;\n const results = ReflectUtils.getOwnMetadata(metadataKey, constructor) as LifecycleMetadata[] ?? [];\n // Sort by order (default 0 if not specified)\n return [...results].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n};\n\nexport const findAllOnConnectedMetadata = (target: any): OnConnectedAppendChildOptionsMetadata[] => {\n const constructor = target instanceof Function ? target : target.constructor;\n const results = ReflectUtils.getMetadata<OnConnectedAppendChildOptionsMetadata[]>(ON_CONNECTED_BODY_METADATA_KEY, constructor) ?? [];\n // Sort by order (default 0 if not specified)\n return [...results].sort((a, b) => {\n const orderA = a.options?.order ?? 0;\n const orderB = b.options?.order ?? 0;\n return orderA - orderB;\n });\n};\n\nexport const findAllOnConnectedBeforeMetadata = (target: any): OnConnectedMetadata[] => {\n const constructor = target instanceof Function ? target : target.constructor;\n const results = ReflectUtils.getMetadata<OnConnectedMetadata[]>(ON_BEFORE_CONNECTED_METADATA_KEY, constructor) ?? [];\n // Sort by order\n return [...results].sort((a, b) => (a.options?.order ?? 0) - (b.options?.order ?? 0));\n};\n\nexport const findAllOnConnectedAfterMetadata = (target: any): OnConnectedMetadata[] => {\n const constructor = target instanceof Function ? target : target.constructor;\n const results = ReflectUtils.getMetadata<OnConnectedMetadata[]>(ON_AFTER_CONNECTED_METADATA_KEY, constructor) ?? [];\n // Sort by order\n return [...results].sort((a, b) => (a.options?.order ?? 0) - (b.options?.order ?? 0));\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\n\nexport const ON_INITIALIZE_METADATA_KEY = Symbol.for('simple-web-component:on-constructor');\nexport const ON_BEFORE_CONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-before-connected');\nexport const ON_AFTER_CONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-after-connected');\nexport const ON_BEFORE_DISCONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-before-disconnected');\nexport const ON_AFTER_DISCONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-after-disconnected');\nexport const ON_BEFORE_ADOPTED_METADATA_KEY = Symbol.for('simple-web-component:on-before-adopted');\nexport const ON_AFTER_ADOPTED_METADATA_KEY = Symbol.for('simple-web-component:on-after-adopted');\nexport const ON_ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:on-add-event-listener');\nexport const ON_CONNECTED_BODY_METADATA_KEY = Symbol.for('simple-web-component:on-connected-body');\nexport const ON_CONNECTED_SWC_APP_METADATA_KEY = Symbol.for('simple-web-component:on-connected-swc-app');\nexport const ON_CONNECTED_COMPLETED_METADATA_KEY = Symbol.for('simple-web-component:on-completed');\n\nexport const ATTRIBUTE_CHANGED_WILDCARD = '*';\n\nexport interface OnConnectedAppendChildOptions {\n // ssrFirst?: boolean;\n // replaceWrap?:{ start: string, end:string},\n useShadow?: boolean;\n order?: number;\n // \uBE44\uB3D9\uAE30 \uB80C\uB354\uAC00 \uB05D\uB098\uAE30 \uC804\uAE4C\uC9C0 \uBA3C\uC800 \uBCF4\uC5EC\uC904 \uB0B4\uC6A9. resolve\uB418\uBA74 \uC81C\uAC70\uB418\uACE0 \uC2E4\uC81C \uACB0\uACFC\uAC00 \uB4E4\uC5B4\uAC10.\n fallback?: string | ((helper: any) => string | Node | Node[] | DocumentFragment);\n}\nexport interface OnConnectedAppendChildOptionsMetadata {\n propertyKey: string | symbol;\n options: OnConnectedAppendChildOptions;\n}\n\nexport interface OnConnectedOptions {\n // ssrFirst?: boolean;\n order?: number;\n}\nexport interface OnConnectedMetadata {\n propertyKey: string | symbol;\n options: OnConnectedOptions;\n}\n\nexport interface LifecycleOptions {\n order?: number;\n}\nexport interface LifecycleMetadata {\n propertyKey: string | symbol;\n order?: number;\n}\n\n\nexport function onConnectedBefore(options: OnConnectedOptions): MethodDecorator;\nexport function onConnectedBefore(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedBefore(arg1?: OnConnectedOptions | Object, arg2?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n const decorator = (options: OnConnectedOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getOwnMetadata(ON_BEFORE_CONNECTED_METADATA_KEY, constructor) as OnConnectedMetadata[] | undefined;\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(ON_BEFORE_CONNECTED_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n };\n\n if (arg2) {\n return decorator({}, arg1!, arg2);\n }\n\n return (target: Object, propertyKey: string | symbol) => {\n decorator((arg1 as OnConnectedOptions) || {}, target, propertyKey);\n };\n}\n\nexport function onConnectedAfter(options: OnConnectedOptions): MethodDecorator;\nexport function onConnectedAfter(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedAfter(arg1?: OnConnectedOptions | Object, arg2?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n const decorator = (options: OnConnectedOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getOwnMetadata(ON_AFTER_CONNECTED_METADATA_KEY, constructor) as OnConnectedMetadata[] | undefined;\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(ON_AFTER_CONNECTED_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n };\n\n if (arg2) {\n return decorator({}, arg1!, arg2);\n }\n\n return (target: Object, propertyKey: string | symbol) => {\n decorator((arg1 as OnConnectedOptions) || {}, target, propertyKey);\n };\n}\n\n\n// function createLifecycleDecorator(metadataKey: symbol): ((options?: LifecycleOptions) => MethodDecorator) & MethodDecorator {\n// const decorator = (options?: LifecycleOptions): MethodDecorator => {\n// return (target: Object, propertyKey: string | symbol) => {\n// const constructor = target.constructor;\n// let list = ReflectUtils.getOwnMetadata(metadataKey, constructor) as LifecycleMetadata[];\n// if (!list) {\n// list = [];\n// ReflectUtils.defineMetadata(metadataKey, list, constructor);\n// }\n// list.push({ propertyKey, order: options?.order ?? 0 });\n// };\n// };\n//\n// // Support both @decorator and @decorator() syntax\n// return Object.assign(\n// (target: Object, propertyKey: string | symbol) => {\n// const constructor = target.constructor;\n// let list = ReflectUtils.getOwnMetadata(metadataKey, constructor) as LifecycleMetadata[];\n// if (!list) {\n// list = [];\n// ReflectUtils.defineMetadata(metadataKey, list, constructor);\n// }\n// list.push({ propertyKey, order: 0 });\n// },\n// { __isDecorator: true, __decorator: decorator }\n// ) as any;\n// }\n\n// Helper: bare @decorator \uC640 \uC635\uC158 @decorator({...}) (\uBE48 \uAD04\uD638 @decorator() \uB294 \uD0C0\uC785\uC5D0\uC11C \uB9C9\uC74C)\nfunction createLifecycleDecoratorWithOptions(metadataKey: symbol) {\n return function(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n if (propertyKey) {\n // Direct decorator usage: @decorator\n const constructor = (optionOrTarget as Object).constructor;\n let list = ReflectUtils.getOwnMetadata(metadataKey, constructor) as LifecycleMetadata[];\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(metadataKey, list, constructor);\n }\n list.push({ propertyKey, order: 0 });\n return;\n }\n\n // Decorator with options: @decorator({ order: 1 })\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getOwnMetadata(metadataKey, constructor) as LifecycleMetadata[];\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(metadataKey, list, constructor);\n }\n list.push({ propertyKey, order: (optionOrTarget as LifecycleOptions)?.order ?? 0 });\n };\n };\n}\n\nexport function onInitialize(options: LifecycleOptions): MethodDecorator;\nexport function onInitialize(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onInitialize(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_INITIALIZE_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport function onDisconnectedBefore(options: LifecycleOptions): MethodDecorator;\nexport function onDisconnectedBefore(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onDisconnectedBefore(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_BEFORE_DISCONNECTED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport function onDisconnectedAfter(options: LifecycleOptions): MethodDecorator;\nexport function onDisconnectedAfter(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onDisconnectedAfter(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_AFTER_DISCONNECTED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport const onDisconnected = onDisconnectedAfter;\n\nexport function onAdoptedBefore(options: LifecycleOptions): MethodDecorator;\nexport function onAdoptedBefore(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onAdoptedBefore(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_BEFORE_ADOPTED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport function onAdoptedAfter(options: LifecycleOptions): MethodDecorator;\nexport function onAdoptedAfter(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onAdoptedAfter(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_AFTER_ADOPTED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport const onAdopted = onAdoptedAfter;\n\nexport function onConnectedSwcApp(options: LifecycleOptions): MethodDecorator;\nexport function onConnectedSwcApp(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedSwcApp(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_CONNECTED_SWC_APP_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\nexport function onConnectedCompleted(options: LifecycleOptions): MethodDecorator;\nexport function onConnectedCompleted(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedCompleted(optionOrTarget?: LifecycleOptions | Object, propertyKey?: string | symbol): MethodDecorator | void {\n return createLifecycleDecoratorWithOptions(ON_CONNECTED_COMPLETED_METADATA_KEY)(optionOrTarget, propertyKey);\n}\n\n\n\n\n\nconst decorator = (options: OnConnectedAppendChildOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getOwnMetadata(ON_CONNECTED_BODY_METADATA_KEY, constructor) as OnConnectedAppendChildOptionsMetadata[] | undefined;\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(ON_CONNECTED_BODY_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n};\n\nexport function onConnectedBodyShadow(options: Omit<OnConnectedAppendChildOptions, 'useShadow'>): MethodDecorator; // \uD30C\uB77C\uBBF8\uD130\uC788\uC74C\nexport function onConnectedBodyShadow(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void; // \uD30C\uB77C\uBBF8\uD130\uC5C6\uC74C\nexport function onConnectedBodyShadow(optionOrTarget: Omit<OnConnectedAppendChildOptions, 'useShadow'> | Object, propertyKey?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n if (propertyKey) { // no parameter option @decorator\n return decorator({useShadow: true}, optionOrTarget!, propertyKey);\n }\n // parameter option @decorator({...})\n return (target: Object, propertyKey: string | symbol) => {\n decorator({...optionOrTarget??{}, useShadow: true}, target, propertyKey);\n };\n}\n\nexport function onConnectedBodyLight(options: Omit<OnConnectedAppendChildOptions, 'useShadow'>): MethodDecorator; // \uD30C\uB77C\uBBF8\uD130\uC788\uC74C\nexport function onConnectedBodyLight(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void; // \uD30C\uB77C\uBBF8\uD130\uC5C6\uC74C\nexport function onConnectedBodyLight(optionOrTarget: Omit<OnConnectedAppendChildOptions, 'useShadow'> | Object, propertyKey?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n if (propertyKey) { // no parameter option @decorator\n return decorator({useShadow: false}, optionOrTarget!, propertyKey);\n }\n // parameter option @decorator({...})\n return (target: Object, propertyKey: string | symbol) => {\n decorator({...optionOrTarget??{}, useShadow: false}, target, propertyKey);\n };\n}\nexport function onConnectedBody(options: OnConnectedAppendChildOptions): MethodDecorator;\nexport function onConnectedBody(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedBody(optionOrTarget: OnConnectedAppendChildOptions | Object, propertyKey?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n if (propertyKey) { // no parameter option @decorator\n return decorator({}, optionOrTarget!, propertyKey);\n }\n // parameter option @decorator({...})\n return (target: Object, propertyKey: string | symbol) => {\n decorator((optionOrTarget as OnConnectedAppendChildOptions) || {}, target, propertyKey);\n };\n}\n\n/**\n * \uD504\uB85C\uD1A0\uD0C0\uC785 \uCCB4\uC778\uC744 \uC21C\uD68C\uD558\uBA70 \uBAA8\uB4E0 \uB77C\uC774\uD504\uC0AC\uC774\uD074 \uBA54\uC11C\uB4DC\uB97C \uC218\uC9D1\uD569\uB2C8\uB2E4.\n */\nexport const findAllLifecycleMetadata = (target: any, metadataKey: symbol): LifecycleMetadata[] => {\n const constructor = typeof target === 'function' ? target : target.constructor;\n const results = ReflectUtils.findAllMetadata<LifecycleMetadata[]>(metadataKey, constructor).flat();\n // Sort by order (default 0 if not specified)\n return [...results].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n};\n\nexport const findAllOnConnectedMetadata = (target: any): OnConnectedAppendChildOptionsMetadata[] => {\n const constructor = typeof target === 'function' ? target : target.constructor;\n const results = ReflectUtils.findAllMetadata<OnConnectedAppendChildOptionsMetadata[]>(ON_CONNECTED_BODY_METADATA_KEY, constructor).flat();\n // Sort by order (default 0 if not specified)\n return [...results].sort((a, b) => {\n const orderA = a.options?.order ?? 0;\n const orderB = b.options?.order ?? 0;\n return orderA - orderB;\n });\n};\n\nexport const findAllOnConnectedBeforeMetadata = (target: any): OnConnectedMetadata[] => {\n const constructor = typeof target === 'function' ? target : target.constructor;\n const results = ReflectUtils.findAllMetadata<OnConnectedMetadata[]>(ON_BEFORE_CONNECTED_METADATA_KEY, constructor).flat();\n // Sort by order\n return [...results].sort((a, b) => (a.options?.order ?? 0) - (b.options?.order ?? 0));\n};\n\nexport const findAllOnConnectedAfterMetadata = (target: any): OnConnectedMetadata[] => {\n const constructor = typeof target === 'function' ? target : target.constructor;\n const results = ReflectUtils.findAllMetadata<OnConnectedMetadata[]>(ON_AFTER_CONNECTED_METADATA_KEY, constructor).flat();\n // Sort by order\n return [...results].sort((a, b) => (a.options?.order ?? 0) - (b.options?.order ?? 0));\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["decorator", "propertyKey"]
7
7
  }
@@ -29,92 +29,81 @@ __export(mutationObserver_exports, {
29
29
  mutationObserverDelegateLight: () => mutationObserverDelegateLight,
30
30
  mutationObserverDelegateShadow: () => mutationObserverDelegateShadow,
31
31
  mutationObserverLight: () => mutationObserverLight,
32
- mutationObserverShadow: () => mutationObserverShadow,
33
- mutationObserverThis: () => mutationObserverThis
32
+ mutationObserverShadow: () => mutationObserverShadow
34
33
  });
35
34
  module.exports = __toCommonJS(mutationObserver_exports);
36
35
  var import_core = require("@dooboostore/core");
36
+ var import_parameter = require("./parameter");
37
+ var import_types2 = require("../types");
37
38
  var import_Utils = require("../utils/Utils");
38
39
  const MUTATION_OBSERVER_METADATA_KEY = Symbol.for("simple-web-component:mutation-observer");
39
- function mutationObserver(selectorOrOptions, maybeOptions) {
40
- return (targetObj, propertyKey, descriptor) => {
41
- let selector = "$this";
42
- let options = {};
43
- if (typeof selectorOrOptions === "string" || typeof selectorOrOptions === "function") {
44
- selector = selectorOrOptions;
45
- options = maybeOptions ?? {};
46
- } else {
47
- selector = "$this";
48
- options = selectorOrOptions ?? {};
49
- }
50
- const constructor = targetObj.constructor;
51
- let observers = import_core.ReflectUtils.getMetadata(MUTATION_OBSERVER_METADATA_KEY, constructor);
52
- if (!observers) {
53
- observers = [];
54
- import_core.ReflectUtils.defineMetadata(MUTATION_OBSERVER_METADATA_KEY, observers, constructor);
55
- }
56
- observers.push({ propertyKey, selector, options });
57
- };
58
- }
59
- function mutationObserverThis(options) {
60
- return mutationObserver("$this", options);
61
- }
62
- function mutationObserverDelegateLight(selectorOrOptions, maybeOptions) {
63
- if (typeof selectorOrOptions === "string" || typeof selectorOrOptions === "function") {
64
- return mutationObserver(selectorOrOptions, { ...maybeOptions ?? {}, root: "light", delegate: true });
40
+ const applyMutationObserver = (selector, options, targetObj, propertyKey) => {
41
+ const constructor = targetObj.constructor;
42
+ let observers = import_core.ReflectUtils.getOwnMetadata(MUTATION_OBSERVER_METADATA_KEY, constructor);
43
+ if (!observers) {
44
+ observers = [];
45
+ import_core.ReflectUtils.defineMetadata(MUTATION_OBSERVER_METADATA_KEY, observers, constructor);
65
46
  }
66
- return mutationObserver({ ...selectorOrOptions ?? {}, root: "light", delegate: true });
67
- }
68
- function mutationObserverDelegateShadow(selectorOrOptions, maybeOptions) {
47
+ observers.push({ propertyKey, selector, options });
48
+ };
49
+ const resolveMutationObserverArgs = (selectorOrOptions, maybeOptions, extra) => {
69
50
  if (typeof selectorOrOptions === "string" || typeof selectorOrOptions === "function") {
70
- return mutationObserver(selectorOrOptions, { ...maybeOptions ?? {}, root: "shadow", delegate: true });
51
+ return { selector: selectorOrOptions, options: { ...maybeOptions ?? {}, ...extra } };
71
52
  }
72
- return mutationObserver({ ...selectorOrOptions ?? {}, root: "shadow", delegate: true });
73
- }
74
- function mutationObserverDelegateAll(selectorOrOptions, maybeOptions) {
75
- if (typeof selectorOrOptions === "string" || typeof selectorOrOptions === "function") {
76
- return mutationObserver(selectorOrOptions, { ...maybeOptions ?? {}, root: "all", delegate: true });
53
+ return { selector: "$this", options: { ...selectorOrOptions ?? {}, ...extra } };
54
+ };
55
+ const dispatchMutationObserver = (selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, extra) => {
56
+ if ((typeof maybeOptionsOrPropertyKey === "string" || typeof maybeOptionsOrPropertyKey === "symbol") && descriptor !== void 0) {
57
+ applyMutationObserver("$this", { subtree: true, ...extra }, selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey);
58
+ return;
77
59
  }
78
- return mutationObserver({ ...selectorOrOptions ?? {}, root: "all", delegate: true });
60
+ const { selector, options } = resolveMutationObserverArgs(
61
+ selectorOrOptionsOrTarget,
62
+ maybeOptionsOrPropertyKey,
63
+ extra
64
+ );
65
+ return (targetObj, propertyKey) => {
66
+ applyMutationObserver(selector, options, targetObj, propertyKey);
67
+ };
68
+ };
69
+ function mutationObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor) {
70
+ return dispatchMutationObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, {});
79
71
  }
80
- function mutationObserverDelegate(selectorOrOptions, maybeOptions) {
81
- if (typeof selectorOrOptions === "string" || typeof selectorOrOptions === "function") {
82
- return mutationObserver(selectorOrOptions, { ...maybeOptions ?? {}, root: "auto", delegate: true });
83
- }
84
- return mutationObserver({ ...selectorOrOptions ?? {}, root: "auto", delegate: true });
72
+ function mutationObserverDelegateLight(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor) {
73
+ return dispatchMutationObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, { root: "light", delegate: true });
85
74
  }
86
- function mutationObserverLight(selectorOrOptions, maybeOptions) {
87
- if (typeof selectorOrOptions === "string" || typeof selectorOrOptions === "function") {
88
- return mutationObserver(selectorOrOptions, { ...maybeOptions ?? {}, root: "light" });
89
- }
90
- return mutationObserver({ ...selectorOrOptions ?? {}, root: "light" });
75
+ function mutationObserverDelegateShadow(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor) {
76
+ return dispatchMutationObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, { root: "shadow", delegate: true });
91
77
  }
92
- function mutationObserverShadow(selectorOrOptions, maybeOptions) {
93
- if (typeof selectorOrOptions === "string" || typeof selectorOrOptions === "function") {
94
- return mutationObserver(selectorOrOptions, { ...maybeOptions ?? {}, root: "shadow" });
95
- }
96
- return mutationObserver({ ...selectorOrOptions ?? {}, root: "shadow" });
78
+ function mutationObserverDelegateAll(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor) {
79
+ return dispatchMutationObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, { root: "all", delegate: true });
97
80
  }
98
- function mutationObserverAll(selectorOrOptions, maybeOptions) {
99
- if (typeof selectorOrOptions === "string" || typeof selectorOrOptions === "function") {
100
- return mutationObserver(selectorOrOptions, { ...maybeOptions ?? {}, root: "all" });
101
- }
102
- return mutationObserver({ ...selectorOrOptions ?? {}, root: "all" });
81
+ function mutationObserverDelegate(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor) {
82
+ return dispatchMutationObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, { root: "auto", delegate: true });
83
+ }
84
+ function mutationObserverLight(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor) {
85
+ return dispatchMutationObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, { root: "light" });
86
+ }
87
+ function mutationObserverShadow(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor) {
88
+ return dispatchMutationObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, { root: "shadow" });
89
+ }
90
+ function mutationObserverAll(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor) {
91
+ return dispatchMutationObserver(selectorOrOptionsOrTarget, maybeOptionsOrPropertyKey, descriptor, { root: "all" });
103
92
  }
104
93
  function getMutationObserverMetadata(target) {
105
- const constructor = target instanceof Function ? target : target.constructor;
106
- return import_core.ReflectUtils.getMetadata(MUTATION_OBSERVER_METADATA_KEY, constructor);
94
+ const constructor = typeof target === "function" ? target : target.constructor;
95
+ return import_core.ReflectUtils.findAllMetadata(MUTATION_OBSERVER_METADATA_KEY, constructor).flat();
107
96
  }
108
97
  class MutationObserverLifeCycler {
109
98
  constructor() {
110
99
  __publicField(this, "removeObserverCallbacksMap", /* @__PURE__ */ new WeakMap());
111
100
  }
112
- onConnected(helperHostSet) {
101
+ onConnected(helperHostSet, _set, scope) {
113
102
  const inst = helperHostSet.$this;
114
103
  const currentWin = helperHostSet.$w;
115
- const removeObserverCallbacks = [];
104
+ const removeObserverCallbacks = scope === "rest" && this.removeObserverCallbacksMap.get(inst) || [];
116
105
  this.removeObserverCallbacksMap.set(inst, removeObserverCallbacks);
117
- const allMeta = getMutationObserverMetadata(inst) ?? [];
106
+ const allMeta = (getMutationObserverMetadata(inst) ?? []).filter((m) => (0, import_types2.inObserverScope)(m, scope));
118
107
  if (allMeta.length === 0) return;
119
108
  const shadowMetas = allMeta.filter((m) => {
120
109
  const r = m.options.root || "auto";
@@ -139,11 +128,13 @@ class MutationObserverLifeCycler {
139
128
  if (!init.childList && !init.attributes && !init.characterData) init.childList = true;
140
129
  return init;
141
130
  };
142
- const fnObservedSets = /* @__PURE__ */ new Map();
131
+ const observedNodes = /* @__PURE__ */ new Map();
132
+ const owns = (meta, m) => (observedNodes.get(meta) ?? []).some((o) => o === m.target || !!meta.options.subtree && o.contains(m.target));
143
133
  const callback = (mutations, obs) => {
144
134
  for (const meta of metas) {
145
135
  const { selector, options } = meta;
146
136
  let matchedEls = [];
137
+ let records = mutations;
147
138
  const typeMatches = (m) => {
148
139
  const has = !!(options.childList || options.attributes || options.characterData);
149
140
  if (m.type === "childList") return has ? !!options.childList : true;
@@ -151,7 +142,7 @@ class MutationObserverLifeCycler {
151
142
  if (m.type === "characterData") return !!options.characterData;
152
143
  return true;
153
144
  };
154
- const collect = (matchesSel) => mutations.flatMap((m) => {
145
+ const collect = (matchesSel, records2 = mutations) => records2.flatMap((m) => {
155
146
  if (!typeMatches(m)) return [];
156
147
  const els = [];
157
148
  if (matchesSel(m.target)) els.push(m.target);
@@ -159,33 +150,55 @@ class MutationObserverLifeCycler {
159
150
  Array.from(m.removedNodes || []).filter(matchesSel).forEach((n) => els.push(n));
160
151
  return els;
161
152
  });
162
- if (options.delegate && typeof selector === "string") {
163
- const isThis = selector === "$this" || selector === "";
153
+ if (typeof selector === "string" && (selector === "$this" || selector === "")) {
154
+ records = mutations.filter((m) => typeMatches(m) && owns(meta, m));
155
+ matchedEls = records.length ? [inst] : [];
156
+ } else if (options.delegate && typeof selector === "string") {
164
157
  matchedEls = collect((n) => {
165
158
  if (!n || n.nodeType !== 1) return false;
166
- if (isThis) return true;
167
159
  const el = n;
168
160
  return el.matches?.(selector) || !!el.closest?.(selector);
169
161
  });
170
162
  } else if (typeof selector === "string") {
171
- const isThis = selector === "$this" || selector === "";
172
- matchedEls = collect((n) => {
163
+ records = mutations.filter((m) => owns(meta, m));
164
+ matchedEls = records.length ? collect((n) => {
173
165
  if (!n || n.nodeType !== 1) return false;
174
- if (isThis) return true;
175
166
  return n.matches?.(selector);
176
- });
167
+ }, records) : [];
177
168
  } else if (typeof selector === "function") {
178
- const set = fnObservedSets.get(meta);
179
- matchedEls = mutations.filter((m) => typeMatches(m)).map((m) => m.target).filter((t) => t && t.nodeType === 1 && (set ? set.has(t) : false));
169
+ records = mutations.filter((m) => typeMatches(m) && owns(meta, m));
170
+ matchedEls = (observedNodes.get(meta) ?? []).filter((o) => records.some((m) => o === m.target || !!options.subtree && o.contains(m.target)));
180
171
  } else {
181
172
  matchedEls = mutations.filter((m) => typeMatches(m)).map((m) => m.target).filter((t) => t && t.nodeType === 1);
182
173
  }
183
174
  if (matchedEls.length === 0) continue;
184
- if (options.filter) {
185
- if (!options.filter(matchedEls, { currentThis: inst, helper: helperHostSet })) continue;
186
- }
187
- const hostSet = import_Utils.SwcUtils.getHostSet(inst);
188
- inst[meta.propertyKey](matchedEls, mutations, obs, { ...hostSet, $root: root });
175
+ void (async () => {
176
+ const helper = import_Utils.SwcUtils.getHelperAndHostSet(inst);
177
+ if (options.filter && !await options.filter(matchedEls, { currentThis: inst, helper })) return;
178
+ const hostSet = import_Utils.SwcUtils.getHostSet(inst);
179
+ const helperSet = import_Utils.SwcUtils.getHelperSet(helperHostSet.$w);
180
+ const legacyArgs = [matchedEls, records, obs, { ...hostSet, $root: root }];
181
+ const buildArgs = (beforeReturn) => (0, import_parameter.buildSwcParameterArgs)(inst, meta.propertyKey, {
182
+ hostSet,
183
+ helperHostSet: helper,
184
+ helperSet,
185
+ mutationObserverBeforeReturn: beforeReturn
186
+ }, [...legacyArgs, beforeReturn]);
187
+ let args = buildArgs(void 0);
188
+ if (options.before) {
189
+ const br = await options.before(matchedEls, { currentThis: inst, helper });
190
+ args = buildArgs(br);
191
+ }
192
+ let result, error;
193
+ try {
194
+ result = await inst[meta.propertyKey](...args);
195
+ } catch (e) {
196
+ error = e;
197
+ } finally {
198
+ if (options.finally) await options.finally(matchedEls, { currentThis: inst, helper }, { args, result, error });
199
+ }
200
+ if (error) throw error;
201
+ })().catch((e) => console.error("[SWC] mutationObserver handler error:", e));
189
202
  }
190
203
  };
191
204
  const observeTargets = [];
@@ -196,23 +209,17 @@ class MutationObserverLifeCycler {
196
209
  const { selector, options } = m;
197
210
  const mInit = initFrom(options);
198
211
  if (typeof selector === "string") {
199
- if (selector === "$this" || selector === "") {
200
- observeTargets.push({ target: root, options: mInit });
201
- } else {
202
- root.querySelectorAll(selector).forEach((el) => observeTargets.push({ target: el, options: mInit }));
203
- }
212
+ const nodes = selector === "$this" || selector === "" ? [root] : Array.from(root.querySelectorAll(selector));
213
+ for (const n of nodes) observeTargets.push({ target: n, options: mInit });
214
+ observedNodes.set(m, nodes);
204
215
  } else if (typeof selector === "function") {
205
216
  const res = selector(inst, helperHostSet);
206
217
  let targets = [];
207
218
  if (res instanceof currentWin.HTMLElement) targets = [res];
208
219
  else if (res instanceof currentWin.NodeList) targets = Array.from(res).filter((e) => e instanceof currentWin.HTMLElement);
209
220
  else if (Array.isArray(res)) targets = res.filter((e) => e instanceof currentWin.HTMLElement);
210
- const set = /* @__PURE__ */ new WeakSet();
211
- for (const el of targets) {
212
- set.add(el);
213
- observeTargets.push({ target: el, options: mInit });
214
- }
215
- fnObservedSets.set(m, set);
221
+ for (const el of targets) observeTargets.push({ target: el, options: mInit });
222
+ observedNodes.set(m, targets);
216
223
  }
217
224
  }
218
225
  for (const m of metas) {