@dooboostore/simple-web-component 1.0.54 → 1.0.55

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 (121) hide show
  1. package/README.md +308 -56
  2. package/dist/cjs/decorators/addEventListener.js +37 -14
  3. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  4. package/dist/cjs/decorators/applyAttribute.js +6 -3
  5. package/dist/cjs/decorators/applyAttribute.js.map +2 -2
  6. package/dist/cjs/decorators/applyClass.js +18 -2
  7. package/dist/cjs/decorators/applyClass.js.map +2 -2
  8. package/dist/cjs/decorators/applyNode.js +10 -3
  9. package/dist/cjs/decorators/applyNode.js.map +2 -2
  10. package/dist/cjs/decorators/changedAttribute.js +2 -5
  11. package/dist/cjs/decorators/changedAttribute.js.map +2 -2
  12. package/dist/cjs/decorators/elementDefine.js +13 -2
  13. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  14. package/dist/cjs/decorators/eventMedia.js +2 -5
  15. package/dist/cjs/decorators/eventMedia.js.map +2 -2
  16. package/dist/cjs/decorators/fetch.js +216 -82
  17. package/dist/cjs/decorators/fetch.js.map +3 -3
  18. package/dist/cjs/decorators/index.js +1 -0
  19. package/dist/cjs/decorators/index.js.map +2 -2
  20. package/dist/cjs/decorators/intersectionObserver.js +3 -6
  21. package/dist/cjs/decorators/intersectionObserver.js.map +2 -2
  22. package/dist/cjs/decorators/mutationObserver.js +3 -6
  23. package/dist/cjs/decorators/mutationObserver.js.map +2 -2
  24. package/dist/cjs/decorators/parameter.js +197 -33
  25. package/dist/cjs/decorators/parameter.js.map +3 -3
  26. package/dist/cjs/decorators/persistState.js +474 -0
  27. package/dist/cjs/decorators/persistState.js.map +7 -0
  28. package/dist/cjs/decorators/resizeObserver.js +3 -6
  29. package/dist/cjs/decorators/resizeObserver.js.map +2 -2
  30. package/dist/cjs/decorators/setInterval.js +2 -5
  31. package/dist/cjs/decorators/setInterval.js.map +2 -2
  32. package/dist/cjs/decorators/setTimeout.js +2 -5
  33. package/dist/cjs/decorators/setTimeout.js.map +2 -2
  34. package/dist/cjs/decorators/subscribeSwcAppMessage.js.map +1 -1
  35. package/dist/cjs/elements/SwcAppMixin.js +50 -2
  36. package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
  37. package/dist/esm/decorators/addEventListener.js +38 -15
  38. package/dist/esm/decorators/addEventListener.js.map +2 -2
  39. package/dist/esm/decorators/applyAttribute.js +6 -3
  40. package/dist/esm/decorators/applyAttribute.js.map +2 -2
  41. package/dist/esm/decorators/applyClass.js +18 -2
  42. package/dist/esm/decorators/applyClass.js.map +2 -2
  43. package/dist/esm/decorators/applyNode.js +10 -3
  44. package/dist/esm/decorators/applyNode.js.map +2 -2
  45. package/dist/esm/decorators/changedAttribute.js +3 -6
  46. package/dist/esm/decorators/changedAttribute.js.map +2 -2
  47. package/dist/esm/decorators/elementDefine.js +15 -4
  48. package/dist/esm/decorators/elementDefine.js.map +2 -2
  49. package/dist/esm/decorators/eventMedia.js +3 -6
  50. package/dist/esm/decorators/eventMedia.js.map +2 -2
  51. package/dist/esm/decorators/fetch.js +216 -82
  52. package/dist/esm/decorators/fetch.js.map +3 -3
  53. package/dist/esm/decorators/index.js +1 -0
  54. package/dist/esm/decorators/index.js.map +2 -2
  55. package/dist/esm/decorators/intersectionObserver.js +4 -7
  56. package/dist/esm/decorators/intersectionObserver.js.map +2 -2
  57. package/dist/esm/decorators/mutationObserver.js +4 -7
  58. package/dist/esm/decorators/mutationObserver.js.map +2 -2
  59. package/dist/esm/decorators/parameter.js +197 -33
  60. package/dist/esm/decorators/parameter.js.map +3 -3
  61. package/dist/esm/decorators/persistState.js +455 -0
  62. package/dist/esm/decorators/persistState.js.map +7 -0
  63. package/dist/esm/decorators/resizeObserver.js +4 -7
  64. package/dist/esm/decorators/resizeObserver.js.map +2 -2
  65. package/dist/esm/decorators/setInterval.js +3 -6
  66. package/dist/esm/decorators/setInterval.js.map +2 -2
  67. package/dist/esm/decorators/setTimeout.js +3 -6
  68. package/dist/esm/decorators/setTimeout.js.map +2 -2
  69. package/dist/esm/decorators/subscribeSwcAppMessage.js.map +1 -1
  70. package/dist/esm/elements/SwcAppMixin.js +51 -3
  71. package/dist/esm/elements/SwcAppMixin.js.map +2 -2
  72. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +3226 -2391
  73. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  74. package/dist/types/decorators/addEventListener.d.ts +15 -0
  75. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  76. package/dist/types/decorators/applyAttribute.d.ts +1 -0
  77. package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
  78. package/dist/types/decorators/applyClass.d.ts.map +1 -1
  79. package/dist/types/decorators/applyNode.d.ts +4 -2
  80. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  81. package/dist/types/decorators/changedAttribute.d.ts.map +1 -1
  82. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  83. package/dist/types/decorators/eventMedia.d.ts.map +1 -1
  84. package/dist/types/decorators/fetch.d.ts +52 -31
  85. package/dist/types/decorators/fetch.d.ts.map +1 -1
  86. package/dist/types/decorators/index.d.ts +1 -0
  87. package/dist/types/decorators/index.d.ts.map +1 -1
  88. package/dist/types/decorators/intersectionObserver.d.ts.map +1 -1
  89. package/dist/types/decorators/mutationObserver.d.ts.map +1 -1
  90. package/dist/types/decorators/parameter.d.ts +169 -31
  91. package/dist/types/decorators/parameter.d.ts.map +1 -1
  92. package/dist/types/decorators/persistState.d.ts +66 -0
  93. package/dist/types/decorators/persistState.d.ts.map +1 -0
  94. package/dist/types/decorators/resizeObserver.d.ts.map +1 -1
  95. package/dist/types/decorators/setInterval.d.ts.map +1 -1
  96. package/dist/types/decorators/setTimeout.d.ts.map +1 -1
  97. package/dist/types/decorators/subscribeSwcAppMessage.d.ts +1 -1
  98. package/dist/types/decorators/subscribeSwcAppMessage.d.ts.map +1 -1
  99. package/dist/types/elements/SwcAppMixin.d.ts +12 -0
  100. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  101. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +3226 -2391
  102. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  103. package/package.json +3 -3
  104. package/src/decorators/addEventListener.ts +23 -15
  105. package/src/decorators/applyAttribute.ts +8 -3
  106. package/src/decorators/applyClass.ts +22 -2
  107. package/src/decorators/applyNode.ts +18 -6
  108. package/src/decorators/changedAttribute.ts +3 -4
  109. package/src/decorators/elementDefine.ts +19 -7
  110. package/src/decorators/eventMedia.ts +3 -6
  111. package/src/decorators/fetch.ts +270 -140
  112. package/src/decorators/index.ts +1 -0
  113. package/src/decorators/intersectionObserver.ts +4 -5
  114. package/src/decorators/mutationObserver.ts +4 -5
  115. package/src/decorators/parameter.ts +326 -42
  116. package/src/decorators/persistState.ts +408 -0
  117. package/src/decorators/resizeObserver.ts +4 -5
  118. package/src/decorators/setInterval.ts +3 -4
  119. package/src/decorators/setTimeout.ts +3 -4
  120. package/src/decorators/subscribeSwcAppMessage.ts +1 -1
  121. package/src/elements/SwcAppMixin.ts +64 -5
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/elementDefine.ts"],
4
- "sourcesContent": ["import {ActionExpression, FunctionUtils, ReflectUtils} from '@dooboostore/core';\nimport {EventListenerLifeCycler} from './addEventListener';\nimport {MutationObserverLifeCycler} from './mutationObserver';\nimport {ResizeObserverLifeCycler} from './resizeObserver';\nimport {IntersectionObserverLifeCycler} from './intersectionObserver';\nimport {findAllLifecycleMetadata, findAllOnConnectedAfterMetadata, findAllOnConnectedBeforeMetadata, findAllOnConnectedMetadata, ON_AFTER_ADOPTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_CONNECTED_COMPLETED_METADATA_KEY, ON_INITIALIZE_METADATA_KEY} from './lifecycles';\nimport {EmitCustomEventLifeCycler} from './emitCustomEvent';\nimport {ChangedAttributeLifeCycler} from './changedAttribute';\nimport {findAllAttributeApplyMetadata, findAllAttributeMetadata} from './applyAttribute';\nimport {getQueryMetadata, getQueryAllMetadata} from './query';\nimport {SwcUtils} from '../utils/Utils';\nimport {DOM_EVENT_NAMES, HTML_TAG_ENTRIES} from '../config/config';\nimport {SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport {FirstCheckMaker} from '@dooboostore/simple-boot';\nimport {buildSwcParameterArgs, getParameterMetadata} from './parameter';\nimport {ElementDefineLifeCycler, HelperHostSet, HostSet, InjectSituationType, IntersectionObserverSet, MutationObserverSet, MutationObserverSetEntry, ObserverScope, OnConnectedResult, ResizeObserverSet, ResizeObserverSetEntry, SwcRootType} from '../types';\nimport {ConvertUtils, ElementApply} from '@dooboostore/core-web';\nimport {isSSR} from \"../elements/SwcAppMixin\";\nimport {findAllStateMetadata} from \"./state\";\nimport {findAllAroundMetadata} from \"./around\";\nimport {findAllPropertyMetadata} from \"./applyProperty\";\nimport {MessageSubscribeLifeCycler} from \"./subscribeSwcAppMessage\";\nimport {RouteSubscribeLifeCycler} from \"./subscribeSwcAppRouteChange\";\nimport {SetIntervalLifeCycler} from \"./setInterval\";\nimport {SetTimeoutLifeCycler} from \"./setTimeout\";\nimport {RequestAnimationFrameLifeCycler} from \"./requestAnimationFrame\";\nimport {EventMediaLifeCycler} from \"./eventMedia\";\nimport {FetchLifeCycler} from \"./fetch\";\n\n// --- Core Interfaces & Types ---\n\nexport const ELEMENT_CONFIG_KEY = Symbol.for('simple-web-component:element-config');\n\nexport interface ElementConfig {\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: any;\n window?: Window;\n useShadow?: boolean | 'open' | 'closed';\n}\n\nexport interface ElementMetadata extends Omit<ElementConfig, 'window'> {\n name: string;\n window: Window;\n}\n\nexport const getElementConfig = (target: any): ElementMetadata | undefined => {\n const constructor = typeof target === 'function' ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n\nexport const ensureInit = (inst: any) => { // HTMLElement\n if (!inst.__swc_initialized) {\n inst._swcId = inst?.getAttribute?.('swc-use-ssr') ?? 's' + Math.random().toString(36).substring(2, 11).toLowerCase();\n inst._emitHandlers = new Map();\n inst.__swc_initialized = true;\n // const attributeList = findAllQ(inst);\n // attributeList.forEach(meta => {\n // delete (inst as any)[meta.propertyKey];\n // });\n\n const target = typeof inst === 'function' ? inst : inst.constructor;\n\n // \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n // \u2551 decorator \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2551\n // \u2551 \u2551\n // \u2551 \uC774\uC720: own property\uAC00 \uC788\uC73C\uBA74 prototype\uC758 getter/setter\uB294 \uC808\uB300 \uC548 \uD0C4\uB2E4 \u2551\n // \u2551 1. TypeScript\uB294 \uCD08\uAE30\uAC12\uC774 \uC788\uB294 \uD544\uB4DC\uB97C constructor\uC5D0\uC11C own property\uB85C \uC0DD\uC131 \u2551\n // \u2551 @attributeThis('id') myId: string = \"default\" \u2192 this.myId = \"default\" \u2551\n // \u2551 \u2551\n // \u2551 2. JavaScript\uC758 property lookup\uC740 own property\uB97C \uBA3C\uC800 \uCC3E\uC74C \u2551\n // \u2551 - this.myId \uC811\uADFC \u2551\n // \u2551 - 1\uC21C\uC704: instance\uC758 own property \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uADF8\uAC83 \uBC18\uD658 \u2551\n // \u2551 - 2\uC21C\uC704: prototype\uC758 getter \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uD638\uCD9C \u2551\n // \u2551 \u2551\n // \u2551 3. own property\uAC00 \uC788\uC73C\uBA74 prototype\uC758 getter\uB294 \uC808\uB300 \uD638\uCD9C\uB418\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \uB530\uB77C\uC11C getter\uC5D0\uC11C \uC815\uC758\uB41C DOM \uB3D9\uAE30\uD654 \uB85C\uC9C1\uC774 \uC791\uB3D9\uD558\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \u2551\n // \u2551 4. own property\uB97C \uC0AD\uC81C\uD558\uBA74 JavaScript\uAC00 prototype\uC758 getter\uB97C \uCC3E\uAC8C \uB428 \u2551\n // \u2551 \u2192 getter \uD638\uCD9C\uB428 \u2192 DOM \uC18D\uC131 \uAC12 \uB3D9\uAE30\uD654\uB428 \u2551\n // \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n // \uD568\uC218\uB294 decorator\uC5D0\uC11C \uAC12\uC790\uCCB4\uB97C descriptor.value = function (...args: any[]) {...\n\n // @attribute \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter/setter \uC791\uB3D9\n // const attributeList = findAllAttributeMetadata(target);\n const attributeAllList = findAllAttributeMetadata(target).filter(it => it.type === 'property');\n if (attributeAllList) {\n attributeAllList.forEach(meta => {\n // const initUserData = (inst as any)[meta.propertyKey];\n delete (inst as any)[meta.propertyKey];\n // (inst as any)[meta.propertyKey] = initUserData;\n });\n }\n\n // @query \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryList = getQueryMetadata(target);\n if (queryList) {\n queryList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n\n // @queryAll \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryAllList = getQueryAllMetadata(target);\n if (queryAllList) {\n queryAllList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n // const slotAllList = findAllApplySlotMetadata(target);\n // if (slotAllList) {\n // slotAllList.filter(it => it.type === 'property').forEach(meta => {\n // delete (inst as any)[meta.propertyKey];\n // });\n // }\n\n\n const propertyAllList = findAllPropertyMetadata(target).filter(it => it.type === 'property');\n if (propertyAllList) {\n propertyAllList.forEach(meta => {\n // getter\uAC00 \uC5C6\uC73C\uBA74(\uC21C\uC218 \uD544\uB4DC: declare\u00B7\uD558\uC774\uB4DC\uB808\uC774\uC158 \uAC12 \uB4F1) \uC9C0\uC6B0\uC9C0 \uC54A\uC74C.\n // getter\uAC00 \uC788\uC744 \uB54C\uB9CC own \uAC12\uC744 \uC9C0\uC6CC getter\uAC00 DOM\uC744 \uC0C8\uB85C \uC77D\uAC8C \uD55C\uB2E4.\n let proto = Object.getPrototypeOf(inst);\n let hasGetter = false;\n while (proto && proto !== Object.prototype) {\n const d = Object.getOwnPropertyDescriptor(proto, meta.propertyKey);\n if (d) {\n hasGetter = typeof d.get === 'function';\n break;\n }\n proto = Object.getPrototypeOf(proto);\n }\n if (!hasGetter) return;\n delete (inst as any)[meta.propertyKey];\n });\n }\n\n const stateAllList = findAllStateMetadata(target);\n if (stateAllList) {\n stateAllList.forEach(meta => {\n // getter\uB85C \uC77D\uC73C\uBA74 \uC548 \uB428 \u2014 own\uC774 \uB0A8\uC544\uC788\uC744 \uB54C getter\uAC00 \uC774\uC8FC\uAE4C\uC9C0 \uD574\uBC84\uB824\n // setter \uC7AC\uB300\uC785\uACFC \uD569\uCE58\uBA74 DOM \uB3D9\uAE30\uD654\uAC00 \uC911\uBCF5 \uC2E4\uD589\uB428. descriptor\uC5D0\uC11C raw\uB97C \uAEBC\uB0B8\uB2E4.\n // own\uC774 \uC5C6\uC73C\uBA74(\uC774\uBBF8 \uC815\uB9AC\uB428) \uC2A4\uD0B5.\n const own = Object.getOwnPropertyDescriptor(inst, meta.propertyKey);\n if (own && 'value' in own) {\n const initUserData = own.value;\n delete (inst as any)[meta.propertyKey];\n (inst as any)[meta.propertyKey] = initUserData;\n }\n });\n }\n\n // @around \uD544\uB4DC\uC758 own property \uC815\uB9AC \u2192 setter \uACBD\uC720\uB85C \uC7AC\uB300\uC785 (\uCD08\uAE30\uAC12\uC5D0 set() \uC801\uC6A9).\n // attribute/query\uCC98\uB7FC plain delete\uD558\uBA74 \uCD08\uAE30\uAC12\uC774 \uB0A0\uC544\uAC04\uB2E4 \u2014 \uBC18\uB4DC\uC2DC \uC0B4\uB824\uC11C setter\uB85C \uB123\uB294\uB2E4.\n // getter\uB85C \uC77D\uC73C\uBA74 \uC548 \uB428(before \uBCC0\uD658\uAC12\uC774 \uC11E\uC784) \u2014 descriptor\uC5D0\uC11C raw\uB97C \uAEBC\uB0B8\uB2E4.\n // own\uC774 \uC5C6\uC73C\uBA74(\uC774\uBBF8 \uC815\uB9AC\uB428) \uC2A4\uD0B5 \u2014 \uADF8\uB798\uC57C \uC911\uBCF5 \uBCC0\uD658\uC774 \uC548 \uC0DD\uAE34\uB2E4.\n const aroundAllList = findAllAroundMetadata(target);\n if (aroundAllList) {\n aroundAllList.forEach(meta => {\n const own = Object.getOwnPropertyDescriptor(inst, meta.propertyKey);\n if (own && 'value' in own) {\n const initUserData = own.value;\n delete (inst as any)[meta.propertyKey];\n (inst as any)[meta.propertyKey] = initUserData;\n }\n });\n }\n\n // Call constructor script if present\n const hostSet = SwcUtils.getHostSet(inst);\n const appHosts = SwcUtils.findAllAppHostsIncludingSelfDirect(inst);\n inst._executeSwcScript?.('swc-on-constructor', hostSet);\n\n // Call @onInitialize lifecycle methods\n const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);\n for (const m of cMethods) inst._invokeLifecycleMethod(m.propertyKey, hostSet);\n }\n};\n\n\n// \uD6D4 \uC774\uAC8C\uB9DE\uB098?? global\uB85C \uAD00\uB9AC\uD558\uB294\uAC8C..\uD6D4... \uC65C\uC774\uB807\uAC8C \uD588\uC744\uAE4C..\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n// \uC5EC\uAE30\uC5D0\uC11C \uC911\uBCF5 \uD638\uCD9C\uC548\uB418\uAC8C \uC798\uB9C9\uC544\uC900\uB2E4 ..\nconst handleGlobalSwcEvent = async (event: Event) => {\n if ((event as any).__swc_handled) return;\n const path = event.composedPath();\n const type = event.type;\n const attrName = `swc-on-${type}`;\n\n for (const node of path) {\n if (!(node instanceof HTMLElement)) continue;\n const script = node.getAttribute?.(attrName);\n if (script && !getElementConfig(node)) {\n const host: any = SwcUtils.findNearestSwcAncestorHost(node);\n if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === 'function') {\n await host.__swc_executeAttributeEvent(node, attrName, script, event);\n (event as any).__swc_handled = true;\n break;\n }\n }\n }\n};\n\nfunction buildEnv(configWindow: Window) {\n const win: Window = configWindow;\n const doc: Document = win?.document;\n const builtInTagMap = new Map<any, string>();\n for (const [cls, tag] of HTML_TAG_ENTRIES) {\n if ((win as any)?.[cls]) builtInTagMap.set((win as any)[cls], tag);\n }\n const domHelpers = SwcUtils.getHelperSet(win);\n\n return {win, doc, builtInTagMap, domHelpers};\n}\n\nconst getHandlers = (inst: any) => {\n if (!inst.__swc_attributeEventHandlers) inst.__swc_attributeEventHandlers = new Map();\n return inst.__swc_attributeEventHandlers;\n};\n\nconst setupPrototype = (proto: any, win: Window) => {\n if (proto.__swc_proto_setup) return;\n proto.__swc_proto_setup = true;\n\n\n // proto.createSlotString = function (id: string) {\n // return NodeSlot.slot(`${this._swcId}-${id}`);\n // }\n // proto.createEaHtml = function (id: string, script: string) {\n // return ElementApply.html(id, script);\n // }\n // proto.createEaText = function (id: string, script: string) {\n // return ElementApply.text(id, script);\n // }\n // proto.createEaAttribute = function (id: string, name: string, script: string) {\n // return ElementApply.attribute(id, name, script);\n // }\n // proto.createEaEvent = function (id: string, name: string, script: string) {\n // return ElementApply.event(id, name, script);\n // }\n // proto.createEaProperty = function (id: string, name: string, script: string) {\n // return ElementApply.property(id, name, script);\n // }\n\n // swc-id-asdasdasdasd-click=\" :value=\"\" {: value fsdfsdafsad :} {html: aaa :} {text: asdas :}\n\n proto._executeSwcScript = function (attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {\n ensureInit(this);\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const currentWin = SwcUtils.resolveWindow(this);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {...hostSet, ...helpers, ...extraArgs, $el: this, $root: this.getRootNode()};\n FunctionUtils.execute({script, context: this, args});\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName}:`, e);\n }\n }\n };\n\n proto._invokeLifecycleMethod = function (methodName: string | symbol, hostSet?: HostSet, extraArgs: any[] = []) {\n ensureInit(this);\n if (typeof (this as any)[methodName] !== 'function') return;\n const useHostSet = hostSet ?? SwcUtils.getHelperAndHostSet(this);\n const app = useHostSet?.$appHost?.simpleApplication;\n\n // @hostSet/@helperHostSet/@helperSet(parameter.ts)\uB97C \uC704\uD55C \uAC12. lifecycle \uBA54\uC11C\uB4DC\uB294\n // event/matched \uAC1C\uB150\uC774 \uC5C6\uC73C\uBBC0\uB85C \uC774 \uC138 \uAC00\uC9C0\uB9CC \uCC44\uC6B4\uB2E4.\n const helperSetValue = SwcUtils.getHelperSet(win);\n const helperHostSetValue = {...helperSetValue, ...useHostSet, $this: this};\n const kindValues = {hostSet: useHostSet, helperHostSet: helperHostSetValue, helperSet: helperSetValue};\n\n // console.log('---->hh',app, this, methodName);\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({situationType: InjectSituationType.HOST_SET, data: useHostSet}), new SituationTypeContainer({situationType: InjectSituationType.APP_HOST, data: useHostSet.$appHost}), new SituationTypeContainer({situationType: InjectSituationType.APP_HOSTS, data: useHostSet.$appHosts}), new SituationTypeContainer({\n situationType: InjectSituationType.HOST,\n data: useHostSet.$host\n }), new SituationTypeContainer({situationType: InjectSituationType.HOSTS, data: useHostSet.$hosts}), new SituationTypeContainer({situationType: InjectSituationType.FIRST_HOST, data: useHostSet.$firstHost}), new SituationTypeContainer({situationType: InjectSituationType.LAST_HOST, data: useHostSet.$lastHost}), new SituationTypeContainer({\n situationType: InjectSituationType.FIRST_APP_HOST,\n data: useHostSet.$firstAppHost\n }), new SituationTypeContainer({situationType: InjectSituationType.LAST_APP_HOST, data: useHostSet.$lastAppHost})]);\n otherStorage.set(SituationTypeContainers, situations);\n\n // @hostSet/@helperHostSet/@helperSet\uAC00 \uBD99\uC740 \uD30C\uB77C\uBBF8\uD130\uB294 @Inject/situationType \uAE30\uBC18\n // \uD574\uC11D\uBCF4\uB2E4 \uBA3C\uC800 \uCC98\uB9AC\uB418\uACE0(firstCheckMaker), \uADF8 \uC678 \uD30C\uB77C\uBBF8\uD130\uB294 \uAE30\uC874\uCC98\uB7FC @Inject/\uD0C0\uC785\n // \uAE30\uBC18\uC73C\uB85C \uC815\uC0C1 \uD574\uC11D\uB41C\uB2E4 \u2014 \uAC19\uC740 \uBA54\uC11C\uB4DC\uC5D0\uC11C \uB450 \uBC29\uC2DD\uC744 \uC11E\uC5B4 \uC368\uB3C4 \uB41C\uB2E4.\n // swc \uD30C\uB77C\uBBF8\uD130 \uB370\uCF54\uB808\uC774\uD130\uAC00 \uBD99\uC740 \uC790\uB9AC\uB294 DI \uB85C \uB118\uAE30\uC9C0 \uC54A\uB294\uB2E4. lifecycle \uC774 \uBABB \uCC44\uC6B0\uB294 kind\n // (\uC608: @fetchSettled \u2014 @fetch \uAC00 \uB098\uC911\uC5D0 \uCC44\uC6C0)\uB294 null. undefined \uB97C \uB3CC\uB824\uC8FC\uBA74\n // \"\uCC98\uB9AC \uC548 \uD568\"\uC73C\uB85C \uBCF4\uACE0 DI \uAC00 \uD30C\uB77C\uBBF8\uD130 \uD0C0\uC785(Object \uB4F1)\uC744 resolve \uD558\uB824\uB2E4 SimNoSuch \uB85C \uC8FD\uB294\uB2E4.\n const firstCheckMaker: FirstCheckMaker = ({target, targetKey}, token, idx) => {\n const saves = getParameterMetadata(target, targetKey!);\n const found = saves.find(s => s.index === idx);\n return found ? ((kindValues as any)[found.kind] ?? null) : undefined;\n };\n\n return app.simstanceManager.executeBindParameterSim(\n {\n target: this,\n targetKey: methodName,\n inputParameters: extraArgs,\n firstCheckMaker: [firstCheckMaker]\n },\n otherStorage\n );\n } else {\n // SimpleApplication(DI \uCEE8\uD14C\uC774\uB108)\uC774 \uC5C6\uB294 standalone \uC0AC\uC6A9 \uC2DC\uC5D0\uB3C4 @hostSet/@helperHostSet/\n // @helperSet\uB9CC\uD07C\uC740 buildSwcParameterArgs\uB85C \uC8FC\uC785\uD574\uC900\uB2E4 \u2014 \uD574\uB2F9 \uB370\uCF54\uB808\uC774\uD130\uAC00 \uD558\uB098\uB3C4 \uC5C6\uC73C\uBA74\n // extraArgs\uB97C \uADF8\uB300\uB85C \uBC18\uD658\uD558\uBBC0\uB85C(\uAE30\uC874 \uB3D9\uC791 \uADF8\uB300\uB85C) \uD558\uC704\uD638\uD658 \uAE68\uC9C0\uC9C0 \uC54A\uB294\uB2E4.\n const args = buildSwcParameterArgs(this, methodName, kindValues, extraArgs);\n return (this as any)[methodName](...args);\n }\n };\n\n proto._bindAttributeEvent = function (el: HTMLElement, attrName: string, script: string, eventName?: string) {\n ensureInit(this);\n if (!eventName) {\n if (!attrName.startsWith('swc-on-')) return;\n eventName = attrName.substring(7);\n }\n const elHandlers = getHandlers(this);\n let handlers = elHandlers.get(el);\n if (!handlers) {\n handlers = new Map();\n elHandlers.set(el, handlers);\n }\n\n const oldHandler = handlers.get(attrName);\n if (oldHandler) el.removeEventListener(eventName, oldHandler);\n\n const handler = async (event: any) => {\n const hostSet = SwcUtils.getHostSet(el);\n const currentWin = SwcUtils.resolveWindow(this);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {\n event,\n $data: (event as CustomEvent).detail,\n ...hostSet,\n ...helpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({script, context: el, args});\n };\n\n el.addEventListener(eventName, handler);\n handlers.set(attrName, handler);\n };\n\n proto.__swc_executeAttributeEvent = async function (el: HTMLElement, attrName: string, script: string, event: Event) {\n ensureInit(this);\n\n const hostSet = SwcUtils.getHostSet(el);\n const currentWin = SwcUtils.resolveWindow(this);\n const currentHelpers = SwcUtils.getHelperSet(currentWin);\n const detail = (event as CustomEvent).detail;\n const args = {\n event,\n $event: event,\n $data: detail,\n $detail: detail,\n ...hostSet,\n ...currentHelpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({script, context: el, args});\n };\n};\n\n// \uBD80\uBAA8 \uD074\uB798\uC2A4\uB3C4 elementDefine \uB410\uC73C\uBA74 proto.xxxCallback \uC740 \uBD80\uBAA8\uC758 swc \uB798\uD37C\uB2E4 \u2014 \uADF8\uAC78 \uC6D0\uB798 \uD568\uC218\uB85C \uBD80\uB974\uBA74 \uB77C\uC774\uD504\uC0AC\uC774\uD074\uC774 \uB450 \uBC88 \uB3C8\uB2E4.\n// \uB798\uD37C\uC5D0 \uAE30\uC5B5\uD574 \uB454 \uC0AC\uC6A9\uC790 \uC6D0\uB798 \uD568\uC218(\uC5C6\uC73C\uBA74 undefined)\uB97C \uC4F4\uB2E4.\nconst SWC_ORIGINAL_CALLBACK = Symbol.for('simple-web-component:original-callback');\nconst userCallback = (fn: any) => (typeof fn === 'function' && SWC_ORIGINAL_CALLBACK in fn ? fn[SWC_ORIGINAL_CALLBACK] : fn);\n\nexport const elementDefine =\n (name: string, config: Partial<ElementConfig> = {}): ClassDecorator =>\n (constructor: any) => {\n const { win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS } = buildEnv(config.window);\n const metadata: ElementMetadata = { ...config, name, window: win };\n\n if (!metadata.window) {\n throw new Error('window is required');\n }\n\n let extendsTagName = metadata.extends;\n if (!extendsTagName) {\n let proto = constructor;\n const BaseHTMLElement = (win as any).HTMLElement;\n while (proto && proto !== BaseHTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n metadata.extends = extendsTagName;\n }\n\n const attributeList = findAllAttributeMetadata(constructor);\n const applyAttributeMap = findAllAttributeApplyMetadata(constructor);\n\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-connected', 'swc-on-disconnected', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const swcOnEvents = DOM_EVENT_NAMES.map(e => `swc-on-${e}`);\n\n const attributeApplyNames = Array.from(applyAttributeMap.values())\n .map(it => it.targetAttributeName)\n .filter(Boolean) as string[];\n const hostAttributes = attributeList.filter(it => it.selector === '$this').map(it => it.propertyKey || String(it.propertyKey));\n // Get original static observedAttributes before they're overwritten by Object.defineProperty\n const originalStaticObservedAttributes = (constructor.observedAttributes ?? []) as string[];\n\n const proto = constructor.prototype;\n setupPrototype(proto, win);\n\n // helperHostSet \uC740 \uC778\uC2A4\uD134\uC2A4\uB9C8\uB2E4 \uB2E4\uB974\uB2E4 \u2014 \uD074\uB798\uC2A4 \uB2E8\uC704 \uBCC0\uC218\uB85C \uB450\uBA74 \uB2E4\uB978 \uC778\uC2A4\uD134\uC2A4\uC758 connect \uAC00 \uB36E\uC5B4\uC368\uC11C\n // disconnect \uB54C \uC5C9\uB6B1\uD55C \uC778\uC2A4\uD134\uC2A4\uAC00 \uC815\uB9AC\uB41C\uB2E4. connect \uC2DC\uC810 \uAC12\uC744 \uC778\uC2A4\uD134\uC2A4\uC5D0 \uC800\uC7A5\uD574 disconnect/adopt \uC5D0\uC11C \uC4F4\uB2E4.\n const connectedHelperHostSet = (inst: any): HelperHostSet => inst.__swc_helperHostSet ?? SwcUtils.getHelperAndHostSet(inst);\n // \u2500\u2500 cyclers: \uB370\uCF54\uB808\uC774\uD130\uBCC4 \uB77C\uC774\uD504\uC0AC\uC774\uD074 \uC704\uC784 \uD074\uB798\uC2A4 (elementDefine \uC2DC 1\uD68C \uC0DD\uC131, \uACC4\uC18D \uC7AC\uC0AC\uC6A9) \u2500\u2500\n const eventCycler = new EventListenerLifeCycler();\n const resizeCycler = new ResizeObserverLifeCycler();\n const intersectionCycler = new IntersectionObserverLifeCycler();\n const mutationCycler = new MutationObserverLifeCycler();\n const cyclers: ElementDefineLifeCycler[] = [\n eventCycler,\n new ChangedAttributeLifeCycler(),\n new EmitCustomEventLifeCycler(),\n resizeCycler,\n intersectionCycler,\n mutationCycler,\n new MessageSubscribeLifeCycler(),\n new RouteSubscribeLifeCycler(),\n new SetIntervalLifeCycler(),\n new SetTimeoutLifeCycler(),\n new RequestAnimationFrameLifeCycler(),\n new EventMediaLifeCycler(),\n new FetchLifeCycler(),\n ];\n\n // observedAttributes \uAE30\uC5EC cycler (define-time, constructor \uAE30\uBC18)\n const cyclerObservedAttributes = cyclers.flatMap(c => c.getObservedAttributeNames?.(constructor) ?? []);\n const mergedObservedAttributes = [...new Set([...(metadata.observedAttributes ?? []), ...originalStaticObservedAttributes, ...cyclerObservedAttributes, ...attributeApplyNames, ...hostAttributes, ...swcLifecycleAttributes, ...swcOnEvents])];\n\n // \u2500\u2500 observer \uBE4C\uB4DC (connect 1\uD68C\uB2F9 \uC0C1\uD0DC 1\uAC1C) \u2500\u2500\n // MutationObserver\u00B7ResizeObserver \uB294 \uC778\uC2A4\uD134\uC2A4\uB2F9 1\uAC1C\uC529\uB9CC \uB9CC\uB4E4\uACE0 \uBAA8\uB4E0 \uB370\uCF54\uB808\uC774\uD130\uAC00 \uACF5\uC720\uD55C\uB2E4 (delegate \uCD94\uC801 \uD3EC\uD568).\n // 'self'(\uB80C\uB354 \uC804): \uC790\uAE30 \uC790\uC2E0 \uB300\uC0C1 mutation/resize \uB9CC \uBD99\uC5EC \uCCAB \uB80C\uB354\uBD80\uD130 \uBCF8\uB2E4.\n // 'rest'(\uB80C\uB354 \uD6C4): \uB098\uBA38\uC9C0 \uC804\uBD80\uB97C \uAC19\uC740 \uC635\uC800\uBC84\uC5D0 \uB367\uBD99\uC778\uB2E4.\n // \uC2DC\uD074\uB7EC\uAC00 scope \uBCC4\uB85C \uC790\uAE30 \uBA54\uD0C0\uB9CC \uB2F4\uC740 \uCF5C\uBC31\uC744 \uC8FC\uACE0, \uBA54\uD0C0\uB294 \uC790\uAE30 \uB300\uC0C1 \uB808\uCF54\uB4DC/\uC5D4\uD2B8\uB9AC\uB9CC \uBC1B\uC73C\uBBC0\uB85C \uB530\uB85C \uB098\uB20C \uD544\uC694\uAC00 \uC5C6\uB2E4.\n // IntersectionObserver \uB294 \uC635\uC158 \uADF8\uB8F9\uBCC4\uB85C 1\uAC1C ('rest' \uC804\uC6A9).\n type IntersectionDelegate = { target: string; delegateRoot?: SwcRootType; observe: (el: Element) => void; unobserve: (el: Element) => void };\n interface ObserverState {\n observers: Array<MutationObserver | ResizeObserver | IntersectionObserver>;\n ro?: ResizeObserver;\n roCallbacks: Set<ResizeObserverSetEntry['callback']>;\n roObserved: WeakSet<Element>;\n resizeDelegates: Array<ResizeObserverSetEntry & { target: string }>;\n intersectionDelegates: IntersectionDelegate[];\n mo?: MutationObserver;\n moCallbacks: Set<MutationObserverSetEntry['callback']>;\n moTargets: Map<Element | ShadowRoot, MutationObserverInit>;\n }\n const newObserverState = (): ObserverState => ({\n observers: [], roCallbacks: new Set(), roObserved: new WeakSet(), resizeDelegates: [], intersectionDelegates: [],\n moCallbacks: new Set(), moTargets: new Map(),\n });\n\n // \uAC19\uC740 target \uC774 \uC5EC\uB7EC \uC18C\uC2A4\uC5D0\uC11C \uC9C0\uC815\uB418\uBA74 MutationObserverInit \uC744 \uD569\uC9D1\uD569(\uCD5C\uB300 \uAC10\uC9C0\uBC94\uC704)\uC73C\uB85C \uBCD1\uD569\uD55C\uB2E4.\n const mergeMutationInit = (existing: MutationObserverInit | undefined, next: MutationObserverInit): MutationObserverInit => {\n if (!existing) return next;\n const mergedFilter = existing.attributeFilter || next.attributeFilter\n ? [...new Set([...(existing.attributeFilter ?? []), ...(next.attributeFilter ?? [])])]\n : undefined;\n return {\n childList: existing.childList || next.childList,\n attributes: existing.attributes || next.attributes,\n characterData: existing.characterData || next.characterData,\n subtree: existing.subtree || next.subtree,\n attributeOldValue: existing.attributeOldValue || next.attributeOldValue,\n characterDataOldValue: existing.characterDataOldValue || next.characterDataOldValue,\n attributeFilter: mergedFilter,\n };\n };\n\n // delegate \uC140\uB809\uD130\uC5D0 \uB9DE\uB294 \uC694\uC18C(\uC790\uC2E0 \uB610\uB294 \uD558\uC704)\uB97C \uCC3E\uC544 observe/unobserve \u2014 MutationObserver \uCF5C\uBC31\uC5D0\uC11C \uB3D9\uC801 \uCD94\uC801\uC6A9\n const forDelegateMatches = (n: Node, selector: string, fn: (el: Element) => void) => {\n if (n.nodeType !== 1) return;\n const el = n as HTMLElement;\n const isThis = selector === '$this' || selector === '';\n if (isThis || el.matches?.(selector) || el.closest?.(selector)) fn(el);\n else el.querySelectorAll(selector).forEach(fn);\n };\n\n const buildObservers = async (helperHostSet: HelperHostSet, scope: ObserverScope, st: ObserverState, alive: () => boolean): Promise<void> => {\n const inst = helperHostSet.$this;\n // 'self' \uB294 \uC21C\uC218 \uC218\uC9D1\uAE30(observer \uC2DC\uD074\uB7EC)\uB9CC \uB3CC\uB9B0\uB2E4 \u2014 \uB9AC\uC2A4\uB108\u00B7\uD0C0\uC774\uBA38 \uB4F1 \uBD80\uC791\uC6A9 \uC2DC\uD074\uB7EC\uB294 'rest' \uC5D0\uC11C \uD55C \uBC88\uB9CC.\n const activeCyclers = scope === 'self' ? [resizeCycler, mutationCycler] : cyclers;\n\n // delegate \uCD94\uC801 root \uD574\uC11D: shadow/light/auto/all \u2192 \uC2E4\uC81C root \uBAA9\uB85D\n const resolveDelegateRoots = (delegateRoot: SwcRootType | undefined): (HTMLElement | ShadowRoot)[] => {\n const r = delegateRoot || 'auto';\n const roots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') roots.push(inst.shadowRoot || inst);\n else if (r === 'light') roots.push(inst);\n else if (r === 'shadow' && inst.shadowRoot) roots.push(inst.shadowRoot);\n else if (r === 'all') { roots.push(inst); if (inst.shadowRoot) roots.push(inst.shadowRoot); }\n return roots;\n };\n\n // 1. \uC2DC\uD074\uB7EC onConnected \u2192 observer Set \uC218\uC9D1 (\uC5EC\uB7EC \uC2DC\uD074\uB7EC\uAC00 \uBC18\uD658\uD55C Set \uC744 \uC804\uBD80 \uB204\uC801)\n let resizeObserverSet: ResizeObserverSet = [];\n let mutationObserverSet: MutationObserverSet = [];\n let intersectionObserverSet: IntersectionObserverSet = [];\n for (const c of activeCyclers) {\n const result = (await c.onConnected?.(helperHostSet, resizeObserverSet, scope)) as OnConnectedResult | void;\n // await \uC0AC\uC774\uC5D0 \uB5BC\uC5B4\uC84C\uC73C\uBA74(\uC0C8 \uC5F0\uACB0\uC774 \uCC28\uB840\uB97C \uAC00\uC838\uAC14\uC73C\uBA74) \uC5EC\uAE30\uC11C \uBA48\uCD98\uB2E4 \u2014 \uC635\uC800\uBC84\uB97C \uB9CC\uB4E4\uBA74 \uC544\uBB34\uB3C4 disconnect \uD558\uC9C0 \uC54A\uC544 \uC0CC\uB2E4.\n if (!alive()) return;\n if (!result) continue;\n if (result.resizeObserverSet?.length) resizeObserverSet = [...resizeObserverSet, ...result.resizeObserverSet];\n if (result.mutationObserverSet?.length) mutationObserverSet = [...mutationObserverSet, ...result.mutationObserverSet];\n if (result.intersectionObserverSet?.length) intersectionObserverSet = [...intersectionObserverSet, ...result.intersectionObserverSet];\n }\n\n // 2. ResizeObserver (1\uAC1C). delegate \uD56D\uBAA9\uC740 \uC140\uB809\uD130 \uBB38\uC790\uC5F4\uC774\uB77C \uCD08\uAE30 observe \uD558\uC9C0 \uC54A\uACE0 MutationObserver \uB85C \uB3D9\uC801 \uCD94\uC801\uD55C\uB2E4.\n const resizeObserve = (el: Element, opts?: ResizeObserverOptions) => {\n if (!st.ro || st.roObserved.has(el)) return;\n st.ro.observe(el, opts);\n st.roObserved.add(el);\n };\n const resizeUnobserve = (el: Element) => {\n if (!st.ro || !st.roObserved.has(el)) return;\n st.ro.unobserve(el);\n st.roObserved.delete(el);\n };\n const newResizeDelegates: ObserverState['resizeDelegates'] = [];\n if (resizeObserverSet.length) {\n if (!st.ro) {\n st.ro = new win.ResizeObserver((entries, obs) => { for (const cb of st.roCallbacks) cb(entries, obs); });\n st.observers.push(st.ro);\n }\n for (const e of resizeObserverSet) {\n st.roCallbacks.add(e.callback);\n if (e.delegate) {\n if (typeof e.target === 'string') newResizeDelegates.push(e as ResizeObserverSetEntry & { target: string });\n continue;\n }\n if (typeof e.target === 'string') {\n // \uBB38\uC790\uC5F4(non-delegate)\uC774\uBA74 root \uC5D0\uC11C \uAC80\uC0C9\uB41C \uC694\uC18C\uB4E4\uC744 observe \uB300\uC0C1\uC73C\uB85C \uCD94\uAC00\uD55C\uB2E4.\n for (const r of resolveDelegateRoots(e.delegateRoot)) r.querySelectorAll(e.target).forEach(el => resizeObserve(el, e.options));\n continue;\n }\n st.ro.observe(e.target as Element, e.options);\n if (e.target instanceof Element) st.roObserved.add(e.target);\n }\n st.resizeDelegates.push(...newResizeDelegates);\n }\n\n // 3. IntersectionObserver: \uC635\uC158 \uADF8\uB8F9\uBCC4\uB85C 1\uAC1C. delegate \uD56D\uBAA9\uC740 MutationObserver \uB85C \uB3D9\uC801 \uCD94\uC801\uD55C\uB2E4.\n const newIntersectionDelegates: IntersectionDelegate[] = [];\n for (const group of intersectionObserverSet) {\n const ioCallbacks = [...new Set(group.observeTargets.map(e => e.callback))];\n const io = new win.IntersectionObserver((entries, obs) => { for (const cb of ioCallbacks) cb(entries, obs); }, group.options);\n const ioObserved = new WeakSet<Element>();\n const observe = (el: Element) => { if (ioObserved.has(el)) return; io.observe(el); ioObserved.add(el); };\n const unobserve = (el: Element) => { if (!ioObserved.has(el)) return; io.unobserve(el); ioObserved.delete(el); };\n for (const e of group.observeTargets) {\n if (e.delegate) { newIntersectionDelegates.push({ target: e.target as string, delegateRoot: e.delegateRoot, observe, unobserve }); continue; }\n if (typeof e.target === 'string') {\n for (const r of resolveDelegateRoots(e.delegateRoot)) r.querySelectorAll(e.target).forEach(observe);\n continue;\n }\n observe(e.target as Element);\n }\n st.observers.push(io);\n }\n st.intersectionDelegates.push(...newIntersectionDelegates);\n\n // 4. MutationObserver (1\uAC1C): mutation \uCF5C\uBC31 + resize/intersection delegate \uB3D9\uC801 \uCD94\uC801\uC744 \uD568\uAED8 \uCC98\uB9AC\uD55C\uB2E4.\n if (mutationObserverSet.length || newResizeDelegates.length || newIntersectionDelegates.length) {\n if (!st.mo) {\n st.mo = new win.MutationObserver((mutations, obs) => {\n for (const mut of mutations) {\n for (const [nodes, on] of [[mut.addedNodes, true], [mut.removedNodes, false]] as const) {\n for (const n of Array.from(nodes)) {\n for (const d of st.resizeDelegates) forDelegateMatches(n, d.target, el => on ? resizeObserve(el, d.options) : resizeUnobserve(el));\n for (const d of st.intersectionDelegates) forDelegateMatches(n, d.target, el => on ? d.observe(el) : d.unobserve(el));\n }\n }\n }\n for (const cb of st.moCallbacks) cb(mutations, obs);\n });\n st.observers.push(st.mo);\n }\n const addObserveTarget = (target: Element | ShadowRoot, options: MutationObserverInit) => {\n st.moTargets.set(target, mergeMutationInit(st.moTargets.get(target), options));\n };\n for (const e of mutationObserverSet) {\n st.moCallbacks.add(e.callback);\n if (e.delegate) continue;\n const init = e.options ?? { childList: true };\n if (typeof e.target === 'string') {\n for (const r of resolveDelegateRoots(e.delegateRoot)) r.querySelectorAll(e.target).forEach(el => addObserveTarget(el, init));\n continue;\n }\n addObserveTarget(e.target, init);\n }\n for (const d of [...newResizeDelegates, ...newIntersectionDelegates]) {\n for (const r of resolveDelegateRoots(d.delegateRoot)) addObserveTarget(r, { childList: true, subtree: true });\n }\n // \uAC19\uC740 \uB178\uB4DC\uB97C \uB2E4\uC2DC observe \uD558\uBA74 \uC635\uC158\uB9CC \uAD50\uCCB4\uB41C\uB2E4 (\uB4F1\uB85D\u00B7\uC804\uB2EC \uC911\uBCF5 \uC5C6\uC74C) \u2192 'self' \uBD84\uACFC \uD569\uCCD0\uC9C4 \uC635\uC158\uC73C\uB85C \uAC31\uC2E0\n for (const [target, options] of st.moTargets) st.mo.observe(target, options);\n }\n\n inst.__swc_observers = st.observers;\n };\n\n const originalConnected = userCallback(proto.connectedCallback);\n proto.connectedCallback = async function () {\n ensureInit(this);\n // \uC7AC\uC5F0\uACB0 \uC2DC \uB204\uC801 \uBC29\uC9C0 \u2014 cycler \uB0B4\uBD80 \uB9AC\uC18C\uC2A4 \uCD08\uAE30\uD654\n const helperHostSet = SwcUtils.getHelperAndHostSet(this as any);\n (this as any).__swc_helperHostSet = helperHostSet;\n const appHost = helperHostSet.$appHost;\n const useSsr = isSSR(this);\n // \uC5F0\uACB0 \uCC98\uB9AC\uB294 await \uB97C \uAC70\uCE5C\uB2E4. \uADF8 \uC0AC\uC774 \uB5A8\uC5B4\uC9C0\uAC70\uB098 \uB2E4\uC2DC \uBD99\uC73C\uBA74(disconnect / \uC0C8 connect \uAC00 \uCC28\uB840 \uBC88\uD638\uB97C \uC62C\uB9AC\uBA74) \uC774 \uC5F0\uACB0\uC740 \uBA48\uCD98\uB2E4 \u2014\n // \uC548 \uADF8\uB7EC\uBA74 \uB5BC\uC5B4\uC9C4 \uB4A4\uC5D0 \uB9AC\uC2A4\uB108\u00B7\uD0C0\uC774\uBA38\uAC00 \uB4F1\uB85D\uB3FC \uC0C8\uACE0, \uB2E4\uC2DC \uBD99\uC740 \uC5F0\uACB0\uACFC \uACB9\uCCD0 \uB450 \uBC88\uC529 \uB3C8\uB2E4.\n // (isConnected \uB294 \uBCF4\uC9C0 \uC54A\uB294\uB2E4 \u2014 \uC9C1\uC811 \uD638\uCD9C\uC774\uB098 SSR \uCC98\uB7FC \uBD99\uC5B4 \uC788\uC9C0 \uC54A\uC544\uB3C4 \uB77C\uC774\uD504\uC0AC\uC774\uD074\uC740 \uB3CC\uC544\uC57C \uD55C\uB2E4)\n const gen = ((this as any).__swc_connectGen = ((this as any).__swc_connectGen ?? 0) + 1);\n const alive = () => (this as any).__swc_connectGen === gen;\n const obsState = newObserverState();\n try {\n if (appHost && typeof (appHost as any)._connected === 'function') {\n await (appHost as any)._connected(this);\n if (!alive()) return;\n } else if (appHost && typeof (appHost as any)) {\n (appHost as any)._connected_safari_and_standby ??= [];\n (appHost as any)._connected_safari_and_standby.push(this);\n }\n\n const conf = getElementConfig(this);\n\n // before-connected \uB77C\uC774\uD504\uC0AC\uC774\uD074 \uBA54\uC11C\uB4DC (@onConnectedBefore)\n for (const m of findAllOnConnectedBeforeMetadata(this)) {\n await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n if (!alive()) return;\n }\n (this as any)._executeSwcScript('swc-on-before-connected', helperHostSet);\n\n // \u2500\u2500 \uB80C\uB354 (@onConnected / @onConnectedBody*) \u2014 elementDefine \uCC45\uC784 \u2500\u2500\n const targetConnectedList = useSsr ? [] : findAllOnConnectedMetadata(constructor);\n const shadowMode = conf?.useShadow || targetConnectedList.find(it => it.options.useShadow)?.options.useShadow;\n if (shadowMode && !this.shadowRoot) {\n const mode = shadowMode === true ? 'open' : shadowMode;\n this.attachShadow({ mode: mode as ShadowRootMode });\n }\n\n // \uC790\uAE30 \uC790\uC2E0 \uB300\uC0C1 mutation/resize \uB294 \uB80C\uB354 \uC804\uC5D0 \uBD99\uC5EC \uCCAB \uB80C\uB354\uBD80\uD130 \uBCF8\uB2E4 (shadow root \uAC00 \uC0DD\uAE34 \uB4A4\uB77C $this \uAC00 \uB9DE\uB294 root \uB97C \uC7A1\uB294\uB2E4)\n await buildObservers(helperHostSet, 'self', obsState, alive);\n if (!alive()) return;\n\n const stateContext: any = { ...helperHostSet };\n findAllStateMetadata(this).forEach(it => {\n stateContext[it.name] = this[it.propertyKey];\n });\n\n const shadowChildren: Node[] = [];\n const lightChildren: Node[] = [];\n\n if (targetConnectedList.length > 0) {\n const toNodes = (value: any): Node[] => {\n if (!value) return [];\n if (typeof value === 'string') {\n const htmlTemplateElement = doc.createElement('template');\n htmlTemplateElement.innerHTML = value;\n return Array.from(htmlTemplateElement.content.childNodes);\n }\n if (Array.isArray(value)) return value;\n return [value];\n };\n // fallback: \uBE44\uB3D9\uAE30 \uB80C\uB354 \uB300\uAE30 \uC911\uC5D0 \uBA3C\uC800 \uBCF4\uC5EC\uC900\uB2E4. \uACB0\uACFC\uB294 \uBAA8\uB4E0 \uB80C\uB354 \uBA54\uC11C\uB4DC\uAC00 \uB05D\uB09C \uB4A4 \uD55C \uBC88\uC5D0 \uB4E4\uC5B4\uAC00\uBBC0\uB85C\n // \uADF8\uB54C \uAC19\uC774 \uAC77\uC5B4\uB0B8\uB2E4 (\uBA54\uC11C\uB4DC\uBCC4\uB85C \uAC77\uC73C\uBA74 \uB2E4\uC74C \uBA54\uC11C\uB4DC\uB97C \uAE30\uB2E4\uB9AC\uB294 \uB3D9\uC548 \uBE48 \uD654\uBA74\uC774 \uB41C\uB2E4).\n const shownFallbacks: Node[] = [];\n const removeFallbacks = () => shownFallbacks.splice(0).forEach(n => (n as ChildNode).remove());\n for (const meta of targetConnectedList) {\n const useShadowRoot = meta.options.useShadow || conf?.useShadow;\n if (meta.options.fallback) {\n const fb = typeof meta.options.fallback === 'function'\n ? (meta.options.fallback as any)(helperHostSet)\n : meta.options.fallback;\n const fallbackNodes = toNodes(fb);\n const parent = useShadowRoot ? this.shadowRoot : this;\n if (fallbackNodes.length && parent) {\n try {\n const processed = SwcUtils.projectProcessHtml(this._swcId, fallbackNodes, doc);\n parent.append(...processed);\n shownFallbacks.push(...processed);\n } catch (e) {\n console.error('[ElementDefine] fallback setting error:', e);\n }\n }\n }\n let res = await (this as any)._invokeLifecycleMethod(meta.propertyKey, helperHostSet);\n if (!alive()) { removeFallbacks(); return; }\n if (typeof res === 'string') {\n const htmlTemplateElement = doc.createElement('template');\n htmlTemplateElement.innerHTML = res;\n res = htmlTemplateElement.content;\n }\n if (res) {\n const nodes = Array.isArray(res) ? res : [res];\n if (meta.options.useShadow || conf?.useShadow) {\n shadowChildren.push(...nodes);\n } else {\n lightChildren.push(...nodes);\n }\n }\n }\n removeFallbacks();\n try {\n if (this.shadowRoot) {\n const applyShadowChildren = SwcUtils.projectProcessHtml(this._swcId, shadowChildren, doc);\n this.shadowRoot.replaceChildren(...applyShadowChildren);\n }\n if (lightChildren.length) {\n const applyLightChildren = SwcUtils.projectProcessHtml(this._swcId, lightChildren, doc);\n this.replaceChildren(...applyLightChildren);\n }\n } catch (e) {\n console.error('[ElementDefine] innerHTML setting error:', e);\n }\n new ElementApply(this, { id: this._swcId }).apply({ context: stateContext, bind: this });\n } else {\n new ElementApply(this, { id: this._swcId }).apply({ exclude: { html: true, text: true, attribute: true }, context: stateContext, bind: this });\n }\n\n // global delegate event\n const root = this.getRootNode();\n if (!globalDelegatedRoots.has(root)) {\n DOM_EVENT_NAMES.forEach(type => {\n root.addEventListener(type, handleGlobalSwcEvent);\n });\n globalDelegatedRoots.add(root);\n }\n\n // \u2500\u2500 cycler \uC2E4\uD589 (\uB80C\uB354 \uD6C4): \uB098\uBA38\uC9C0 \uC2DC\uD074\uB7EC onConnected \u2192 observer Set \uC218\uC9D1 \u2192 \uAC19\uC740 \uC635\uC800\uBC84\uC5D0 \uB367\uBD99\uC784 \u2500\u2500\n await buildObservers(helperHostSet, 'rest', obsState, alive);\n if (!alive()) return;\n\n if (originalConnected) await originalConnected.apply(this);\n if (!alive()) return;\n\n // after-connected \uB77C\uC774\uD504\uC0AC\uC774\uD074 \uBA54\uC11C\uB4DC (@onConnectedAfter)\n for (const m of findAllOnConnectedAfterMetadata(this)) {\n await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n if (!alive()) return;\n }\n (this as any)._executeSwcScript('swc-on-connected', helperHostSet);\n (this as any)._executeSwcScript('swc-on-after-connected', helperHostSet);\n (this as any).__swc_connected = true;\n } finally {\n // \uBA48\uCD98 \uC5F0\uACB0\uC740 \uC644\uB8CC \uD6C5\uC744 \uBD80\uB974\uC9C0 \uC54A\uACE0, \uC571 host \uC5D0\uB294 \uC911\uB2E8\uB9CC \uC54C\uB9B0\uB2E4 (\uC790\uC2DD \uC5F0\uACB0 \uC218\uB9CC \uB9DE\uCD94\uACE0 \uC7AC\uC0DD\uC740 \uC548 \uD568)\n const aborted = !alive();\n if (!aborted) for (const m of findAllLifecycleMetadata(this, ON_CONNECTED_COMPLETED_METADATA_KEY)) await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n if (appHost && typeof (appHost as any)._connectedDone === 'function') {\n await (appHost as any)._connectedDone(this, { aborted });\n }\n }\n };\n\n /////////////////////////////////////////////////\n // disconnectedCallback\n ////////////////////////////////////////////////\n const originalDisconnected = userCallback(proto.disconnectedCallback);\n proto.disconnectedCallback = function () {\n (this as any).__swc_connectGen = ((this as any).__swc_connectGen ?? 0) + 1; // \uC9C4\uD589 \uC911\uC778 \uC5F0\uACB0\uC740 \uBA48\uCD98\uB2E4\n // \uB5A8\uC5B4\uC9C4 \uB4A4\uB77C DOM \uC73C\uB85C\uB294 $appHost \uB97C \uB2E4\uC2DC \uBABB \uCC3E\uB294\uB2E4 \u2192 connect \uB54C \uC800\uC7A5\uD55C \uC774 \uC778\uC2A4\uD134\uC2A4\uC758 \uAC12\n const helperHostSet = connectedHelperHostSet(this);\n const appHost = helperHostSet.$appHost;\n if (appHost && typeof (appHost as any)._disconnected === 'function') {\n (appHost as any)._disconnected(this);\n }\n\n (this as any)._executeSwcScript('swc-on-before-disconnected', helperHostSet);\n for (const m of findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY)) (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n for (const c of cyclers) c.onDisconnected?.(helperHostSet);\n\n for (const o of (this as any).__swc_observers ?? []) {\n try { (o as any)?.disconnect?.(); } catch (e) { console.error('[SWC] observer disconnect error:', e); }\n }\n (this as any).__swc_observers = [];\n\n // elementApply event listener \uC815\uB9AC\n new ElementApply(this, { id: this._swcId }).removeAllEventListener();\n\n if (originalDisconnected) originalDisconnected.apply(this);\n\n for (const m of findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY)) (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n (this as any)._executeSwcScript('swc-on-disconnected', helperHostSet);\n (this as any)._executeSwcScript('swc-on-after-disconnected', helperHostSet);\n (this as any).__swc_connected = false;\n };\n\n const originalAdopted = userCallback(proto.adoptedCallback);\n proto.adoptedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-adopted', hostSet);\n for (const m of findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY)) (this as any)._invokeLifecycleMethod(m.propertyKey, hostSet);\n for (const c of cyclers) c.onAdopted?.(connectedHelperHostSet(this));\n\n if (originalAdopted) originalAdopted.apply(this);\n\n for (const m of findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY)) (this as any)._invokeLifecycleMethod(m.propertyKey, hostSet);\n (this as any)._executeSwcScript('swc-on-adopted', hostSet);\n (this as any)._executeSwcScript('swc-on-after-adopted', hostSet);\n };\n\n const originalAttributeChanged = userCallback(proto.attributeChangedCallback);\n proto.attributeChangedCallback = function (name: string, old: string | null, newVal: string | null) {\n if (originalAttributeChanged) originalAttributeChanged.apply(this, [name, old, newVal]);\n\n // attributeChangedCallback \uC740 connected \uC774\uC804\uC5D0\uB3C4 \uD638\uCD9C\uB420 \uC218 \uC788\uC73C\uBBC0\uB85C\n // \uD074\uB85C\uC800\uC758 helperHostSet(null \uAC00\uB2A5) \uB300\uC2E0 \uC774 \uC2DC\uC810\uC5D0 \uC0C8\uB85C \uACC4\uC0B0\uD55C\uB2E4.\n const helperAndHostSet = SwcUtils.getHelperAndHostSet(this as any);\n\n // Process expression directive before passing to handlers\n let processedVal: any = newVal;\n if (newVal !== null) {\n const ae = new ActionExpression(newVal);\n const expr = ae.getFirstExpression('callReturn');\n if (expr) {\n const win = SwcUtils.resolveWindow(this);\n const exprHelperAndHostSet = SwcUtils.getHelperAndHostSet(this as any);\n const script = ConvertUtils.decodeHtmlEntity(expr.script, win.document);\n try {\n const result = FunctionUtils.executeReturn({\n script: script,\n context: this,\n args: exprHelperAndHostSet\n });\n processedVal = result;\n } catch (e) {\n console.error(`[SWC] Failed to execute directive {{= ${expr.script} }} on attribute ${name}: ${exprHelperAndHostSet}`, e);\n processedVal = newVal;\n }\n }\n }\n\n if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {\n if (newVal !== null) {\n const eventName = name.substring(7);\n (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);\n }\n }\n\n // cycler \uC704\uC784: attribute \uC635\uC800\uBE59(@emitCustomEvent(attributeName) / @changedAttribute \uB4F1)\n for (const c of cyclers) c.onAttributeChanged?.(helperAndHostSet, name, old, processedVal);\n };\n\n Object.defineProperty(constructor, 'observedAttributes', {\n get: () => mergedObservedAttributes,\n configurable: true\n });\n\n // \uC774 \uD074\uB798\uC2A4\uB97C \uB2E4\uC2DC \uC0C1\uC18D\uD574 elementDefine \uD558\uBA74 \uC790\uC2DD\uC774 \uC774 \uB798\uD37C \uB300\uC2E0 \uC6D0\uB798 \uC0AC\uC6A9\uC790 \uD568\uC218\uB97C \uBD80\uB974\uB3C4\uB85D \uAE30\uC5B5\uD574 \uB454\uB2E4\n proto.connectedCallback[SWC_ORIGINAL_CALLBACK] = originalConnected;\n proto.disconnectedCallback[SWC_ORIGINAL_CALLBACK] = originalDisconnected;\n proto.adoptedCallback[SWC_ORIGINAL_CALLBACK] = originalAdopted;\n proto.attributeChangedCallback[SWC_ORIGINAL_CALLBACK] = originalAttributeChanged;\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, metadata, constructor);\n const registry = metadata.customElementRegistry || (win as any)?.customElements;\n if (registry && !registry.get(metadata.name)) {\n registry.define(metadata.name, constructor as any, metadata.extends ? { extends: metadata.extends } : undefined);\n }\n return constructor;\n };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {ActionExpression, FunctionUtils, ReflectUtils} from '@dooboostore/core';\nimport {EventListenerLifeCycler} from './addEventListener';\nimport {MutationObserverLifeCycler} from './mutationObserver';\nimport {ResizeObserverLifeCycler} from './resizeObserver';\nimport {IntersectionObserverLifeCycler} from './intersectionObserver';\nimport {findAllLifecycleMetadata, findAllOnConnectedAfterMetadata, findAllOnConnectedBeforeMetadata, findAllOnConnectedMetadata, ON_AFTER_ADOPTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_CONNECTED_COMPLETED_METADATA_KEY, ON_INITIALIZE_METADATA_KEY} from './lifecycles';\nimport {EmitCustomEventLifeCycler} from './emitCustomEvent';\nimport {ChangedAttributeLifeCycler} from './changedAttribute';\nimport {findAllAttributeApplyMetadata, findAllAttributeMetadata} from './applyAttribute';\nimport {getQueryMetadata, getQueryAllMetadata} from './query';\nimport {SwcUtils} from '../utils/Utils';\nimport {DOM_EVENT_NAMES, HTML_TAG_ENTRIES} from '../config/config';\nimport {SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport {FirstCheckMaker} from '@dooboostore/simple-boot';\nimport {buildSwcParameterArgs, buildDomStorageKindValues, getParameterMetadata} from './parameter';\nimport {ElementDefineLifeCycler, HelperHostSet, HostSet, InjectSituationType, IntersectionObserverSet, MutationObserverSet, MutationObserverSetEntry, ObserverScope, OnConnectedResult, ResizeObserverSet, ResizeObserverSetEntry, SwcRootType} from '../types';\nimport {ConvertUtils, ElementApply} from '@dooboostore/core-web';\nimport {isSSR} from \"../elements/SwcAppMixin\";\nimport {findAllStateMetadata} from \"./state\";\nimport {findAllAroundMetadata} from \"./around\";\nimport {findAllPropertyMetadata} from \"./applyProperty\";\nimport {MessageSubscribeLifeCycler} from \"./subscribeSwcAppMessage\";\nimport {RouteSubscribeLifeCycler} from \"./subscribeSwcAppRouteChange\";\nimport {SetIntervalLifeCycler} from \"./setInterval\";\nimport {SetTimeoutLifeCycler} from \"./setTimeout\";\nimport {RequestAnimationFrameLifeCycler} from \"./requestAnimationFrame\";\nimport {EventMediaLifeCycler} from \"./eventMedia\";\nimport {FetchLifeCycler, assertFetchFields} from \"./fetch\";\n\n// --- Core Interfaces & Types ---\n\nexport const ELEMENT_CONFIG_KEY = Symbol.for('simple-web-component:element-config');\n\nexport interface ElementConfig {\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: any;\n window?: Window;\n useShadow?: boolean | 'open' | 'closed';\n}\n\nexport interface ElementMetadata extends Omit<ElementConfig, 'window'> {\n name: string;\n window: Window;\n}\n\nexport const getElementConfig = (target: any): ElementMetadata | undefined => {\n const constructor = typeof target === 'function' ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n\nexport const ensureInit = (inst: any) => { // HTMLElement\n if (!inst.__swc_initialized) {\n inst._swcId = inst?.getAttribute?.('swc-use-ssr') ?? 's' + Math.random().toString(36).substring(2, 11).toLowerCase();\n inst._emitHandlers = new Map();\n inst.__swc_initialized = true;\n // const attributeList = findAllQ(inst);\n // attributeList.forEach(meta => {\n // delete (inst as any)[meta.propertyKey];\n // });\n\n const target = typeof inst === 'function' ? inst : inst.constructor;\n\n // \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n // \u2551 decorator \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2551\n // \u2551 \u2551\n // \u2551 \uC774\uC720: own property\uAC00 \uC788\uC73C\uBA74 prototype\uC758 getter/setter\uB294 \uC808\uB300 \uC548 \uD0C4\uB2E4 \u2551\n // \u2551 1. TypeScript\uB294 \uCD08\uAE30\uAC12\uC774 \uC788\uB294 \uD544\uB4DC\uB97C constructor\uC5D0\uC11C own property\uB85C \uC0DD\uC131 \u2551\n // \u2551 @attributeThis('id') myId: string = \"default\" \u2192 this.myId = \"default\" \u2551\n // \u2551 \u2551\n // \u2551 2. JavaScript\uC758 property lookup\uC740 own property\uB97C \uBA3C\uC800 \uCC3E\uC74C \u2551\n // \u2551 - this.myId \uC811\uADFC \u2551\n // \u2551 - 1\uC21C\uC704: instance\uC758 own property \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uADF8\uAC83 \uBC18\uD658 \u2551\n // \u2551 - 2\uC21C\uC704: prototype\uC758 getter \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uD638\uCD9C \u2551\n // \u2551 \u2551\n // \u2551 3. own property\uAC00 \uC788\uC73C\uBA74 prototype\uC758 getter\uB294 \uC808\uB300 \uD638\uCD9C\uB418\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \uB530\uB77C\uC11C getter\uC5D0\uC11C \uC815\uC758\uB41C DOM \uB3D9\uAE30\uD654 \uB85C\uC9C1\uC774 \uC791\uB3D9\uD558\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \u2551\n // \u2551 4. own property\uB97C \uC0AD\uC81C\uD558\uBA74 JavaScript\uAC00 prototype\uC758 getter\uB97C \uCC3E\uAC8C \uB428 \u2551\n // \u2551 \u2192 getter \uD638\uCD9C\uB428 \u2192 DOM \uC18D\uC131 \uAC12 \uB3D9\uAE30\uD654\uB428 \u2551\n // \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n // \uD568\uC218\uB294 decorator\uC5D0\uC11C \uAC12\uC790\uCCB4\uB97C descriptor.value = function (...args: any[]) {...\n\n // @attribute \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter/setter \uC791\uB3D9\n // const attributeList = findAllAttributeMetadata(target);\n const attributeAllList = findAllAttributeMetadata(target).filter(it => it.type === 'property');\n if (attributeAllList) {\n attributeAllList.forEach(meta => {\n // const initUserData = (inst as any)[meta.propertyKey];\n delete (inst as any)[meta.propertyKey];\n // (inst as any)[meta.propertyKey] = initUserData;\n });\n }\n\n // @query \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryList = getQueryMetadata(target);\n if (queryList) {\n queryList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n\n // @queryAll \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryAllList = getQueryAllMetadata(target);\n if (queryAllList) {\n queryAllList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n // const slotAllList = findAllApplySlotMetadata(target);\n // if (slotAllList) {\n // slotAllList.filter(it => it.type === 'property').forEach(meta => {\n // delete (inst as any)[meta.propertyKey];\n // });\n // }\n\n\n const propertyAllList = findAllPropertyMetadata(target).filter(it => it.type === 'property');\n if (propertyAllList) {\n propertyAllList.forEach(meta => {\n // getter\uAC00 \uC5C6\uC73C\uBA74(\uC21C\uC218 \uD544\uB4DC: declare\u00B7\uD558\uC774\uB4DC\uB808\uC774\uC158 \uAC12 \uB4F1) \uC9C0\uC6B0\uC9C0 \uC54A\uC74C.\n // getter\uAC00 \uC788\uC744 \uB54C\uB9CC own \uAC12\uC744 \uC9C0\uC6CC getter\uAC00 DOM\uC744 \uC0C8\uB85C \uC77D\uAC8C \uD55C\uB2E4.\n let proto = Object.getPrototypeOf(inst);\n let hasGetter = false;\n while (proto && proto !== Object.prototype) {\n const d = Object.getOwnPropertyDescriptor(proto, meta.propertyKey);\n if (d) {\n hasGetter = typeof d.get === 'function';\n break;\n }\n proto = Object.getPrototypeOf(proto);\n }\n if (!hasGetter) return;\n delete (inst as any)[meta.propertyKey];\n });\n }\n\n const stateAllList = findAllStateMetadata(target);\n if (stateAllList) {\n stateAllList.forEach(meta => {\n // getter\uB85C \uC77D\uC73C\uBA74 \uC548 \uB428 \u2014 own\uC774 \uB0A8\uC544\uC788\uC744 \uB54C getter\uAC00 \uC774\uC8FC\uAE4C\uC9C0 \uD574\uBC84\uB824\n // setter \uC7AC\uB300\uC785\uACFC \uD569\uCE58\uBA74 DOM \uB3D9\uAE30\uD654\uAC00 \uC911\uBCF5 \uC2E4\uD589\uB428. descriptor\uC5D0\uC11C raw\uB97C \uAEBC\uB0B8\uB2E4.\n // own\uC774 \uC5C6\uC73C\uBA74(\uC774\uBBF8 \uC815\uB9AC\uB428) \uC2A4\uD0B5.\n const own = Object.getOwnPropertyDescriptor(inst, meta.propertyKey);\n if (own && 'value' in own) {\n const initUserData = own.value;\n delete (inst as any)[meta.propertyKey];\n (inst as any)[meta.propertyKey] = initUserData;\n }\n });\n }\n\n // @around \uD544\uB4DC\uC758 own property \uC815\uB9AC \u2192 setter \uACBD\uC720\uB85C \uC7AC\uB300\uC785 (\uCD08\uAE30\uAC12\uC5D0 set() \uC801\uC6A9).\n // attribute/query\uCC98\uB7FC plain delete\uD558\uBA74 \uCD08\uAE30\uAC12\uC774 \uB0A0\uC544\uAC04\uB2E4 \u2014 \uBC18\uB4DC\uC2DC \uC0B4\uB824\uC11C setter\uB85C \uB123\uB294\uB2E4.\n // getter\uB85C \uC77D\uC73C\uBA74 \uC548 \uB428(before \uBCC0\uD658\uAC12\uC774 \uC11E\uC784) \u2014 descriptor\uC5D0\uC11C raw\uB97C \uAEBC\uB0B8\uB2E4.\n // own\uC774 \uC5C6\uC73C\uBA74(\uC774\uBBF8 \uC815\uB9AC\uB428) \uC2A4\uD0B5 \u2014 \uADF8\uB798\uC57C \uC911\uBCF5 \uBCC0\uD658\uC774 \uC548 \uC0DD\uAE34\uB2E4.\n const aroundAllList = findAllAroundMetadata(target);\n if (aroundAllList) {\n aroundAllList.forEach(meta => {\n const own = Object.getOwnPropertyDescriptor(inst, meta.propertyKey);\n if (own && 'value' in own) {\n const initUserData = own.value;\n delete (inst as any)[meta.propertyKey];\n (inst as any)[meta.propertyKey] = initUserData;\n }\n });\n }\n\n // Call constructor script if present\n const hostSet = SwcUtils.getHostSet(inst);\n const appHosts = SwcUtils.findAllAppHostsIncludingSelfDirect(inst);\n inst._executeSwcScript?.('swc-on-constructor', hostSet);\n\n // Call @onInitialize lifecycle methods\n const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);\n for (const m of cMethods) inst._invokeLifecycleMethod(m.propertyKey, hostSet);\n }\n};\n\n\n// \uD6D4 \uC774\uAC8C\uB9DE\uB098?? global\uB85C \uAD00\uB9AC\uD558\uB294\uAC8C..\uD6D4... \uC65C\uC774\uB807\uAC8C \uD588\uC744\uAE4C..\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n// \uC5EC\uAE30\uC5D0\uC11C \uC911\uBCF5 \uD638\uCD9C\uC548\uB418\uAC8C \uC798\uB9C9\uC544\uC900\uB2E4 ..\nconst handleGlobalSwcEvent = async (event: Event) => {\n if ((event as any).__swc_handled) return;\n const path = event.composedPath();\n const type = event.type;\n const attrName = `swc-on-${type}`;\n\n for (const node of path) {\n if (!(node instanceof HTMLElement)) continue;\n const script = node.getAttribute?.(attrName);\n if (script && !getElementConfig(node)) {\n const host: any = SwcUtils.findNearestSwcAncestorHost(node);\n if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === 'function') {\n await host.__swc_executeAttributeEvent(node, attrName, script, event);\n (event as any).__swc_handled = true;\n break;\n }\n }\n }\n};\n\nfunction buildEnv(configWindow: Window) {\n const win: Window = configWindow;\n const doc: Document = win?.document;\n const builtInTagMap = new Map<any, string>();\n for (const [cls, tag] of HTML_TAG_ENTRIES) {\n if ((win as any)?.[cls]) builtInTagMap.set((win as any)[cls], tag);\n }\n const domHelpers = SwcUtils.getHelperSet(win);\n\n return {win, doc, builtInTagMap, domHelpers};\n}\n\nconst getHandlers = (inst: any) => {\n if (!inst.__swc_attributeEventHandlers) inst.__swc_attributeEventHandlers = new Map();\n return inst.__swc_attributeEventHandlers;\n};\n\nconst setupPrototype = (proto: any, win: Window) => {\n if (proto.__swc_proto_setup) return;\n proto.__swc_proto_setup = true;\n\n\n // proto.createSlotString = function (id: string) {\n // return NodeSlot.slot(`${this._swcId}-${id}`);\n // }\n // proto.createEaHtml = function (id: string, script: string) {\n // return ElementApply.html(id, script);\n // }\n // proto.createEaText = function (id: string, script: string) {\n // return ElementApply.text(id, script);\n // }\n // proto.createEaAttribute = function (id: string, name: string, script: string) {\n // return ElementApply.attribute(id, name, script);\n // }\n // proto.createEaEvent = function (id: string, name: string, script: string) {\n // return ElementApply.event(id, name, script);\n // }\n // proto.createEaProperty = function (id: string, name: string, script: string) {\n // return ElementApply.property(id, name, script);\n // }\n\n // swc-id-asdasdasdasd-click=\" :value=\"\" {: value fsdfsdafsad :} {html: aaa :} {text: asdas :}\n\n proto._executeSwcScript = function (attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {\n ensureInit(this);\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const currentWin = SwcUtils.resolveWindow(this);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {...hostSet, ...helpers, ...extraArgs, $el: this, $root: this.getRootNode()};\n FunctionUtils.execute({script, context: this, args});\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName}:`, e);\n }\n }\n };\n\n proto._invokeLifecycleMethod = function (methodName: string | symbol, hostSet?: HostSet, extraArgs: any[] = []) {\n ensureInit(this);\n if (typeof (this as any)[methodName] !== 'function') return;\n const useHostSet = hostSet ?? SwcUtils.getHelperAndHostSet(this);\n const app = useHostSet?.$appHost?.simpleApplication;\n\n // @hostSet/@helperHostSet/@helperSet/@swcAppRouter(parameter.ts)\uB97C \uC704\uD55C \uAC12. lifecycle \uBA54\uC11C\uB4DC\uB294\n // event/matched \uAC1C\uB150\uC774 \uC5C6\uC73C\uBBC0\uB85C \uC774\uAC83\uB4E4\uB9CC \uCC44\uC6B4\uB2E4.\n const helperSetValue = SwcUtils.getHelperSet(win);\n const helperHostSetValue = {...helperSetValue, ...useHostSet, $this: this};\n const kindValues = {\n hostSet: useHostSet, helperHostSet: helperHostSetValue, helperSet: helperSetValue,\n swcAppRouter: useHostSet?.$appHost?.router,\n swcAppSimpleApplication: useHostSet?.$appHost?.simpleApplication,\n swcAppHost: useHostSet?.$appHost,\n ...buildDomStorageKindValues(this, win)\n };\n\n // console.log('---->hh',app, this, methodName);\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({situationType: InjectSituationType.HOST_SET, data: useHostSet}), new SituationTypeContainer({situationType: InjectSituationType.APP_HOST, data: useHostSet.$appHost}), new SituationTypeContainer({situationType: InjectSituationType.APP_HOSTS, data: useHostSet.$appHosts}), new SituationTypeContainer({\n situationType: InjectSituationType.HOST,\n data: useHostSet.$host\n }), new SituationTypeContainer({situationType: InjectSituationType.HOSTS, data: useHostSet.$hosts}), new SituationTypeContainer({situationType: InjectSituationType.FIRST_HOST, data: useHostSet.$firstHost}), new SituationTypeContainer({situationType: InjectSituationType.LAST_HOST, data: useHostSet.$lastHost}), new SituationTypeContainer({\n situationType: InjectSituationType.FIRST_APP_HOST,\n data: useHostSet.$firstAppHost\n }), new SituationTypeContainer({situationType: InjectSituationType.LAST_APP_HOST, data: useHostSet.$lastAppHost})]);\n otherStorage.set(SituationTypeContainers, situations);\n\n // @hostSet/@helperHostSet/@helperSet\uAC00 \uBD99\uC740 \uD30C\uB77C\uBBF8\uD130\uB294 @Inject/situationType \uAE30\uBC18\n // \uD574\uC11D\uBCF4\uB2E4 \uBA3C\uC800 \uCC98\uB9AC\uB418\uACE0(firstCheckMaker), \uADF8 \uC678 \uD30C\uB77C\uBBF8\uD130\uB294 \uAE30\uC874\uCC98\uB7FC @Inject/\uD0C0\uC785\n // \uAE30\uBC18\uC73C\uB85C \uC815\uC0C1 \uD574\uC11D\uB41C\uB2E4 \u2014 \uAC19\uC740 \uBA54\uC11C\uB4DC\uC5D0\uC11C \uB450 \uBC29\uC2DD\uC744 \uC11E\uC5B4 \uC368\uB3C4 \uB41C\uB2E4.\n // swc \uD30C\uB77C\uBBF8\uD130 \uB370\uCF54\uB808\uC774\uD130\uAC00 \uBD99\uC740 \uC790\uB9AC\uB294 DI \uB85C \uB118\uAE30\uC9C0 \uC54A\uB294\uB2E4. lifecycle \uC774 \uBABB \uCC44\uC6B0\uB294 kind\n // (\uC608: @fetchPromise \u2014 @fetch \uAC00 \uCC44\uC6C0)\uB294 null. undefined \uB97C \uB3CC\uB824\uC8FC\uBA74\n // \"\uCC98\uB9AC \uC548 \uD568\"\uC73C\uB85C \uBCF4\uACE0 DI \uAC00 \uD30C\uB77C\uBBF8\uD130 \uD0C0\uC785(Object \uB4F1)\uC744 resolve \uD558\uB824\uB2E4 SimNoSuch \uB85C \uC8FD\uB294\uB2E4.\n const firstCheckMaker: FirstCheckMaker = ({target, targetKey}, token, idx) => {\n const saves = getParameterMetadata(target, targetKey!);\n const found = saves.find(s => s.index === idx);\n if (!found) return undefined;\n const value = (kindValues as any)[found.kind];\n // \uD0A4\uB97C \uBC1B\uB294 kind(@querySelectorParam/@attributeParam/@local\u00B7session\u00B7cookieParam \uB4F1)\uB294\n // buildSwcParameterArgs\uC640 \uB3D9\uC77C\uD558\uAC8C value(key)\uB85C \uD574\uC11D\uD55C\uB2E4 \u2014 \uC544\uB2C8\uBA74 \uB9AC\uC878\uBC84 \uD568\uC218 \uC790\uCCB4\uAC00 \uC8FC\uC785\uB41C\uB2E4.\n return (found.key !== undefined && typeof value === 'function' ? value(found.key) : value) ?? null;\n };\n\n return app.simstanceManager.executeBindParameterSim(\n {\n target: this,\n targetKey: methodName,\n inputParameters: extraArgs,\n firstCheckMaker: [firstCheckMaker]\n },\n otherStorage\n );\n } else {\n // SimpleApplication(DI \uCEE8\uD14C\uC774\uB108)\uC774 \uC5C6\uB294 standalone \uC0AC\uC6A9 \uC2DC\uC5D0\uB3C4 @hostSet/@helperHostSet/\n // @helperSet\uB9CC\uD07C\uC740 buildSwcParameterArgs\uB85C \uC8FC\uC785\uD574\uC900\uB2E4 \u2014 \uD574\uB2F9 \uB370\uCF54\uB808\uC774\uD130\uAC00 \uD558\uB098\uB3C4 \uC5C6\uC73C\uBA74\n // extraArgs\uB97C \uADF8\uB300\uB85C \uBC18\uD658\uD558\uBBC0\uB85C(\uAE30\uC874 \uB3D9\uC791 \uADF8\uB300\uB85C) \uD558\uC704\uD638\uD658 \uAE68\uC9C0\uC9C0 \uC54A\uB294\uB2E4.\n const args = buildSwcParameterArgs(this, methodName, kindValues, extraArgs);\n return (this as any)[methodName](...args);\n }\n };\n\n proto._bindAttributeEvent = function (el: HTMLElement, attrName: string, script: string, eventName?: string) {\n ensureInit(this);\n if (!eventName) {\n if (!attrName.startsWith('swc-on-')) return;\n eventName = attrName.substring(7);\n }\n const elHandlers = getHandlers(this);\n let handlers = elHandlers.get(el);\n if (!handlers) {\n handlers = new Map();\n elHandlers.set(el, handlers);\n }\n\n const oldHandler = handlers.get(attrName);\n if (oldHandler) el.removeEventListener(eventName, oldHandler);\n\n const handler = async (event: any) => {\n const hostSet = SwcUtils.getHostSet(el);\n const currentWin = SwcUtils.resolveWindow(this);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {\n event,\n $data: (event as CustomEvent).detail,\n ...hostSet,\n ...helpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({script, context: el, args});\n };\n\n el.addEventListener(eventName, handler);\n handlers.set(attrName, handler);\n };\n\n proto.__swc_executeAttributeEvent = async function (el: HTMLElement, attrName: string, script: string, event: Event) {\n ensureInit(this);\n\n const hostSet = SwcUtils.getHostSet(el);\n const currentWin = SwcUtils.resolveWindow(this);\n const currentHelpers = SwcUtils.getHelperSet(currentWin);\n const detail = (event as CustomEvent).detail;\n const args = {\n event,\n $event: event,\n $data: detail,\n $detail: detail,\n ...hostSet,\n ...currentHelpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({script, context: el, args});\n };\n};\n\n// \uBD80\uBAA8 \uD074\uB798\uC2A4\uB3C4 elementDefine \uB410\uC73C\uBA74 proto.xxxCallback \uC740 \uBD80\uBAA8\uC758 swc \uB798\uD37C\uB2E4 \u2014 \uADF8\uAC78 \uC6D0\uB798 \uD568\uC218\uB85C \uBD80\uB974\uBA74 \uB77C\uC774\uD504\uC0AC\uC774\uD074\uC774 \uB450 \uBC88 \uB3C8\uB2E4.\n// \uB798\uD37C\uC5D0 \uAE30\uC5B5\uD574 \uB454 \uC0AC\uC6A9\uC790 \uC6D0\uB798 \uD568\uC218(\uC5C6\uC73C\uBA74 undefined)\uB97C \uC4F4\uB2E4.\nconst SWC_ORIGINAL_CALLBACK = Symbol.for('simple-web-component:original-callback');\nconst userCallback = (fn: any) => (typeof fn === 'function' && SWC_ORIGINAL_CALLBACK in fn ? fn[SWC_ORIGINAL_CALLBACK] : fn);\n\nexport const elementDefine =\n (name: string, config: Partial<ElementConfig> = {}): ClassDecorator =>\n (constructor: any) => {\n const { win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS } = buildEnv(config.window);\n const metadata: ElementMetadata = { ...config, name, window: win };\n\n if (!metadata.window) {\n throw new Error('window is required');\n }\n // \uD544\uB4DC @fetch \uC5D0 \uB2E4\uB978 \uB370\uCF54\uB808\uC774\uD130\uAC00 \uAC19\uC774 \uBD99\uC5C8\uC73C\uBA74 \uC815\uC758 \uC2DC\uC810\uC5D0 \uBC14\uB85C \uC54C\uB9B0\uB2E4\n assertFetchFields(constructor);\n\n let extendsTagName = metadata.extends;\n if (!extendsTagName) {\n let proto = constructor;\n const BaseHTMLElement = (win as any).HTMLElement;\n while (proto && proto !== BaseHTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n metadata.extends = extendsTagName;\n }\n\n const attributeList = findAllAttributeMetadata(constructor);\n const applyAttributeMap = findAllAttributeApplyMetadata(constructor);\n\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-connected', 'swc-on-disconnected', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const swcOnEvents = DOM_EVENT_NAMES.map(e => `swc-on-${e}`);\n\n const attributeApplyNames = Array.from(applyAttributeMap.values())\n .map(it => it.targetAttributeName)\n .filter(Boolean) as string[];\n const hostAttributes = attributeList.filter(it => it.selector === '$this').map(it => it.propertyKey || String(it.propertyKey));\n // Get original static observedAttributes before they're overwritten by Object.defineProperty\n const originalStaticObservedAttributes = (constructor.observedAttributes ?? []) as string[];\n\n const proto = constructor.prototype;\n setupPrototype(proto, win);\n\n // helperHostSet \uC740 \uC778\uC2A4\uD134\uC2A4\uB9C8\uB2E4 \uB2E4\uB974\uB2E4 \u2014 \uD074\uB798\uC2A4 \uB2E8\uC704 \uBCC0\uC218\uB85C \uB450\uBA74 \uB2E4\uB978 \uC778\uC2A4\uD134\uC2A4\uC758 connect \uAC00 \uB36E\uC5B4\uC368\uC11C\n // disconnect \uB54C \uC5C9\uB6B1\uD55C \uC778\uC2A4\uD134\uC2A4\uAC00 \uC815\uB9AC\uB41C\uB2E4. connect \uC2DC\uC810 \uAC12\uC744 \uC778\uC2A4\uD134\uC2A4\uC5D0 \uC800\uC7A5\uD574 disconnect/adopt \uC5D0\uC11C \uC4F4\uB2E4.\n const connectedHelperHostSet = (inst: any): HelperHostSet => inst.__swc_helperHostSet ?? SwcUtils.getHelperAndHostSet(inst);\n // \u2500\u2500 cyclers: \uB370\uCF54\uB808\uC774\uD130\uBCC4 \uB77C\uC774\uD504\uC0AC\uC774\uD074 \uC704\uC784 \uD074\uB798\uC2A4 (elementDefine \uC2DC 1\uD68C \uC0DD\uC131, \uACC4\uC18D \uC7AC\uC0AC\uC6A9) \u2500\u2500\n const eventCycler = new EventListenerLifeCycler();\n const resizeCycler = new ResizeObserverLifeCycler();\n const intersectionCycler = new IntersectionObserverLifeCycler();\n const mutationCycler = new MutationObserverLifeCycler();\n const cyclers: ElementDefineLifeCycler[] = [\n eventCycler,\n new ChangedAttributeLifeCycler(),\n new EmitCustomEventLifeCycler(),\n resizeCycler,\n intersectionCycler,\n mutationCycler,\n new MessageSubscribeLifeCycler(),\n new RouteSubscribeLifeCycler(),\n new SetIntervalLifeCycler(),\n new SetTimeoutLifeCycler(),\n new RequestAnimationFrameLifeCycler(),\n new EventMediaLifeCycler(),\n new FetchLifeCycler(),\n ];\n\n // observedAttributes \uAE30\uC5EC cycler (define-time, constructor \uAE30\uBC18)\n const cyclerObservedAttributes = cyclers.flatMap(c => c.getObservedAttributeNames?.(constructor) ?? []);\n const mergedObservedAttributes = [...new Set([...(metadata.observedAttributes ?? []), ...originalStaticObservedAttributes, ...cyclerObservedAttributes, ...attributeApplyNames, ...hostAttributes, ...swcLifecycleAttributes, ...swcOnEvents])];\n\n // \u2500\u2500 observer \uBE4C\uB4DC (connect 1\uD68C\uB2F9 \uC0C1\uD0DC 1\uAC1C) \u2500\u2500\n // MutationObserver\u00B7ResizeObserver \uB294 \uC778\uC2A4\uD134\uC2A4\uB2F9 1\uAC1C\uC529\uB9CC \uB9CC\uB4E4\uACE0 \uBAA8\uB4E0 \uB370\uCF54\uB808\uC774\uD130\uAC00 \uACF5\uC720\uD55C\uB2E4 (delegate \uCD94\uC801 \uD3EC\uD568).\n // 'self'(\uB80C\uB354 \uC804): \uC790\uAE30 \uC790\uC2E0 \uB300\uC0C1 mutation/resize \uB9CC \uBD99\uC5EC \uCCAB \uB80C\uB354\uBD80\uD130 \uBCF8\uB2E4.\n // 'rest'(\uB80C\uB354 \uD6C4): \uB098\uBA38\uC9C0 \uC804\uBD80\uB97C \uAC19\uC740 \uC635\uC800\uBC84\uC5D0 \uB367\uBD99\uC778\uB2E4.\n // \uC2DC\uD074\uB7EC\uAC00 scope \uBCC4\uB85C \uC790\uAE30 \uBA54\uD0C0\uB9CC \uB2F4\uC740 \uCF5C\uBC31\uC744 \uC8FC\uACE0, \uBA54\uD0C0\uB294 \uC790\uAE30 \uB300\uC0C1 \uB808\uCF54\uB4DC/\uC5D4\uD2B8\uB9AC\uB9CC \uBC1B\uC73C\uBBC0\uB85C \uB530\uB85C \uB098\uB20C \uD544\uC694\uAC00 \uC5C6\uB2E4.\n // IntersectionObserver \uB294 \uC635\uC158 \uADF8\uB8F9\uBCC4\uB85C 1\uAC1C ('rest' \uC804\uC6A9).\n type IntersectionDelegate = { target: string; delegateRoot?: SwcRootType; observe: (el: Element) => void; unobserve: (el: Element) => void };\n interface ObserverState {\n observers: Array<MutationObserver | ResizeObserver | IntersectionObserver>;\n ro?: ResizeObserver;\n roCallbacks: Set<ResizeObserverSetEntry['callback']>;\n roObserved: WeakSet<Element>;\n resizeDelegates: Array<ResizeObserverSetEntry & { target: string }>;\n intersectionDelegates: IntersectionDelegate[];\n mo?: MutationObserver;\n moCallbacks: Set<MutationObserverSetEntry['callback']>;\n moTargets: Map<Element | ShadowRoot, MutationObserverInit>;\n }\n const newObserverState = (): ObserverState => ({\n observers: [], roCallbacks: new Set(), roObserved: new WeakSet(), resizeDelegates: [], intersectionDelegates: [],\n moCallbacks: new Set(), moTargets: new Map(),\n });\n\n // \uAC19\uC740 target \uC774 \uC5EC\uB7EC \uC18C\uC2A4\uC5D0\uC11C \uC9C0\uC815\uB418\uBA74 MutationObserverInit \uC744 \uD569\uC9D1\uD569(\uCD5C\uB300 \uAC10\uC9C0\uBC94\uC704)\uC73C\uB85C \uBCD1\uD569\uD55C\uB2E4.\n const mergeMutationInit = (existing: MutationObserverInit | undefined, next: MutationObserverInit): MutationObserverInit => {\n if (!existing) return next;\n const mergedFilter = existing.attributeFilter || next.attributeFilter\n ? [...new Set([...(existing.attributeFilter ?? []), ...(next.attributeFilter ?? [])])]\n : undefined;\n return {\n childList: existing.childList || next.childList,\n attributes: existing.attributes || next.attributes,\n characterData: existing.characterData || next.characterData,\n subtree: existing.subtree || next.subtree,\n attributeOldValue: existing.attributeOldValue || next.attributeOldValue,\n characterDataOldValue: existing.characterDataOldValue || next.characterDataOldValue,\n attributeFilter: mergedFilter,\n };\n };\n\n // delegate \uC140\uB809\uD130\uC5D0 \uB9DE\uB294 \uC694\uC18C(\uC790\uC2E0 \uB610\uB294 \uD558\uC704)\uB97C \uCC3E\uC544 observe/unobserve \u2014 MutationObserver \uCF5C\uBC31\uC5D0\uC11C \uB3D9\uC801 \uCD94\uC801\uC6A9\n const forDelegateMatches = (n: Node, selector: string, fn: (el: Element) => void) => {\n if (n.nodeType !== 1) return;\n const el = n as HTMLElement;\n const isThis = selector === '$this' || selector === '';\n if (isThis || el.matches?.(selector) || el.closest?.(selector)) fn(el);\n else el.querySelectorAll(selector).forEach(fn);\n };\n\n const buildObservers = async (helperHostSet: HelperHostSet, scope: ObserverScope, st: ObserverState, alive: () => boolean): Promise<void> => {\n const inst = helperHostSet.$this;\n // 'self' \uB294 \uC21C\uC218 \uC218\uC9D1\uAE30(observer \uC2DC\uD074\uB7EC)\uB9CC \uB3CC\uB9B0\uB2E4 \u2014 \uB9AC\uC2A4\uB108\u00B7\uD0C0\uC774\uBA38 \uB4F1 \uBD80\uC791\uC6A9 \uC2DC\uD074\uB7EC\uB294 'rest' \uC5D0\uC11C \uD55C \uBC88\uB9CC.\n const activeCyclers = scope === 'self' ? [resizeCycler, mutationCycler] : cyclers;\n\n // delegate \uCD94\uC801 root \uD574\uC11D: shadow/light/auto/all \u2192 \uC2E4\uC81C root \uBAA9\uB85D\n const resolveDelegateRoots = (delegateRoot: SwcRootType | undefined): (HTMLElement | ShadowRoot)[] => {\n const r = delegateRoot || 'auto';\n const roots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') roots.push(inst.shadowRoot || inst);\n else if (r === 'light') roots.push(inst);\n else if (r === 'shadow' && inst.shadowRoot) roots.push(inst.shadowRoot);\n else if (r === 'all') { roots.push(inst); if (inst.shadowRoot) roots.push(inst.shadowRoot); }\n return roots;\n };\n\n // 1. \uC2DC\uD074\uB7EC onConnected \u2192 observer Set \uC218\uC9D1 (\uC5EC\uB7EC \uC2DC\uD074\uB7EC\uAC00 \uBC18\uD658\uD55C Set \uC744 \uC804\uBD80 \uB204\uC801)\n let resizeObserverSet: ResizeObserverSet = [];\n let mutationObserverSet: MutationObserverSet = [];\n let intersectionObserverSet: IntersectionObserverSet = [];\n for (const c of activeCyclers) {\n const result = (await c.onConnected?.(helperHostSet, resizeObserverSet, scope)) as OnConnectedResult | void;\n // await \uC0AC\uC774\uC5D0 \uB5BC\uC5B4\uC84C\uC73C\uBA74(\uC0C8 \uC5F0\uACB0\uC774 \uCC28\uB840\uB97C \uAC00\uC838\uAC14\uC73C\uBA74) \uC5EC\uAE30\uC11C \uBA48\uCD98\uB2E4 \u2014 \uC635\uC800\uBC84\uB97C \uB9CC\uB4E4\uBA74 \uC544\uBB34\uB3C4 disconnect \uD558\uC9C0 \uC54A\uC544 \uC0CC\uB2E4.\n if (!alive()) return;\n if (!result) continue;\n if (result.resizeObserverSet?.length) resizeObserverSet = [...resizeObserverSet, ...result.resizeObserverSet];\n if (result.mutationObserverSet?.length) mutationObserverSet = [...mutationObserverSet, ...result.mutationObserverSet];\n if (result.intersectionObserverSet?.length) intersectionObserverSet = [...intersectionObserverSet, ...result.intersectionObserverSet];\n }\n\n // 2. ResizeObserver (1\uAC1C). delegate \uD56D\uBAA9\uC740 \uC140\uB809\uD130 \uBB38\uC790\uC5F4\uC774\uB77C \uCD08\uAE30 observe \uD558\uC9C0 \uC54A\uACE0 MutationObserver \uB85C \uB3D9\uC801 \uCD94\uC801\uD55C\uB2E4.\n const resizeObserve = (el: Element, opts?: ResizeObserverOptions) => {\n if (!st.ro || st.roObserved.has(el)) return;\n st.ro.observe(el, opts);\n st.roObserved.add(el);\n };\n const resizeUnobserve = (el: Element) => {\n if (!st.ro || !st.roObserved.has(el)) return;\n st.ro.unobserve(el);\n st.roObserved.delete(el);\n };\n const newResizeDelegates: ObserverState['resizeDelegates'] = [];\n if (resizeObserverSet.length) {\n if (!st.ro) {\n st.ro = new win.ResizeObserver((entries, obs) => { for (const cb of st.roCallbacks) cb(entries, obs); });\n st.observers.push(st.ro);\n }\n for (const e of resizeObserverSet) {\n st.roCallbacks.add(e.callback);\n if (e.delegate) {\n if (typeof e.target === 'string') newResizeDelegates.push(e as ResizeObserverSetEntry & { target: string });\n continue;\n }\n if (typeof e.target === 'string') {\n // \uBB38\uC790\uC5F4(non-delegate)\uC774\uBA74 root \uC5D0\uC11C \uAC80\uC0C9\uB41C \uC694\uC18C\uB4E4\uC744 observe \uB300\uC0C1\uC73C\uB85C \uCD94\uAC00\uD55C\uB2E4.\n for (const r of resolveDelegateRoots(e.delegateRoot)) r.querySelectorAll(e.target).forEach(el => resizeObserve(el, e.options));\n continue;\n }\n st.ro.observe(e.target as Element, e.options);\n if (e.target instanceof Element) st.roObserved.add(e.target);\n }\n st.resizeDelegates.push(...newResizeDelegates);\n }\n\n // 3. IntersectionObserver: \uC635\uC158 \uADF8\uB8F9\uBCC4\uB85C 1\uAC1C. delegate \uD56D\uBAA9\uC740 MutationObserver \uB85C \uB3D9\uC801 \uCD94\uC801\uD55C\uB2E4.\n const newIntersectionDelegates: IntersectionDelegate[] = [];\n for (const group of intersectionObserverSet) {\n const ioCallbacks = [...new Set(group.observeTargets.map(e => e.callback))];\n const io = new win.IntersectionObserver((entries, obs) => { for (const cb of ioCallbacks) cb(entries, obs); }, group.options);\n const ioObserved = new WeakSet<Element>();\n const observe = (el: Element) => { if (ioObserved.has(el)) return; io.observe(el); ioObserved.add(el); };\n const unobserve = (el: Element) => { if (!ioObserved.has(el)) return; io.unobserve(el); ioObserved.delete(el); };\n for (const e of group.observeTargets) {\n if (e.delegate) { newIntersectionDelegates.push({ target: e.target as string, delegateRoot: e.delegateRoot, observe, unobserve }); continue; }\n if (typeof e.target === 'string') {\n for (const r of resolveDelegateRoots(e.delegateRoot)) r.querySelectorAll(e.target).forEach(observe);\n continue;\n }\n observe(e.target as Element);\n }\n st.observers.push(io);\n }\n st.intersectionDelegates.push(...newIntersectionDelegates);\n\n // 4. MutationObserver (1\uAC1C): mutation \uCF5C\uBC31 + resize/intersection delegate \uB3D9\uC801 \uCD94\uC801\uC744 \uD568\uAED8 \uCC98\uB9AC\uD55C\uB2E4.\n if (mutationObserverSet.length || newResizeDelegates.length || newIntersectionDelegates.length) {\n if (!st.mo) {\n st.mo = new win.MutationObserver((mutations, obs) => {\n for (const mut of mutations) {\n for (const [nodes, on] of [[mut.addedNodes, true], [mut.removedNodes, false]] as const) {\n for (const n of Array.from(nodes)) {\n for (const d of st.resizeDelegates) forDelegateMatches(n, d.target, el => on ? resizeObserve(el, d.options) : resizeUnobserve(el));\n for (const d of st.intersectionDelegates) forDelegateMatches(n, d.target, el => on ? d.observe(el) : d.unobserve(el));\n }\n }\n }\n for (const cb of st.moCallbacks) cb(mutations, obs);\n });\n st.observers.push(st.mo);\n }\n const addObserveTarget = (target: Element | ShadowRoot, options: MutationObserverInit) => {\n st.moTargets.set(target, mergeMutationInit(st.moTargets.get(target), options));\n };\n for (const e of mutationObserverSet) {\n st.moCallbacks.add(e.callback);\n if (e.delegate) continue;\n const init = e.options ?? { childList: true };\n if (typeof e.target === 'string') {\n for (const r of resolveDelegateRoots(e.delegateRoot)) r.querySelectorAll(e.target).forEach(el => addObserveTarget(el, init));\n continue;\n }\n addObserveTarget(e.target, init);\n }\n for (const d of [...newResizeDelegates, ...newIntersectionDelegates]) {\n for (const r of resolveDelegateRoots(d.delegateRoot)) addObserveTarget(r, { childList: true, subtree: true });\n }\n // \uAC19\uC740 \uB178\uB4DC\uB97C \uB2E4\uC2DC observe \uD558\uBA74 \uC635\uC158\uB9CC \uAD50\uCCB4\uB41C\uB2E4 (\uB4F1\uB85D\u00B7\uC804\uB2EC \uC911\uBCF5 \uC5C6\uC74C) \u2192 'self' \uBD84\uACFC \uD569\uCCD0\uC9C4 \uC635\uC158\uC73C\uB85C \uAC31\uC2E0\n for (const [target, options] of st.moTargets) st.mo.observe(target, options);\n }\n\n inst.__swc_observers = st.observers;\n };\n\n const originalConnected = userCallback(proto.connectedCallback);\n proto.connectedCallback = async function () {\n ensureInit(this);\n // \uC7AC\uC5F0\uACB0 \uC2DC \uB204\uC801 \uBC29\uC9C0 \u2014 cycler \uB0B4\uBD80 \uB9AC\uC18C\uC2A4 \uCD08\uAE30\uD654\n const helperHostSet = SwcUtils.getHelperAndHostSet(this as any);\n (this as any).__swc_helperHostSet = helperHostSet;\n const appHost = helperHostSet.$appHost;\n const useSsr = isSSR(this);\n // \uC5F0\uACB0 \uCC98\uB9AC\uB294 await \uB97C \uAC70\uCE5C\uB2E4. \uADF8 \uC0AC\uC774 \uB5A8\uC5B4\uC9C0\uAC70\uB098 \uB2E4\uC2DC \uBD99\uC73C\uBA74(disconnect / \uC0C8 connect \uAC00 \uCC28\uB840 \uBC88\uD638\uB97C \uC62C\uB9AC\uBA74) \uC774 \uC5F0\uACB0\uC740 \uBA48\uCD98\uB2E4 \u2014\n // \uC548 \uADF8\uB7EC\uBA74 \uB5BC\uC5B4\uC9C4 \uB4A4\uC5D0 \uB9AC\uC2A4\uB108\u00B7\uD0C0\uC774\uBA38\uAC00 \uB4F1\uB85D\uB3FC \uC0C8\uACE0, \uB2E4\uC2DC \uBD99\uC740 \uC5F0\uACB0\uACFC \uACB9\uCCD0 \uB450 \uBC88\uC529 \uB3C8\uB2E4.\n // (isConnected \uB294 \uBCF4\uC9C0 \uC54A\uB294\uB2E4 \u2014 \uC9C1\uC811 \uD638\uCD9C\uC774\uB098 SSR \uCC98\uB7FC \uBD99\uC5B4 \uC788\uC9C0 \uC54A\uC544\uB3C4 \uB77C\uC774\uD504\uC0AC\uC774\uD074\uC740 \uB3CC\uC544\uC57C \uD55C\uB2E4)\n const gen = ((this as any).__swc_connectGen = ((this as any).__swc_connectGen ?? 0) + 1);\n const alive = () => (this as any).__swc_connectGen === gen;\n const obsState = newObserverState();\n try {\n if (appHost && typeof (appHost as any)._connected === 'function') {\n await (appHost as any)._connected(this);\n if (!alive()) return;\n } else if (appHost && typeof (appHost as any)) {\n (appHost as any)._connected_safari_and_standby ??= [];\n (appHost as any)._connected_safari_and_standby.push(this);\n }\n\n const conf = getElementConfig(this);\n\n // before-connected \uB77C\uC774\uD504\uC0AC\uC774\uD074 \uBA54\uC11C\uB4DC (@onConnectedBefore)\n for (const m of findAllOnConnectedBeforeMetadata(this)) {\n await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n if (!alive()) return;\n }\n (this as any)._executeSwcScript('swc-on-before-connected', helperHostSet);\n\n // \u2500\u2500 \uB80C\uB354 (@onConnected / @onConnectedBody*) \u2014 elementDefine \uCC45\uC784 \u2500\u2500\n const targetConnectedList = useSsr ? [] : findAllOnConnectedMetadata(constructor);\n const shadowMode = conf?.useShadow || targetConnectedList.find(it => it.options.useShadow)?.options.useShadow;\n if (shadowMode && !this.shadowRoot) {\n const mode = shadowMode === true ? 'open' : shadowMode;\n this.attachShadow({ mode: mode as ShadowRootMode });\n }\n\n // \uC790\uAE30 \uC790\uC2E0 \uB300\uC0C1 mutation/resize \uB294 \uB80C\uB354 \uC804\uC5D0 \uBD99\uC5EC \uCCAB \uB80C\uB354\uBD80\uD130 \uBCF8\uB2E4 (shadow root \uAC00 \uC0DD\uAE34 \uB4A4\uB77C $this \uAC00 \uB9DE\uB294 root \uB97C \uC7A1\uB294\uB2E4)\n await buildObservers(helperHostSet, 'self', obsState, alive);\n if (!alive()) return;\n\n const stateContext: any = { ...helperHostSet };\n findAllStateMetadata(this).forEach(it => {\n stateContext[it.name] = this[it.propertyKey];\n });\n\n const shadowChildren: Node[] = [];\n const lightChildren: Node[] = [];\n\n if (targetConnectedList.length > 0) {\n const toNodes = (value: any): Node[] => {\n if (!value) return [];\n if (typeof value === 'string') {\n const htmlTemplateElement = doc.createElement('template');\n htmlTemplateElement.innerHTML = value;\n return Array.from(htmlTemplateElement.content.childNodes);\n }\n if (Array.isArray(value)) return value;\n return [value];\n };\n // fallback: \uBE44\uB3D9\uAE30 \uB80C\uB354 \uB300\uAE30 \uC911\uC5D0 \uBA3C\uC800 \uBCF4\uC5EC\uC900\uB2E4. \uACB0\uACFC\uB294 \uBAA8\uB4E0 \uB80C\uB354 \uBA54\uC11C\uB4DC\uAC00 \uB05D\uB09C \uB4A4 \uD55C \uBC88\uC5D0 \uB4E4\uC5B4\uAC00\uBBC0\uB85C\n // \uADF8\uB54C \uAC19\uC774 \uAC77\uC5B4\uB0B8\uB2E4 (\uBA54\uC11C\uB4DC\uBCC4\uB85C \uAC77\uC73C\uBA74 \uB2E4\uC74C \uBA54\uC11C\uB4DC\uB97C \uAE30\uB2E4\uB9AC\uB294 \uB3D9\uC548 \uBE48 \uD654\uBA74\uC774 \uB41C\uB2E4).\n const shownFallbacks: Node[] = [];\n const removeFallbacks = () => shownFallbacks.splice(0).forEach(n => (n as ChildNode).remove());\n for (const meta of targetConnectedList) {\n const useShadowRoot = meta.options.useShadow || conf?.useShadow;\n if (meta.options.fallback) {\n const fb = typeof meta.options.fallback === 'function'\n ? (meta.options.fallback as any)(helperHostSet)\n : meta.options.fallback;\n const fallbackNodes = toNodes(fb);\n const parent = useShadowRoot ? this.shadowRoot : this;\n if (fallbackNodes.length && parent) {\n try {\n const processed = SwcUtils.projectProcessHtml(this._swcId, fallbackNodes, doc);\n parent.append(...processed);\n shownFallbacks.push(...processed);\n } catch (e) {\n console.error('[ElementDefine] fallback setting error:', e);\n }\n }\n }\n let res = await (this as any)._invokeLifecycleMethod(meta.propertyKey, helperHostSet);\n if (!alive()) { removeFallbacks(); return; }\n if (typeof res === 'string') {\n const htmlTemplateElement = doc.createElement('template');\n htmlTemplateElement.innerHTML = res;\n res = htmlTemplateElement.content;\n }\n if (res) {\n const nodes = Array.isArray(res) ? res : [res];\n if (meta.options.useShadow || conf?.useShadow) {\n shadowChildren.push(...nodes);\n } else {\n lightChildren.push(...nodes);\n }\n }\n }\n removeFallbacks();\n try {\n if (this.shadowRoot) {\n const applyShadowChildren = SwcUtils.projectProcessHtml(this._swcId, shadowChildren, doc);\n this.shadowRoot.replaceChildren(...applyShadowChildren);\n }\n if (lightChildren.length) {\n const applyLightChildren = SwcUtils.projectProcessHtml(this._swcId, lightChildren, doc);\n this.replaceChildren(...applyLightChildren);\n }\n } catch (e) {\n console.error('[ElementDefine] innerHTML setting error:', e);\n }\n new ElementApply(this, { id: this._swcId }).apply({ context: stateContext, bind: this });\n } else {\n new ElementApply(this, { id: this._swcId }).apply({ exclude: { html: true, text: true, attribute: true }, context: stateContext, bind: this });\n }\n\n // global delegate event\n const root = this.getRootNode();\n if (!globalDelegatedRoots.has(root)) {\n DOM_EVENT_NAMES.forEach(type => {\n root.addEventListener(type, handleGlobalSwcEvent);\n });\n globalDelegatedRoots.add(root);\n }\n\n // \u2500\u2500 cycler \uC2E4\uD589 (\uB80C\uB354 \uD6C4): \uB098\uBA38\uC9C0 \uC2DC\uD074\uB7EC onConnected \u2192 observer Set \uC218\uC9D1 \u2192 \uAC19\uC740 \uC635\uC800\uBC84\uC5D0 \uB367\uBD99\uC784 \u2500\u2500\n await buildObservers(helperHostSet, 'rest', obsState, alive);\n if (!alive()) return;\n\n if (originalConnected) await originalConnected.apply(this);\n if (!alive()) return;\n\n // after-connected \uB77C\uC774\uD504\uC0AC\uC774\uD074 \uBA54\uC11C\uB4DC (@onConnectedAfter)\n for (const m of findAllOnConnectedAfterMetadata(this)) {\n await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n if (!alive()) return;\n }\n (this as any)._executeSwcScript('swc-on-connected', helperHostSet);\n (this as any)._executeSwcScript('swc-on-after-connected', helperHostSet);\n (this as any).__swc_connected = true;\n } finally {\n // \uBA48\uCD98 \uC5F0\uACB0\uC740 \uC644\uB8CC \uD6C5\uC744 \uBD80\uB974\uC9C0 \uC54A\uACE0, \uC571 host \uC5D0\uB294 \uC911\uB2E8\uB9CC \uC54C\uB9B0\uB2E4 (\uC790\uC2DD \uC5F0\uACB0 \uC218\uB9CC \uB9DE\uCD94\uACE0 \uC7AC\uC0DD\uC740 \uC548 \uD568)\n const aborted = !alive();\n if (!aborted) for (const m of findAllLifecycleMetadata(this, ON_CONNECTED_COMPLETED_METADATA_KEY)) await (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n if (appHost && typeof (appHost as any)._connectedDone === 'function') {\n await (appHost as any)._connectedDone(this, { aborted });\n }\n }\n };\n\n /////////////////////////////////////////////////\n // disconnectedCallback\n ////////////////////////////////////////////////\n const originalDisconnected = userCallback(proto.disconnectedCallback);\n proto.disconnectedCallback = function () {\n (this as any).__swc_connectGen = ((this as any).__swc_connectGen ?? 0) + 1; // \uC9C4\uD589 \uC911\uC778 \uC5F0\uACB0\uC740 \uBA48\uCD98\uB2E4\n // \uB5A8\uC5B4\uC9C4 \uB4A4\uB77C DOM \uC73C\uB85C\uB294 $appHost \uB97C \uB2E4\uC2DC \uBABB \uCC3E\uB294\uB2E4 \u2192 connect \uB54C \uC800\uC7A5\uD55C \uC774 \uC778\uC2A4\uD134\uC2A4\uC758 \uAC12\n const helperHostSet = connectedHelperHostSet(this);\n const appHost = helperHostSet.$appHost;\n if (appHost && typeof (appHost as any)._disconnected === 'function') {\n (appHost as any)._disconnected(this);\n }\n\n (this as any)._executeSwcScript('swc-on-before-disconnected', helperHostSet);\n for (const m of findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY)) (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n for (const c of cyclers) c.onDisconnected?.(helperHostSet);\n\n for (const o of (this as any).__swc_observers ?? []) {\n try { (o as any)?.disconnect?.(); } catch (e) { console.error('[SWC] observer disconnect error:', e); }\n }\n (this as any).__swc_observers = [];\n\n // elementApply event listener \uC815\uB9AC\n new ElementApply(this, { id: this._swcId }).removeAllEventListener();\n\n if (originalDisconnected) originalDisconnected.apply(this);\n\n for (const m of findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY)) (this as any)._invokeLifecycleMethod(m.propertyKey, helperHostSet);\n (this as any)._executeSwcScript('swc-on-disconnected', helperHostSet);\n (this as any)._executeSwcScript('swc-on-after-disconnected', helperHostSet);\n (this as any).__swc_connected = false;\n };\n\n const originalAdopted = userCallback(proto.adoptedCallback);\n proto.adoptedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-adopted', hostSet);\n for (const m of findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY)) (this as any)._invokeLifecycleMethod(m.propertyKey, hostSet);\n for (const c of cyclers) c.onAdopted?.(connectedHelperHostSet(this));\n\n if (originalAdopted) originalAdopted.apply(this);\n\n for (const m of findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY)) (this as any)._invokeLifecycleMethod(m.propertyKey, hostSet);\n (this as any)._executeSwcScript('swc-on-adopted', hostSet);\n (this as any)._executeSwcScript('swc-on-after-adopted', hostSet);\n };\n\n const originalAttributeChanged = userCallback(proto.attributeChangedCallback);\n proto.attributeChangedCallback = function (name: string, old: string | null, newVal: string | null) {\n if (originalAttributeChanged) originalAttributeChanged.apply(this, [name, old, newVal]);\n\n // attributeChangedCallback \uC740 connected \uC774\uC804\uC5D0\uB3C4 \uD638\uCD9C\uB420 \uC218 \uC788\uC73C\uBBC0\uB85C\n // \uD074\uB85C\uC800\uC758 helperHostSet(null \uAC00\uB2A5) \uB300\uC2E0 \uC774 \uC2DC\uC810\uC5D0 \uC0C8\uB85C \uACC4\uC0B0\uD55C\uB2E4.\n const helperAndHostSet = SwcUtils.getHelperAndHostSet(this as any);\n\n // Process expression directive before passing to handlers\n let processedVal: any = newVal;\n if (newVal !== null) {\n const ae = new ActionExpression(newVal);\n const expr = ae.getFirstExpression('callReturn');\n if (expr) {\n const win = SwcUtils.resolveWindow(this);\n const exprHelperAndHostSet = SwcUtils.getHelperAndHostSet(this as any);\n const script = ConvertUtils.decodeHtmlEntity(expr.script, win.document);\n try {\n const result = FunctionUtils.executeReturn({\n script: script,\n context: this,\n args: exprHelperAndHostSet\n });\n processedVal = result;\n } catch (e) {\n console.error(`[SWC] Failed to execute directive {{= ${expr.script} }} on attribute ${name}: ${exprHelperAndHostSet}`, e);\n processedVal = newVal;\n }\n }\n }\n\n if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {\n if (newVal !== null) {\n const eventName = name.substring(7);\n (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);\n }\n }\n\n // cycler \uC704\uC784: attribute \uC635\uC800\uBE59(@emitCustomEvent(attributeName) / @changedAttribute \uB4F1)\n for (const c of cyclers) c.onAttributeChanged?.(helperAndHostSet, name, old, processedVal);\n };\n\n Object.defineProperty(constructor, 'observedAttributes', {\n get: () => mergedObservedAttributes,\n configurable: true\n });\n\n // \uC774 \uD074\uB798\uC2A4\uB97C \uB2E4\uC2DC \uC0C1\uC18D\uD574 elementDefine \uD558\uBA74 \uC790\uC2DD\uC774 \uC774 \uB798\uD37C \uB300\uC2E0 \uC6D0\uB798 \uC0AC\uC6A9\uC790 \uD568\uC218\uB97C \uBD80\uB974\uB3C4\uB85D \uAE30\uC5B5\uD574 \uB454\uB2E4\n proto.connectedCallback[SWC_ORIGINAL_CALLBACK] = originalConnected;\n proto.disconnectedCallback[SWC_ORIGINAL_CALLBACK] = originalDisconnected;\n proto.adoptedCallback[SWC_ORIGINAL_CALLBACK] = originalAdopted;\n proto.attributeChangedCallback[SWC_ORIGINAL_CALLBACK] = originalAttributeChanged;\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, metadata, constructor);\n const registry = metadata.customElementRegistry || (win as any)?.customElements;\n if (registry && !registry.get(metadata.name)) {\n registry.define(metadata.name, constructor as any, metadata.extends ? { extends: metadata.extends } : undefined);\n }\n return constructor;\n };\n"],
5
+ "mappings": "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",
6
6
  "names": ["proto", "name", "win"]
