@dooboostore/simple-web-component 1.0.48 → 1.0.50
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.
- package/README.md +189 -19
- package/dist/cjs/config/config.js +1 -1
- package/dist/cjs/config/config.js.map +2 -2
- package/dist/cjs/decorators/addEventListener.js +2373 -30
- package/dist/cjs/decorators/addEventListener.js.map +3 -3
- package/dist/cjs/decorators/applyAttribute.js +31 -0
- package/dist/cjs/decorators/applyAttribute.js.map +2 -2
- package/dist/cjs/decorators/applyClass.js +55 -18
- package/dist/cjs/decorators/applyClass.js.map +3 -3
- package/dist/cjs/decorators/applyNode.js +73 -1
- package/dist/cjs/decorators/applyNode.js.map +3 -3
- package/dist/cjs/decorators/applyProperty.js +107 -3
- package/dist/cjs/decorators/applyProperty.js.map +2 -2
- package/dist/cjs/decorators/applySlot.js +6 -5
- package/dist/cjs/decorators/applySlot.js.map +2 -2
- package/dist/cjs/decorators/applyStyle.js +42 -5
- package/dist/cjs/decorators/applyStyle.js.map +2 -2
- package/dist/cjs/decorators/changedAttribute.js +61 -13
- package/dist/cjs/decorators/changedAttribute.js.map +2 -2
- package/dist/cjs/decorators/elementDefine.js +254 -439
- package/dist/cjs/decorators/elementDefine.js.map +3 -3
- package/dist/cjs/decorators/emitCustomEvent.js +55 -0
- package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
- package/dist/cjs/decorators/eventMedia.js +84 -0
- package/dist/cjs/decorators/eventMedia.js.map +7 -0
- package/dist/cjs/decorators/index.js +6 -1
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/intersectionObserver.js +200 -0
- package/dist/cjs/decorators/intersectionObserver.js.map +7 -0
- package/dist/cjs/decorators/mutationObserver.js +186 -55
- package/dist/cjs/decorators/mutationObserver.js.map +3 -3
- package/dist/cjs/decorators/parameter.js +73 -0
- package/dist/cjs/decorators/parameter.js.map +7 -0
- package/dist/cjs/decorators/query.js +117 -102
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/requestAnimationFrame.js +124 -0
- package/dist/cjs/decorators/requestAnimationFrame.js.map +7 -0
- package/dist/cjs/decorators/resizeObserver.js +133 -55
- package/dist/cjs/decorators/resizeObserver.js.map +2 -2
- package/dist/cjs/decorators/setInterval.js +114 -0
- package/dist/cjs/decorators/setInterval.js.map +7 -0
- package/dist/cjs/decorators/setTimeout.js +117 -0
- package/dist/cjs/decorators/setTimeout.js.map +7 -0
- package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js +9 -0
- package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js.map +2 -2
- package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js +9 -0
- package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
- package/dist/cjs/elements/SwcAppMixin.js +19 -3
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/window.d.js.map +1 -1
- package/dist/esm/config/config.js +1 -1
- package/dist/esm/config/config.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js +2374 -30
- package/dist/esm/decorators/addEventListener.js.map +3 -3
- package/dist/esm/decorators/applyAttribute.js +31 -0
- package/dist/esm/decorators/applyAttribute.js.map +2 -2
- package/dist/esm/decorators/applyClass.js +55 -18
- package/dist/esm/decorators/applyClass.js.map +3 -3
- package/dist/esm/decorators/applyNode.js +73 -1
- package/dist/esm/decorators/applyNode.js.map +3 -3
- package/dist/esm/decorators/applyProperty.js +107 -3
- package/dist/esm/decorators/applyProperty.js.map +2 -2
- package/dist/esm/decorators/applySlot.js +6 -5
- package/dist/esm/decorators/applySlot.js.map +2 -2
- package/dist/esm/decorators/applyStyle.js +42 -5
- package/dist/esm/decorators/applyStyle.js.map +2 -2
- package/dist/esm/decorators/changedAttribute.js +62 -13
- package/dist/esm/decorators/changedAttribute.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +261 -446
- package/dist/esm/decorators/elementDefine.js.map +3 -3
- package/dist/esm/decorators/emitCustomEvent.js +55 -0
- package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
- package/dist/esm/decorators/eventMedia.js +66 -0
- package/dist/esm/decorators/eventMedia.js.map +7 -0
- package/dist/esm/decorators/index.js +6 -1
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/intersectionObserver.js +182 -0
- package/dist/esm/decorators/intersectionObserver.js.map +7 -0
- package/dist/esm/decorators/mutationObserver.js +187 -55
- package/dist/esm/decorators/mutationObserver.js.map +3 -3
- package/dist/esm/decorators/parameter.js +54 -0
- package/dist/esm/decorators/parameter.js.map +7 -0
- package/dist/esm/decorators/query.js +117 -102
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/requestAnimationFrame.js +105 -0
- package/dist/esm/decorators/requestAnimationFrame.js.map +7 -0
- package/dist/esm/decorators/resizeObserver.js +134 -55
- package/dist/esm/decorators/resizeObserver.js.map +2 -2
- package/dist/esm/decorators/setInterval.js +95 -0
- package/dist/esm/decorators/setInterval.js.map +7 -0
- package/dist/esm/decorators/setTimeout.js +98 -0
- package/dist/esm/decorators/setTimeout.js.map +7 -0
- package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js +9 -0
- package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js.map +2 -2
- package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js +9 -0
- package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js +20 -4
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +4961 -1628
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/config/config.d.ts.map +1 -1
- package/dist/types/decorators/addEventListener.d.ts +1046 -33
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/applyAttribute.d.ts +24 -34
- package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
- package/dist/types/decorators/applyClass.d.ts +36 -34
- package/dist/types/decorators/applyClass.d.ts.map +1 -1
- package/dist/types/decorators/applyNode.d.ts +32 -20
- package/dist/types/decorators/applyNode.d.ts.map +1 -1
- package/dist/types/decorators/applyProperty.d.ts +61 -34
- package/dist/types/decorators/applyProperty.d.ts.map +1 -1
- package/dist/types/decorators/applySlot.d.ts.map +1 -1
- package/dist/types/decorators/applyStyle.d.ts +27 -12
- package/dist/types/decorators/applyStyle.d.ts.map +1 -1
- package/dist/types/decorators/changedAttribute.d.ts +12 -3
- package/dist/types/decorators/changedAttribute.d.ts.map +1 -1
- package/dist/types/decorators/elementDefine.d.ts +0 -14
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts +28 -4
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
- package/dist/types/decorators/eventMedia.d.ts +25 -0
- package/dist/types/decorators/eventMedia.d.ts.map +1 -0
- package/dist/types/decorators/index.d.ts +6 -1
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/intersectionObserver.d.ts +58 -0
- package/dist/types/decorators/intersectionObserver.d.ts.map +1 -0
- package/dist/types/decorators/mutationObserver.d.ts +44 -25
- package/dist/types/decorators/mutationObserver.d.ts.map +1 -1
- package/dist/types/decorators/parameter.d.ts +35 -0
- package/dist/types/decorators/parameter.d.ts.map +1 -0
- package/dist/types/decorators/query.d.ts +57 -14
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/requestAnimationFrame.d.ts +47 -0
- package/dist/types/decorators/requestAnimationFrame.d.ts.map +1 -0
- package/dist/types/decorators/resizeObserver.d.ts +43 -23
- package/dist/types/decorators/resizeObserver.d.ts.map +1 -1
- package/dist/types/decorators/setInterval.d.ts +41 -0
- package/dist/types/decorators/setInterval.d.ts.map +1 -0
- package/dist/types/decorators/setTimeout.d.ts +41 -0
- package/dist/types/decorators/setTimeout.d.ts.map +1 -0
- package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts +7 -1
- package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts.map +1 -1
- package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts +6 -0
- package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +104 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +4961 -1628
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +7 -5
- package/src/config/config.ts +1 -1
- package/src/decorators/addEventListener.ts +1446 -34
- package/src/decorators/applyAttribute.ts +60 -36
- package/src/decorators/applyClass.ts +86 -26
- package/src/decorators/applyNode.ts +124 -36
- package/src/decorators/applyProperty.ts +172 -40
- package/src/decorators/applySlot.ts +6 -5
- package/src/decorators/applyStyle.ts +74 -17
- package/src/decorators/changedAttribute.ts +76 -15
- package/src/decorators/elementDefine.ts +310 -582
- package/src/decorators/emitCustomEvent.ts +73 -5
- package/src/decorators/eventMedia.ts +78 -0
- package/src/decorators/index.ts +6 -1
- package/src/decorators/intersectionObserver.ts +275 -0
- package/src/decorators/mutationObserver.ts +282 -89
- package/src/decorators/parameter.ts +81 -0
- package/src/decorators/query.ts +168 -126
- package/src/decorators/requestAnimationFrame.ts +158 -0
- package/src/decorators/resizeObserver.ts +211 -89
- package/src/decorators/setInterval.ts +136 -0
- package/src/decorators/setTimeout.ts +139 -0
- package/src/decorators/subscribeSwcAppMessageWhileConnected.ts +17 -0
- package/src/decorators/subscribeSwcAppRouteChangeWhileConnected.ts +19 -0
- package/src/elements/SwcAppMixin.ts +20 -5
- package/src/types/index.ts +141 -0
- package/src/types/window.d.ts +2 -18
- package/dist/cjs/decorators/queryAll.js +0 -181
- package/dist/cjs/decorators/queryAll.js.map +0 -7
- package/dist/cjs/examples/RxJSOperatorsExample.js +0 -285
- package/dist/cjs/examples/RxJSOperatorsExample.js.map +0 -7
- package/dist/esm/decorators/queryAll.js +0 -162
- package/dist/esm/decorators/queryAll.js.map +0 -7
- package/dist/esm/examples/RxJSOperatorsExample.js +0 -266
- package/dist/esm/examples/RxJSOperatorsExample.js.map +0 -7
- package/dist/types/decorators/queryAll.d.ts +0 -22
- package/dist/types/decorators/queryAll.d.ts.map +0 -1
- package/dist/types/examples/RxJSOperatorsExample.d.ts +0 -94
- package/dist/types/examples/RxJSOperatorsExample.d.ts.map +0 -1
- package/src/decorators/queryAll.ts +0 -186
- package/src/examples/RxJSOperatorsExample.ts +0 -279
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/addEventListener.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions, HelperHostSet } from '../types';\n\nexport interface AddEventListenerBaseOptions<TEvent extends Event = Event> extends EventListenerOptions {\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n stopPropagation?: boolean;\n stopImmediatePropagation?: boolean;\n preventDefault?: boolean;\n // removeOnDisconnected?: boolean;\n delegate?: boolean;\n filter?: (target: Event | CustomEvent, meta:{currentThis: any, helper: HelperHostSet}) => boolean;\n // \uB9AC\uC2A4\uB108 \uC81C\uAC70(disconnected \uB610\uB294 unmount) \uC2DC \uD638\uCD9C\uB418\uB294 \uCF5C\uBC31. \uCCAB \uBC88\uC9F8 \uC778\uC790\uB294 \uBC14\uC778\uB529\uB41C \uD0C0\uAC9F element, \uB450 \uBC88\uC9F8\uB294 \uC774 \uC635\uC158\uC774 \uC18D\uD55C \uC804\uCCB4 \uC635\uC158 \uAC1D\uCCB4(Base + SwcQuery + delegate).\n removeListener?: (target: Element, optionValue: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }) => void;\n // RxJS operator options\n debounceTime?: number;\n throttleTime?: number;\n distinctUntilChanged?: boolean | ((prev: TEvent, curr: TEvent) => boolean);\n}\n\nexport type EventListenerSelector = string | ((currentThis: any, helper: HelperHostSet) => NodeList | Element | Element[] | null);\n\nexport interface AddEventListenerMetadata<TEvent extends Event = Event> {\n propertyKey: string | symbol;\n selector: EventListenerSelector;\n type: string;\n options: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean };\n}\n\nexport const ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:add-event-listener');\n\nexport function addEventListener<TEvent extends Event = Event>(target: SpecialSelector, type: string, options?: AddEventListenerBaseOptions<TEvent>): MethodDecorator;\nexport function addEventListener<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;\n/**\n * @addEventListener(type, options?) \u2014 \uC140\uB809\uD130 \uC0DD\uB7B5 \uC2DC $this(\uCEF4\uD3EC\uB10C\uD2B8 \uC790\uC2E0)\uB85C \uBC14\uC778\uB529\n */\nexport function addEventListener<TEvent extends Event = Event>(type: string, options?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;\n/**\n * @addEventListener decorator to bind events to elements.\n */\nexport function addEventListener<TEvent extends Event = Event>(selectorOrType: EventListenerSelector | string, typeOrOptions?: string | (AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }), maybeOptions?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n let selector: EventListenerSelector;\n let type: string;\n let opts: any = {};\n\n if (typeof typeOrOptions === 'string') {\n // (selector, type[, options]) form \u2014 \uAE30\uC874 \uD638\uD658\n selector = selectorOrType as EventListenerSelector;\n type = typeOrOptions;\n opts = maybeOptions ?? {};\n } else {\n // (type[, options]) form \u2014 selector \uAE30\uBCF8\uAC12 $this\n selector = '$this';\n type = selectorOrType as string;\n opts = typeOrOptions ?? {};\n }\n\n const constructor = targetObj.constructor;\n\n let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata<TEvent>[]>(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n if (!listeners) {\n listeners = [];\n ReflectUtils.defineMetadata(ADD_EVENT_LISTENER_METADATA_KEY, listeners, constructor);\n }\n\n listeners.push({ propertyKey, selector, type, options: opts });\n };\n}\n\n\nexport function addEventListenerDelegateLightDom<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: Omit<AddEventListenerBaseOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'light', delegate: true});\n}\n\nexport function addEventListenerDelegateShadowDom<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: Omit<AddEventListenerBaseOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'shadow', delegate: true});\n}\nexport function addEventListenerDelegateAllDom<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: Omit<AddEventListenerBaseOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'all', delegate: true});\n}\nexport function addEventListenerDelegate<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: Omit<AddEventListenerBaseOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'auto', delegate: true});\n}\n\n// \u2500\u2500\u2500 root\uBCC4 \uC77C\uBC18 \uD5EC\uD37C (delegate \uC5C6\uC74C) \u2500\u2500\u2500\n\nexport function addEventListenerLightDom<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: AddEventListenerBaseOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'light'});\n}\n\nexport function addEventListenerShadowDom<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: AddEventListenerBaseOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'shadow'});\n}\n\nexport function addEventListenerAllDom<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: AddEventListenerBaseOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'all'});\n}\n\n/**\n * @addEventListenerThis decorator - simplified version of @addEventListener for $this selector\n */\nexport function addEventListenerThis<TEvent extends Event = Event>(type: string, options?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions): MethodDecorator {\n return addEventListener<TEvent>('$this', type, options);\n}\n\n/**\n * @addEventListenerAppHost decorator - simplified version of @addEventListener for $appHost selector\n */\nexport function addEventListenerAppHost<TEvent extends Event = Event>(type: string, options?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions): MethodDecorator {\n return addEventListener<TEvent>('$appHost', type, options);\n}\n\nexport function addEventListenerWindow<TEvent extends Event = Event>(type: string, options?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions): MethodDecorator {\n return addEventListener<TEvent>('$window', type, options);\n}\nexport function addEventListenerDocument<TEvent extends Event = Event>(type: string, options?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions): MethodDecorator {\n return addEventListener<TEvent>('$document', type, options);\n}\n\n// --- Aliases: event... ---\nexport const event = addEventListener;\nexport const eventDelegateLightDom = addEventListenerDelegateLightDom;\nexport const eventDelegateShadowDom = addEventListenerDelegateShadowDom;\nexport const eventDelegateAllDom = addEventListenerDelegateAllDom;\nexport const eventDelegate = addEventListenerDelegate;\nexport const eventLightDom = addEventListenerLightDom;\nexport const eventShadowDom = addEventListenerShadowDom;\nexport const eventAllDom = addEventListenerAllDom;\nexport const eventAppHost = addEventListenerAppHost;\nexport const eventWindow = addEventListenerWindow;\nexport const eventDocument = addEventListenerDocument;\nexport const eventThis = addEventListenerThis;\n\nexport const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata<Event>[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n};\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,oBAAoB;AA8BtB,MAAM,kCAAkC,OAAO,IAAI,yCAAyC;AAW5F,SAAS,iBAA+C,gBAAgD,eAA2G,cAAgH;AACxU,SAAO,CAAC,WAAmB,aAA8B,eAAmC;AAC1F,QAAI;AACJ,QAAI;AACJ,QAAI,OAAY,CAAC;AAEjB,QAAI,OAAO,kBAAkB,UAAU;AAErC,iBAAW;AACX,aAAO;AACP,aAAO,gBAAgB,CAAC;AAAA,IAC1B,OAAO;AAEL,iBAAW;AACX,aAAO;AACP,aAAO,iBAAiB,CAAC;AAAA,IAC3B;AAEA,UAAM,cAAc,UAAU;AAE9B,QAAI,YAAY,aAAa,YAAgD,iCAAiC,WAAW;AACzH,QAAI,CAAC,WAAW;AACd,kBAAY,CAAC;AACb,mBAAa,eAAe,iCAAiC,WAAW,WAAW;AAAA,IACrF;AAEA,cAAU,KAAK,EAAE,aAAa,UAAU,MAAM,SAAS,KAAK,CAAC;AAAA,EAC/D;AACF;AAGO,SAAS,iCAA+D,UAAiC,MAAc,SAAkF;AAC9M,SAAO,iBAAyB,UAAU,MAAM,EAAC,GAAG,WAAS,CAAC,GAAG,MAAK,SAAS,UAAU,KAAI,CAAC;AAChG;AAEO,SAAS,kCAAgE,UAAiC,MAAc,SAAkF;AAC/M,SAAO,iBAAyB,UAAU,MAAM,EAAC,GAAG,WAAS,CAAC,GAAG,MAAK,UAAU,UAAU,KAAI,CAAC;AACjG;AACO,SAAS,+BAA6D,UAAiC,MAAc,SAAkF;AAC5M,SAAO,iBAAyB,UAAU,MAAM,EAAC,GAAG,WAAS,CAAC,GAAG,MAAK,OAAO,UAAU,KAAI,CAAC;AAC9F;AACO,SAAS,yBAAuD,UAAiC,MAAc,SAAkF;AACtM,SAAO,iBAAyB,UAAU,MAAM,EAAC,GAAG,WAAS,CAAC,GAAG,MAAK,QAAQ,UAAU,KAAI,CAAC;AAC/F;AAIO,SAAS,yBAAuD,UAAiC,MAAc,SAAgE;AACpL,SAAO,iBAAyB,UAAU,MAAM,EAAC,GAAG,WAAS,CAAC,GAAG,MAAK,QAAO,CAAC;AAChF;AAEO,SAAS,0BAAwD,UAAiC,MAAc,SAAgE;AACrL,SAAO,iBAAyB,UAAU,MAAM,EAAC,GAAG,WAAS,CAAC,GAAG,MAAK,SAAQ,CAAC;AACjF;AAEO,SAAS,uBAAqD,UAAiC,MAAc,SAAgE;AAClL,SAAO,iBAAyB,UAAU,MAAM,EAAC,GAAG,WAAS,CAAC,GAAG,MAAK,MAAK,CAAC;AAC9E;AAKO,SAAS,qBAAmD,MAAc,SAAkF;AACjK,SAAO,iBAAyB,SAAS,MAAM,OAAO;AACxD;AAKO,SAAS,wBAAsD,MAAc,SAAkF;AACpK,SAAO,iBAAyB,YAAY,MAAM,OAAO;AAC3D;AAEO,SAAS,uBAAqD,MAAc,SAAkF;AACnK,SAAO,iBAAyB,WAAW,MAAM,OAAO;AAC1D;AACO,SAAS,yBAAuD,MAAc,SAAkF;AACrK,SAAO,iBAAyB,aAAa,MAAM,OAAO;AAC5D;AAGO,MAAM,QAAQ;AACd,MAAM,wBAAwB;AAC9B,MAAM,yBAAyB;AAC/B,MAAM,sBAAsB;AAC5B,MAAM,gBAAgB;AACtB,MAAM,gBAAgB;AACtB,MAAM,iBAAiB;AACvB,MAAM,cAAc;AACpB,MAAM,eAAe;AACrB,MAAM,cAAc;AACpB,MAAM,gBAAgB;AACtB,MAAM,YAAY;AAElB,MAAM,8BAA8B,CAAC,WAA+D;AACzG,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,iCAAiC,WAAW;AAC9E;",
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions, HelperHostSet, SwcFnSelector, SwcSelector } from '../types';\n\nexport interface AddEventListenerBaseOptions<TEvent extends Event = Event> extends EventListenerOptions {\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n stopPropagation?: boolean;\n stopImmediatePropagation?: boolean;\n preventDefault?: boolean;\n // removeOnDisconnected?: boolean;\n // delegate\uB294 \uBB38\uC790\uC5F4 \uC140\uB809\uD130 \uC804\uC6A9 \u2192 AddEventListenerQueryOptions\uC5D0\uB9CC \uC874\uC7AC\n filter?: (target: Event | CustomEvent, meta:{currentThis: any, helper: HelperHostSet}) => boolean;\n // \uB9AC\uC2A4\uB108 \uC81C\uAC70(disconnected \uB610\uB294 unmount) \uC2DC \uD638\uCD9C\uB418\uB294 \uCF5C\uBC31. \uCCAB \uBC88\uC9F8 \uC778\uC790\uB294 \uBC14\uC778\uB529\uB41C \uD0C0\uAC9F element, \uB450 \uBC88\uC9F8\uB294 \uC774 \uC635\uC158\uC774 \uC18D\uD55C \uC804\uCCB4 \uC635\uC158 \uAC1D\uCCB4(Base + SwcQuery + delegate).\n removeListener?: (target: Element, optionValue: AddEventListenerQueryOptions<TEvent>) => void;\n // RxJS operator options\n debounceTime?: number;\n throttleTime?: number;\n distinctUntilChanged?: boolean | ((prev: TEvent, curr: TEvent) => boolean);\n}\n\nexport type EventListenerFnSelector = SwcFnSelector;\nexport type EventListenerSelector = SwcSelector;\n\nexport interface AddEventListenerMetadata<TEvent extends Event = Event> {\n propertyKey: string | symbol;\n selector: EventListenerSelector;\n type: string;\n options: AddEventListenerQueryOptions<TEvent>;\n}\n\nexport const ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:add-event-listener');\n\n// root + delegate \uD5C8\uC6A9 \u2014 \uBB38\uC790\uC5F4 \uC140\uB809\uD130\uB294 \uCEF4\uD3EC\uB10C\uD2B8 DOM \uD2B8\uB9AC \uC548\uC5D0\uC11C \uD0D0\uC0C9/\uB378\uB9AC\uAC8C\uC774\uC158\uD558\uBBC0\uB85C \uC758\uBBF8 \uC788\uC74C\nexport type AddEventListenerQueryOptions<TEvent extends Event = Event> = AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean | 'this' | 'mutation' };\n// root\u00B7delegate \uBE44\uD5C8\uC6A9 \u2014 \uD568\uC218 \uC140\uB809\uD130\uB294 \uC774\uBBF8 \uC694\uC18C\uB97C \uC9C1\uC811 \uBC18\uD658\uD558\uBBC0\uB85C root\u00B7delegate\uAC00 \uBB34\uC758\uBBF8\uD568\nexport type AddEventListenerNonQueryOptions<TEvent extends Event = Event> = AddEventListenerBaseOptions<TEvent>;\n\n// \uC140\uB809\uD130 \uC885\uB958\uC5D0 \uB530\uB77C \uC635\uC158 \uD0C0\uC785\uC744 \uBD84\uAE30\nexport type AddEventListenerOptionsOf<S extends EventListenerSelector, TEvent extends Event = Event> =\n S extends string ? AddEventListenerQueryOptions<TEvent> : AddEventListenerNonQueryOptions<TEvent>;\n\nexport function addEventListener<TEvent extends Event = Event>(target: SpecialSelector, type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator;\nexport function addEventListener<TEvent extends Event = Event>(selector: string, type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator;\nexport function addEventListener<TEvent extends Event = Event>(selector: string, type: string[], options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator;\nexport function addEventListener<TEvent extends Event = Event>(selector: EventListenerFnSelector, type: string, options?: AddEventListenerNonQueryOptions<TEvent>): MethodDecorator;\n/**\n * @addEventListener(type, options?) \u2014 \uC140\uB809\uD130 \uC0DD\uB7B5 \uC2DC $this(\uCEF4\uD3EC\uB10C\uD2B8 \uC790\uC2E0)\uB85C \uBC14\uC778\uB529\n */\nexport function addEventListener<TEvent extends Event = Event>(type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator;\nexport function addEventListener<TEvent extends Event = Event>(type: string[], options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator;\n/**\n * @addEventListener decorator to bind events to elements.\n */\nexport function addEventListener<TEvent extends Event = Event>(selectorOrType: EventListenerSelector | string | string[], typeOrOptions?: string | string[] | AddEventListenerQueryOptions<TEvent>, maybeOptions?: AddEventListenerQueryOptions<TEvent>): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n let selector: EventListenerSelector;\n let types: string[];\n let opts: any = {};\n\n if (typeof typeOrOptions === 'string' || Array.isArray(typeOrOptions)) {\n // (selector, type|[types][, options]) form \u2014 \uAE30\uC874 \uD638\uD658\n selector = selectorOrType as EventListenerSelector;\n types = Array.isArray(typeOrOptions) ? typeOrOptions : [typeOrOptions];\n opts = maybeOptions ?? {};\n } else {\n // (type|[types][, options]) form \u2014 selector \uAE30\uBCF8\uAC12 $this\n selector = '$this';\n if (Array.isArray(selectorOrType)) types = selectorOrType;\n else types = [selectorOrType as string];\n opts = typeOrOptions ?? {};\n }\n\n const constructor = targetObj.constructor;\n\n let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata<TEvent>[]>(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n if (!listeners) {\n listeners = [];\n ReflectUtils.defineMetadata(ADD_EVENT_LISTENER_METADATA_KEY, listeners, constructor);\n }\n\n for (const type of types) listeners.push({ propertyKey, selector, type, options: opts });\n };\n}\n\n\nexport function addEventListenerDelegateLight<TEvent extends Event = Event>(selector: string, type: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'light', delegate: true});\n}\n\nexport function addEventListenerDelegateShadow<TEvent extends Event = Event>(selector: string, type: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'shadow', delegate: true});\n}\nexport function addEventListenerDelegateAll<TEvent extends Event = Event>(selector: string, type: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'all', delegate: true});\n}\nexport function addEventListenerDelegate<TEvent extends Event = Event>(selector: string, type: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'auto', delegate: true});\n}\n\nexport function addEventListenerMutationLight<TEvent extends Event = Event>(selector: string, type: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'light', delegate: 'mutation'});\n}\n\nexport function addEventListenerMutationShadow<TEvent extends Event = Event>(selector: string, type: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'shadow', delegate: 'mutation'});\n}\n\nexport function addEventListenerMutationAll<TEvent extends Event = Event>(selector: string, type: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'all', delegate: 'mutation'});\n}\n\nexport function addEventListenerMutation<TEvent extends Event = Event>(selector: string, type: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'auto', delegate: 'mutation'});\n}\n\n// \u2500\u2500\u2500 root\uBCC4 \uC77C\uBC18 \uD5EC\uD37C (delegate \uC5C6\uC74C, \uBB38\uC790\uC5F4 \uC140\uB809\uD130 \uC804\uC6A9) \u2500\u2500\u2500\n\nexport function addEventListenerLight<TEvent extends Event = Event>(selector: string, type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'light'});\n}\n\nexport function addEventListenerShadow<TEvent extends Event = Event>(selector: string, type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'shadow'});\n}\n\nexport function addEventListenerAll<TEvent extends Event = Event>(selector: string, type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>(selector, type, {...options??{}, root:'all'});\n}\n\n/**\n * @addEventListenerThis decorator - simplified version of @addEventListener for $this selector\n */\nexport function addEventListenerThis<TEvent extends Event = Event>(type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>('$this', type, options);\n}\n\n/**\n * @addEventListenerAppHost decorator - simplified version of @addEventListener for $appHost selector\n */\nexport function addEventListenerAppHost<TEvent extends Event = Event>(type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>('$appHost', type, options);\n}\n\nexport function addEventListenerWindow<TEvent extends Event = Event>(type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>('$window', type, options);\n}\nexport function addEventListenerDocument<TEvent extends Event = Event>(type: string, options?: AddEventListenerQueryOptions<TEvent>): MethodDecorator {\n return addEventListener<TEvent>('$document', type, options);\n}\n\n// --- Aliases: event... ---\nexport const event = addEventListener;\nexport const eventDelegateLight = addEventListenerDelegateLight;\nexport const eventDelegateShadow = addEventListenerDelegateShadow;\nexport const eventDelegateAll = addEventListenerDelegateAll;\nexport const eventDelegate = addEventListenerDelegate;\nexport const eventMutationLight = addEventListenerMutationLight;\nexport const eventMutationShadow = addEventListenerMutationShadow;\nexport const eventMutationAll = addEventListenerMutationAll;\nexport const eventMutation = addEventListenerMutation;\nexport const eventLight = addEventListenerLight;\nexport const eventShadow = addEventListenerShadow;\nexport const eventAll = addEventListenerAll;\nexport const eventAppHost = addEventListenerAppHost;\nexport const eventWindow = addEventListenerWindow;\nexport const eventDocument = addEventListenerDocument;\nexport const eventThis = addEventListenerThis;\n\n// \u2500\u2500\u2500 \uC774\uBCA4\uD2B8 \uD0C0\uC785\uBCC4 \uBCC4\uCE6D (eventClick, eventClickDelegateLight, ...) \u2500\u2500\u2500\n// \uC704 scope/delegate \uCD95 \uBCC4\uCE6D\uB4E4\uC744 \uD2B9\uC815 \uC774\uBCA4\uD2B8 \uD0C0\uC785\uC5D0 \uACE0\uC815\uD574\uC11C \uC7AC\uBC14\uC778\uB529\uD55C\uB2E4.\n// \uC2E4\uC81C \uD0C0\uC785\uBCC4 export \uBAA9\uB85D(944\uAC1C, \uC544\uB798)\uC740 \uC774 \uD329\uD1A0\uB9AC\uB85C \uC0DD\uC131 \uC2A4\uD06C\uB9BD\uD2B8\uB97C \uB3CC\uB824\uC11C \uB9CC\uB4E4\uC5C8\uB2E4.\nexport function makeTypedEventAliases<TEvent extends Event = Event>(type: string) {\n return {\n base: (selector: string, options?: AddEventListenerQueryOptions<TEvent>) => addEventListener<TEvent>(selector, type, options),\n delegateLight: (selector: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>) => addEventListenerDelegateLight<TEvent>(selector, type, options),\n delegateShadow: (selector: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>) => addEventListenerDelegateShadow<TEvent>(selector, type, options),\n delegateAll: (selector: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>) => addEventListenerDelegateAll<TEvent>(selector, type, options),\n delegate: (selector: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>) => addEventListenerDelegate<TEvent>(selector, type, options),\n mutationLight: (selector: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>) => addEventListenerMutationLight<TEvent>(selector, type, options),\n mutationShadow: (selector: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>) => addEventListenerMutationShadow<TEvent>(selector, type, options),\n mutationAll: (selector: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>) => addEventListenerMutationAll<TEvent>(selector, type, options),\n mutation: (selector: string, options?: Omit<AddEventListenerQueryOptions<TEvent>, 'delegate'>) => addEventListenerMutation<TEvent>(selector, type, options),\n light: (selector: string, options?: AddEventListenerQueryOptions<TEvent>) => addEventListenerLight<TEvent>(selector, type, options),\n shadow: (selector: string, options?: AddEventListenerQueryOptions<TEvent>) => addEventListenerShadow<TEvent>(selector, type, options),\n all: (selector: string, options?: AddEventListenerQueryOptions<TEvent>) => addEventListenerAll<TEvent>(selector, type, options),\n this: (options?: AddEventListenerQueryOptions<TEvent>) => addEventListenerThis<TEvent>(type, options),\n appHost: (options?: AddEventListenerQueryOptions<TEvent>) => addEventListenerAppHost<TEvent>(type, options),\n window: (options?: AddEventListenerQueryOptions<TEvent>) => addEventListenerWindow<TEvent>(type, options),\n document: (options?: AddEventListenerQueryOptions<TEvent>) => addEventListenerDocument<TEvent>(type, options),\n };\n}\n\n// \u2500\u2500\u2500 \uC774\uBCA4\uD2B8 \uD0C0\uC785\uBCC4 \uBCC4\uCE6D (eventClick, eventClickDelegateLight, eventInputThis, ...) \u2500\u2500\u2500\n// \uC704 makeTypedEventAliases \uD329\uD1A0\uB9AC\uB97C \uC790\uC8FC \uC4F0\uB294 DOM \uC774\uBCA4\uD2B8 \uD0C0\uC785 \uAC01\uAC01\uC5D0 \uB300\uD574 \uBBF8\uB9AC \uBC14\uC778\uB529\uD574\uB454 \uAC83.\n// \uC0DD\uC131 \uC2A4\uD06C\uB9BD\uD2B8\uB85C \uB9CC\uB4E4\uC5B4\uC9D0 \u2014 \uC0C8 \uD0C0\uC785\uC744 \uCD94\uAC00\uD558\uB824\uBA74 \uAC19\uC740 \uD328\uD134(16\uAC1C export)\uC744 \uCD94\uAC00\uD558\uBA74 \uB41C\uB2E4.\nconst clickAliases = makeTypedEventAliases<MouseEvent>('click');\nexport const eventClick = clickAliases.base;\nexport const eventClickDelegateLight = clickAliases.delegateLight;\nexport const eventClickDelegateShadow = clickAliases.delegateShadow;\nexport const eventClickDelegateAll = clickAliases.delegateAll;\nexport const eventClickDelegate = clickAliases.delegate;\nexport const eventClickMutationLight = clickAliases.mutationLight;\nexport const eventClickMutationShadow = clickAliases.mutationShadow;\nexport const eventClickMutationAll = clickAliases.mutationAll;\nexport const eventClickMutation = clickAliases.mutation;\nexport const eventClickLight = clickAliases.light;\nexport const eventClickShadow = clickAliases.shadow;\nexport const eventClickAll = clickAliases.all;\nexport const eventClickThis = clickAliases.this;\nexport const eventClickAppHost = clickAliases.appHost;\nexport const eventClickWindow = clickAliases.window;\nexport const eventClickDocument = clickAliases.document;\nconst dblclickAliases = makeTypedEventAliases<MouseEvent>('dblclick');\nexport const eventDblclick = dblclickAliases.base;\nexport const eventDblclickDelegateLight = dblclickAliases.delegateLight;\nexport const eventDblclickDelegateShadow = dblclickAliases.delegateShadow;\nexport const eventDblclickDelegateAll = dblclickAliases.delegateAll;\nexport const eventDblclickDelegate = dblclickAliases.delegate;\nexport const eventDblclickMutationLight = dblclickAliases.mutationLight;\nexport const eventDblclickMutationShadow = dblclickAliases.mutationShadow;\nexport const eventDblclickMutationAll = dblclickAliases.mutationAll;\nexport const eventDblclickMutation = dblclickAliases.mutation;\nexport const eventDblclickLight = dblclickAliases.light;\nexport const eventDblclickShadow = dblclickAliases.shadow;\nexport const eventDblclickAll = dblclickAliases.all;\nexport const eventDblclickThis = dblclickAliases.this;\nexport const eventDblclickAppHost = dblclickAliases.appHost;\nexport const eventDblclickWindow = dblclickAliases.window;\nexport const eventDblclickDocument = dblclickAliases.document;\nconst mousedownAliases = makeTypedEventAliases<MouseEvent>('mousedown');\nexport const eventMousedown = mousedownAliases.base;\nexport const eventMousedownDelegateLight = mousedownAliases.delegateLight;\nexport const eventMousedownDelegateShadow = mousedownAliases.delegateShadow;\nexport const eventMousedownDelegateAll = mousedownAliases.delegateAll;\nexport const eventMousedownDelegate = mousedownAliases.delegate;\nexport const eventMousedownMutationLight = mousedownAliases.mutationLight;\nexport const eventMousedownMutationShadow = mousedownAliases.mutationShadow;\nexport const eventMousedownMutationAll = mousedownAliases.mutationAll;\nexport const eventMousedownMutation = mousedownAliases.mutation;\nexport const eventMousedownLight = mousedownAliases.light;\nexport const eventMousedownShadow = mousedownAliases.shadow;\nexport const eventMousedownAll = mousedownAliases.all;\nexport const eventMousedownThis = mousedownAliases.this;\nexport const eventMousedownAppHost = mousedownAliases.appHost;\nexport const eventMousedownWindow = mousedownAliases.window;\nexport const eventMousedownDocument = mousedownAliases.document;\nconst mouseupAliases = makeTypedEventAliases<MouseEvent>('mouseup');\nexport const eventMouseup = mouseupAliases.base;\nexport const eventMouseupDelegateLight = mouseupAliases.delegateLight;\nexport const eventMouseupDelegateShadow = mouseupAliases.delegateShadow;\nexport const eventMouseupDelegateAll = mouseupAliases.delegateAll;\nexport const eventMouseupDelegate = mouseupAliases.delegate;\nexport const eventMouseupMutationLight = mouseupAliases.mutationLight;\nexport const eventMouseupMutationShadow = mouseupAliases.mutationShadow;\nexport const eventMouseupMutationAll = mouseupAliases.mutationAll;\nexport const eventMouseupMutation = mouseupAliases.mutation;\nexport const eventMouseupLight = mouseupAliases.light;\nexport const eventMouseupShadow = mouseupAliases.shadow;\nexport const eventMouseupAll = mouseupAliases.all;\nexport const eventMouseupThis = mouseupAliases.this;\nexport const eventMouseupAppHost = mouseupAliases.appHost;\nexport const eventMouseupWindow = mouseupAliases.window;\nexport const eventMouseupDocument = mouseupAliases.document;\nconst mousemoveAliases = makeTypedEventAliases<MouseEvent>('mousemove');\nexport const eventMousemove = mousemoveAliases.base;\nexport const eventMousemoveDelegateLight = mousemoveAliases.delegateLight;\nexport const eventMousemoveDelegateShadow = mousemoveAliases.delegateShadow;\nexport const eventMousemoveDelegateAll = mousemoveAliases.delegateAll;\nexport const eventMousemoveDelegate = mousemoveAliases.delegate;\nexport const eventMousemoveMutationLight = mousemoveAliases.mutationLight;\nexport const eventMousemoveMutationShadow = mousemoveAliases.mutationShadow;\nexport const eventMousemoveMutationAll = mousemoveAliases.mutationAll;\nexport const eventMousemoveMutation = mousemoveAliases.mutation;\nexport const eventMousemoveLight = mousemoveAliases.light;\nexport const eventMousemoveShadow = mousemoveAliases.shadow;\nexport const eventMousemoveAll = mousemoveAliases.all;\nexport const eventMousemoveThis = mousemoveAliases.this;\nexport const eventMousemoveAppHost = mousemoveAliases.appHost;\nexport const eventMousemoveWindow = mousemoveAliases.window;\nexport const eventMousemoveDocument = mousemoveAliases.document;\nconst mouseoverAliases = makeTypedEventAliases<MouseEvent>('mouseover');\nexport const eventMouseover = mouseoverAliases.base;\nexport const eventMouseoverDelegateLight = mouseoverAliases.delegateLight;\nexport const eventMouseoverDelegateShadow = mouseoverAliases.delegateShadow;\nexport const eventMouseoverDelegateAll = mouseoverAliases.delegateAll;\nexport const eventMouseoverDelegate = mouseoverAliases.delegate;\nexport const eventMouseoverMutationLight = mouseoverAliases.mutationLight;\nexport const eventMouseoverMutationShadow = mouseoverAliases.mutationShadow;\nexport const eventMouseoverMutationAll = mouseoverAliases.mutationAll;\nexport const eventMouseoverMutation = mouseoverAliases.mutation;\nexport const eventMouseoverLight = mouseoverAliases.light;\nexport const eventMouseoverShadow = mouseoverAliases.shadow;\nexport const eventMouseoverAll = mouseoverAliases.all;\nexport const eventMouseoverThis = mouseoverAliases.this;\nexport const eventMouseoverAppHost = mouseoverAliases.appHost;\nexport const eventMouseoverWindow = mouseoverAliases.window;\nexport const eventMouseoverDocument = mouseoverAliases.document;\nconst mouseoutAliases = makeTypedEventAliases<MouseEvent>('mouseout');\nexport const eventMouseout = mouseoutAliases.base;\nexport const eventMouseoutDelegateLight = mouseoutAliases.delegateLight;\nexport const eventMouseoutDelegateShadow = mouseoutAliases.delegateShadow;\nexport const eventMouseoutDelegateAll = mouseoutAliases.delegateAll;\nexport const eventMouseoutDelegate = mouseoutAliases.delegate;\nexport const eventMouseoutMutationLight = mouseoutAliases.mutationLight;\nexport const eventMouseoutMutationShadow = mouseoutAliases.mutationShadow;\nexport const eventMouseoutMutationAll = mouseoutAliases.mutationAll;\nexport const eventMouseoutMutation = mouseoutAliases.mutation;\nexport const eventMouseoutLight = mouseoutAliases.light;\nexport const eventMouseoutShadow = mouseoutAliases.shadow;\nexport const eventMouseoutAll = mouseoutAliases.all;\nexport const eventMouseoutThis = mouseoutAliases.this;\nexport const eventMouseoutAppHost = mouseoutAliases.appHost;\nexport const eventMouseoutWindow = mouseoutAliases.window;\nexport const eventMouseoutDocument = mouseoutAliases.document;\nconst mouseenterAliases = makeTypedEventAliases<MouseEvent>('mouseenter');\nexport const eventMouseenter = mouseenterAliases.base;\nexport const eventMouseenterDelegateLight = mouseenterAliases.delegateLight;\nexport const eventMouseenterDelegateShadow = mouseenterAliases.delegateShadow;\nexport const eventMouseenterDelegateAll = mouseenterAliases.delegateAll;\nexport const eventMouseenterDelegate = mouseenterAliases.delegate;\nexport const eventMouseenterMutationLight = mouseenterAliases.mutationLight;\nexport const eventMouseenterMutationShadow = mouseenterAliases.mutationShadow;\nexport const eventMouseenterMutationAll = mouseenterAliases.mutationAll;\nexport const eventMouseenterMutation = mouseenterAliases.mutation;\nexport const eventMouseenterLight = mouseenterAliases.light;\nexport const eventMouseenterShadow = mouseenterAliases.shadow;\nexport const eventMouseenterAll = mouseenterAliases.all;\nexport const eventMouseenterThis = mouseenterAliases.this;\nexport const eventMouseenterAppHost = mouseenterAliases.appHost;\nexport const eventMouseenterWindow = mouseenterAliases.window;\nexport const eventMouseenterDocument = mouseenterAliases.document;\nconst mouseleaveAliases = makeTypedEventAliases<MouseEvent>('mouseleave');\nexport const eventMouseleave = mouseleaveAliases.base;\nexport const eventMouseleaveDelegateLight = mouseleaveAliases.delegateLight;\nexport const eventMouseleaveDelegateShadow = mouseleaveAliases.delegateShadow;\nexport const eventMouseleaveDelegateAll = mouseleaveAliases.delegateAll;\nexport const eventMouseleaveDelegate = mouseleaveAliases.delegate;\nexport const eventMouseleaveMutationLight = mouseleaveAliases.mutationLight;\nexport const eventMouseleaveMutationShadow = mouseleaveAliases.mutationShadow;\nexport const eventMouseleaveMutationAll = mouseleaveAliases.mutationAll;\nexport const eventMouseleaveMutation = mouseleaveAliases.mutation;\nexport const eventMouseleaveLight = mouseleaveAliases.light;\nexport const eventMouseleaveShadow = mouseleaveAliases.shadow;\nexport const eventMouseleaveAll = mouseleaveAliases.all;\nexport const eventMouseleaveThis = mouseleaveAliases.this;\nexport const eventMouseleaveAppHost = mouseleaveAliases.appHost;\nexport const eventMouseleaveWindow = mouseleaveAliases.window;\nexport const eventMouseleaveDocument = mouseleaveAliases.document;\nconst contextmenuAliases = makeTypedEventAliases<MouseEvent>('contextmenu');\nexport const eventContextmenu = contextmenuAliases.base;\nexport const eventContextmenuDelegateLight = contextmenuAliases.delegateLight;\nexport const eventContextmenuDelegateShadow = contextmenuAliases.delegateShadow;\nexport const eventContextmenuDelegateAll = contextmenuAliases.delegateAll;\nexport const eventContextmenuDelegate = contextmenuAliases.delegate;\nexport const eventContextmenuMutationLight = contextmenuAliases.mutationLight;\nexport const eventContextmenuMutationShadow = contextmenuAliases.mutationShadow;\nexport const eventContextmenuMutationAll = contextmenuAliases.mutationAll;\nexport const eventContextmenuMutation = contextmenuAliases.mutation;\nexport const eventContextmenuLight = contextmenuAliases.light;\nexport const eventContextmenuShadow = contextmenuAliases.shadow;\nexport const eventContextmenuAll = contextmenuAliases.all;\nexport const eventContextmenuThis = contextmenuAliases.this;\nexport const eventContextmenuAppHost = contextmenuAliases.appHost;\nexport const eventContextmenuWindow = contextmenuAliases.window;\nexport const eventContextmenuDocument = contextmenuAliases.document;\nconst wheelAliases = makeTypedEventAliases<WheelEvent>('wheel');\nexport const eventWheel = wheelAliases.base;\nexport const eventWheelDelegateLight = wheelAliases.delegateLight;\nexport const eventWheelDelegateShadow = wheelAliases.delegateShadow;\nexport const eventWheelDelegateAll = wheelAliases.delegateAll;\nexport const eventWheelDelegate = wheelAliases.delegate;\nexport const eventWheelMutationLight = wheelAliases.mutationLight;\nexport const eventWheelMutationShadow = wheelAliases.mutationShadow;\nexport const eventWheelMutationAll = wheelAliases.mutationAll;\nexport const eventWheelMutation = wheelAliases.mutation;\nexport const eventWheelLight = wheelAliases.light;\nexport const eventWheelShadow = wheelAliases.shadow;\nexport const eventWheelAll = wheelAliases.all;\nexport const eventWheelThis = wheelAliases.this;\nexport const eventWheelAppHost = wheelAliases.appHost;\nexport const eventWheelWindow = wheelAliases.window;\nexport const eventWheelDocument = wheelAliases.document;\nconst keydownAliases = makeTypedEventAliases<KeyboardEvent>('keydown');\nexport const eventKeydown = keydownAliases.base;\nexport const eventKeydownDelegateLight = keydownAliases.delegateLight;\nexport const eventKeydownDelegateShadow = keydownAliases.delegateShadow;\nexport const eventKeydownDelegateAll = keydownAliases.delegateAll;\nexport const eventKeydownDelegate = keydownAliases.delegate;\nexport const eventKeydownMutationLight = keydownAliases.mutationLight;\nexport const eventKeydownMutationShadow = keydownAliases.mutationShadow;\nexport const eventKeydownMutationAll = keydownAliases.mutationAll;\nexport const eventKeydownMutation = keydownAliases.mutation;\nexport const eventKeydownLight = keydownAliases.light;\nexport const eventKeydownShadow = keydownAliases.shadow;\nexport const eventKeydownAll = keydownAliases.all;\nexport const eventKeydownThis = keydownAliases.this;\nexport const eventKeydownAppHost = keydownAliases.appHost;\nexport const eventKeydownWindow = keydownAliases.window;\nexport const eventKeydownDocument = keydownAliases.document;\nconst keyupAliases = makeTypedEventAliases<KeyboardEvent>('keyup');\nexport const eventKeyup = keyupAliases.base;\nexport const eventKeyupDelegateLight = keyupAliases.delegateLight;\nexport const eventKeyupDelegateShadow = keyupAliases.delegateShadow;\nexport const eventKeyupDelegateAll = keyupAliases.delegateAll;\nexport const eventKeyupDelegate = keyupAliases.delegate;\nexport const eventKeyupMutationLight = keyupAliases.mutationLight;\nexport const eventKeyupMutationShadow = keyupAliases.mutationShadow;\nexport const eventKeyupMutationAll = keyupAliases.mutationAll;\nexport const eventKeyupMutation = keyupAliases.mutation;\nexport const eventKeyupLight = keyupAliases.light;\nexport const eventKeyupShadow = keyupAliases.shadow;\nexport const eventKeyupAll = keyupAliases.all;\nexport const eventKeyupThis = keyupAliases.this;\nexport const eventKeyupAppHost = keyupAliases.appHost;\nexport const eventKeyupWindow = keyupAliases.window;\nexport const eventKeyupDocument = keyupAliases.document;\nconst keypressAliases = makeTypedEventAliases<KeyboardEvent>('keypress');\nexport const eventKeypress = keypressAliases.base;\nexport const eventKeypressDelegateLight = keypressAliases.delegateLight;\nexport const eventKeypressDelegateShadow = keypressAliases.delegateShadow;\nexport const eventKeypressDelegateAll = keypressAliases.delegateAll;\nexport const eventKeypressDelegate = keypressAliases.delegate;\nexport const eventKeypressMutationLight = keypressAliases.mutationLight;\nexport const eventKeypressMutationShadow = keypressAliases.mutationShadow;\nexport const eventKeypressMutationAll = keypressAliases.mutationAll;\nexport const eventKeypressMutation = keypressAliases.mutation;\nexport const eventKeypressLight = keypressAliases.light;\nexport const eventKeypressShadow = keypressAliases.shadow;\nexport const eventKeypressAll = keypressAliases.all;\nexport const eventKeypressThis = keypressAliases.this;\nexport const eventKeypressAppHost = keypressAliases.appHost;\nexport const eventKeypressWindow = keypressAliases.window;\nexport const eventKeypressDocument = keypressAliases.document;\nconst inputAliases = makeTypedEventAliases<InputEvent>('input');\nexport const eventInput = inputAliases.base;\nexport const eventInputDelegateLight = inputAliases.delegateLight;\nexport const eventInputDelegateShadow = inputAliases.delegateShadow;\nexport const eventInputDelegateAll = inputAliases.delegateAll;\nexport const eventInputDelegate = inputAliases.delegate;\nexport const eventInputMutationLight = inputAliases.mutationLight;\nexport const eventInputMutationShadow = inputAliases.mutationShadow;\nexport const eventInputMutationAll = inputAliases.mutationAll;\nexport const eventInputMutation = inputAliases.mutation;\nexport const eventInputLight = inputAliases.light;\nexport const eventInputShadow = inputAliases.shadow;\nexport const eventInputAll = inputAliases.all;\nexport const eventInputThis = inputAliases.this;\nexport const eventInputAppHost = inputAliases.appHost;\nexport const eventInputWindow = inputAliases.window;\nexport const eventInputDocument = inputAliases.document;\nconst changeAliases = makeTypedEventAliases<Event>('change');\nexport const eventChange = changeAliases.base;\nexport const eventChangeDelegateLight = changeAliases.delegateLight;\nexport const eventChangeDelegateShadow = changeAliases.delegateShadow;\nexport const eventChangeDelegateAll = changeAliases.delegateAll;\nexport const eventChangeDelegate = changeAliases.delegate;\nexport const eventChangeMutationLight = changeAliases.mutationLight;\nexport const eventChangeMutationShadow = changeAliases.mutationShadow;\nexport const eventChangeMutationAll = changeAliases.mutationAll;\nexport const eventChangeMutation = changeAliases.mutation;\nexport const eventChangeLight = changeAliases.light;\nexport const eventChangeShadow = changeAliases.shadow;\nexport const eventChangeAll = changeAliases.all;\nexport const eventChangeThis = changeAliases.this;\nexport const eventChangeAppHost = changeAliases.appHost;\nexport const eventChangeWindow = changeAliases.window;\nexport const eventChangeDocument = changeAliases.document;\nconst submitAliases = makeTypedEventAliases<SubmitEvent>('submit');\nexport const eventSubmit = submitAliases.base;\nexport const eventSubmitDelegateLight = submitAliases.delegateLight;\nexport const eventSubmitDelegateShadow = submitAliases.delegateShadow;\nexport const eventSubmitDelegateAll = submitAliases.delegateAll;\nexport const eventSubmitDelegate = submitAliases.delegate;\nexport const eventSubmitMutationLight = submitAliases.mutationLight;\nexport const eventSubmitMutationShadow = submitAliases.mutationShadow;\nexport const eventSubmitMutationAll = submitAliases.mutationAll;\nexport const eventSubmitMutation = submitAliases.mutation;\nexport const eventSubmitLight = submitAliases.light;\nexport const eventSubmitShadow = submitAliases.shadow;\nexport const eventSubmitAll = submitAliases.all;\nexport const eventSubmitThis = submitAliases.this;\nexport const eventSubmitAppHost = submitAliases.appHost;\nexport const eventSubmitWindow = submitAliases.window;\nexport const eventSubmitDocument = submitAliases.document;\nconst resetAliases = makeTypedEventAliases<Event>('reset');\nexport const eventReset = resetAliases.base;\nexport const eventResetDelegateLight = resetAliases.delegateLight;\nexport const eventResetDelegateShadow = resetAliases.delegateShadow;\nexport const eventResetDelegateAll = resetAliases.delegateAll;\nexport const eventResetDelegate = resetAliases.delegate;\nexport const eventResetMutationLight = resetAliases.mutationLight;\nexport const eventResetMutationShadow = resetAliases.mutationShadow;\nexport const eventResetMutationAll = resetAliases.mutationAll;\nexport const eventResetMutation = resetAliases.mutation;\nexport const eventResetLight = resetAliases.light;\nexport const eventResetShadow = resetAliases.shadow;\nexport const eventResetAll = resetAliases.all;\nexport const eventResetThis = resetAliases.this;\nexport const eventResetAppHost = resetAliases.appHost;\nexport const eventResetWindow = resetAliases.window;\nexport const eventResetDocument = resetAliases.document;\nconst invalidAliases = makeTypedEventAliases<Event>('invalid');\nexport const eventInvalid = invalidAliases.base;\nexport const eventInvalidDelegateLight = invalidAliases.delegateLight;\nexport const eventInvalidDelegateShadow = invalidAliases.delegateShadow;\nexport const eventInvalidDelegateAll = invalidAliases.delegateAll;\nexport const eventInvalidDelegate = invalidAliases.delegate;\nexport const eventInvalidMutationLight = invalidAliases.mutationLight;\nexport const eventInvalidMutationShadow = invalidAliases.mutationShadow;\nexport const eventInvalidMutationAll = invalidAliases.mutationAll;\nexport const eventInvalidMutation = invalidAliases.mutation;\nexport const eventInvalidLight = invalidAliases.light;\nexport const eventInvalidShadow = invalidAliases.shadow;\nexport const eventInvalidAll = invalidAliases.all;\nexport const eventInvalidThis = invalidAliases.this;\nexport const eventInvalidAppHost = invalidAliases.appHost;\nexport const eventInvalidWindow = invalidAliases.window;\nexport const eventInvalidDocument = invalidAliases.document;\nconst selectAliases = makeTypedEventAliases<Event>('select');\nexport const eventSelect = selectAliases.base;\nexport const eventSelectDelegateLight = selectAliases.delegateLight;\nexport const eventSelectDelegateShadow = selectAliases.delegateShadow;\nexport const eventSelectDelegateAll = selectAliases.delegateAll;\nexport const eventSelectDelegate = selectAliases.delegate;\nexport const eventSelectMutationLight = selectAliases.mutationLight;\nexport const eventSelectMutationShadow = selectAliases.mutationShadow;\nexport const eventSelectMutationAll = selectAliases.mutationAll;\nexport const eventSelectMutation = selectAliases.mutation;\nexport const eventSelectLight = selectAliases.light;\nexport const eventSelectShadow = selectAliases.shadow;\nexport const eventSelectAll = selectAliases.all;\nexport const eventSelectThis = selectAliases.this;\nexport const eventSelectAppHost = selectAliases.appHost;\nexport const eventSelectWindow = selectAliases.window;\nexport const eventSelectDocument = selectAliases.document;\nconst focusAliases = makeTypedEventAliases<FocusEvent>('focus');\nexport const eventFocus = focusAliases.base;\nexport const eventFocusDelegateLight = focusAliases.delegateLight;\nexport const eventFocusDelegateShadow = focusAliases.delegateShadow;\nexport const eventFocusDelegateAll = focusAliases.delegateAll;\nexport const eventFocusDelegate = focusAliases.delegate;\nexport const eventFocusMutationLight = focusAliases.mutationLight;\nexport const eventFocusMutationShadow = focusAliases.mutationShadow;\nexport const eventFocusMutationAll = focusAliases.mutationAll;\nexport const eventFocusMutation = focusAliases.mutation;\nexport const eventFocusLight = focusAliases.light;\nexport const eventFocusShadow = focusAliases.shadow;\nexport const eventFocusAll = focusAliases.all;\nexport const eventFocusThis = focusAliases.this;\nexport const eventFocusAppHost = focusAliases.appHost;\nexport const eventFocusWindow = focusAliases.window;\nexport const eventFocusDocument = focusAliases.document;\nconst blurAliases = makeTypedEventAliases<FocusEvent>('blur');\nexport const eventBlur = blurAliases.base;\nexport const eventBlurDelegateLight = blurAliases.delegateLight;\nexport const eventBlurDelegateShadow = blurAliases.delegateShadow;\nexport const eventBlurDelegateAll = blurAliases.delegateAll;\nexport const eventBlurDelegate = blurAliases.delegate;\nexport const eventBlurMutationLight = blurAliases.mutationLight;\nexport const eventBlurMutationShadow = blurAliases.mutationShadow;\nexport const eventBlurMutationAll = blurAliases.mutationAll;\nexport const eventBlurMutation = blurAliases.mutation;\nexport const eventBlurLight = blurAliases.light;\nexport const eventBlurShadow = blurAliases.shadow;\nexport const eventBlurAll = blurAliases.all;\nexport const eventBlurThis = blurAliases.this;\nexport const eventBlurAppHost = blurAliases.appHost;\nexport const eventBlurWindow = blurAliases.window;\nexport const eventBlurDocument = blurAliases.document;\nconst focusinAliases = makeTypedEventAliases<FocusEvent>('focusin');\nexport const eventFocusin = focusinAliases.base;\nexport const eventFocusinDelegateLight = focusinAliases.delegateLight;\nexport const eventFocusinDelegateShadow = focusinAliases.delegateShadow;\nexport const eventFocusinDelegateAll = focusinAliases.delegateAll;\nexport const eventFocusinDelegate = focusinAliases.delegate;\nexport const eventFocusinMutationLight = focusinAliases.mutationLight;\nexport const eventFocusinMutationShadow = focusinAliases.mutationShadow;\nexport const eventFocusinMutationAll = focusinAliases.mutationAll;\nexport const eventFocusinMutation = focusinAliases.mutation;\nexport const eventFocusinLight = focusinAliases.light;\nexport const eventFocusinShadow = focusinAliases.shadow;\nexport const eventFocusinAll = focusinAliases.all;\nexport const eventFocusinThis = focusinAliases.this;\nexport const eventFocusinAppHost = focusinAliases.appHost;\nexport const eventFocusinWindow = focusinAliases.window;\nexport const eventFocusinDocument = focusinAliases.document;\nconst focusoutAliases = makeTypedEventAliases<FocusEvent>('focusout');\nexport const eventFocusout = focusoutAliases.base;\nexport const eventFocusoutDelegateLight = focusoutAliases.delegateLight;\nexport const eventFocusoutDelegateShadow = focusoutAliases.delegateShadow;\nexport const eventFocusoutDelegateAll = focusoutAliases.delegateAll;\nexport const eventFocusoutDelegate = focusoutAliases.delegate;\nexport const eventFocusoutMutationLight = focusoutAliases.mutationLight;\nexport const eventFocusoutMutationShadow = focusoutAliases.mutationShadow;\nexport const eventFocusoutMutationAll = focusoutAliases.mutationAll;\nexport const eventFocusoutMutation = focusoutAliases.mutation;\nexport const eventFocusoutLight = focusoutAliases.light;\nexport const eventFocusoutShadow = focusoutAliases.shadow;\nexport const eventFocusoutAll = focusoutAliases.all;\nexport const eventFocusoutThis = focusoutAliases.this;\nexport const eventFocusoutAppHost = focusoutAliases.appHost;\nexport const eventFocusoutWindow = focusoutAliases.window;\nexport const eventFocusoutDocument = focusoutAliases.document;\nconst dragstartAliases = makeTypedEventAliases<DragEvent>('dragstart');\nexport const eventDragstart = dragstartAliases.base;\nexport const eventDragstartDelegateLight = dragstartAliases.delegateLight;\nexport const eventDragstartDelegateShadow = dragstartAliases.delegateShadow;\nexport const eventDragstartDelegateAll = dragstartAliases.delegateAll;\nexport const eventDragstartDelegate = dragstartAliases.delegate;\nexport const eventDragstartMutationLight = dragstartAliases.mutationLight;\nexport const eventDragstartMutationShadow = dragstartAliases.mutationShadow;\nexport const eventDragstartMutationAll = dragstartAliases.mutationAll;\nexport const eventDragstartMutation = dragstartAliases.mutation;\nexport const eventDragstartLight = dragstartAliases.light;\nexport const eventDragstartShadow = dragstartAliases.shadow;\nexport const eventDragstartAll = dragstartAliases.all;\nexport const eventDragstartThis = dragstartAliases.this;\nexport const eventDragstartAppHost = dragstartAliases.appHost;\nexport const eventDragstartWindow = dragstartAliases.window;\nexport const eventDragstartDocument = dragstartAliases.document;\nconst dragAliases = makeTypedEventAliases<DragEvent>('drag');\nexport const eventDrag = dragAliases.base;\nexport const eventDragDelegateLight = dragAliases.delegateLight;\nexport const eventDragDelegateShadow = dragAliases.delegateShadow;\nexport const eventDragDelegateAll = dragAliases.delegateAll;\nexport const eventDragDelegate = dragAliases.delegate;\nexport const eventDragMutationLight = dragAliases.mutationLight;\nexport const eventDragMutationShadow = dragAliases.mutationShadow;\nexport const eventDragMutationAll = dragAliases.mutationAll;\nexport const eventDragMutation = dragAliases.mutation;\nexport const eventDragLight = dragAliases.light;\nexport const eventDragShadow = dragAliases.shadow;\nexport const eventDragAll = dragAliases.all;\nexport const eventDragThis = dragAliases.this;\nexport const eventDragAppHost = dragAliases.appHost;\nexport const eventDragWindow = dragAliases.window;\nexport const eventDragDocument = dragAliases.document;\nconst dragendAliases = makeTypedEventAliases<DragEvent>('dragend');\nexport const eventDragend = dragendAliases.base;\nexport const eventDragendDelegateLight = dragendAliases.delegateLight;\nexport const eventDragendDelegateShadow = dragendAliases.delegateShadow;\nexport const eventDragendDelegateAll = dragendAliases.delegateAll;\nexport const eventDragendDelegate = dragendAliases.delegate;\nexport const eventDragendMutationLight = dragendAliases.mutationLight;\nexport const eventDragendMutationShadow = dragendAliases.mutationShadow;\nexport const eventDragendMutationAll = dragendAliases.mutationAll;\nexport const eventDragendMutation = dragendAliases.mutation;\nexport const eventDragendLight = dragendAliases.light;\nexport const eventDragendShadow = dragendAliases.shadow;\nexport const eventDragendAll = dragendAliases.all;\nexport const eventDragendThis = dragendAliases.this;\nexport const eventDragendAppHost = dragendAliases.appHost;\nexport const eventDragendWindow = dragendAliases.window;\nexport const eventDragendDocument = dragendAliases.document;\nconst dragenterAliases = makeTypedEventAliases<DragEvent>('dragenter');\nexport const eventDragenter = dragenterAliases.base;\nexport const eventDragenterDelegateLight = dragenterAliases.delegateLight;\nexport const eventDragenterDelegateShadow = dragenterAliases.delegateShadow;\nexport const eventDragenterDelegateAll = dragenterAliases.delegateAll;\nexport const eventDragenterDelegate = dragenterAliases.delegate;\nexport const eventDragenterMutationLight = dragenterAliases.mutationLight;\nexport const eventDragenterMutationShadow = dragenterAliases.mutationShadow;\nexport const eventDragenterMutationAll = dragenterAliases.mutationAll;\nexport const eventDragenterMutation = dragenterAliases.mutation;\nexport const eventDragenterLight = dragenterAliases.light;\nexport const eventDragenterShadow = dragenterAliases.shadow;\nexport const eventDragenterAll = dragenterAliases.all;\nexport const eventDragenterThis = dragenterAliases.this;\nexport const eventDragenterAppHost = dragenterAliases.appHost;\nexport const eventDragenterWindow = dragenterAliases.window;\nexport const eventDragenterDocument = dragenterAliases.document;\nconst dragleaveAliases = makeTypedEventAliases<DragEvent>('dragleave');\nexport const eventDragleave = dragleaveAliases.base;\nexport const eventDragleaveDelegateLight = dragleaveAliases.delegateLight;\nexport const eventDragleaveDelegateShadow = dragleaveAliases.delegateShadow;\nexport const eventDragleaveDelegateAll = dragleaveAliases.delegateAll;\nexport const eventDragleaveDelegate = dragleaveAliases.delegate;\nexport const eventDragleaveMutationLight = dragleaveAliases.mutationLight;\nexport const eventDragleaveMutationShadow = dragleaveAliases.mutationShadow;\nexport const eventDragleaveMutationAll = dragleaveAliases.mutationAll;\nexport const eventDragleaveMutation = dragleaveAliases.mutation;\nexport const eventDragleaveLight = dragleaveAliases.light;\nexport const eventDragleaveShadow = dragleaveAliases.shadow;\nexport const eventDragleaveAll = dragleaveAliases.all;\nexport const eventDragleaveThis = dragleaveAliases.this;\nexport const eventDragleaveAppHost = dragleaveAliases.appHost;\nexport const eventDragleaveWindow = dragleaveAliases.window;\nexport const eventDragleaveDocument = dragleaveAliases.document;\nconst dragoverAliases = makeTypedEventAliases<DragEvent>('dragover');\nexport const eventDragover = dragoverAliases.base;\nexport const eventDragoverDelegateLight = dragoverAliases.delegateLight;\nexport const eventDragoverDelegateShadow = dragoverAliases.delegateShadow;\nexport const eventDragoverDelegateAll = dragoverAliases.delegateAll;\nexport const eventDragoverDelegate = dragoverAliases.delegate;\nexport const eventDragoverMutationLight = dragoverAliases.mutationLight;\nexport const eventDragoverMutationShadow = dragoverAliases.mutationShadow;\nexport const eventDragoverMutationAll = dragoverAliases.mutationAll;\nexport const eventDragoverMutation = dragoverAliases.mutation;\nexport const eventDragoverLight = dragoverAliases.light;\nexport const eventDragoverShadow = dragoverAliases.shadow;\nexport const eventDragoverAll = dragoverAliases.all;\nexport const eventDragoverThis = dragoverAliases.this;\nexport const eventDragoverAppHost = dragoverAliases.appHost;\nexport const eventDragoverWindow = dragoverAliases.window;\nexport const eventDragoverDocument = dragoverAliases.document;\nconst dropAliases = makeTypedEventAliases<DragEvent>('drop');\nexport const eventDrop = dropAliases.base;\nexport const eventDropDelegateLight = dropAliases.delegateLight;\nexport const eventDropDelegateShadow = dropAliases.delegateShadow;\nexport const eventDropDelegateAll = dropAliases.delegateAll;\nexport const eventDropDelegate = dropAliases.delegate;\nexport const eventDropMutationLight = dropAliases.mutationLight;\nexport const eventDropMutationShadow = dropAliases.mutationShadow;\nexport const eventDropMutationAll = dropAliases.mutationAll;\nexport const eventDropMutation = dropAliases.mutation;\nexport const eventDropLight = dropAliases.light;\nexport const eventDropShadow = dropAliases.shadow;\nexport const eventDropAll = dropAliases.all;\nexport const eventDropThis = dropAliases.this;\nexport const eventDropAppHost = dropAliases.appHost;\nexport const eventDropWindow = dropAliases.window;\nexport const eventDropDocument = dropAliases.document;\nconst touchstartAliases = makeTypedEventAliases<TouchEvent>('touchstart');\nexport const eventTouchstart = touchstartAliases.base;\nexport const eventTouchstartDelegateLight = touchstartAliases.delegateLight;\nexport const eventTouchstartDelegateShadow = touchstartAliases.delegateShadow;\nexport const eventTouchstartDelegateAll = touchstartAliases.delegateAll;\nexport const eventTouchstartDelegate = touchstartAliases.delegate;\nexport const eventTouchstartMutationLight = touchstartAliases.mutationLight;\nexport const eventTouchstartMutationShadow = touchstartAliases.mutationShadow;\nexport const eventTouchstartMutationAll = touchstartAliases.mutationAll;\nexport const eventTouchstartMutation = touchstartAliases.mutation;\nexport const eventTouchstartLight = touchstartAliases.light;\nexport const eventTouchstartShadow = touchstartAliases.shadow;\nexport const eventTouchstartAll = touchstartAliases.all;\nexport const eventTouchstartThis = touchstartAliases.this;\nexport const eventTouchstartAppHost = touchstartAliases.appHost;\nexport const eventTouchstartWindow = touchstartAliases.window;\nexport const eventTouchstartDocument = touchstartAliases.document;\nconst touchmoveAliases = makeTypedEventAliases<TouchEvent>('touchmove');\nexport const eventTouchmove = touchmoveAliases.base;\nexport const eventTouchmoveDelegateLight = touchmoveAliases.delegateLight;\nexport const eventTouchmoveDelegateShadow = touchmoveAliases.delegateShadow;\nexport const eventTouchmoveDelegateAll = touchmoveAliases.delegateAll;\nexport const eventTouchmoveDelegate = touchmoveAliases.delegate;\nexport const eventTouchmoveMutationLight = touchmoveAliases.mutationLight;\nexport const eventTouchmoveMutationShadow = touchmoveAliases.mutationShadow;\nexport const eventTouchmoveMutationAll = touchmoveAliases.mutationAll;\nexport const eventTouchmoveMutation = touchmoveAliases.mutation;\nexport const eventTouchmoveLight = touchmoveAliases.light;\nexport const eventTouchmoveShadow = touchmoveAliases.shadow;\nexport const eventTouchmoveAll = touchmoveAliases.all;\nexport const eventTouchmoveThis = touchmoveAliases.this;\nexport const eventTouchmoveAppHost = touchmoveAliases.appHost;\nexport const eventTouchmoveWindow = touchmoveAliases.window;\nexport const eventTouchmoveDocument = touchmoveAliases.document;\nconst touchendAliases = makeTypedEventAliases<TouchEvent>('touchend');\nexport const eventTouchend = touchendAliases.base;\nexport const eventTouchendDelegateLight = touchendAliases.delegateLight;\nexport const eventTouchendDelegateShadow = touchendAliases.delegateShadow;\nexport const eventTouchendDelegateAll = touchendAliases.delegateAll;\nexport const eventTouchendDelegate = touchendAliases.delegate;\nexport const eventTouchendMutationLight = touchendAliases.mutationLight;\nexport const eventTouchendMutationShadow = touchendAliases.mutationShadow;\nexport const eventTouchendMutationAll = touchendAliases.mutationAll;\nexport const eventTouchendMutation = touchendAliases.mutation;\nexport const eventTouchendLight = touchendAliases.light;\nexport const eventTouchendShadow = touchendAliases.shadow;\nexport const eventTouchendAll = touchendAliases.all;\nexport const eventTouchendThis = touchendAliases.this;\nexport const eventTouchendAppHost = touchendAliases.appHost;\nexport const eventTouchendWindow = touchendAliases.window;\nexport const eventTouchendDocument = touchendAliases.document;\nconst touchcancelAliases = makeTypedEventAliases<TouchEvent>('touchcancel');\nexport const eventTouchcancel = touchcancelAliases.base;\nexport const eventTouchcancelDelegateLight = touchcancelAliases.delegateLight;\nexport const eventTouchcancelDelegateShadow = touchcancelAliases.delegateShadow;\nexport const eventTouchcancelDelegateAll = touchcancelAliases.delegateAll;\nexport const eventTouchcancelDelegate = touchcancelAliases.delegate;\nexport const eventTouchcancelMutationLight = touchcancelAliases.mutationLight;\nexport const eventTouchcancelMutationShadow = touchcancelAliases.mutationShadow;\nexport const eventTouchcancelMutationAll = touchcancelAliases.mutationAll;\nexport const eventTouchcancelMutation = touchcancelAliases.mutation;\nexport const eventTouchcancelLight = touchcancelAliases.light;\nexport const eventTouchcancelShadow = touchcancelAliases.shadow;\nexport const eventTouchcancelAll = touchcancelAliases.all;\nexport const eventTouchcancelThis = touchcancelAliases.this;\nexport const eventTouchcancelAppHost = touchcancelAliases.appHost;\nexport const eventTouchcancelWindow = touchcancelAliases.window;\nexport const eventTouchcancelDocument = touchcancelAliases.document;\nconst pointerdownAliases = makeTypedEventAliases<PointerEvent>('pointerdown');\nexport const eventPointerdown = pointerdownAliases.base;\nexport const eventPointerdownDelegateLight = pointerdownAliases.delegateLight;\nexport const eventPointerdownDelegateShadow = pointerdownAliases.delegateShadow;\nexport const eventPointerdownDelegateAll = pointerdownAliases.delegateAll;\nexport const eventPointerdownDelegate = pointerdownAliases.delegate;\nexport const eventPointerdownMutationLight = pointerdownAliases.mutationLight;\nexport const eventPointerdownMutationShadow = pointerdownAliases.mutationShadow;\nexport const eventPointerdownMutationAll = pointerdownAliases.mutationAll;\nexport const eventPointerdownMutation = pointerdownAliases.mutation;\nexport const eventPointerdownLight = pointerdownAliases.light;\nexport const eventPointerdownShadow = pointerdownAliases.shadow;\nexport const eventPointerdownAll = pointerdownAliases.all;\nexport const eventPointerdownThis = pointerdownAliases.this;\nexport const eventPointerdownAppHost = pointerdownAliases.appHost;\nexport const eventPointerdownWindow = pointerdownAliases.window;\nexport const eventPointerdownDocument = pointerdownAliases.document;\nconst pointerupAliases = makeTypedEventAliases<PointerEvent>('pointerup');\nexport const eventPointerup = pointerupAliases.base;\nexport const eventPointerupDelegateLight = pointerupAliases.delegateLight;\nexport const eventPointerupDelegateShadow = pointerupAliases.delegateShadow;\nexport const eventPointerupDelegateAll = pointerupAliases.delegateAll;\nexport const eventPointerupDelegate = pointerupAliases.delegate;\nexport const eventPointerupMutationLight = pointerupAliases.mutationLight;\nexport const eventPointerupMutationShadow = pointerupAliases.mutationShadow;\nexport const eventPointerupMutationAll = pointerupAliases.mutationAll;\nexport const eventPointerupMutation = pointerupAliases.mutation;\nexport const eventPointerupLight = pointerupAliases.light;\nexport const eventPointerupShadow = pointerupAliases.shadow;\nexport const eventPointerupAll = pointerupAliases.all;\nexport const eventPointerupThis = pointerupAliases.this;\nexport const eventPointerupAppHost = pointerupAliases.appHost;\nexport const eventPointerupWindow = pointerupAliases.window;\nexport const eventPointerupDocument = pointerupAliases.document;\nconst pointermoveAliases = makeTypedEventAliases<PointerEvent>('pointermove');\nexport const eventPointermove = pointermoveAliases.base;\nexport const eventPointermoveDelegateLight = pointermoveAliases.delegateLight;\nexport const eventPointermoveDelegateShadow = pointermoveAliases.delegateShadow;\nexport const eventPointermoveDelegateAll = pointermoveAliases.delegateAll;\nexport const eventPointermoveDelegate = pointermoveAliases.delegate;\nexport const eventPointermoveMutationLight = pointermoveAliases.mutationLight;\nexport const eventPointermoveMutationShadow = pointermoveAliases.mutationShadow;\nexport const eventPointermoveMutationAll = pointermoveAliases.mutationAll;\nexport const eventPointermoveMutation = pointermoveAliases.mutation;\nexport const eventPointermoveLight = pointermoveAliases.light;\nexport const eventPointermoveShadow = pointermoveAliases.shadow;\nexport const eventPointermoveAll = pointermoveAliases.all;\nexport const eventPointermoveThis = pointermoveAliases.this;\nexport const eventPointermoveAppHost = pointermoveAliases.appHost;\nexport const eventPointermoveWindow = pointermoveAliases.window;\nexport const eventPointermoveDocument = pointermoveAliases.document;\nconst pointeroverAliases = makeTypedEventAliases<PointerEvent>('pointerover');\nexport const eventPointerover = pointeroverAliases.base;\nexport const eventPointeroverDelegateLight = pointeroverAliases.delegateLight;\nexport const eventPointeroverDelegateShadow = pointeroverAliases.delegateShadow;\nexport const eventPointeroverDelegateAll = pointeroverAliases.delegateAll;\nexport const eventPointeroverDelegate = pointeroverAliases.delegate;\nexport const eventPointeroverMutationLight = pointeroverAliases.mutationLight;\nexport const eventPointeroverMutationShadow = pointeroverAliases.mutationShadow;\nexport const eventPointeroverMutationAll = pointeroverAliases.mutationAll;\nexport const eventPointeroverMutation = pointeroverAliases.mutation;\nexport const eventPointeroverLight = pointeroverAliases.light;\nexport const eventPointeroverShadow = pointeroverAliases.shadow;\nexport const eventPointeroverAll = pointeroverAliases.all;\nexport const eventPointeroverThis = pointeroverAliases.this;\nexport const eventPointeroverAppHost = pointeroverAliases.appHost;\nexport const eventPointeroverWindow = pointeroverAliases.window;\nexport const eventPointeroverDocument = pointeroverAliases.document;\nconst pointeroutAliases = makeTypedEventAliases<PointerEvent>('pointerout');\nexport const eventPointerout = pointeroutAliases.base;\nexport const eventPointeroutDelegateLight = pointeroutAliases.delegateLight;\nexport const eventPointeroutDelegateShadow = pointeroutAliases.delegateShadow;\nexport const eventPointeroutDelegateAll = pointeroutAliases.delegateAll;\nexport const eventPointeroutDelegate = pointeroutAliases.delegate;\nexport const eventPointeroutMutationLight = pointeroutAliases.mutationLight;\nexport const eventPointeroutMutationShadow = pointeroutAliases.mutationShadow;\nexport const eventPointeroutMutationAll = pointeroutAliases.mutationAll;\nexport const eventPointeroutMutation = pointeroutAliases.mutation;\nexport const eventPointeroutLight = pointeroutAliases.light;\nexport const eventPointeroutShadow = pointeroutAliases.shadow;\nexport const eventPointeroutAll = pointeroutAliases.all;\nexport const eventPointeroutThis = pointeroutAliases.this;\nexport const eventPointeroutAppHost = pointeroutAliases.appHost;\nexport const eventPointeroutWindow = pointeroutAliases.window;\nexport const eventPointeroutDocument = pointeroutAliases.document;\nconst pointerenterAliases = makeTypedEventAliases<PointerEvent>('pointerenter');\nexport const eventPointerenter = pointerenterAliases.base;\nexport const eventPointerenterDelegateLight = pointerenterAliases.delegateLight;\nexport const eventPointerenterDelegateShadow = pointerenterAliases.delegateShadow;\nexport const eventPointerenterDelegateAll = pointerenterAliases.delegateAll;\nexport const eventPointerenterDelegate = pointerenterAliases.delegate;\nexport const eventPointerenterMutationLight = pointerenterAliases.mutationLight;\nexport const eventPointerenterMutationShadow = pointerenterAliases.mutationShadow;\nexport const eventPointerenterMutationAll = pointerenterAliases.mutationAll;\nexport const eventPointerenterMutation = pointerenterAliases.mutation;\nexport const eventPointerenterLight = pointerenterAliases.light;\nexport const eventPointerenterShadow = pointerenterAliases.shadow;\nexport const eventPointerenterAll = pointerenterAliases.all;\nexport const eventPointerenterThis = pointerenterAliases.this;\nexport const eventPointerenterAppHost = pointerenterAliases.appHost;\nexport const eventPointerenterWindow = pointerenterAliases.window;\nexport const eventPointerenterDocument = pointerenterAliases.document;\nconst pointerleaveAliases = makeTypedEventAliases<PointerEvent>('pointerleave');\nexport const eventPointerleave = pointerleaveAliases.base;\nexport const eventPointerleaveDelegateLight = pointerleaveAliases.delegateLight;\nexport const eventPointerleaveDelegateShadow = pointerleaveAliases.delegateShadow;\nexport const eventPointerleaveDelegateAll = pointerleaveAliases.delegateAll;\nexport const eventPointerleaveDelegate = pointerleaveAliases.delegate;\nexport const eventPointerleaveMutationLight = pointerleaveAliases.mutationLight;\nexport const eventPointerleaveMutationShadow = pointerleaveAliases.mutationShadow;\nexport const eventPointerleaveMutationAll = pointerleaveAliases.mutationAll;\nexport const eventPointerleaveMutation = pointerleaveAliases.mutation;\nexport const eventPointerleaveLight = pointerleaveAliases.light;\nexport const eventPointerleaveShadow = pointerleaveAliases.shadow;\nexport const eventPointerleaveAll = pointerleaveAliases.all;\nexport const eventPointerleaveThis = pointerleaveAliases.this;\nexport const eventPointerleaveAppHost = pointerleaveAliases.appHost;\nexport const eventPointerleaveWindow = pointerleaveAliases.window;\nexport const eventPointerleaveDocument = pointerleaveAliases.document;\nconst pointercancelAliases = makeTypedEventAliases<PointerEvent>('pointercancel');\nexport const eventPointercancel = pointercancelAliases.base;\nexport const eventPointercancelDelegateLight = pointercancelAliases.delegateLight;\nexport const eventPointercancelDelegateShadow = pointercancelAliases.delegateShadow;\nexport const eventPointercancelDelegateAll = pointercancelAliases.delegateAll;\nexport const eventPointercancelDelegate = pointercancelAliases.delegate;\nexport const eventPointercancelMutationLight = pointercancelAliases.mutationLight;\nexport const eventPointercancelMutationShadow = pointercancelAliases.mutationShadow;\nexport const eventPointercancelMutationAll = pointercancelAliases.mutationAll;\nexport const eventPointercancelMutation = pointercancelAliases.mutation;\nexport const eventPointercancelLight = pointercancelAliases.light;\nexport const eventPointercancelShadow = pointercancelAliases.shadow;\nexport const eventPointercancelAll = pointercancelAliases.all;\nexport const eventPointercancelThis = pointercancelAliases.this;\nexport const eventPointercancelAppHost = pointercancelAliases.appHost;\nexport const eventPointercancelWindow = pointercancelAliases.window;\nexport const eventPointercancelDocument = pointercancelAliases.document;\nconst copyAliases = makeTypedEventAliases<ClipboardEvent>('copy');\nexport const eventCopy = copyAliases.base;\nexport const eventCopyDelegateLight = copyAliases.delegateLight;\nexport const eventCopyDelegateShadow = copyAliases.delegateShadow;\nexport const eventCopyDelegateAll = copyAliases.delegateAll;\nexport const eventCopyDelegate = copyAliases.delegate;\nexport const eventCopyMutationLight = copyAliases.mutationLight;\nexport const eventCopyMutationShadow = copyAliases.mutationShadow;\nexport const eventCopyMutationAll = copyAliases.mutationAll;\nexport const eventCopyMutation = copyAliases.mutation;\nexport const eventCopyLight = copyAliases.light;\nexport const eventCopyShadow = copyAliases.shadow;\nexport const eventCopyAll = copyAliases.all;\nexport const eventCopyThis = copyAliases.this;\nexport const eventCopyAppHost = copyAliases.appHost;\nexport const eventCopyWindow = copyAliases.window;\nexport const eventCopyDocument = copyAliases.document;\nconst cutAliases = makeTypedEventAliases<ClipboardEvent>('cut');\nexport const eventCut = cutAliases.base;\nexport const eventCutDelegateLight = cutAliases.delegateLight;\nexport const eventCutDelegateShadow = cutAliases.delegateShadow;\nexport const eventCutDelegateAll = cutAliases.delegateAll;\nexport const eventCutDelegate = cutAliases.delegate;\nexport const eventCutMutationLight = cutAliases.mutationLight;\nexport const eventCutMutationShadow = cutAliases.mutationShadow;\nexport const eventCutMutationAll = cutAliases.mutationAll;\nexport const eventCutMutation = cutAliases.mutation;\nexport const eventCutLight = cutAliases.light;\nexport const eventCutShadow = cutAliases.shadow;\nexport const eventCutAll = cutAliases.all;\nexport const eventCutThis = cutAliases.this;\nexport const eventCutAppHost = cutAliases.appHost;\nexport const eventCutWindow = cutAliases.window;\nexport const eventCutDocument = cutAliases.document;\nconst pasteAliases = makeTypedEventAliases<ClipboardEvent>('paste');\nexport const eventPaste = pasteAliases.base;\nexport const eventPasteDelegateLight = pasteAliases.delegateLight;\nexport const eventPasteDelegateShadow = pasteAliases.delegateShadow;\nexport const eventPasteDelegateAll = pasteAliases.delegateAll;\nexport const eventPasteDelegate = pasteAliases.delegate;\nexport const eventPasteMutationLight = pasteAliases.mutationLight;\nexport const eventPasteMutationShadow = pasteAliases.mutationShadow;\nexport const eventPasteMutationAll = pasteAliases.mutationAll;\nexport const eventPasteMutation = pasteAliases.mutation;\nexport const eventPasteLight = pasteAliases.light;\nexport const eventPasteShadow = pasteAliases.shadow;\nexport const eventPasteAll = pasteAliases.all;\nexport const eventPasteThis = pasteAliases.this;\nexport const eventPasteAppHost = pasteAliases.appHost;\nexport const eventPasteWindow = pasteAliases.window;\nexport const eventPasteDocument = pasteAliases.document;\nconst animationstartAliases = makeTypedEventAliases<AnimationEvent>('animationstart');\nexport const eventAnimationstart = animationstartAliases.base;\nexport const eventAnimationstartDelegateLight = animationstartAliases.delegateLight;\nexport const eventAnimationstartDelegateShadow = animationstartAliases.delegateShadow;\nexport const eventAnimationstartDelegateAll = animationstartAliases.delegateAll;\nexport const eventAnimationstartDelegate = animationstartAliases.delegate;\nexport const eventAnimationstartMutationLight = animationstartAliases.mutationLight;\nexport const eventAnimationstartMutationShadow = animationstartAliases.mutationShadow;\nexport const eventAnimationstartMutationAll = animationstartAliases.mutationAll;\nexport const eventAnimationstartMutation = animationstartAliases.mutation;\nexport const eventAnimationstartLight = animationstartAliases.light;\nexport const eventAnimationstartShadow = animationstartAliases.shadow;\nexport const eventAnimationstartAll = animationstartAliases.all;\nexport const eventAnimationstartThis = animationstartAliases.this;\nexport const eventAnimationstartAppHost = animationstartAliases.appHost;\nexport const eventAnimationstartWindow = animationstartAliases.window;\nexport const eventAnimationstartDocument = animationstartAliases.document;\nconst animationendAliases = makeTypedEventAliases<AnimationEvent>('animationend');\nexport const eventAnimationend = animationendAliases.base;\nexport const eventAnimationendDelegateLight = animationendAliases.delegateLight;\nexport const eventAnimationendDelegateShadow = animationendAliases.delegateShadow;\nexport const eventAnimationendDelegateAll = animationendAliases.delegateAll;\nexport const eventAnimationendDelegate = animationendAliases.delegate;\nexport const eventAnimationendMutationLight = animationendAliases.mutationLight;\nexport const eventAnimationendMutationShadow = animationendAliases.mutationShadow;\nexport const eventAnimationendMutationAll = animationendAliases.mutationAll;\nexport const eventAnimationendMutation = animationendAliases.mutation;\nexport const eventAnimationendLight = animationendAliases.light;\nexport const eventAnimationendShadow = animationendAliases.shadow;\nexport const eventAnimationendAll = animationendAliases.all;\nexport const eventAnimationendThis = animationendAliases.this;\nexport const eventAnimationendAppHost = animationendAliases.appHost;\nexport const eventAnimationendWindow = animationendAliases.window;\nexport const eventAnimationendDocument = animationendAliases.document;\nconst animationiterationAliases = makeTypedEventAliases<AnimationEvent>('animationiteration');\nexport const eventAnimationiteration = animationiterationAliases.base;\nexport const eventAnimationiterationDelegateLight = animationiterationAliases.delegateLight;\nexport const eventAnimationiterationDelegateShadow = animationiterationAliases.delegateShadow;\nexport const eventAnimationiterationDelegateAll = animationiterationAliases.delegateAll;\nexport const eventAnimationiterationDelegate = animationiterationAliases.delegate;\nexport const eventAnimationiterationMutationLight = animationiterationAliases.mutationLight;\nexport const eventAnimationiterationMutationShadow = animationiterationAliases.mutationShadow;\nexport const eventAnimationiterationMutationAll = animationiterationAliases.mutationAll;\nexport const eventAnimationiterationMutation = animationiterationAliases.mutation;\nexport const eventAnimationiterationLight = animationiterationAliases.light;\nexport const eventAnimationiterationShadow = animationiterationAliases.shadow;\nexport const eventAnimationiterationAll = animationiterationAliases.all;\nexport const eventAnimationiterationThis = animationiterationAliases.this;\nexport const eventAnimationiterationAppHost = animationiterationAliases.appHost;\nexport const eventAnimationiterationWindow = animationiterationAliases.window;\nexport const eventAnimationiterationDocument = animationiterationAliases.document;\nconst animationcancelAliases = makeTypedEventAliases<AnimationEvent>('animationcancel');\nexport const eventAnimationcancel = animationcancelAliases.base;\nexport const eventAnimationcancelDelegateLight = animationcancelAliases.delegateLight;\nexport const eventAnimationcancelDelegateShadow = animationcancelAliases.delegateShadow;\nexport const eventAnimationcancelDelegateAll = animationcancelAliases.delegateAll;\nexport const eventAnimationcancelDelegate = animationcancelAliases.delegate;\nexport const eventAnimationcancelMutationLight = animationcancelAliases.mutationLight;\nexport const eventAnimationcancelMutationShadow = animationcancelAliases.mutationShadow;\nexport const eventAnimationcancelMutationAll = animationcancelAliases.mutationAll;\nexport const eventAnimationcancelMutation = animationcancelAliases.mutation;\nexport const eventAnimationcancelLight = animationcancelAliases.light;\nexport const eventAnimationcancelShadow = animationcancelAliases.shadow;\nexport const eventAnimationcancelAll = animationcancelAliases.all;\nexport const eventAnimationcancelThis = animationcancelAliases.this;\nexport const eventAnimationcancelAppHost = animationcancelAliases.appHost;\nexport const eventAnimationcancelWindow = animationcancelAliases.window;\nexport const eventAnimationcancelDocument = animationcancelAliases.document;\nconst transitionstartAliases = makeTypedEventAliases<TransitionEvent>('transitionstart');\nexport const eventTransitionstart = transitionstartAliases.base;\nexport const eventTransitionstartDelegateLight = transitionstartAliases.delegateLight;\nexport const eventTransitionstartDelegateShadow = transitionstartAliases.delegateShadow;\nexport const eventTransitionstartDelegateAll = transitionstartAliases.delegateAll;\nexport const eventTransitionstartDelegate = transitionstartAliases.delegate;\nexport const eventTransitionstartMutationLight = transitionstartAliases.mutationLight;\nexport const eventTransitionstartMutationShadow = transitionstartAliases.mutationShadow;\nexport const eventTransitionstartMutationAll = transitionstartAliases.mutationAll;\nexport const eventTransitionstartMutation = transitionstartAliases.mutation;\nexport const eventTransitionstartLight = transitionstartAliases.light;\nexport const eventTransitionstartShadow = transitionstartAliases.shadow;\nexport const eventTransitionstartAll = transitionstartAliases.all;\nexport const eventTransitionstartThis = transitionstartAliases.this;\nexport const eventTransitionstartAppHost = transitionstartAliases.appHost;\nexport const eventTransitionstartWindow = transitionstartAliases.window;\nexport const eventTransitionstartDocument = transitionstartAliases.document;\nconst transitionendAliases = makeTypedEventAliases<TransitionEvent>('transitionend');\nexport const eventTransitionend = transitionendAliases.base;\nexport const eventTransitionendDelegateLight = transitionendAliases.delegateLight;\nexport const eventTransitionendDelegateShadow = transitionendAliases.delegateShadow;\nexport const eventTransitionendDelegateAll = transitionendAliases.delegateAll;\nexport const eventTransitionendDelegate = transitionendAliases.delegate;\nexport const eventTransitionendMutationLight = transitionendAliases.mutationLight;\nexport const eventTransitionendMutationShadow = transitionendAliases.mutationShadow;\nexport const eventTransitionendMutationAll = transitionendAliases.mutationAll;\nexport const eventTransitionendMutation = transitionendAliases.mutation;\nexport const eventTransitionendLight = transitionendAliases.light;\nexport const eventTransitionendShadow = transitionendAliases.shadow;\nexport const eventTransitionendAll = transitionendAliases.all;\nexport const eventTransitionendThis = transitionendAliases.this;\nexport const eventTransitionendAppHost = transitionendAliases.appHost;\nexport const eventTransitionendWindow = transitionendAliases.window;\nexport const eventTransitionendDocument = transitionendAliases.document;\nconst transitioncancelAliases = makeTypedEventAliases<TransitionEvent>('transitioncancel');\nexport const eventTransitioncancel = transitioncancelAliases.base;\nexport const eventTransitioncancelDelegateLight = transitioncancelAliases.delegateLight;\nexport const eventTransitioncancelDelegateShadow = transitioncancelAliases.delegateShadow;\nexport const eventTransitioncancelDelegateAll = transitioncancelAliases.delegateAll;\nexport const eventTransitioncancelDelegate = transitioncancelAliases.delegate;\nexport const eventTransitioncancelMutationLight = transitioncancelAliases.mutationLight;\nexport const eventTransitioncancelMutationShadow = transitioncancelAliases.mutationShadow;\nexport const eventTransitioncancelMutationAll = transitioncancelAliases.mutationAll;\nexport const eventTransitioncancelMutation = transitioncancelAliases.mutation;\nexport const eventTransitioncancelLight = transitioncancelAliases.light;\nexport const eventTransitioncancelShadow = transitioncancelAliases.shadow;\nexport const eventTransitioncancelAll = transitioncancelAliases.all;\nexport const eventTransitioncancelThis = transitioncancelAliases.this;\nexport const eventTransitioncancelAppHost = transitioncancelAliases.appHost;\nexport const eventTransitioncancelWindow = transitioncancelAliases.window;\nexport const eventTransitioncancelDocument = transitioncancelAliases.document;\nconst transitionrunAliases = makeTypedEventAliases<TransitionEvent>('transitionrun');\nexport const eventTransitionrun = transitionrunAliases.base;\nexport const eventTransitionrunDelegateLight = transitionrunAliases.delegateLight;\nexport const eventTransitionrunDelegateShadow = transitionrunAliases.delegateShadow;\nexport const eventTransitionrunDelegateAll = transitionrunAliases.delegateAll;\nexport const eventTransitionrunDelegate = transitionrunAliases.delegate;\nexport const eventTransitionrunMutationLight = transitionrunAliases.mutationLight;\nexport const eventTransitionrunMutationShadow = transitionrunAliases.mutationShadow;\nexport const eventTransitionrunMutationAll = transitionrunAliases.mutationAll;\nexport const eventTransitionrunMutation = transitionrunAliases.mutation;\nexport const eventTransitionrunLight = transitionrunAliases.light;\nexport const eventTransitionrunShadow = transitionrunAliases.shadow;\nexport const eventTransitionrunAll = transitionrunAliases.all;\nexport const eventTransitionrunThis = transitionrunAliases.this;\nexport const eventTransitionrunAppHost = transitionrunAliases.appHost;\nexport const eventTransitionrunWindow = transitionrunAliases.window;\nexport const eventTransitionrunDocument = transitionrunAliases.document;\nconst scrollAliases = makeTypedEventAliases<Event>('scroll');\nexport const eventScroll = scrollAliases.base;\nexport const eventScrollDelegateLight = scrollAliases.delegateLight;\nexport const eventScrollDelegateShadow = scrollAliases.delegateShadow;\nexport const eventScrollDelegateAll = scrollAliases.delegateAll;\nexport const eventScrollDelegate = scrollAliases.delegate;\nexport const eventScrollMutationLight = scrollAliases.mutationLight;\nexport const eventScrollMutationShadow = scrollAliases.mutationShadow;\nexport const eventScrollMutationAll = scrollAliases.mutationAll;\nexport const eventScrollMutation = scrollAliases.mutation;\nexport const eventScrollLight = scrollAliases.light;\nexport const eventScrollShadow = scrollAliases.shadow;\nexport const eventScrollAll = scrollAliases.all;\nexport const eventScrollThis = scrollAliases.this;\nexport const eventScrollAppHost = scrollAliases.appHost;\nexport const eventScrollWindow = scrollAliases.window;\nexport const eventScrollDocument = scrollAliases.document;\nconst resizeAliases = makeTypedEventAliases<UIEvent>('resize');\nexport const eventResize = resizeAliases.base;\nexport const eventResizeDelegateLight = resizeAliases.delegateLight;\nexport const eventResizeDelegateShadow = resizeAliases.delegateShadow;\nexport const eventResizeDelegateAll = resizeAliases.delegateAll;\nexport const eventResizeDelegate = resizeAliases.delegate;\nexport const eventResizeMutationLight = resizeAliases.mutationLight;\nexport const eventResizeMutationShadow = resizeAliases.mutationShadow;\nexport const eventResizeMutationAll = resizeAliases.mutationAll;\nexport const eventResizeMutation = resizeAliases.mutation;\nexport const eventResizeLight = resizeAliases.light;\nexport const eventResizeShadow = resizeAliases.shadow;\nexport const eventResizeAll = resizeAliases.all;\nexport const eventResizeThis = resizeAliases.this;\nexport const eventResizeAppHost = resizeAliases.appHost;\nexport const eventResizeWindow = resizeAliases.window;\nexport const eventResizeDocument = resizeAliases.document;\nconst loadAliases = makeTypedEventAliases<Event>('load');\nexport const eventLoad = loadAliases.base;\nexport const eventLoadDelegateLight = loadAliases.delegateLight;\nexport const eventLoadDelegateShadow = loadAliases.delegateShadow;\nexport const eventLoadDelegateAll = loadAliases.delegateAll;\nexport const eventLoadDelegate = loadAliases.delegate;\nexport const eventLoadMutationLight = loadAliases.mutationLight;\nexport const eventLoadMutationShadow = loadAliases.mutationShadow;\nexport const eventLoadMutationAll = loadAliases.mutationAll;\nexport const eventLoadMutation = loadAliases.mutation;\nexport const eventLoadLight = loadAliases.light;\nexport const eventLoadShadow = loadAliases.shadow;\nexport const eventLoadAll = loadAliases.all;\nexport const eventLoadThis = loadAliases.this;\nexport const eventLoadAppHost = loadAliases.appHost;\nexport const eventLoadWindow = loadAliases.window;\nexport const eventLoadDocument = loadAliases.document;\nconst errorAliases = makeTypedEventAliases<Event>('error');\nexport const eventError = errorAliases.base;\nexport const eventErrorDelegateLight = errorAliases.delegateLight;\nexport const eventErrorDelegateShadow = errorAliases.delegateShadow;\nexport const eventErrorDelegateAll = errorAliases.delegateAll;\nexport const eventErrorDelegate = errorAliases.delegate;\nexport const eventErrorMutationLight = errorAliases.mutationLight;\nexport const eventErrorMutationShadow = errorAliases.mutationShadow;\nexport const eventErrorMutationAll = errorAliases.mutationAll;\nexport const eventErrorMutation = errorAliases.mutation;\nexport const eventErrorLight = errorAliases.light;\nexport const eventErrorShadow = errorAliases.shadow;\nexport const eventErrorAll = errorAliases.all;\nexport const eventErrorThis = errorAliases.this;\nexport const eventErrorAppHost = errorAliases.appHost;\nexport const eventErrorWindow = errorAliases.window;\nexport const eventErrorDocument = errorAliases.document;\nconst toggleAliases = makeTypedEventAliases<Event>('toggle');\nexport const eventToggle = toggleAliases.base;\nexport const eventToggleDelegateLight = toggleAliases.delegateLight;\nexport const eventToggleDelegateShadow = toggleAliases.delegateShadow;\nexport const eventToggleDelegateAll = toggleAliases.delegateAll;\nexport const eventToggleDelegate = toggleAliases.delegate;\nexport const eventToggleMutationLight = toggleAliases.mutationLight;\nexport const eventToggleMutationShadow = toggleAliases.mutationShadow;\nexport const eventToggleMutationAll = toggleAliases.mutationAll;\nexport const eventToggleMutation = toggleAliases.mutation;\nexport const eventToggleLight = toggleAliases.light;\nexport const eventToggleShadow = toggleAliases.shadow;\nexport const eventToggleAll = toggleAliases.all;\nexport const eventToggleThis = toggleAliases.this;\nexport const eventToggleAppHost = toggleAliases.appHost;\nexport const eventToggleWindow = toggleAliases.window;\nexport const eventToggleDocument = toggleAliases.document;\nexport const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata<Event>[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n};\n\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// EventListenerLifeCycler\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nimport { ElementDefineLifeCycler, MutationObserverSetEntry, OnConnectedResult } from '../types';\nimport { Subject } from '@dooboostore/core';\nimport { debounceTime, distinctUntilChanged, throttleTime } from '@dooboostore/core/message/operators';\nimport { SwcUtils } from '../utils/Utils';\nimport { buildSwcParameterArgs } from './parameter';\n\nexport interface BoundListenerEntry {\n target: EventTarget;\n type: string;\n handler: EventListener;\n options: AddEventListenerOptions;\n onRemoves?: Array<{ fn: (target: EventTarget, optionValue: unknown) => void; opts: unknown }>;\n subscription?: { unsubscribe: () => void };\n meta?: AddEventListenerMetadata<Event>;\n}\n\nexport class EventListenerLifeCycler implements ElementDefineLifeCycler {\n /** \uC778\uC2A4\uD134\uC2A4\uBCC4 boundListeners \uC0C1\uD0DC (\uC2DC\uD074\uB7EC\uB294 elementDefine \uC2DC 1\uD68C \uC0DD\uC131\uB418\uC5B4 \uACF5\uC720\uB418\uBBC0\uB85C) */\n private readonly boundListenersMap = new WeakMap<Element, BoundListenerEntry[]>();\n /** \uC778\uC2A4\uD134\uC2A4\uBCC4 delegate:'mutation' \uBC14\uC778\uB529 \uCD94\uC801 WeakSet \u2014 MutationObserverLifeCycler \uC5D0\uC11C \uCC38\uC870 */\n private readonly eventBoundSetsMap = new WeakMap<Element, Map<AddEventListenerMetadata, WeakSet<Element>>>();\n\n // \u2500\u2500 \uC678\uBD80(MutationObserverLifeCycler)\uC5D0\uC11C \uC9C1\uC811 \uC0AC\uC6A9\uD558\uB294 \uACF5\uAC1C \uD5EC\uD37C \u2500\u2500\n\n /** \uC778\uC2A4\uD134\uC2A4\uBCC4 boundListeners \uB97C \uBC18\uD658\uD55C\uB2E4 (\uC5C6\uC73C\uBA74 \uC0DD\uC131). */\n getBoundListeners(inst: Element): BoundListenerEntry[] {\n let list = this.boundListenersMap.get(inst);\n if (!list) { list = []; this.boundListenersMap.set(inst, list); }\n return list;\n }\n\n /** \uC778\uC2A4\uD134\uC2A4\uBCC4 eventBoundSets \uB97C \uBC18\uD658\uD55C\uB2E4 (\uC5C6\uC73C\uBA74 \uC0DD\uC131). */\n getEventBoundSets(inst: Element): Map<AddEventListenerMetadata, WeakSet<Element>> {\n let map = this.eventBoundSetsMap.get(inst);\n if (!map) { map = new Map(); this.eventBoundSetsMap.set(inst, map); }\n return map;\n }\n\n /**\n * target \uC5D0 meta \uC774\uBCA4\uD2B8\uB97C \uC9C1\uC811 \uBC14\uC778\uB529\uD55C\uB2E4.\n * delegate:'mutation' \uCD08\uAE30/\uB3D9\uC801 \uBC14\uC778\uB529\uC5D0\uC11C \uD638\uCD9C\uB41C\uB2E4.\n */\n bindDirect(helperHostSet: HelperHostSet, target: EventTarget, meta: AddEventListenerMetadata): void {\n const inst = helperHostSet.$this;\n const currentWin = helperHostSet.$w;\n const { type, options } = meta;\n const opts = { capture: options.capture, once: options.once, passive: options.passive };\n\n const handler = async (event: Event) => {\n if (options.filter) {\n const helper = SwcUtils.getHelperAndHostSet(currentWin, target as HTMLElement);\n if (!options.filter(event, { currentThis: inst, helper })) return;\n }\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(inst);\n const legacyArgs = [event, { currentHostSet, $matchedElement: event.currentTarget }, { event, ...currentHostSet, $el: target, $root: target }];\n const currentHelperSet = SwcUtils.getHelperSet(currentWin);\n const currentHelperHostSet = { ...currentHelperSet, ...currentHostSet, $this: inst };\n const args = buildSwcParameterArgs(inst, meta.propertyKey, {\n event,\n matched: event.currentTarget,\n hostSet: currentHostSet,\n helperHostSet: currentHelperHostSet,\n helperSet: currentHelperSet\n }, legacyArgs);\n await inst[meta.propertyKey](...args);\n };\n\n const eventSubject = new Subject<Event>();\n let eventStream: any = eventSubject;\n if (options.debounceTime && options.debounceTime > 0)\n eventStream = eventStream.pipe(debounceTime(options.debounceTime));\n if (options.throttleTime && options.throttleTime > 0)\n eventStream = eventStream.pipe(throttleTime(options.throttleTime));\n if (options.distinctUntilChanged !== undefined && options.distinctUntilChanged !== false) {\n eventStream = typeof options.distinctUntilChanged === 'function'\n ? eventStream.pipe(distinctUntilChanged(options.distinctUntilChanged))\n : eventStream.pipe(distinctUntilChanged());\n }\n\n const subscription = eventStream.subscribe({\n next: (e: Event) => handler(e).catch((err: any) => console.error('Event handler error:', err)),\n error: (err: any) => console.error('Event stream error:', err),\n });\n\n const wrappedHandler = (event: Event) => eventSubject.next(event);\n target.addEventListener(type, wrappedHandler, opts);\n\n const onRemoves: Array<{ fn: any; opts: any }> =\n options.removeListener ? [{ fn: options.removeListener, opts: options }] : [];\n this.getBoundListeners(inst).push({ target, type, handler: wrappedHandler, options: opts, subscription, onRemoves, meta });\n }\n\n /** target + meta \uC870\uD569 \uB9AC\uC2A4\uB108\uB97C \uC81C\uAC70\uD55C\uB2E4. MutationObserver \uCD94\uC801 \uC694\uC18C \uC81C\uAC70 \uC2DC \uD638\uCD9C. */\n unbindDirect(helperHostSet: HelperHostSet, target: EventTarget, meta: AddEventListenerMetadata): void {\n const inst = helperHostSet.$this;\n const list = this.getBoundListeners(inst);\n for (let i = list.length - 1; i >= 0; i--) {\n const l = list[i];\n if (l.target === target && l.type === meta.type && l.meta === meta) {\n try { l.target.removeEventListener(l.type, l.handler, l.options); l.subscription?.unsubscribe?.(); }\n catch (e) { console.error('[SWC] unbindDirect error:', e); }\n for (const r of l.onRemoves ?? []) {\n try { r.fn(l.target, r.opts); } catch (e) { console.error('[SWC] unbindDirect removeListener error:', e); }\n }\n list.splice(i, 1);\n }\n }\n }\n\n /**\n * \uBA54\uD0C0\uB370\uC774\uD130 \uBAA9\uB85D\uC744 delegate / mutationDelegate / nonDelegate \uB85C \uBD84\uB958\uD55C\uB2E4.\n * MutationObserverLifeCycler \uC5D0\uC11C mutationDelegate \uBAA9\uB85D\uC744 \uAEBC\uB0BC \uB54C \uC0AC\uC6A9\uD55C\uB2E4.\n */\n classifyListeners(metaList: AddEventListenerMetadata[]): {\n delegateListeners: AddEventListenerMetadata[];\n mutationDelegateListeners: AddEventListenerMetadata[];\n nonDelegateListeners: AddEventListenerMetadata[];\n } {\n const isSpecial = (sel: any) =>\n ['$window', '$document', '$host', '$appHost', '$firstHost', '$lastHost',\n '$firstAppHost', '$lastAppHost', '$hosts', '$appHosts', '$this', ''].includes(sel);\n\n const delegateListeners: AddEventListenerMetadata[] = [];\n const mutationDelegateListeners: AddEventListenerMetadata[] = [];\n const nonDelegateListeners: AddEventListenerMetadata[] = [];\n\n for (const meta of metaList) {\n const isStr = typeof meta.selector === 'string';\n const mode = meta.options.delegate;\n if (mode && isStr && !isSpecial(meta.selector)) {\n mode === 'mutation' ? mutationDelegateListeners.push(meta) : delegateListeners.push(meta);\n } else {\n nonDelegateListeners.push(meta);\n }\n }\n return { delegateListeners, mutationDelegateListeners, nonDelegateListeners };\n }\n\n // \u2500\u2500 ElementDefineLifeCycler \uAD6C\uD604 \u2500\u2500\n\n onConnected(helperHostSet: HelperHostSet): OnConnectedResult | void {\n const inst = helperHostSet.$this;\n const currentWin = helperHostSet.$w;\n\n this.boundListenersMap.delete(inst);\n this.eventBoundSetsMap.delete(inst);\n\n const allMeta = getAddEventListenerMetadata(inst) ?? [];\n const { delegateListeners, nonDelegateListeners, mutationDelegateListeners } = this.classifyListeners(allMeta);\n\n // \u2500\u2500 delegate \uB9AC\uC2A4\uB108: type+root \uD0A4\uB85C \uADF8\uB8F9\uD551 \u2192 unified handler \u2500\u2500\n const groups = new Map<string, AddEventListenerMetadata[]>();\n for (const meta of delegateListeners) {\n const key = `${meta.type}:${meta.options.root || 'auto'}`;\n if (!groups.has(key)) groups.set(key, []);\n groups.get(key)!.push(meta);\n }\n\n groups.forEach((metaList, key) => {\n const ci = key.indexOf(':');\n const type = key.slice(0, ci);\n const r = key.slice(ci + 1);\n const opts = { capture: metaList[0].options.capture, once: metaList[0].options.once, passive: metaList[0].options.passive };\n\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\n for (const br of roots) {\n const sorted = [...metaList].sort((a, b) => (b.options.stopPropagation ? 1 : 0) - (a.options.stopPropagation ? 1 : 0));\n const handler = async (event: Event) => {\n // shadow \uACBD\uACC4\uB97C \uB118\uB294(composed) \uC774\uBCA4\uD2B8\uB294 \uB124\uC774\uD2F0\uBE0C dispatch\uAC00 \uB05D\uB098\uBA74(= \uC544\uB798 \uB8E8\uD504\uC5D0\uC11C\n // \uCCAB await\uAC00 \uC81C\uC5B4\uAD8C\uC744 \uB118\uAE30\uB294 \uC21C\uAC04, \uBE0C\uB77C\uC6B0\uC800\uB294 \uBE44\uB3D9\uAE30 \uB9AC\uC2A4\uB108\uB97C \uAE30\uB2E4\uB9AC\uC9C0 \uC54A\uACE0 dispatch\uB97C\n // \uB9C8\uC800 \uC9C4\uD589/\uC885\uB8CC\uD55C\uB2E4) event.target/closest()\uAC00 \uB354 \uC774\uC0C1 \uC2E0\uB8B0\uD560 \uC218 \uC5C6\uC5B4\uC9C4\uB2E4. \uADF8\uB798\uC11C \uAC19\uC740\n // selector\uB97C \uACF5\uC720\uD558\uB294 \uD578\uB4E4\uB7EC\uAC00 \uC5EC\uB7EC \uAC1C\uC77C \uB54C \uB450 \uBC88\uC9F8 \uC774\uD6C4 \uD578\uB4E4\uB7EC\uB294 \uB9E4\uCE6D\uC774 \uAE68\uC9C8 \uC218 \uC788\uB2E4 \u2014\n // await \uC804\uC5D0 \uC804\uBD80 \uB3D9\uAE30\uC801\uC73C\uB85C \uBA3C\uC800 \uB9E4\uCE6D\uD574\uB454\uB2E4.\n const matches = sorted.map(m => ({ m, matchedEl: (event.target as HTMLElement)?.closest(m.selector as string) }));\n for (const { m, matchedEl } of matches) {\n if (matchedEl && (br as any).contains(matchedEl)) {\n if (m.options.filter) {\n const helper = SwcUtils.getHelperAndHostSet(currentWin, matchedEl as HTMLElement);\n if (!m.options.filter(event, { currentThis: inst, helper })) continue;\n }\n if (m.options.stopPropagation) event.stopPropagation();\n if (m.options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (m.options.preventDefault) event.preventDefault();\n const hs = SwcUtils.getHostSet(inst);\n const legacyArgs = [event, { ...hs, $matchedElement: matchedEl }, { event, ...hs, $el: matchedEl, $root: br }];\n const helperSetForMatch = SwcUtils.getHelperSet(currentWin);\n const helperHostSetForMatch = { ...helperSetForMatch, ...hs, $this: inst };\n const args = buildSwcParameterArgs(inst, m.propertyKey, {\n event,\n matched: matchedEl,\n hostSet: hs,\n helperHostSet: helperHostSetForMatch,\n helperSet: helperSetForMatch\n }, legacyArgs);\n await inst[m.propertyKey](...args);\n if ((event as any).cancelBubble) break;\n }\n }\n };\n br.addEventListener(type, handler, opts);\n const onRemoves: Array<{ fn: any; opts: any }> = sorted.filter(m => m.options.removeListener).map(m => ({ fn: m.options.removeListener, opts: m.options }));\n this.getBoundListeners(inst).push({ target: br, type, handler, options: opts, onRemoves });\n }\n });\n\n // \u2500\u2500 non-delegate \uB9AC\uC2A4\uB108: \uB300\uC0C1 \uC694\uC18C \uC9C1\uC811 \uD0D0\uC0C9 \u2192 bindDirect \u2500\u2500\n for (const meta of nonDelegateListeners) {\n const { selector, options } = meta;\n const r = options.root || 'auto';\n const bindTargets: EventTarget[] = [];\n\n let resolvedSel: string | null = null;\n if (typeof selector === 'function') {\n const result = selector(inst, helperHostSet);\n if (typeof result === 'string') resolvedSel = result;\n else if (result instanceof currentWin.Element) bindTargets.push(result as EventTarget);\n else if (result instanceof currentWin.NodeList) bindTargets.push(...(Array.from(result) as EventTarget[]));\n else if (Array.isArray(result)) bindTargets.push(...(result as EventTarget[]));\n } else {\n resolvedSel = selector;\n }\n\n const applyRoot = (t: any) => {\n if (!t) return;\n if (r === 'auto') bindTargets.push(t.shadowRoot || t);\n else { if (r === 'light' || r === 'all') bindTargets.push(t); if ((r === 'shadow' || r === 'all') && t.shadowRoot) bindTargets.push(t.shadowRoot); }\n };\n\n if (resolvedSel) {\n if (resolvedSel === '$window') bindTargets.push(currentWin);\n else if (resolvedSel === '$document') bindTargets.push(currentWin.document);\n else if (resolvedSel === '$host') applyRoot(helperHostSet.$host);\n else if (resolvedSel === '$parentHost') applyRoot(helperHostSet.$parentHost);\n else if (resolvedSel === '$appHost') applyRoot(helperHostSet.$appHost);\n else if (resolvedSel === '$firstHost') applyRoot(helperHostSet.$firstHost);\n else if (resolvedSel === '$lastHost') applyRoot(helperHostSet.$lastHost);\n else if (resolvedSel === '$firstAppHost') applyRoot(helperHostSet.$firstAppHost);\n else if (resolvedSel === '$lastAppHost') applyRoot(helperHostSet.$lastAppHost);\n else if (resolvedSel === '$hosts') helperHostSet.$hosts.forEach(applyRoot);\n else if (resolvedSel === '$appHosts') helperHostSet.$appHosts.forEach(applyRoot);\n else if (resolvedSel === '$this' || !resolvedSel) applyRoot(inst);\n else {\n const searchRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') searchRoots.push(inst.shadowRoot || inst);\n else if (r === 'light') searchRoots.push(inst);\n else if (r === 'shadow' && inst.shadowRoot) searchRoots.push(inst.shadowRoot);\n else if (r === 'all') { searchRoots.push(inst); if (inst.shadowRoot) searchRoots.push(inst.shadowRoot); }\n for (const sr of searchRoots) sr.querySelectorAll(resolvedSel).forEach(el => bindTargets.push(el));\n }\n }\n\n for (const t of bindTargets) this.bindDirect(helperHostSet, t, meta);\n }\n\n // \u2500\u2500 delegate:'mutation' \uB9AC\uC2A4\uB108: MutationObserver \uB85C \uCD94\uAC00/\uC81C\uAC70\uB41C \uC694\uC18C\uB97C \uCD94\uC801\uD574 \uC9C1\uC811 \uBC14\uC778\uB529/\uD574\uC81C \u2500\u2500\n // \uC774\uBCA4\uD2B8 \uB9AC\uC2A4\uB108\uC758 \uCC45\uC784\uC774\uBBC0\uB85C EventListenerLifeCycler \uAC00 \uC9C1\uC811 \uCC98\uB9AC\uD558\uACE0,\n // mutationObserverSet \uC744 \uBC18\uD658\uD574 elementDefine \uC774 \uD558\uB098\uC758 MutationObserver \uB85C \uC0DD\uC131\uD558\uAC8C \uD55C\uB2E4.\n if (mutationDelegateListeners.length > 0) {\n const shadowEventDelegates = mutationDelegateListeners.filter(m => {\n const r = m.options.root || 'auto';\n return inst.shadowRoot && (r === 'shadow' || r === 'all' || r === 'auto');\n });\n const lightEventDelegates = mutationDelegateListeners.filter(m => {\n const r = m.options.root || 'auto';\n return r === 'light' || r === 'all' || (!inst.shadowRoot && r === 'auto');\n });\n\n const buildMutationEntry = (\n root: HTMLElement | ShadowRoot,\n eventDelegates: AddEventListenerMetadata[],\n ): MutationObserverSetEntry | null => {\n if (eventDelegates.length === 0) return null;\n const boundSets = this.getEventBoundSets(inst);\n\n const callback = (mutations: MutationRecord[], obs: MutationObserver) => {\n for (const m of eventDelegates) {\n let boundSet = boundSets.get(m);\n if (!boundSet) { boundSet = new WeakSet<Element>(); boundSets.set(m, boundSet); }\n\n const isThis = m.selector === '$this' || m.selector === '';\n const matchesSel = (n: any) => {\n if (!n || n.nodeType !== 1) return false;\n if (isThis) return true;\n return typeof m.selector === 'string' && (n as HTMLElement).matches?.(m.selector);\n };\n const bindEl = (el: Element) => { if (!boundSet!.has(el)) { this.bindDirect(helperHostSet, el, m); boundSet!.add(el); } };\n const unbindEl = (el: Element) => { if (boundSet!.has(el)) { this.unbindDirect(helperHostSet, el, m); boundSet!.delete(el); } };\n\n for (const mut of mutations) {\n Array.from(mut.addedNodes || []).forEach(n => { if (n.nodeType !== 1) return; if (matchesSel(n)) bindEl(n as Element); else if (!isThis && typeof m.selector === 'string') (n as Element).querySelectorAll?.(m.selector).forEach(bindEl); });\n Array.from(mut.removedNodes || []).forEach(n => { if (n.nodeType !== 1) return; const el = n as Element; if (matchesSel(el)) unbindEl(el); else if (!isThis && typeof m.selector === 'string') el.querySelectorAll?.(m.selector).forEach(unbindEl); });\n }\n }\n };\n\n // delegate:'mutation' \uCD08\uAE30 \uBC14\uC778\uB529 (connected \uC2DC \uC774\uBBF8 \uC874\uC7AC\uD558\uB294 \uC694\uC18C)\n for (const m of eventDelegates) {\n let boundSet = boundSets.get(m);\n if (!boundSet) { boundSet = new WeakSet<Element>(); boundSets.set(m, boundSet); }\n if (typeof m.selector !== 'string') continue;\n if (m.selector === '$this' || m.selector === '') {\n this.bindDirect(helperHostSet, root as EventTarget, m);\n boundSet.add(root as Element);\n } else {\n root.querySelectorAll(m.selector).forEach(el => {\n if (!boundSet!.has(el)) { this.bindDirect(helperHostSet, el, m); boundSet!.add(el); }\n });\n }\n }\n\n return { target: root, options: { childList: true, subtree: true }, callback };\n };\n\n const shadowEntry = inst.shadowRoot ? buildMutationEntry(inst.shadowRoot, shadowEventDelegates) : null;\n const lightEntry = buildMutationEntry(inst as any, lightEventDelegates);\n const mutationObserverSet: MutationObserverSetEntry[] = [shadowEntry, lightEntry].filter(Boolean) as MutationObserverSetEntry[];\n if (mutationObserverSet.length > 0) return { mutationObserverSet };\n }\n\n return undefined;\n }\n\n onDisconnected(helperHostSet: HelperHostSet): void {\n const inst = helperHostSet.$this;\n const list = this.boundListenersMap.get(inst) ?? [];\n for (const l of list) {\n try { l.target.removeEventListener(l.type, l.handler, l.options); l.subscription?.unsubscribe?.(); }\n catch (e) { console.error('[SWC] EventListenerLifeCycler cleanup error:', e); }\n for (const r of l.onRemoves ?? []) {\n try { r.fn(l.target, r.opts); } catch (e) { console.error('[SWC] removeListener error:', e); }\n }\n }\n this.boundListenersMap.delete(inst);\n this.eventBoundSetsMap.delete(inst);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["event"]
|
|
7
7
|
}
|
|
@@ -217,6 +217,9 @@ function attribute(selectorOrAttributeOrTarget, attributeNameOrOptions, optionsO
|
|
|
217
217
|
return applyAttribute("$this", void 0, selectorOrAttributeOrTarget);
|
|
218
218
|
}
|
|
219
219
|
function setAttribute(selectorOrAttributeOrOptions, attributeNameOrOptions, optionsOrUndefined) {
|
|
220
|
+
if (typeof selectorOrAttributeOrOptions === "function") {
|
|
221
|
+
return applyAttribute(selectorOrAttributeOrOptions, attributeNameOrOptions, optionsOrUndefined);
|
|
222
|
+
}
|
|
220
223
|
if (typeof selectorOrAttributeOrOptions === "string") {
|
|
221
224
|
const isSelector = isCssSelector(selectorOrAttributeOrOptions);
|
|
222
225
|
if (isSelector) {
|
|
@@ -239,10 +242,38 @@ const findAllAttributeApplyMetadata = (target) => {
|
|
|
239
242
|
});
|
|
240
243
|
return result;
|
|
241
244
|
};
|
|
245
|
+
const attr = applyAttribute;
|
|
246
|
+
function attrThis(targetAttributeNameOrTarget, optionsOrPropertyKey, descriptor) {
|
|
247
|
+
if ((typeof optionsOrPropertyKey === "string" || typeof optionsOrPropertyKey === "symbol") && descriptor !== void 0) {
|
|
248
|
+
return applyAttribute("$this", void 0, {})(targetAttributeNameOrTarget, optionsOrPropertyKey, descriptor);
|
|
249
|
+
}
|
|
250
|
+
return applyAttribute("$this", targetAttributeNameOrTarget, optionsOrPropertyKey);
|
|
251
|
+
}
|
|
252
|
+
function attrAppHost(targetAttributeNameOrTarget, optionsOrPropertyKey, descriptor) {
|
|
253
|
+
if ((typeof optionsOrPropertyKey === "string" || typeof optionsOrPropertyKey === "symbol") && descriptor !== void 0) {
|
|
254
|
+
return applyAttribute("$appHost", void 0, {})(targetAttributeNameOrTarget, optionsOrPropertyKey, descriptor);
|
|
255
|
+
}
|
|
256
|
+
return applyAttribute("$appHost", targetAttributeNameOrTarget, optionsOrPropertyKey);
|
|
257
|
+
}
|
|
258
|
+
function attrLight(selector, targetAttributeName, options) {
|
|
259
|
+
return applyAttribute(selector, targetAttributeName, { ...options ?? {}, root: "light" });
|
|
260
|
+
}
|
|
261
|
+
function attrShadow(selector, targetAttributeName, options) {
|
|
262
|
+
return applyAttribute(selector, targetAttributeName, { ...options ?? {}, root: "shadow" });
|
|
263
|
+
}
|
|
264
|
+
function attrAll(selector, targetAttributeName, options) {
|
|
265
|
+
return applyAttribute(selector, targetAttributeName, { ...options ?? {}, root: "all" });
|
|
266
|
+
}
|
|
242
267
|
var applyAttribute_default = applyAttribute;
|
|
243
268
|
export {
|
|
244
269
|
ATTRIBUTE_METADATA_KEY,
|
|
245
270
|
applyAttribute,
|
|
271
|
+
attr,
|
|
272
|
+
attrAll,
|
|
273
|
+
attrAppHost,
|
|
274
|
+
attrLight,
|
|
275
|
+
attrShadow,
|
|
276
|
+
attrThis,
|
|
246
277
|
attribute,
|
|
247
278
|
convertValue,
|
|
248
279
|
applyAttribute_default as default,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/applyAttribute.ts"],
|
|
4
|
-
"sourcesContent": ["import {ReflectUtils, FunctionUtils, ActionExpression} from '@dooboostore/core';\nimport {ensureInit, getElementConfig} from './elementDefine';\nimport {SwcUtils} from '../utils/Utils';\nimport {SwcQueryOptions, HelperHostSet} from '../types';\nimport {ConvertUtils} from '@dooboostore/core-web';\n\n// ============================================\n// Types & Interfaces\n// ============================================\n\nexport interface AttributeOptions extends SwcQueryOptions {\n name?: string;\n type?: typeof Number | typeof Boolean | typeof String;\n filter?: (target: HTMLElement, value: any, meta: { currentThis: any, helper: HelperHostSet }) => boolean;\n /**\n * Custom key to extract value from return object.\n * If not provided, uses ATTRIBUTE_METADATA_KEY by default.\n * Useful when multiple @setAttribute decorators are on the same method.\n * \n * Example:\n * @setAttribute('selector1', { valueKey: 'attr1' })\n * @setAttribute('selector2', { valueKey: 'attr2' })\n * myMethod() {\n * return {\n * attr1: 'value1',\n * attr2: 'value2'\n * };\n * }\n * \n * Or with symbols:\n * @setAttribute('selector1', { valueKey: Symbol.for('attr1') })\n * @setAttribute('selector2', { valueKey: Symbol.for('attr2') })\n * myMethod() {\n * return {\n * [Symbol.for('attr1')]: 'value1',\n * [Symbol.for('attr2')]: 'value2'\n * };\n * }\n */\n valueKey?: symbol | string;\n}\n\nexport type AttributeSelector = string | ((currentThis: any, helper: HelperHostSet) => NodeList | Element | Element[] | null);\n\nexport interface AttributeMetadata {\n propertyKey: string | symbol;\n selector: AttributeSelector;\n targetAttributeName: string;\n options: AttributeOptions;\n type: 'property' | 'method';\n}\n\nexport const ATTRIBUTE_METADATA_KEY = Symbol.for('simple-web-component:attribute');\n\n// ============================================\n// Utilities\n// ============================================\n\n/**\n * Determine if a string is a CSS selector or an attribute name\n * \n * CSS selectors typically:\n * - Start with: #, ., [, :, >, +, ~\n * - Contain special chars: >, +, ~, :, [, ]\n * - Are special keywords: $this, $host, $parentHost, etc.\n * \n * Attribute names are typically:\n * - kebab-case (lowercase with hyphens)\n * - No special selector syntax\n * \n * @param str - String to check\n * @returns true if it's a CSS selector, false if it's an attribute name\n */\nconst isCssSelector = (str: string): boolean => {\n if (!str) return false;\n \n // Special keywords\n if (str.startsWith('$')) return true;\n \n // CSS selector syntax\n if (/^[#.\\[\\:>+~]/.test(str)) return true;\n \n // Contains CSS combinator or pseudo-selector syntax\n if (/[>+~:\\[\\]]/.test(str)) return true;\n \n return false;\n};\n\nconst convertValue = (val: string | null, type: any): any => {\n if (val === null || val === undefined) return val;\n if (type === Number) return Number(val);\n if (type === Boolean) return val === 'false' || val === '0' ? false : true;\n return val;\n};\n\nexport {convertValue};\n\nexport const getAttributeValue = (inst: any, attrName: string, options?: AttributeOptions & { selector?: AttributeSelector }): any => {\n const conf = getElementConfig(inst);\n const currentWin = inst._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as any);\n\n // If selector is not provided, use inst itself\n const targets = options?.selector ? resolveAttributeTargets(inst, options.selector, options) : [inst];\n\n const primaryTarget = targets[0];\n\n if (primaryTarget && typeof (primaryTarget as any).hasAttribute === 'function' && (primaryTarget as any).hasAttribute(attrName)) {\n let domVal = (primaryTarget as any).getAttribute(attrName);\n\n // \uD45C\uD604\uC2DD \uCCB4\uD06C\n const ae = new ActionExpression(domVal);\n const expr = ae.getFirstExpression('callReturn');\n if (expr) {\n try {\n const result = FunctionUtils.executeReturn({\n script: ConvertUtils.decodeHtmlEntity(expr.script, currentWin.document),\n context: inst,\n args: SwcUtils.getHelperAndHostSet(currentWin, inst)\n });\n return convertValue(result, options?.type);\n } catch (err) {\n console.error(`[SWC] Failed to execute directive {{= ${expr.script} }}:`, err);\n return convertValue(domVal, options?.type);\n }\n }\n\n return convertValue(domVal, options?.type);\n }\n\n // If no target found, return null\n return null;\n};\n\n/**\n * Resolve target elements based on selector and options\n * Handles special selectors ($this, $host, etc.), CSS selectors, and function-based selectors\n * Returns HTMLElement[] for attribute operations\n */\nexport const resolveAttributeTargets = (inst: any, selector: AttributeSelector, options: AttributeOptions): HTMLElement[] => {\n const conf = getElementConfig(inst);\n const currentWin = conf.window;\n const r = options.root || 'auto';\n const results: HTMLElement[] = [];\n\n // Resolve selector if it's a function\n let resolvedSelector: string | Element | NodeList | Element[] | null = selector as any;\n if (typeof selector === 'function') {\n const hostSet = SwcUtils.getHelperAndHostSet(currentWin, inst);\n resolvedSelector = selector(inst, hostSet);\n }\n\n // If selector function returned elements directly, use them\n if (resolvedSelector instanceof currentWin.Element) {\n results.push(resolvedSelector as HTMLElement);\n return results;\n }\n if (resolvedSelector instanceof currentWin.NodeList) {\n results.push(...(Array.from(resolvedSelector) as HTMLElement[]));\n return results;\n }\n if (Array.isArray(resolvedSelector)) {\n results.push(...(resolvedSelector as HTMLElement[]));\n return results;\n }\n if (resolvedSelector === null) {\n return results;\n }\n\n // Handle string selector\n const stringSelector = resolvedSelector as string;\n\n const applyRoot = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n results.push(target);\n } else {\n if (r === 'light' || r === 'all') results.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) results.push(target.shadowRoot);\n }\n };\n\n if (stringSelector === '$this' || !stringSelector) {\n applyRoot(inst);\n } else {\n const hostSet = SwcUtils.getHostSet(inst);\n if (stringSelector === '$host') applyRoot(hostSet.$host);\n else if (stringSelector === '$parentHost') applyRoot(hostSet.$parentHost);\n else if (stringSelector === '$appHost') applyRoot(hostSet.$appHost as any);\n else if (stringSelector === '$firstHost') applyRoot(hostSet.$firstHost);\n else if (stringSelector === '$lastHost') applyRoot(hostSet.$lastHost);\n else if (stringSelector === '$firstAppHost') applyRoot(hostSet.$firstAppHost as any);\n else if (stringSelector === '$lastAppHost') applyRoot(hostSet.$lastAppHost as any);\n else if (stringSelector === '$hosts') hostSet.$hosts.forEach(applyRoot);\n else if (stringSelector === '$appHosts') hostSet.$appHosts.forEach(applyRoot);\n else {\n if (r === 'shadow') {\n const found = inst.shadowRoot?.querySelectorAll(stringSelector);\n if (found) results.push(...found);\n } else if (r === 'light') {\n const found = inst.querySelectorAll(stringSelector);\n if (found) results.push(...found);\n } else if (r === 'all') {\n const sMatch = inst.shadowRoot?.querySelectorAll(stringSelector);\n const lMatch = inst.querySelectorAll(stringSelector);\n if (sMatch) results.push(...sMatch);\n if (lMatch) results.push(...lMatch);\n } else {\n const found = (inst.shadowRoot || inst).querySelectorAll(stringSelector);\n if (found) results.push(...found);\n }\n }\n }\n return results;\n};\n\n/**\n * @applyAttribute decorator - set/get element attributes\n *\n * Usage:\n * - @applyAttribute('selector', 'attrName') - Set attribute with explicit name\n * - @applyAttribute('selector') - Use property name as attribute name\n * - @applyAttribute('selector', { name: 'attrName' }) - Set attribute via options\n * - @applyAttribute((this, helper) => 'selector', 'attrName') - Function-based selector\n * - Return null to remove attribute\n */\nexport function applyAttribute(selector: AttributeSelector, targetAttributeName: string, options?: AttributeOptions): MethodDecorator & PropertyDecorator;\nexport function applyAttribute(selector: AttributeSelector, options?: AttributeOptions): MethodDecorator & PropertyDecorator;\nexport function applyAttribute(selector: AttributeSelector, targetAttributeNameOrOptions?: string | AttributeOptions, options?: AttributeOptions): MethodDecorator & PropertyDecorator {\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n // ensureInit(target as any);\n\n const constructor = target.constructor;\n const designType = (Reflect as any).getMetadata('design:type', target, propertyKey);\n const metaType: 'property' | 'method' = descriptor && typeof descriptor.value === 'function' ? 'method' : 'property';\n\n // Parse arguments\n let finalOptions: AttributeOptions = {};\n let targetAttributeName: string;\n\n if (typeof targetAttributeNameOrOptions === 'string') {\n // applyAttribute('selector', 'attrName', options?)\n targetAttributeName = targetAttributeNameOrOptions;\n finalOptions = options || {};\n } else if (targetAttributeNameOrOptions) {\n // applyAttribute('selector', options)\n finalOptions = targetAttributeNameOrOptions;\n targetAttributeName = finalOptions.name || String(propertyKey);\n } else {\n // applyAttribute('selector')\n targetAttributeName = String(propertyKey);\n }\n\n // Store metadata\n let metaList = ReflectUtils.getOwnMetadata(ATTRIBUTE_METADATA_KEY, constructor) as AttributeMetadata[];\n if (!metaList) {\n metaList = [];\n ReflectUtils.defineMetadata(ATTRIBUTE_METADATA_KEY, metaList, constructor);\n }\n metaList.push({\n propertyKey,\n selector: selector as AttributeSelector,\n targetAttributeName,\n options: finalOptions,\n type: metaType\n });\n\n // Helper: Apply resolved value to targets\n const applyValueToTargets = (inst: any, resolvedValue: any) => {\n const conf = getElementConfig(inst);\n const currentWin = conf.window;\n const targetEls = resolveAttributeTargets(inst, selector, finalOptions);\n const hostSet = SwcUtils.getHelperAndHostSet(currentWin, inst);\n\n targetEls.forEach(targetEl => {\n // Apply filter if provided\n if (finalOptions.filter && !finalOptions.filter(targetEl, resolvedValue, {currentThis: inst, helper: hostSet})) {\n return;\n }\n\n if (resolvedValue === null) {\n // Remove attribute if value is null\n targetEl.removeAttribute(targetAttributeName);\n } else if (resolvedValue !== undefined) {\n // Set attribute\n targetEl.setAttribute(targetAttributeName, resolvedValue === true ? '' : String(resolvedValue));\n }\n });\n\n return resolvedValue;\n };\n\n // Method decorator: wrap method to apply its return value to attributes\n if (descriptor && typeof descriptor.value === 'function') {\n const original = descriptor.value;\n descriptor.value = function (...args: any[]) {\n ensureInit(this);\n const res = (original as any).apply(this, args);\n\n /**\n * Extract value for this decorator from method return value\n * \n * If return value is an object with this decorator's key,\n * use that value. Otherwise use the entire return value.\n * \n * Uses valueKey from options if provided, otherwise uses ATTRIBUTE_METADATA_KEY.\n * \n * Example:\n * @setAttribute('selector1', { valueKey: 'attr1' })\n * @setAttribute('selector2', { valueKey: 'attr2' })\n * myMethod() {\n * return {\n * attr1: 'attribute-value1',\n * attr2: 'attribute-value2'\n * };\n * }\n * \n * First decorator will use 'attribute-value1', second will use 'attribute-value2'\n */\n const extractValue = (v: any) => {\n const keyToUse = finalOptions.valueKey ?? ATTRIBUTE_METADATA_KEY;\n if (v && typeof v === 'object' && keyToUse in v) {\n return v[keyToUse];\n }\n return v;\n };\n\n if (res instanceof Promise) {\n return res.then((v: any) => {\n const extracted = extractValue(v);\n applyValueToTargets(this, extracted);\n return v;\n });\n } else {\n const extracted = extractValue(res);\n applyValueToTargets(this, extracted);\n return res;\n }\n };\n return;\n }\n\n // Property decorator: define getter/setter to proxy to element attributes\n Object.defineProperty(target, propertyKey, {\n configurable: true,\n enumerable: true,\n get(this: any) {\n ensureInit(this);\n const mergedOptions = {...finalOptions, selector, type: finalOptions.type || designType};\n return getAttributeValue(this, targetAttributeName, mergedOptions);\n },\n set(this: any, value: any) {\n ensureInit(this);\n\n if (value instanceof Promise) {\n value.then((v: any) => applyValueToTargets(this, v)).catch(() => { /* swallow */\n });\n } else {\n applyValueToTargets(this, value);\n }\n }\n });\n };\n}\n\n// ============================================\n// Convenience Aliases\n// ============================================\n\n/**\n * @attribute - Field decorator for binding element attributes (read/write)\n * \n * Intelligently distinguishes between attribute names and CSS selectors:\n * \n * Usage patterns:\n * - @attribute('product-id') - Attribute name on $this (auto-detected)\n * - @attribute('#user', 'product-id') - Attribute name on selector\n * - @attribute('product-id', options) - Attribute name on $this with options\n * - @attribute('#user', 'product-id', options) - Attribute name on selector with options\n * - @attribute((this, helper) => 'selector', 'product-id') - Function-based selector\n * - @attribute - Bare decorator (uses property name as attribute on $this)\n * \n * Note: This decorator is for FIELDS ONLY. For methods, use @setAttribute.\n */\nexport function attribute(target: Object, propertyKey: string | symbol): void;\nexport function attribute(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function attribute(attributeName: string, options?: AttributeOptions): PropertyDecorator;\nexport function attribute(selector: AttributeSelector, attributeName: string, options?: AttributeOptions): PropertyDecorator;\nexport function attribute(selectorOrAttributeOrTarget?: AttributeSelector | Object, attributeNameOrOptions?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @attribute\n if (optionsOrDescriptor !== undefined && (typeof attributeNameOrOptions === 'string' || typeof attributeNameOrOptions === 'symbol')) {\n return applyAttribute('$this', undefined as any, {})(selectorOrAttributeOrTarget as Object, attributeNameOrOptions, optionsOrDescriptor as PropertyDescriptor);\n }\n \n // With string as first parameter\n if (typeof selectorOrAttributeOrTarget === 'string') {\n // Check if first parameter is a CSS selector or attribute name\n const isSelector = isCssSelector(selectorOrAttributeOrTarget);\n \n if (isSelector) {\n // First param is a selector: @attribute('#user', 'product-id', options?)\n return applyAttribute(selectorOrAttributeOrTarget, attributeNameOrOptions as any, optionsOrDescriptor as AttributeOptions);\n } else {\n // First param is an attribute name: @attribute('product-id', options?)\n // Treat as attribute name on $this\n const options = (typeof attributeNameOrOptions === 'object' && attributeNameOrOptions !== null) \n ? attributeNameOrOptions \n : {};\n return applyAttribute('$this', selectorOrAttributeOrTarget, options);\n }\n }\n \n // Without selector (defaults to $this with options)\n return applyAttribute('$this', undefined as any, selectorOrAttributeOrTarget as AttributeOptions);\n}\n\n/**\n * @setAttribute - Method decorator for setting element attributes from method return value\n * \n * Intelligently distinguishes between attribute names and CSS selectors:\n * \n * Usage patterns:\n * - @setAttribute('data-id') - Attribute name on $this (auto-detected)\n * - @setAttribute('#user', 'data-id') - Attribute name on selector\n * - @setAttribute('data-id', options) - Attribute name on $this with options\n * - @setAttribute('#user', 'data-id', options) - Attribute name on selector with options\n * - @setAttribute((this, helper) => 'selector', 'data-id') - Function-based selector\n * - @setAttribute - Bare decorator (uses method name as attribute on $this)\n * \n * Note: This decorator is for METHODS ONLY. For fields, use @attribute.\n * \n * Example:\n * @setAttribute('data-status')\n * updateStatus() {\n * return 'active';\n * }\n */\nexport function setAttribute(selector: AttributeSelector, attributeName: string, options?: AttributeOptions): MethodDecorator;\nexport function setAttribute(attributeName: string, options?: AttributeOptions): MethodDecorator;\nexport function setAttribute(selectorOrAttributeOrOptions?: AttributeSelector | AttributeOptions, attributeNameOrOptions?: any, optionsOrUndefined?: AttributeOptions): MethodDecorator {\n // With string as first parameter\n if (typeof selectorOrAttributeOrOptions === 'string') {\n // Check if first parameter is a CSS selector or attribute name\n const isSelector = isCssSelector(selectorOrAttributeOrOptions);\n \n if (isSelector) {\n // First param is a selector: @setAttribute('#user', 'data-id', options?)\n return applyAttribute(selectorOrAttributeOrOptions, attributeNameOrOptions as any, optionsOrUndefined as AttributeOptions) as MethodDecorator;\n } else {\n // First param is an attribute name: @setAttribute('data-id', options?)\n // Treat as attribute name on $this\n const options = (typeof attributeNameOrOptions === 'object' && attributeNameOrOptions !== null) \n ? attributeNameOrOptions \n : {};\n return applyAttribute('$this', selectorOrAttributeOrOptions, options) as MethodDecorator;\n }\n }\n \n // Without selector (defaults to $this with options)\n return applyAttribute('$this', undefined as any, selectorOrAttributeOrOptions as AttributeOptions) as MethodDecorator;\n}\n\n// ============================================\n// Metadata Helpers\n// ============================================\n\nexport const findAllAttributeMetadata = (target: any): AttributeMetadata[] => {\n const actualTarget = target instanceof Function ? target : target.constructor;\n return ReflectUtils.findAllMetadata<AttributeMetadata[]>(ATTRIBUTE_METADATA_KEY, actualTarget).flat();\n};\n\n// Backward compatibility alias\nexport const findAllAttributeApplyMetadata = (target: any): Map<string | symbol, AttributeMetadata> => {\n const result = new Map<string | symbol, AttributeMetadata>();\n findAllAttributeMetadata(target).forEach(meta => {\n result.set(meta.propertyKey, meta);\n });\n return result;\n};\n\n\nexport default applyAttribute;\n"],
|
|
5
|
-
"mappings": "AAAA,SAAQ,cAAc,eAAe,wBAAuB;AAC5D,SAAQ,YAAY,wBAAuB;AAC3C,SAAQ,gBAAe;AAEvB,SAAQ,oBAAmB;
|
|
4
|
+
"sourcesContent": ["import {ReflectUtils, FunctionUtils, ActionExpression} from '@dooboostore/core';\nimport {ensureInit, getElementConfig} from './elementDefine';\nimport {SwcUtils} from '../utils/Utils';\nimport {SwcQueryOptions, HelperHostSet, SwcFnSelector, SwcSelector} from '../types';\nimport {ConvertUtils} from '@dooboostore/core-web';\n\n// ============================================\n// Types & Interfaces\n// ============================================\n\n// \uACF5\uD1B5 \uC635\uC158 \u2014 root \uC5C6\uC74C\nexport interface AttributeBaseOptions {\n name?: string;\n type?: typeof Number | typeof Boolean | typeof String;\n filter?: (target: HTMLElement, value: any, meta: { currentThis: any, helper: HelperHostSet }) => boolean;\n valueKey?: symbol | string;\n}\n\n// \uBB38\uC790\uC5F4 \uC140\uB809\uD130 \uC804\uC6A9 \u2014 root \uD5C8\uC6A9 (\uCEF4\uD3EC\uB10C\uD2B8 DOM \uD2B8\uB9AC \uC548\uC5D0\uC11C \uD0D0\uC0C9)\nexport type AttributeQueryOptions = AttributeBaseOptions & SwcQueryOptions;\n// \uD568\uC218 \uC140\uB809\uD130 \uC804\uC6A9 \u2014 root \uAE08\uC9C0 (\uC774\uBBF8 \uC694\uC18C\uB97C \uC9C1\uC811 \uBC18\uD658)\nexport type AttributeNonQueryOptions = AttributeBaseOptions;\n// \uB0B4\uBD80 \uC800\uC7A5/\uD574\uC11D\uC6A9 \u2014 root optional\uC774\uB77C \uB450 \uC885\uB958 \uBAA8\uB450 \uC800\uC7A5 \uAC00\uB2A5\nexport type AttributeOptions = AttributeQueryOptions;\n\nexport type AttributeFnSelector = SwcFnSelector;\nexport type AttributeSelector = SwcSelector;\n\n// \uC140\uB809\uD130 \uC885\uB958\uC5D0 \uB530\uB77C \uC635\uC158 \uD0C0\uC785 \uBD84\uAE30\nexport type AttributeOptionsOf<S extends AttributeSelector> = S extends string ? AttributeQueryOptions : AttributeNonQueryOptions;\n\nexport interface AttributeMetadata {\n propertyKey: string | symbol;\n selector: AttributeSelector;\n targetAttributeName: string;\n options: AttributeOptions;\n type: 'property' | 'method';\n}\n\nexport const ATTRIBUTE_METADATA_KEY = Symbol.for('simple-web-component:attribute');\n\n// ============================================\n// Utilities\n// ============================================\n\n/**\n * Determine if a string is a CSS selector or an attribute name\n * \n * CSS selectors typically:\n * - Start with: #, ., [, :, >, +, ~\n * - Contain special chars: >, +, ~, :, [, ]\n * - Are special keywords: $this, $host, $parentHost, etc.\n * \n * Attribute names are typically:\n * - kebab-case (lowercase with hyphens)\n * - No special selector syntax\n * \n * @param str - String to check\n * @returns true if it's a CSS selector, false if it's an attribute name\n */\nconst isCssSelector = (str: string): boolean => {\n if (!str) return false;\n \n // Special keywords\n if (str.startsWith('$')) return true;\n \n // CSS selector syntax\n if (/^[#.\\[\\:>+~]/.test(str)) return true;\n \n // Contains CSS combinator or pseudo-selector syntax\n if (/[>+~:\\[\\]]/.test(str)) return true;\n \n return false;\n};\n\nconst convertValue = (val: string | null, type: any): any => {\n if (val === null || val === undefined) return val;\n if (type === Number) return Number(val);\n if (type === Boolean) return val === 'false' || val === '0' ? false : true;\n return val;\n};\n\nexport {convertValue};\n\nexport const getAttributeValue = (inst: any, attrName: string, options?: AttributeOptions & { selector?: AttributeSelector }): any => {\n const conf = getElementConfig(inst);\n const currentWin = inst._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as any);\n\n // If selector is not provided, use inst itself\n const targets = options?.selector ? resolveAttributeTargets(inst, options.selector, options) : [inst];\n\n const primaryTarget = targets[0];\n\n if (primaryTarget && typeof (primaryTarget as any).hasAttribute === 'function' && (primaryTarget as any).hasAttribute(attrName)) {\n let domVal = (primaryTarget as any).getAttribute(attrName);\n\n // \uD45C\uD604\uC2DD \uCCB4\uD06C\n const ae = new ActionExpression(domVal);\n const expr = ae.getFirstExpression('callReturn');\n if (expr) {\n try {\n const result = FunctionUtils.executeReturn({\n script: ConvertUtils.decodeHtmlEntity(expr.script, currentWin.document),\n context: inst,\n args: SwcUtils.getHelperAndHostSet(currentWin, inst)\n });\n return convertValue(result, options?.type);\n } catch (err) {\n console.error(`[SWC] Failed to execute directive {{= ${expr.script} }}:`, err);\n return convertValue(domVal, options?.type);\n }\n }\n\n return convertValue(domVal, options?.type);\n }\n\n // If no target found, return null\n return null;\n};\n\n/**\n * Resolve target elements based on selector and options\n * Handles special selectors ($this, $host, etc.), CSS selectors, and function-based selectors\n * Returns HTMLElement[] for attribute operations\n */\nexport const resolveAttributeTargets = (inst: any, selector: AttributeSelector, options: AttributeOptions): HTMLElement[] => {\n const conf = getElementConfig(inst);\n const currentWin = conf.window;\n const r = options.root || 'auto';\n const results: HTMLElement[] = [];\n\n // Resolve selector if it's a function\n let resolvedSelector: string | Node | Element | NodeList | Element[] | null = selector as any;\n if (typeof selector === 'function') {\n const hostSet = SwcUtils.getHelperAndHostSet(currentWin, inst);\n resolvedSelector = selector(inst, hostSet);\n }\n\n // If selector function returned elements directly, use them\n if (resolvedSelector instanceof currentWin.Element) {\n results.push(resolvedSelector as HTMLElement);\n return results;\n }\n if (resolvedSelector instanceof currentWin.NodeList) {\n results.push(...(Array.from(resolvedSelector) as HTMLElement[]));\n return results;\n }\n if (Array.isArray(resolvedSelector)) {\n results.push(...(resolvedSelector as HTMLElement[]));\n return results;\n }\n if (resolvedSelector === null) {\n return results;\n }\n\n // Handle string selector\n const stringSelector = resolvedSelector as string;\n\n const applyRoot = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n results.push(target);\n } else {\n if (r === 'light' || r === 'all') results.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) results.push(target.shadowRoot);\n }\n };\n\n if (stringSelector === '$this' || !stringSelector) {\n applyRoot(inst);\n } else {\n const hostSet = SwcUtils.getHostSet(inst);\n if (stringSelector === '$host') applyRoot(hostSet.$host);\n else if (stringSelector === '$parentHost') applyRoot(hostSet.$parentHost);\n else if (stringSelector === '$appHost') applyRoot(hostSet.$appHost as any);\n else if (stringSelector === '$firstHost') applyRoot(hostSet.$firstHost);\n else if (stringSelector === '$lastHost') applyRoot(hostSet.$lastHost);\n else if (stringSelector === '$firstAppHost') applyRoot(hostSet.$firstAppHost as any);\n else if (stringSelector === '$lastAppHost') applyRoot(hostSet.$lastAppHost as any);\n else if (stringSelector === '$hosts') hostSet.$hosts.forEach(applyRoot);\n else if (stringSelector === '$appHosts') hostSet.$appHosts.forEach(applyRoot);\n else {\n if (r === 'shadow') {\n const found = inst.shadowRoot?.querySelectorAll(stringSelector);\n if (found) results.push(...found);\n } else if (r === 'light') {\n const found = inst.querySelectorAll(stringSelector);\n if (found) results.push(...found);\n } else if (r === 'all') {\n const sMatch = inst.shadowRoot?.querySelectorAll(stringSelector);\n const lMatch = inst.querySelectorAll(stringSelector);\n if (sMatch) results.push(...sMatch);\n if (lMatch) results.push(...lMatch);\n } else {\n const found = (inst.shadowRoot || inst).querySelectorAll(stringSelector);\n if (found) results.push(...found);\n }\n }\n }\n return results;\n};\n\n/**\n * @applyAttribute decorator - set/get element attributes\n *\n * Usage:\n * - @applyAttribute('selector', 'attrName') - Set attribute with explicit name\n * - @applyAttribute('selector') - Use property name as attribute name\n * - @applyAttribute('selector', { name: 'attrName' }) - Set attribute via options\n * - @applyAttribute((this, helper) => 'selector', 'attrName') - Function-based selector\n * - Return null to remove attribute\n */\nexport function applyAttribute<S extends AttributeSelector>(selector: S, targetAttributeName: string, options?: AttributeOptionsOf<S>): MethodDecorator & PropertyDecorator;\nexport function applyAttribute<S extends AttributeSelector>(selector: S, options?: AttributeOptionsOf<S>): MethodDecorator & PropertyDecorator;\nexport function applyAttribute(selector: AttributeSelector, targetAttributeNameOrOptions?: string | AttributeOptions, options?: AttributeOptions): MethodDecorator {\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n // ensureInit(target as any);\n\n const constructor = target.constructor;\n const designType = (Reflect as any).getMetadata('design:type', target, propertyKey);\n const metaType: 'property' | 'method' = descriptor && typeof descriptor.value === 'function' ? 'method' : 'property';\n\n // Parse arguments\n let finalOptions: AttributeOptions = {};\n let targetAttributeName: string;\n\n if (typeof targetAttributeNameOrOptions === 'string') {\n // applyAttribute('selector', 'attrName', options?)\n targetAttributeName = targetAttributeNameOrOptions;\n finalOptions = options || {};\n } else if (targetAttributeNameOrOptions) {\n // applyAttribute('selector', options)\n finalOptions = targetAttributeNameOrOptions;\n targetAttributeName = finalOptions.name || String(propertyKey);\n } else {\n // applyAttribute('selector')\n targetAttributeName = String(propertyKey);\n }\n\n // Store metadata\n let metaList = ReflectUtils.getOwnMetadata(ATTRIBUTE_METADATA_KEY, constructor) as AttributeMetadata[];\n if (!metaList) {\n metaList = [];\n ReflectUtils.defineMetadata(ATTRIBUTE_METADATA_KEY, metaList, constructor);\n }\n metaList.push({\n propertyKey,\n selector: selector as AttributeSelector,\n targetAttributeName,\n options: finalOptions,\n type: metaType\n });\n\n // Helper: Apply resolved value to targets\n const applyValueToTargets = (inst: any, resolvedValue: any) => {\n const conf = getElementConfig(inst);\n const currentWin = conf.window;\n const targetEls = resolveAttributeTargets(inst, selector, finalOptions);\n const hostSet = SwcUtils.getHelperAndHostSet(currentWin, inst);\n\n targetEls.forEach(targetEl => {\n // Apply filter if provided\n if (finalOptions.filter && !finalOptions.filter(targetEl, resolvedValue, {currentThis: inst, helper: hostSet})) {\n return;\n }\n\n if (resolvedValue === null) {\n // Remove attribute if value is null\n targetEl.removeAttribute(targetAttributeName);\n } else if (resolvedValue !== undefined) {\n // Set attribute\n targetEl.setAttribute(targetAttributeName, resolvedValue === true ? '' : String(resolvedValue));\n }\n });\n\n return resolvedValue;\n };\n\n // Method decorator: wrap method to apply its return value to attributes\n if (descriptor && typeof descriptor.value === 'function') {\n const original = descriptor.value;\n descriptor.value = function (...args: any[]) {\n ensureInit(this);\n const res = (original as any).apply(this, args);\n\n /**\n * Extract value for this decorator from method return value\n * \n * If return value is an object with this decorator's key,\n * use that value. Otherwise use the entire return value.\n * \n * Uses valueKey from options if provided, otherwise uses ATTRIBUTE_METADATA_KEY.\n * \n * Example:\n * @setAttribute('selector1', { valueKey: 'attr1' })\n * @setAttribute('selector2', { valueKey: 'attr2' })\n * myMethod() {\n * return {\n * attr1: 'attribute-value1',\n * attr2: 'attribute-value2'\n * };\n * }\n * \n * First decorator will use 'attribute-value1', second will use 'attribute-value2'\n */\n const extractValue = (v: any) => {\n const keyToUse = finalOptions.valueKey ?? ATTRIBUTE_METADATA_KEY;\n if (v && typeof v === 'object' && keyToUse in v) {\n return v[keyToUse];\n }\n return v;\n };\n\n if (res instanceof Promise) {\n return res.then((v: any) => {\n const extracted = extractValue(v);\n applyValueToTargets(this, extracted);\n return v;\n });\n } else {\n const extracted = extractValue(res);\n applyValueToTargets(this, extracted);\n return res;\n }\n };\n return;\n }\n\n // Property decorator: define getter/setter to proxy to element attributes\n Object.defineProperty(target, propertyKey, {\n configurable: true,\n enumerable: true,\n get(this: any) {\n ensureInit(this);\n const mergedOptions = {...finalOptions, selector, type: finalOptions.type || designType};\n return getAttributeValue(this, targetAttributeName, mergedOptions);\n },\n set(this: any, value: any) {\n ensureInit(this);\n\n if (value instanceof Promise) {\n value.then((v: any) => applyValueToTargets(this, v)).catch(() => { /* swallow */\n });\n } else {\n applyValueToTargets(this, value);\n }\n }\n });\n };\n}\n\n// ============================================\n// Convenience Aliases\n// ============================================\n\n/**\n * @attribute - Field decorator for binding element attributes (read/write)\n * \n * Intelligently distinguishes between attribute names and CSS selectors:\n * \n * Usage patterns:\n * - @attribute('product-id') - Attribute name on $this (auto-detected)\n * - @attribute('#user', 'product-id') - Attribute name on selector\n * - @attribute('product-id', options) - Attribute name on $this with options\n * - @attribute('#user', 'product-id', options) - Attribute name on selector with options\n * - @attribute((this, helper) => 'selector', 'product-id') - Function-based selector\n * - @attribute - Bare decorator (uses property name as attribute on $this)\n * \n * Note: This decorator is for FIELDS ONLY. For methods, use @setAttribute.\n */\nexport function attribute(target: Object, propertyKey: string | symbol): void;\nexport function attribute(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function attribute(attributeName: string, options?: AttributeQueryOptions): PropertyDecorator;\nexport function attribute(selector: string, attributeName: string, options?: AttributeQueryOptions): PropertyDecorator;\nexport function attribute(selector: AttributeFnSelector, attributeName: string, options?: AttributeNonQueryOptions): PropertyDecorator;\nexport function attribute(selectorOrAttributeOrTarget?: AttributeSelector | Object, attributeNameOrOptions?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @attribute\n if (optionsOrDescriptor !== undefined && (typeof attributeNameOrOptions === 'string' || typeof attributeNameOrOptions === 'symbol')) {\n return applyAttribute('$this', undefined as any, {})(selectorOrAttributeOrTarget as Object, attributeNameOrOptions, optionsOrDescriptor as PropertyDescriptor);\n }\n \n // With string as first parameter\n if (typeof selectorOrAttributeOrTarget === 'string') {\n // Check if first parameter is a CSS selector or attribute name\n const isSelector = isCssSelector(selectorOrAttributeOrTarget);\n \n if (isSelector) {\n // First param is a selector: @attribute('#user', 'product-id', options?)\n return applyAttribute(selectorOrAttributeOrTarget, attributeNameOrOptions as any, optionsOrDescriptor as AttributeOptions);\n } else {\n // First param is an attribute name: @attribute('product-id', options?)\n // Treat as attribute name on $this\n const options = (typeof attributeNameOrOptions === 'object' && attributeNameOrOptions !== null) \n ? attributeNameOrOptions \n : {};\n return applyAttribute('$this', selectorOrAttributeOrTarget, options);\n }\n }\n \n // Without selector (defaults to $this with options)\n return applyAttribute('$this', undefined as any, selectorOrAttributeOrTarget as AttributeOptions);\n}\n\n/**\n * @setAttribute - Method decorator for setting element attributes from method return value\n * \n * Intelligently distinguishes between attribute names and CSS selectors:\n * \n * Usage patterns:\n * - @setAttribute('data-id') - Attribute name on $this (auto-detected)\n * - @setAttribute('#user', 'data-id') - Attribute name on selector\n * - @setAttribute('data-id', options) - Attribute name on $this with options\n * - @setAttribute('#user', 'data-id', options) - Attribute name on selector with options\n * - @setAttribute((this, helper) => 'selector', 'data-id') - Function-based selector\n * - @setAttribute - Bare decorator (uses method name as attribute on $this)\n * \n * Note: This decorator is for METHODS ONLY. For fields, use @attribute.\n * \n * Example:\n * @setAttribute('data-status')\n * updateStatus() {\n * return 'active';\n * }\n */\nexport function setAttribute(selector: string, attributeName: string, options?: AttributeQueryOptions): MethodDecorator;\nexport function setAttribute(selector: AttributeFnSelector, attributeName: string, options?: AttributeNonQueryOptions): MethodDecorator;\nexport function setAttribute(attributeName: string, options?: AttributeQueryOptions): MethodDecorator;\nexport function setAttribute(selectorOrAttributeOrOptions?: AttributeSelector | AttributeOptions, attributeNameOrOptions?: any, optionsOrUndefined?: AttributeOptions): MethodDecorator {\n // Function selector: @setAttribute((c, helper) => ..., 'attr', options?)\n if (typeof selectorOrAttributeOrOptions === 'function') {\n return applyAttribute(selectorOrAttributeOrOptions as AttributeSelector, attributeNameOrOptions as any, optionsOrUndefined as AttributeOptions) as MethodDecorator;\n }\n // With string as first parameter\n if (typeof selectorOrAttributeOrOptions === 'string') {\n // Check if first parameter is a CSS selector or attribute name\n const isSelector = isCssSelector(selectorOrAttributeOrOptions);\n \n if (isSelector) {\n // First param is a selector: @setAttribute('#user', 'data-id', options?)\n return applyAttribute(selectorOrAttributeOrOptions, attributeNameOrOptions as any, optionsOrUndefined as AttributeOptions) as MethodDecorator;\n } else {\n // First param is an attribute name: @setAttribute('data-id', options?)\n // Treat as attribute name on $this\n const options = (typeof attributeNameOrOptions === 'object' && attributeNameOrOptions !== null) \n ? attributeNameOrOptions \n : {};\n return applyAttribute('$this', selectorOrAttributeOrOptions, options) as MethodDecorator;\n }\n }\n \n // Without selector (defaults to $this with options)\n return applyAttribute('$this', undefined as any, selectorOrAttributeOrOptions as AttributeOptions) as MethodDecorator;\n}\n\n// ============================================\n// Metadata Helpers\n// ============================================\n\nexport const findAllAttributeMetadata = (target: any): AttributeMetadata[] => {\n const actualTarget = target instanceof Function ? target : target.constructor;\n return ReflectUtils.findAllMetadata<AttributeMetadata[]>(ATTRIBUTE_METADATA_KEY, actualTarget).flat();\n};\n\n// Backward compatibility alias\nexport const findAllAttributeApplyMetadata = (target: any): Map<string | symbol, AttributeMetadata> => {\n const result = new Map<string | symbol, AttributeMetadata>();\n findAllAttributeMetadata(target).forEach(meta => {\n result.set(meta.propertyKey, meta);\n });\n return result;\n};\n\n// \u2500\u2500\u2500 Aliases \u2500\u2500\u2500\n// attribute(\uD544\uB4DC) / setAttribute(\uBA54\uC11C\uB4DC)\uC640 \uAD6C\uBD84\uB418\uB294 \uC77C\uBC18 \uB370\uCF54\uB808\uC774\uD130 \uB2E8\uCD95\uBA85\nexport const attr = applyAttribute;\n\n// \u2500\u2500\u2500 \uD3B8\uC758 \uD5EC\uD37C (selector/root \uC0DD\uB7B5) \u2500\u2500\u2500\n\nexport function attrThis(targetAttributeName?: string, options?: AttributeQueryOptions): MethodDecorator;\nexport function attrThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function attrThis(targetAttributeNameOrTarget?: string | Object, optionsOrPropertyKey?: AttributeQueryOptions | string | symbol, descriptor?: PropertyDescriptor): any {\n if ((typeof optionsOrPropertyKey === 'string' || typeof optionsOrPropertyKey === 'symbol') && descriptor !== undefined) {\n return (applyAttribute('$this', undefined as any, {}) as any)(targetAttributeNameOrTarget, optionsOrPropertyKey, descriptor);\n }\n return applyAttribute('$this', targetAttributeNameOrTarget as any, optionsOrPropertyKey as AttributeQueryOptions);\n}\nexport function attrAppHost(targetAttributeName?: string, options?: AttributeQueryOptions): MethodDecorator;\nexport function attrAppHost(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function attrAppHost(targetAttributeNameOrTarget?: string | Object, optionsOrPropertyKey?: AttributeQueryOptions | string | symbol, descriptor?: PropertyDescriptor): any {\n if ((typeof optionsOrPropertyKey === 'string' || typeof optionsOrPropertyKey === 'symbol') && descriptor !== undefined) {\n return (applyAttribute('$appHost', undefined as any, {}) as any)(targetAttributeNameOrTarget, optionsOrPropertyKey, descriptor);\n }\n return applyAttribute('$appHost', targetAttributeNameOrTarget as any, optionsOrPropertyKey as AttributeQueryOptions);\n}\nexport function attrLight(selector: string, targetAttributeName?: string, options?: Omit<AttributeQueryOptions, 'root'>): MethodDecorator {\n return applyAttribute(selector, targetAttributeName, {...options ?? {}, root: 'light'});\n}\nexport function attrShadow(selector: string, targetAttributeName?: string, options?: Omit<AttributeQueryOptions, 'root'>): MethodDecorator {\n return applyAttribute(selector, targetAttributeName, {...options ?? {}, root: 'shadow'});\n}\nexport function attrAll(selector: string, targetAttributeName?: string, options?: Omit<AttributeQueryOptions, 'root'>): MethodDecorator {\n return applyAttribute(selector, targetAttributeName, {...options ?? {}, root: 'all'});\n}\n\nexport default applyAttribute;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|