7
7
  }
@@ -3,7 +3,7 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import { ReflectUtils } from "@dooboostore/core";
5
5
  import { SwcUtils } from "../utils/Utils.js";
6
- import { buildSwcParameterArgs } from "./parameter.js";
6
+ import { buildSwcParameterArgs, buildCommonKindValues } from "./parameter.js";
7
7
  const EVENT_MEDIA_METADATA_KEY = Symbol.for("simple-web-component:event-media");
8
8
  function eventMedia(query, eventType, options) {
9
9
  return (target, propertyKey) => {
@@ -39,14 +39,11 @@ class EventMediaLifeCycler {
39
39
  try {
40
40
  const helper = SwcUtils.getHelperAndHostSet(inst);
41
41
  if (meta.filter && !await meta.filter(e, { currentThis: inst, helper })) return;
42
- const hostSet = SwcUtils.getHostSet(inst);
43
- const helperSet = SwcUtils.getHelperSet(win);
42
+ const common = buildCommonKindValues(inst, win);
44
43
  const legacyArgs = [e, helperHostSet];
45
44
  const buildArgs = (beforeReturn) => buildSwcParameterArgs(inst, meta.propertyKey, {
45
+ ...common,
46
46
  eventObject: e,
47
- hostSet,
48
- helperHostSet: helper,
49
- helperSet,
50
47
  eventMediaBeforeReturn: beforeReturn
51
48
  }, legacyArgs);
52
49
  let args = buildArgs(void 0);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/eventMedia.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ElementDefineLifeCycler, HelperHostSet } from '../types';\nimport { SwcUtils } from '../utils/Utils';\nimport { buildSwcParameterArgs } from './parameter';\n\nexport const EVENT_MEDIA_METADATA_KEY = Symbol.for('simple-web-component:event-media');\n\nexport interface EventMediaOptions<Return = any> {\n /** \uBBF8\uB514\uC5B4\uCFFC\uB9AC \uBCC0\uD654 \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?: (e: MediaQueryListEvent, 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 @eventMediaBeforeReturn \uC73C\uB85C \uD578\uB4E4\uB7EC\uC5D0 \uC8FC\uC785\uB41C\uB2E4. */\n before?: (e: MediaQueryListEvent, meta: { currentThis: any; helper: HelperHostSet }, args: any[]) => 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 \uD578\uB4E4\uB7EC \uC778\uC790/\uACB0\uACFC/\uC5D0\uB7EC\uB97C \uBC1B\uB294\uB2E4. \uC5D0\uB7EC\uB294 \uC0BC\uD0A4\uC9C0 \uC54A\uACE0(\uB85C\uAE45\uB428). */\n finally?: (e: MediaQueryListEvent, meta: { currentThis: any; helper: HelperHostSet }, ctx: { args: any[]; result?: Return; error?: any }) => any | Promise<any>;\n}\n\nexport interface EventMediaMetadata extends EventMediaOptions {\n propertyKey: string | symbol;\n query: string;\n eventType: string;\n}\n\n/**\n * CSS \uBBF8\uB514\uC5B4\uCFFC\uB9AC(`window.matchMedia`) \uC0C1\uD0DC \uBCC0\uD654\uB97C \uAC10\uC9C0\uD55C\uB2E4.\n * connect \uC2DC \uC790\uB3D9\uC73C\uB85C \uAD6C\uB3C5\uD558\uACE0, disconnect \uC2DC \uC790\uB3D9\uC73C\uB85C \uD574\uC81C\uD55C\uB2E4.\n *\n * MediaQueryList\uB294 \uC2A4\uD399\uC0C1 'change' \uC774\uBCA4\uD2B8 \uD558\uB098\uB9CC \uC815\uC758\uB3FC\uC788\uB2E4 \u2014 eventType\uC740 \uADF8\uB798\uB3C4 \uBA85\uC2DC\uC801\uC73C\uB85C \uBC1B\uB294\uB2E4\n * (\uB2E4\uB978 @event* \uACC4\uC5F4\uCC98\uB7FC \uBCA0\uC774\uC2A4\uB294 \uBA85\uC2DC\uC801, \uD3B8\uC758 \uBCC4\uCE6D\uC774 \uAC12\uC744 \uACE0\uC815\uD558\uB294 \uCEE8\uBCA4\uC158\uC744 \uB530\uB984). 'change' \uACE0\uC815 \uBC84\uC804\uC740\n * eventMediaChange\uB97C \uC0AC\uC6A9\uD55C\uB2E4.\n */\nexport function eventMedia(query: string, eventType: string): MethodDecorator;\nexport function eventMedia<Return = any>(query: string, eventType: string, options: EventMediaOptions<NoInfer<Return>>): MethodDecorator;\nexport function eventMedia(query: string, eventType: string, options?: EventMediaOptions): MethodDecorator {\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let metaList = ReflectUtils.getOwnMetadata(EVENT_MEDIA_METADATA_KEY, constructor) as EventMediaMetadata[];\n if (!metaList) {\n metaList = [];\n ReflectUtils.defineMetadata(EVENT_MEDIA_METADATA_KEY, metaList, constructor);\n }\n metaList.push({ propertyKey, query, eventType, filter: options?.filter, before: options?.before, finally: options?.finally });\n };\n}\n\n/** eventMedia(query, 'change')\uC758 \uBCC4\uCE6D - MediaQueryList\uAC00 \uC2E4\uC81C\uB85C \uBC1C\uC0DD\uC2DC\uD0A4\uB294 \uC720\uC77C\uD55C \uC774\uBCA4\uD2B8. */\nexport function eventMediaChange(query: string): MethodDecorator;\nexport function eventMediaChange<Return = any>(query: string, options: EventMediaOptions<NoInfer<Return>>): MethodDecorator;\nexport function eventMediaChange(query: string, options?: EventMediaOptions): MethodDecorator {\n return eventMedia(query, 'change', options as any);\n}\n\nexport const findAllEventMediaMetadata = (target: any): EventMediaMetadata[] => {\n const constructor = typeof target === 'function' ? target : target.constructor;\n return (ReflectUtils.findAllMetadata<EventMediaMetadata[]>(EVENT_MEDIA_METADATA_KEY, constructor) || []).flat();\n};\n\nexport class EventMediaLifeCycler implements ElementDefineLifeCycler {\n private readonly entriesMap = new WeakMap<any, Array<{ mql: MediaQueryList; eventType: string; handler: (e: Event) => void }>>();\n\n onConnected(helperHostSet: HelperHostSet): void {\n const inst = helperHostSet.$this;\n const metaList = findAllEventMediaMetadata(inst);\n if (metaList.length === 0) return;\n\n const win = helperHostSet.$w;\n const entries: Array<{ mql: MediaQueryList; eventType: string; handler: (e: Event) => void }> = [];\n for (const meta of metaList) {\n const mql = win.matchMedia(meta.query);\n const handler = async (e: Event) => {\n try {\n const helper = SwcUtils.getHelperAndHostSet(inst);\n if (meta.filter && !(await meta.filter(e as MediaQueryListEvent, { currentThis: inst, helper }))) return;\n const hostSet = SwcUtils.getHostSet(inst);\n const helperSet = SwcUtils.getHelperSet(win);\n const legacyArgs = [e, helperHostSet];\n const buildArgs = (beforeReturn: any) => buildSwcParameterArgs(inst, meta.propertyKey, {\n eventObject: e,\n hostSet,\n helperHostSet: helper,\n helperSet,\n eventMediaBeforeReturn: beforeReturn\n }, legacyArgs);\n // before\uB97C \uBA3C\uC800 \uB3CC\uB824 \uADF8 \uB9AC\uD134\uAC12\uC744 @eventMediaBeforeReturn \uC73C\uB85C \uC8FC\uC785.\n let args = buildArgs(undefined);\n if (meta.before) {\n const beforeReturn = await meta.before(e as MediaQueryListEvent, { currentThis: inst, helper }, args);\n args = buildArgs(beforeReturn);\n }\n let result: any, error: any;\n try {\n result = await inst[meta.propertyKey](...args);\n } catch (err) {\n error = err;\n } finally {\n if (meta.finally) await meta.finally(e as MediaQueryListEvent, { currentThis: inst, helper }, { args, result, error });\n }\n if (error) throw error;\n } catch (err) {\n console.error('[SWC] eventMedia handler error:', err);\n }\n };\n mql.addEventListener(meta.eventType, handler);\n entries.push({ mql, eventType: meta.eventType, handler });\n }\n this.entriesMap.set(inst, entries);\n }\n\n onDisconnected(helperHostSet: HelperHostSet): void {\n const inst = helperHostSet.$this;\n for (const { mql, eventType, handler } of this.entriesMap.get(inst) ?? []) {\n try {\n mql.removeEventListener(eventType, handler);\n } catch (e) {\n console.error('[SWC] eventMedia cleanup error:', e);\n }\n }\n this.entriesMap.delete(inst);\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ElementDefineLifeCycler, HelperHostSet } from '../types';\nimport { SwcUtils } from '../utils/Utils';\nimport { buildSwcParameterArgs, buildCommonKindValues } from './parameter';\n\nexport const EVENT_MEDIA_METADATA_KEY = Symbol.for('simple-web-component:event-media');\n\nexport interface EventMediaOptions<Return = any> {\n /** \uBBF8\uB514\uC5B4\uCFFC\uB9AC \uBCC0\uD654 \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?: (e: MediaQueryListEvent, 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 @eventMediaBeforeReturn \uC73C\uB85C \uD578\uB4E4\uB7EC\uC5D0 \uC8FC\uC785\uB41C\uB2E4. */\n before?: (e: MediaQueryListEvent, meta: { currentThis: any; helper: HelperHostSet }, args: any[]) => 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 \uD578\uB4E4\uB7EC \uC778\uC790/\uACB0\uACFC/\uC5D0\uB7EC\uB97C \uBC1B\uB294\uB2E4. \uC5D0\uB7EC\uB294 \uC0BC\uD0A4\uC9C0 \uC54A\uACE0(\uB85C\uAE45\uB428). */\n finally?: (e: MediaQueryListEvent, meta: { currentThis: any; helper: HelperHostSet }, ctx: { args: any[]; result?: Return; error?: any }) => any | Promise<any>;\n}\n\nexport interface EventMediaMetadata extends EventMediaOptions {\n propertyKey: string | symbol;\n query: string;\n eventType: string;\n}\n\n/**\n * CSS \uBBF8\uB514\uC5B4\uCFFC\uB9AC(`window.matchMedia`) \uC0C1\uD0DC \uBCC0\uD654\uB97C \uAC10\uC9C0\uD55C\uB2E4.\n * connect \uC2DC \uC790\uB3D9\uC73C\uB85C \uAD6C\uB3C5\uD558\uACE0, disconnect \uC2DC \uC790\uB3D9\uC73C\uB85C \uD574\uC81C\uD55C\uB2E4.\n *\n * MediaQueryList\uB294 \uC2A4\uD399\uC0C1 'change' \uC774\uBCA4\uD2B8 \uD558\uB098\uB9CC \uC815\uC758\uB3FC\uC788\uB2E4 \u2014 eventType\uC740 \uADF8\uB798\uB3C4 \uBA85\uC2DC\uC801\uC73C\uB85C \uBC1B\uB294\uB2E4\n * (\uB2E4\uB978 @event* \uACC4\uC5F4\uCC98\uB7FC \uBCA0\uC774\uC2A4\uB294 \uBA85\uC2DC\uC801, \uD3B8\uC758 \uBCC4\uCE6D\uC774 \uAC12\uC744 \uACE0\uC815\uD558\uB294 \uCEE8\uBCA4\uC158\uC744 \uB530\uB984). 'change' \uACE0\uC815 \uBC84\uC804\uC740\n * eventMediaChange\uB97C \uC0AC\uC6A9\uD55C\uB2E4.\n */\nexport function eventMedia(query: string, eventType: string): MethodDecorator;\nexport function eventMedia<Return = any>(query: string, eventType: string, options: EventMediaOptions<NoInfer<Return>>): MethodDecorator;\nexport function eventMedia(query: string, eventType: string, options?: EventMediaOptions): MethodDecorator {\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let metaList = ReflectUtils.getOwnMetadata(EVENT_MEDIA_METADATA_KEY, constructor) as EventMediaMetadata[];\n if (!metaList) {\n metaList = [];\n ReflectUtils.defineMetadata(EVENT_MEDIA_METADATA_KEY, metaList, constructor);\n }\n metaList.push({ propertyKey, query, eventType, filter: options?.filter, before: options?.before, finally: options?.finally });\n };\n}\n\n/** eventMedia(query, 'change')\uC758 \uBCC4\uCE6D - MediaQueryList\uAC00 \uC2E4\uC81C\uB85C \uBC1C\uC0DD\uC2DC\uD0A4\uB294 \uC720\uC77C\uD55C \uC774\uBCA4\uD2B8. */\nexport function eventMediaChange(query: string): MethodDecorator;\nexport function eventMediaChange<Return = any>(query: string, options: EventMediaOptions<NoInfer<Return>>): MethodDecorator;\nexport function eventMediaChange(query: string, options?: EventMediaOptions): MethodDecorator {\n return eventMedia(query, 'change', options as any);\n}\n\nexport const findAllEventMediaMetadata = (target: any): EventMediaMetadata[] => {\n const constructor = typeof target === 'function' ? target : target.constructor;\n return (ReflectUtils.findAllMetadata<EventMediaMetadata[]>(EVENT_MEDIA_METADATA_KEY, constructor) || []).flat();\n};\n\nexport class EventMediaLifeCycler implements ElementDefineLifeCycler {\n private readonly entriesMap = new WeakMap<any, Array<{ mql: MediaQueryList; eventType: string; handler: (e: Event) => void }>>();\n\n onConnected(helperHostSet: HelperHostSet): void {\n const inst = helperHostSet.$this;\n const metaList = findAllEventMediaMetadata(inst);\n if (metaList.length === 0) return;\n\n const win = helperHostSet.$w;\n const entries: Array<{ mql: MediaQueryList; eventType: string; handler: (e: Event) => void }> = [];\n for (const meta of metaList) {\n const mql = win.matchMedia(meta.query);\n const handler = async (e: Event) => {\n try {\n const helper = SwcUtils.getHelperAndHostSet(inst);\n if (meta.filter && !(await meta.filter(e as MediaQueryListEvent, { currentThis: inst, helper }))) return;\n const common = buildCommonKindValues(inst, win);\n const legacyArgs = [e, helperHostSet];\n const buildArgs = (beforeReturn: any) => buildSwcParameterArgs(inst, meta.propertyKey, {\n ...common,\n eventObject: e,\n eventMediaBeforeReturn: beforeReturn\n }, legacyArgs);\n // before\uB97C \uBA3C\uC800 \uB3CC\uB824 \uADF8 \uB9AC\uD134\uAC12\uC744 @eventMediaBeforeReturn \uC73C\uB85C \uC8FC\uC785.\n let args = buildArgs(undefined);\n if (meta.before) {\n const beforeReturn = await meta.before(e as MediaQueryListEvent, { currentThis: inst, helper }, args);\n args = buildArgs(beforeReturn);\n }\n let result: any, error: any;\n try {\n result = await inst[meta.propertyKey](...args);\n } catch (err) {\n error = err;\n } finally {\n if (meta.finally) await meta.finally(e as MediaQueryListEvent, { currentThis: inst, helper }, { args, result, error });\n }\n if (error) throw error;\n } catch (err) {\n console.error('[SWC] eventMedia handler error:', err);\n }\n };\n mql.addEventListener(meta.eventType, handler);\n entries.push({ mql, eventType: meta.eventType, handler });\n }\n this.entriesMap.set(inst, entries);\n }\n\n onDisconnected(helperHostSet: HelperHostSet): void {\n const inst = helperHostSet.$this;\n for (const { mql, eventType, handler } of this.entriesMap.get(inst) ?? []) {\n try {\n mql.removeEventListener(eventType, handler);\n } catch (e) {\n console.error('[SWC] eventMedia cleanup error:', e);\n }\n }\n this.entriesMap.delete(inst);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }