@dooboostore/simple-web-component 1.0.26 → 1.0.28
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 +216 -3424
- package/dist/cjs/decorators/addEventListener.js +4 -0
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/attribute.js +32 -43
- package/dist/cjs/decorators/attribute.js.map +3 -3
- package/dist/cjs/decorators/elementDefine.js +45 -19
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/index.js +1 -0
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/lifecycles.js +5 -5
- package/dist/cjs/decorators/lifecycles.js.map +2 -2
- package/dist/cjs/decorators/query.js +4 -4
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/queryAll.js +4 -4
- package/dist/cjs/decorators/queryAll.js.map +2 -2
- package/dist/cjs/decorators/subscribeSwcAppRouteChange.js +59 -0
- package/dist/cjs/decorators/subscribeSwcAppRouteChange.js.map +7 -0
- package/dist/cjs/elements/SwcAppEngine.js +18 -63
- package/dist/cjs/elements/SwcAppEngine.js.map +3 -3
- package/dist/cjs/elements/SwcAppMixin.js +103 -24
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/cjs/elements/register.js +0 -1
- package/dist/cjs/elements/register.js.map +2 -2
- package/dist/cjs/utils/Utils.js +18 -0
- package/dist/cjs/utils/Utils.js.map +3 -3
- package/dist/esm/decorators/addEventListener.js +4 -0
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/attribute.js +32 -43
- package/dist/esm/decorators/attribute.js.map +3 -3
- package/dist/esm/decorators/elementDefine.js +46 -20
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/index.js +1 -0
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/lifecycles.js +5 -5
- package/dist/esm/decorators/lifecycles.js.map +2 -2
- package/dist/esm/decorators/query.js +4 -4
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/queryAll.js +4 -4
- package/dist/esm/decorators/queryAll.js.map +2 -2
- package/dist/esm/decorators/subscribeSwcAppRouteChange.js +40 -0
- package/dist/esm/decorators/subscribeSwcAppRouteChange.js.map +7 -0
- package/dist/esm/elements/SwcAppEngine.js +18 -63
- package/dist/esm/elements/SwcAppEngine.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js +103 -24
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/elements/register.js +0 -1
- package/dist/esm/elements/register.js.map +2 -2
- package/dist/esm/utils/Utils.js +18 -0
- package/dist/esm/utils/Utils.js.map +3 -3
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +177 -2477
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/decorators/addEventListener.d.ts +8 -1
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/attribute.d.ts +0 -1
- package/dist/types/decorators/attribute.d.ts.map +1 -1
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +1 -0
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/lifecycles.d.ts +2 -2
- package/dist/types/decorators/lifecycles.d.ts.map +1 -1
- package/dist/types/decorators/query.d.ts +1 -1
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/queryAll.d.ts +1 -1
- package/dist/types/decorators/queryAll.d.ts.map +1 -1
- package/dist/types/decorators/subscribeSwcAppRouteChange.d.ts +18 -0
- package/dist/types/decorators/subscribeSwcAppRouteChange.d.ts.map +1 -0
- package/dist/types/elements/SwcAppEngine.d.ts +3 -5
- package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts +9 -0
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/types/elements/register.d.ts +1 -1
- package/dist/types/elements/register.d.ts.map +1 -1
- package/dist/types/utils/Utils.d.ts +3 -0
- package/dist/types/utils/Utils.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +177 -2477
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +2 -2
- package/src/decorators/addEventListener.ts +11 -1
- package/src/decorators/attribute.ts +62 -53
- package/src/decorators/elementDefine.ts +93 -30
- package/src/decorators/index.ts +1 -0
- package/src/decorators/lifecycles.ts +2 -2
- package/src/decorators/query.ts +5 -5
- package/src/decorators/queryAll.ts +8 -7
- package/src/decorators/subscribeSwcAppRouteChange.ts +71 -0
- package/src/elements/SwcAppEngine.ts +25 -81
- package/src/elements/SwcAppMixin.ts +143 -28
- package/src/elements/register.ts +0 -2
- package/src/utils/Utils.ts +33 -0
|
@@ -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 } from '../types';\n\nexport interface AddEventListenerBaseOptions 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}\n\nexport interface AddEventListenerMetadata {\n propertyKey: string | symbol;\n selector: string;\n type: string;\n options: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean };\n}\n\nexport const ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:add-event-listener');\n\nexport function addEventListener(target: SpecialSelector, type: string, options?: AddEventListenerBaseOptions): MethodDecorator;\nexport function addEventListener(selector: string, type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;\n/**\n * @addEventListener decorator to bind events to elements.\n */\nexport function addEventListener(selectorOrTarget: string, type: string, options: any = {}): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = targetObj.constructor;\n\n let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata[]>(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: selectorOrTarget, type, options });\n };\n}\n\nexport const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n};\n\n/**\n * @addEventListenerHost decorator - simplified version of @addEventListener for :host selector\n * Usage: @addEventListenerHost('click')\n * Usage: @addEventListenerHost('click', { stopPropagation: true })\n */\nexport function addEventListenerHost(type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions): MethodDecorator {\n return addEventListener(':host', type, options);\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,oBAAoB;
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions, HelperHostSet } from '../types';\n\nexport interface AddEventListenerBaseOptions 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, helper: HelperHostSet) => boolean;\n}\n\nexport interface AddEventListenerMetadata {\n propertyKey: string | symbol;\n selector: string;\n type: string;\n options: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean };\n}\n\nexport const ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:add-event-listener');\n\nexport function addEventListener(target: SpecialSelector, type: string, options?: AddEventListenerBaseOptions): MethodDecorator;\nexport function addEventListener(selector: string, type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;\n/**\n * @addEventListener decorator to bind events to elements.\n */\nexport function addEventListener(selectorOrTarget: string, type: string, options: any = {}): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = targetObj.constructor;\n\n let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata[]>(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: selectorOrTarget, type, options });\n };\n}\n\nexport const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n};\n\n/**\n * @addEventListenerHost decorator - simplified version of @addEventListener for :host selector\n * Usage: @addEventListenerHost('click')\n * Usage: @addEventListenerHost('click', { stopPropagation: true })\n */\nexport function addEventListenerHost(type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions): MethodDecorator {\n return addEventListener(':host', type, options);\n}\n\n/**\n * @addEventListenerAppHost decorator - simplified version of @addEventListener for :appHost selector\n * Usage: @addEventListenerAppHost('click')\n * Usage: @addEventListenerAppHost('click', { stopPropagation: true })\n */\nexport function addEventListenerAppHost(type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions): MethodDecorator {\n return addEventListener(':appHost', type, options);\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,oBAAoB;AAsBtB,MAAM,kCAAkC,OAAO,IAAI,yCAAyC;AAO5F,SAAS,iBAAiB,kBAA0B,MAAc,UAAe,CAAC,GAAoB;AAC3G,SAAO,CAAC,WAAmB,aAA8B,eAAmC;AAC1F,UAAM,cAAc,UAAU;AAE9B,QAAI,YAAY,aAAa,YAAwC,iCAAiC,WAAW;AACjH,QAAI,CAAC,WAAW;AACd,kBAAY,CAAC;AACb,mBAAa,eAAe,iCAAiC,WAAW,WAAW;AAAA,IACrF;AAEA,cAAU,KAAK,EAAE,aAAa,UAAU,kBAAkB,MAAM,QAAQ,CAAC;AAAA,EAC3E;AACF;AAEO,MAAM,8BAA8B,CAAC,WAAwD;AAClG,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,iCAAiC,WAAW;AAC9E;AAOO,SAAS,qBAAqB,MAAc,SAA0E;AAC3H,SAAO,iBAAiB,SAAS,MAAM,OAAO;AAChD;AAOO,SAAS,wBAAwB,MAAc,SAA0E;AAC9H,SAAO,iBAAiB,YAAY,MAAM,OAAO;AACnD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -78,49 +78,37 @@ function attribute(selector, options = {}) {
|
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return
|
|
96
|
-
}
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
return convertValue(this[privateKey], targetType);
|
|
100
|
-
},
|
|
101
|
-
set(nv) {
|
|
102
|
-
const attrName = options.name || String(propertyKey);
|
|
103
|
-
const conf = getElementConfig(this);
|
|
104
|
-
const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
|
|
105
|
-
if (this.__swc_syncing_init) {
|
|
106
|
-
if (options.connectedInitialize === true) {
|
|
107
|
-
const targets2 = resolveTargetEls(this, selector, options, currentWin);
|
|
108
|
-
applySetAttribute(this, targets2, attrName, nv);
|
|
109
|
-
} else {
|
|
110
|
-
this[privateKey] = nv;
|
|
81
|
+
try {
|
|
82
|
+
Object.defineProperty(target, propertyKey, {
|
|
83
|
+
get() {
|
|
84
|
+
const attrName = options.name || String(propertyKey);
|
|
85
|
+
const conf = getElementConfig(this);
|
|
86
|
+
const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
|
|
87
|
+
const targetType = options.type || designType;
|
|
88
|
+
const targets = resolveTargetEls(this, selector, options, currentWin);
|
|
89
|
+
const primaryTarget = targets[0];
|
|
90
|
+
if (primaryTarget && typeof primaryTarget.hasAttribute === "function") {
|
|
91
|
+
if (primaryTarget.hasAttribute(attrName)) {
|
|
92
|
+
const domVal = primaryTarget.getAttribute(attrName);
|
|
93
|
+
return convertValue(domVal, targetType);
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
111
96
|
}
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
97
|
+
return convertValue(this[privateKey], targetType);
|
|
98
|
+
},
|
|
99
|
+
set(nv) {
|
|
100
|
+
const attrName = options.name || String(propertyKey);
|
|
101
|
+
const conf = getElementConfig(this);
|
|
102
|
+
const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
|
|
103
|
+
const targets = resolveTargetEls(this, selector, options, currentWin);
|
|
104
|
+
applySetAttribute(this, targets, attrName, nv);
|
|
105
|
+
},
|
|
106
|
+
enumerable: true,
|
|
107
|
+
configurable: true
|
|
108
|
+
});
|
|
109
|
+
} catch (err) {
|
|
110
|
+
console.error("[SWC] defineProperty error:", err);
|
|
111
|
+
}
|
|
124
112
|
};
|
|
125
113
|
}
|
|
126
114
|
function attributeHost(targetOrAttrOrOptions, propertyKeyOrOptions) {
|
|
@@ -143,7 +131,8 @@ function attributeHost(targetOrAttrOrOptions, propertyKeyOrOptions) {
|
|
|
143
131
|
}
|
|
144
132
|
}
|
|
145
133
|
const findAllAttributeMetadata = (target) => {
|
|
146
|
-
|
|
134
|
+
const actualTarget = target instanceof Function ? target : target.constructor;
|
|
135
|
+
return ReflectUtils.findAllMetadata(ATTRIBUTE_FIELD_METADATA_KEY, actualTarget).flat();
|
|
147
136
|
};
|
|
148
137
|
export {
|
|
149
138
|
ATTRIBUTE_FIELD_METADATA_KEY,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/attribute.ts"],
|
|
4
|
-
"sourcesContent": ["import {ReflectUtils} from '@dooboostore/core';\nimport {ensureInit, getElementConfig} from './elementDefine';\nimport {SwcUtils} from '../utils/Utils';\nimport {SpecialSelector, SwcQueryOptions} from '../types';\
|
|
5
|
-
"mappings": "AAAA,SAAQ,oBAAmB;AAC3B,SAAoB,wBAAuB;AAC3C,SAAQ,gBAAe;
|
|
6
|
-
"names": [
|
|
4
|
+
"sourcesContent": ["import {ReflectUtils} from '@dooboostore/core';\nimport {ensureInit, getElementConfig} from './elementDefine';\nimport {SwcUtils} from '../utils/Utils';\nimport {SpecialSelector, SwcQueryOptions} from '../types';\nexport interface AttributeFieldOptions extends SwcQueryOptions {\n name?: string;\n // connectedInitialize?: boolean;\n type?: typeof Number | typeof Boolean | typeof String;\n}\n\nexport interface AttributeFieldMetadata {\n propertyKey: string | symbol;\n selector: string;\n options: AttributeFieldOptions;\n privateKey: symbol;\n}\n\nexport const ATTRIBUTE_FIELD_METADATA_KEY = Symbol.for('simple-web-component:attribute-field');\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 const resolveTargetEls = (inst: any, selector: string, options: AttributeFieldOptions, currentWin: any): HTMLElement[] => {\n const r = options.root || 'auto';\n const results: HTMLElement[] = [];\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 (selector === ':host' || !selector) {\n applyRoot(inst);\n } else if (selector === ':window') {\n results.push(currentWin);\n } else if (selector === ':document') {\n results.push(currentWin.document);\n } else {\n const hostSet = SwcUtils.getHostSet(inst);\n if (selector === ':parentHost') applyRoot(hostSet.$parentHost);\n else if (selector === ':appHost') applyRoot(hostSet.$appHost as any);\n else if (selector === ':firstHost') applyRoot(hostSet.$firstHost);\n else if (selector === ':lastHost') applyRoot(hostSet.$lastHost);\n else if (selector === ':firstAppHost') applyRoot(hostSet.$firstAppHost as any);\n else if (selector === ':lastAppHost') applyRoot(hostSet.$lastAppHost as any);\n else {\n if (r === 'shadow') {\n const found = inst.shadowRoot?.querySelectorAll(selector);\n if (found) results.push(...found);\n } else if (r === 'light') {\n const found = inst.querySelectorAll(selector);\n if (found) results.push(...found);\n } else if (r === 'all') {\n const sMatch = inst.shadowRoot?.querySelectorAll(selector);\n const lMatch = inst.querySelectorAll(selector);\n if (sMatch) results.push(...sMatch);\n if (lMatch) results.push(...lMatch);\n } else {\n const found = (inst.shadowRoot || inst).querySelectorAll(selector);\n if (found) results.push(...found);\n }\n }\n }\n return results;\n};\n\n/**\n * @attribute decorator to sync a field value with an element's attribute.\n */\nexport function attribute(selector: string, options: AttributeFieldOptions = {}): PropertyDecorator {\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n const privateKey = Symbol(String(propertyKey));\n //\n const designType = (Reflect as any).getMetadata('design:type', target, propertyKey);\n //\n let metaList = ReflectUtils.getOwnMetadata(ATTRIBUTE_FIELD_METADATA_KEY, constructor) as AttributeFieldMetadata[];\n if (!metaList) {\n metaList = [];\n ReflectUtils.defineMetadata(ATTRIBUTE_FIELD_METADATA_KEY, metaList, constructor);\n }\n metaList.push({propertyKey, selector, options, privateKey});\n\n const applySetAttribute = (inst: any, targets: HTMLElement[], attrName: string, nv: any) => {\n targets.forEach(it => {\n if (it && typeof (it as any).setAttribute === 'function') {\n if (nv === null) {\n (it as any).removeAttribute(attrName);\n } else {\n (it as any).setAttribute(attrName, String(nv));\n }\n } else {\n inst[privateKey] = nv;\n }\n });\n };\n\n try {\n // Own property\uB97C \uC0AD\uC81C\uD558\uC5EC getter\uAC00 \uC791\uB3D9\uD558\uB3C4\uB85D \uD568\n // delete target[propertyKey];\n\n // const defineTarget = target instanceof Function ? target : (target as any).constructor;\n \n Object.defineProperty(target, propertyKey, {\n get(this: any) {\n // try {\n const attrName = options.name || String(propertyKey);\n const conf = getElementConfig(this);\n const currentWin = this._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as any);\n const targetType = options.type || designType;\n //\n // connectedInitialize: true\uC774\uBA74 privateKey \uAC12\uB9CC \uBC18\uD658 (DOM \uBB34\uC2DC)\n // if (options.connectedInitialize === true && (this as any).__swc_syncing_init) {\n // console.log('cccccccc2');\n // return this[privateKey];\n // // return convertValue(this[privateKey], targetType);\n // }\n\n const targets = resolveTargetEls(this, selector, options, currentWin);\n const primaryTarget = targets[0];\n\n if (primaryTarget && typeof (primaryTarget as any).hasAttribute === 'function') {\n if ((primaryTarget as any).hasAttribute(attrName)) {\n const domVal = (primaryTarget as any).getAttribute(attrName);\n return convertValue(domVal, targetType);\n }\n return null;\n }\n\n return convertValue(this[privateKey], targetType);\n // } catch (err) {\n // console.error('Error in getter:', err);\n // throw err;\n // }\n },\n set(this: any, nv: any) {\n // this[propertyKey] = nv;\n const attrName = options.name || String(propertyKey);\n const conf = getElementConfig(this);\n const currentWin = this._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as any);\n\n\n // if (!this.__swc_connected) {\n // this[privateKey] = nv;\n // return;\n // }\n\n const targets = resolveTargetEls(this, selector, options, currentWin);\n applySetAttribute(this, targets, attrName, nv);\n },\n enumerable: true,\n configurable: true\n });\n } catch (err) {\n console.error('[SWC] defineProperty error:', err);\n }\n };\n}\n\n/**\n * @attributeHost decorator to sync a field value with the :host element's attribute.\n */\nexport function attributeHost(target: Object, propertyKey: string | symbol): void;\nexport function attributeHost(options: AttributeFieldOptions): PropertyDecorator;\nexport function attributeHost(attrName: string): PropertyDecorator;\nexport function attributeHost(attrName: string, options: AttributeFieldOptions): PropertyDecorator;\nexport function attributeHost(targetOrAttrOrOptions?: any, propertyKeyOrOptions?: any): any {\n if (propertyKeyOrOptions !== undefined && (typeof propertyKeyOrOptions === 'string' || typeof propertyKeyOrOptions === 'symbol')) {\n return attribute(':host', { name: String(propertyKeyOrOptions) })(targetOrAttrOrOptions, propertyKeyOrOptions);\n }\n\n if (typeof targetOrAttrOrOptions === 'string') {\n const attrName = targetOrAttrOrOptions;\n const options = (typeof propertyKeyOrOptions === 'object' ? propertyKeyOrOptions : {}) as AttributeFieldOptions;\n return attribute(':host', { ...options, name: attrName });\n } else if (typeof targetOrAttrOrOptions === 'object') {\n const options = targetOrAttrOrOptions as AttributeFieldOptions;\n return (target: Object, propertyKey: string | symbol) => {\n return attribute(':host', { ...options, name: String(propertyKey) })(target, propertyKey);\n };\n } else {\n return (target: Object, propertyKey: string | symbol) => {\n return attribute(':host', { name: String(propertyKey) })(target, propertyKey);\n };\n }\n}\n\nexport const findAllAttributeMetadata = (target: any): AttributeFieldMetadata[] => {\n const actualTarget = target instanceof Function ? target : target.constructor;\n return ReflectUtils.findAllMetadata<AttributeFieldMetadata[]>(ATTRIBUTE_FIELD_METADATA_KEY, actualTarget).flat();\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { ReflectUtils } from "@dooboostore/core";
|
|
2
2
|
import { FunctionUtils } from "@dooboostore/core";
|
|
3
3
|
import { getAddEventListenerMetadata } from "./addEventListener.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ON_INITIALIZE_METADATA_KEY, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, findAllLifecycleMetadata, getOnConnectedInnerHtmlMetadata } from "./lifecycles.js";
|
|
5
5
|
import { getEmitCustomEventMetadataList } from "./emitCustomEvent.js";
|
|
6
6
|
import { findAllAttributeChangedMetadata } from "./changedAttributeHost.js";
|
|
7
7
|
import { findAllAttributeApplyMetadata } from "./applyAttribute.js";
|
|
8
8
|
import { findAllAttributeMetadata } from "./attribute.js";
|
|
9
|
+
import { getQueryMetadata } from "./query.js";
|
|
10
|
+
import { getQueryAllMetadata } from "./queryAll.js";
|
|
9
11
|
import { SwcUtils } from "../utils/Utils.js";
|
|
10
12
|
import { HTML_TAG_ENTRIES, DOM_EVENT_NAMES } from "../config/config.js";
|
|
11
13
|
import { SituationTypeContainer, SituationTypeContainers } from "@dooboostore/simple-boot/decorators/inject/Inject";
|
|
@@ -21,9 +23,26 @@ const ensureInit = (inst) => {
|
|
|
21
23
|
inst._emitHandlers = /* @__PURE__ */ new Map();
|
|
22
24
|
inst._boundListeners = [];
|
|
23
25
|
inst.__swc_initialized = true;
|
|
26
|
+
const target = inst instanceof Function ? inst : inst.constructor;
|
|
27
|
+
const attributeList = findAllAttributeMetadata(target);
|
|
28
|
+
attributeList.forEach((meta) => {
|
|
29
|
+
delete inst[meta.propertyKey];
|
|
30
|
+
});
|
|
31
|
+
const queryList = getQueryMetadata(target);
|
|
32
|
+
if (queryList) {
|
|
33
|
+
queryList.forEach((meta) => {
|
|
34
|
+
delete inst[meta.propertyKey];
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const queryAllList = getQueryAllMetadata(target);
|
|
38
|
+
if (queryAllList) {
|
|
39
|
+
queryAllList.forEach((meta) => {
|
|
40
|
+
delete inst[meta.propertyKey];
|
|
41
|
+
});
|
|
42
|
+
}
|
|
24
43
|
const hostSet = SwcUtils.getHostSet(inst);
|
|
25
44
|
inst._executeSwcScript?.("swc-on-constructor", hostSet);
|
|
26
|
-
const cMethods = findAllLifecycleMetadata(inst,
|
|
45
|
+
const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);
|
|
27
46
|
if (cMethods) {
|
|
28
47
|
for (const m of cMethods) inst._invokeLifecycleMethod(m, hostSet);
|
|
29
48
|
}
|
|
@@ -190,12 +209,12 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
190
209
|
const swcLifecycleAttributes = ["swc-on-constructor", "swc-on-connected", "swc-on-disconnected", "swc-on-before-connected", "swc-on-after-connected", "swc-on-before-disconnected", "swc-on-after-disconnected", "swc-on-before-adopted", "swc-on-after-adopted", "swc-on-attribute-changed"];
|
|
191
210
|
const swcOnEvents = DOM_EVENT_NAMES.map((e) => `swc-on-${e}`);
|
|
192
211
|
const attributeApplyNames = Array.from(applyAttributeMap.values()).map((it) => it.options.name).filter(Boolean);
|
|
193
|
-
const
|
|
212
|
+
const hostAttributes = attributeList.filter((it) => it.selector === ":host").map((it) => it.options.name || String(it.propertyKey));
|
|
194
213
|
const mergedObservedAttributes = [.../* @__PURE__ */ new Set([
|
|
195
214
|
...metadata.observedAttributes ?? [],
|
|
196
215
|
...attrChangeMap.keys(),
|
|
197
216
|
...attributeApplyNames,
|
|
198
|
-
...
|
|
217
|
+
...hostAttributes,
|
|
199
218
|
...emitHostCustomEventList.map((it) => it.options.attributeName).filter(Boolean),
|
|
200
219
|
...swcLifecycleAttributes,
|
|
201
220
|
...swcOnEvents
|
|
@@ -206,30 +225,18 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
206
225
|
const originalConnected = proto.connectedCallback;
|
|
207
226
|
proto.connectedCallback = function() {
|
|
208
227
|
ensureInit(this);
|
|
228
|
+
const hostSet = SwcUtils.getHostSet(this);
|
|
229
|
+
const appHost = hostSet.$appHost;
|
|
230
|
+
const conf = getElementConfig(this);
|
|
231
|
+
const currentWin = this._resolveWindow(conf);
|
|
209
232
|
if (connectedInnerHtmlList.some((it) => it.options.useShadow === true) && !this.shadowRoot) {
|
|
210
233
|
this.attachShadow({ mode: "open" });
|
|
211
234
|
}
|
|
212
|
-
const conf = getElementConfig(this);
|
|
213
|
-
const currentWin = this._resolveWindow(conf);
|
|
214
|
-
const hostSet = SwcUtils.getHostSet(this);
|
|
215
235
|
this._executeSwcScript("swc-on-before-connected", hostSet);
|
|
216
236
|
const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);
|
|
217
237
|
if (bMethods) {
|
|
218
238
|
for (const m of bMethods) this._invokeLifecycleMethod(m, hostSet);
|
|
219
239
|
}
|
|
220
|
-
attributeList.forEach((meta) => {
|
|
221
|
-
if (meta.options.connectedInitialize === true) {
|
|
222
|
-
this.__swc_syncing_init = true;
|
|
223
|
-
try {
|
|
224
|
-
const memoryVal = this[meta.privateKey];
|
|
225
|
-
if (memoryVal !== void 0) {
|
|
226
|
-
this[meta.propertyKey] = memoryVal;
|
|
227
|
-
}
|
|
228
|
-
} finally {
|
|
229
|
-
this.__swc_syncing_init = false;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
240
|
if (connectedInnerHtmlList.length > 0) {
|
|
234
241
|
let sContent = "", lContent = "";
|
|
235
242
|
for (const meta of connectedInnerHtmlList) {
|
|
@@ -290,6 +297,12 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
290
297
|
const { selector, options } = meta;
|
|
291
298
|
const matchedEl = event.target.closest(selector);
|
|
292
299
|
if (matchedEl && br.contains(matchedEl)) {
|
|
300
|
+
if (options.filter) {
|
|
301
|
+
const helper = SwcUtils.getHelperAndHostSet(currentWin, matchedEl);
|
|
302
|
+
if (!options.filter(event, helper)) {
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
293
306
|
if (options.stopPropagation) event.stopPropagation();
|
|
294
307
|
if (options.stopImmediatePropagation) event.stopImmediatePropagation();
|
|
295
308
|
if (options.preventDefault) event.preventDefault();
|
|
@@ -344,6 +357,12 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
344
357
|
}
|
|
345
358
|
bindTargets.forEach((t) => {
|
|
346
359
|
const handler = async (event) => {
|
|
360
|
+
if (options.filter) {
|
|
361
|
+
const helper = SwcUtils.getHelperAndHostSet(currentWin, t);
|
|
362
|
+
if (!options.filter(event, helper)) {
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
347
366
|
if (options.stopPropagation) event.stopPropagation();
|
|
348
367
|
if (options.stopImmediatePropagation) event.stopImmediatePropagation();
|
|
349
368
|
if (options.preventDefault) event.preventDefault();
|
|
@@ -365,6 +384,9 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
365
384
|
this._executeSwcScript("swc-on-connected", hostSet);
|
|
366
385
|
this._executeSwcScript("swc-on-after-connected", hostSet);
|
|
367
386
|
this.__swc_connected = true;
|
|
387
|
+
if (appHost && typeof appHost._connected === "function") {
|
|
388
|
+
appHost._connected(this);
|
|
389
|
+
}
|
|
368
390
|
};
|
|
369
391
|
const originalDisconnected = proto.disconnectedCallback;
|
|
370
392
|
proto.disconnectedCallback = function() {
|
|
@@ -386,6 +408,10 @@ const elementDefine = (name, config = {}) => (constructor) => {
|
|
|
386
408
|
this._executeSwcScript("swc-on-disconnected", hostSet);
|
|
387
409
|
this._executeSwcScript("swc-on-after-disconnected", hostSet);
|
|
388
410
|
this.__swc_connected = false;
|
|
411
|
+
const appHost = hostSet.$appHost;
|
|
412
|
+
if (appHost && typeof appHost._disconnected === "function") {
|
|
413
|
+
appHost._disconnected(this);
|
|
414
|
+
}
|
|
389
415
|
};
|
|
390
416
|
const originalAdopted = proto.adoptedCallback;
|
|
391
417
|
proto.adoptedCallback = function() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/elementDefine.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { ON_CONSTRUCTOR_METADATA_KEY, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, findAllLifecycleMetadata, getOnConnectedInnerHtmlMetadata } from './lifecycles';\nimport { getEmitCustomEventMetadataList } from './emitCustomEvent';\nimport { findAllAttributeChangedMetadata } from './changedAttributeHost';\nimport { findAllAttributeApplyMetadata } from './applyAttribute';\nimport { findAllAttributeMetadata } from './attribute';\nimport { SwcUtils } from '../utils/Utils';\nimport { HTML_TAG_ENTRIES, DOM_EVENT_NAMES } from '../config/config';\nimport { SituationTypeContainer, SituationTypeContainers } from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport { InjectSituationType, HostSet } from '../types';\n\n// --- Core Interfaces & Types ---\n\nexport const ELEMENT_CONFIG_KEY = Symbol.for('simple-web-component:element-config');\n\nexport interface ElementConfig {\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: any;\n window?: Window;\n}\n\nexport interface ElementMetadata extends Omit<ElementConfig, 'window'> {\n name: string;\n window: Window;\n}\n\nexport const getElementConfig = (target: any): ElementMetadata | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n\nexport const ensureInit = (inst: any) => {\n if (!inst.__swc_initialized) {\n inst._swcId = Math.random().toString(36).substring(2, 11);\n inst._emitHandlers = new Map();\n inst._boundListeners = [];\n inst.__swc_initialized = true;\n\n // Call constructor script if present\n const hostSet = SwcUtils.getHostSet(inst);\n inst._executeSwcScript?.('swc-on-constructor', hostSet);\n\n // Call @onConstructor lifecycle methods\n const cMethods = findAllLifecycleMetadata(inst, ON_CONSTRUCTOR_METADATA_KEY);\n if (cMethods) {\n for (const m of cMethods) (inst)._invokeLifecycleMethod(m, hostSet);\n }\n }\n};\n\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n\nconst handleGlobalSwcEvent = async (event: Event) => {\n if ((event as any).__swc_handled) return;\n const path = event.composedPath();\n const type = event.type;\n const attrName = `swc-on-${type}`;\n\n for (const node of path) {\n if (!(node instanceof HTMLElement)) continue;\n const script = node.getAttribute?.(attrName);\n if (script && !getElementConfig(node)) {\n const host: any = SwcUtils.findNearestSwcHost(node);\n if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === 'function') {\n await host.__swc_executeAttributeEvent(node, attrName, script, event);\n (event as any).__swc_handled = true;\n break;\n }\n }\n }\n};\n\nfunction buildEnv(configWindow?: Window) {\n const win: Window = configWindow || ((typeof window !== 'undefined' ? window : undefined) as any);\n const doc: Document = win?.document;\n const builtInTagMap = new Map<any, string>();\n for (const [cls, tag] of HTML_TAG_ENTRIES) {\n if (win?.[cls]) builtInTagMap.set(win[cls], tag);\n }\n const domHelpers = SwcUtils.getHelperSet(win);\n return { win, doc, builtInTagMap, domHelpers };\n}\n\nconst getHandlers = (inst: any) => {\n if (!inst.__swc_attributeEventHandlers) inst.__swc_attributeEventHandlers = new Map();\n return inst.__swc_attributeEventHandlers;\n};\n\nconst setupPrototype = (proto: any) => {\n if (proto.__swc_proto_setup) return;\n proto.__swc_proto_setup = true;\n\n proto._executeSwcScript = function (attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {\n ensureInit(this);\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = { ...hostSet, ...helpers, ...extraArgs, $el: this, $root: this.getRootNode() };\n FunctionUtils.execute({ script, context: this, args });\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName}:`, e);\n }\n }\n };\n\n proto._resolveWindow = function (localConfig?: ElementConfig): Window {\n ensureInit(this);\n if (localConfig?.window) return localConfig.window;\n const ancestors = SwcUtils.findAllSwcHosts(this as any);\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const aConf = getElementConfig(ancestors[i]);\n if (aConf?.window) return aConf.window;\n }\n return (typeof window !== 'undefined' ? window : undefined) as Window;\n };\n\n proto._invokeLifecycleMethod = function (methodName: string | symbol, hostSet: HostSet, extraArgs: any[] = []) {\n ensureInit(this);\n if (typeof (this as any)[methodName] !== 'function') return;\n const app = hostSet.$appHost?.simpleApplication;\n\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: InjectSituationType.HOST_SET, data: hostSet }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOST, data: hostSet.$appHost }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOSTS, data: hostSet.$appHosts }), new SituationTypeContainer({ situationType: InjectSituationType.HOST, data: hostSet.$host }), new SituationTypeContainer({ situationType: InjectSituationType.HOSTS, data: hostSet.$hosts }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_HOST, data: hostSet.$firstHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_HOST, data: hostSet.$lastHost }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_APP_HOST, data: hostSet.$firstAppHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_APP_HOST, data: hostSet.$lastAppHost })]);\n otherStorage.set(SituationTypeContainers, situations);\n\n return app.simstanceManager.executeBindParameterSimPromise(\n {\n target: this,\n targetKey: methodName,\n inputParameters: extraArgs\n },\n otherStorage\n );\n } else {\n return (this as any)[methodName](...extraArgs);\n }\n };\n\n proto._bindAttributeEvent = function (el: HTMLElement, attrName: string, script: string, eventName?: string) {\n ensureInit(this);\n if (!eventName) {\n if (!attrName.startsWith('swc-on-')) return;\n eventName = attrName.substring(7);\n }\n const elHandlers = getHandlers(this);\n let handlers = elHandlers.get(el);\n if (!handlers) {\n handlers = new Map();\n elHandlers.set(el, handlers);\n }\n\n const oldHandler = handlers.get(attrName);\n if (oldHandler) el.removeEventListener(eventName, oldHandler);\n\n const handler = async (event: any) => {\n const parent = SwcUtils.findNearestSwcHost(el);\n const hostSet = SwcUtils.getHostSet(parent || el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {\n event,\n $data: (event as CustomEvent).detail,\n ...hostSet,\n ...helpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({ script, context: el, args });\n };\n\n el.addEventListener(eventName, handler);\n handlers.set(attrName, handler);\n };\n\n proto.__swc_executeAttributeEvent = async function (el: HTMLElement, attrName: string, script: string, event: Event) {\n ensureInit(this);\n\n const parent = SwcUtils.findNearestSwcHost(el);\n const hostSet = SwcUtils.getHostSet(parent || el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const currentHelpers = SwcUtils.getHelperSet(currentWin);\n const detail = (event as CustomEvent).detail;\n const args = {\n event,\n $event: event,\n $data: detail,\n $detail: detail,\n ...hostSet,\n ...currentHelpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({ script, context: el, args });\n };\n};\n\nexport const elementDefine =\n (name: string, config: Partial<ElementConfig> = {}): ClassDecorator =>\n (constructor: any) => {\n const { win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS } = buildEnv(config.window);\n const metadata: ElementMetadata = { ...config, name, window: win };\n\n if (!metadata.window) {\n throw new Error('window is required');\n }\n\n let extendsTagName = metadata.extends;\n if (!extendsTagName) {\n let proto = constructor;\n const BaseHTMLElement = (win as any).HTMLElement;\n while (proto && proto !== BaseHTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n metadata.extends = extendsTagName;\n }\n\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor) || [];\n const emitHostCustomEventList = emitCustomEventList.filter(meta => meta.selector === ':host' || meta.selector === '');\n const addEventListenerList = getAddEventListenerMetadata(constructor) || [];\n const attrChangeMap = findAllAttributeChangedMetadata(constructor);\n const attributeList = findAllAttributeMetadata(constructor);\n const applyAttributeMap = findAllAttributeApplyMetadata(constructor);\n\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-connected', 'swc-on-disconnected', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const swcOnEvents = DOM_EVENT_NAMES.map(e => `swc-on-${e}`);\n\n // Collect all observed attributes from all decorators\n const attributeApplyNames = Array.from(applyAttributeMap.values()).map(it => it.options.name).filter(Boolean) as string[];\n const attributeListNames = attributeList.map(it => it.options.name || String(it.propertyKey));\n \n const mergedObservedAttributes = [...new Set([\n ...(metadata.observedAttributes ?? []), \n ...attrChangeMap.keys(), \n ...attributeApplyNames,\n ...attributeListNames, \n ...emitHostCustomEventList.map(it => (it.options as any).attributeName).filter(Boolean), \n ...swcLifecycleAttributes, \n ...swcOnEvents\n ])];\n\n const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];\n\n const proto = constructor.prototype;\n setupPrototype(proto);\n\n const originalConnected = proto.connectedCallback;\n proto.connectedCallback = function () {\n ensureInit(this);\n\n if (connectedInnerHtmlList.some(it => it.options.useShadow === true) && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const hostSet = SwcUtils.getHostSet(this as any);\n\n (this as any)._executeSwcScript('swc-on-before-connected', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n // Initialize @attribute fields\n attributeList.forEach(meta => {\n if (meta.options.connectedInitialize === true) {\n (this as any).__swc_syncing_init = true;\n try {\n const memoryVal = (this as any)[meta.privateKey];\n if (memoryVal !== undefined) {\n (this as any)[meta.propertyKey] = memoryVal;\n }\n } finally {\n (this as any).__swc_syncing_init = false;\n }\n }\n });\n\n if (connectedInnerHtmlList.length > 0) {\n let sContent = '',\n lContent = '';\n for (const meta of connectedInnerHtmlList) {\n const res = (this as any)[meta.propertyKey]();\n if (res !== undefined) {\n if (meta.options.useShadow) sContent += res;\n else lContent += res;\n }\n }\n if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;\n if (lContent) this.innerHTML = lContent;\n }\n\n const root = this.getRootNode();\n if (!globalDelegatedRoots.has(root)) {\n DOM_EVENT_NAMES.forEach(type => {\n root.addEventListener(type, handleGlobalSwcEvent);\n });\n globalDelegatedRoots.add(root);\n }\n\n // Separate delegate and non-delegate listeners\n const delegateListeners: typeof addEventListenerList = [];\n const nonDelegateListeners: typeof addEventListenerList = [];\n \n addEventListenerList.forEach(meta => {\n if (meta.options.delegate && meta.selector !== ':window' && meta.selector !== ':document' && meta.selector !== ':parentHost' && meta.selector !== ':appHost' && meta.selector !== ':firstHost' && meta.selector !== ':lastHost' && meta.selector !== ':firstAppHost' && meta.selector !== ':lastAppHost' && meta.selector !== ':hosts' && meta.selector !== ':appHosts' && meta.selector !== ':host' && meta.selector !== '') {\n delegateListeners.push(meta);\n } else {\n nonDelegateListeners.push(meta);\n }\n });\n\n const delegatesByTypeAndRoot = new Map<string, any[]>();\n delegateListeners.forEach(meta => {\n const r = meta.options.root || 'auto';\n const rootKey = `${meta.type}:${r}`;\n if (!delegatesByTypeAndRoot.has(rootKey)) {\n delegatesByTypeAndRoot.set(rootKey, []);\n }\n delegatesByTypeAndRoot.get(rootKey)!.push(meta);\n });\n\n delegatesByTypeAndRoot.forEach((metaList, typeRootKey) => {\n const [type, rStr] = typeRootKey.split(':');\n const r = rStr === 'auto' ? 'auto' : rStr;\n const opts = { capture: metaList[0].options.capture, once: metaList[0].options.once, passive: metaList[0].options.passive };\n \n const bindRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') bindRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') bindRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) bindRoots.push(this.shadowRoot);\n else if (r === 'all') {\n bindRoots.push(this as any);\n if (this.shadowRoot) bindRoots.push(this.shadowRoot);\n }\n\n bindRoots.forEach(br => {\n const sortedMetaList = [...metaList].sort((a, b) => {\n const aStop = a.options.stopPropagation ? 1 : 0;\n const bStop = b.options.stopPropagation ? 1 : 0;\n return bStop - aStop;\n });\n \n const unifiedHandler = async (event: Event) => {\n for (const meta of sortedMetaList) {\n const { selector, options } = meta;\n const matchedEl = (event.target as HTMLElement).closest(selector);\n if (matchedEl && (br as any).contains(matchedEl)) {\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = { event, ...currentHostSet, $el: matchedEl, $root: br };\n await (this as any)[meta.propertyKey](event, currentHostSet, matchedEl, args);\n if ((event as any).cancelBubble) break;\n }\n }\n };\n br.addEventListener(type, unifiedHandler, opts);\n (this as any)._boundListeners.push({ target: br, type, handler: unifiedHandler, options: opts });\n });\n });\n\n nonDelegateListeners.forEach(meta => {\n const { selector, type, options } = meta;\n const opts = { capture: options.capture, once: options.once, passive: options.passive };\n const bindTargets: EventTarget[] = [];\n const r = options.root || 'auto';\n const applyRootOption = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n bindTargets.push(target.shadowRoot || target);\n } else {\n if (r === 'light' || r === 'all') bindTargets.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) bindTargets.push(target.shadowRoot);\n }\n };\n\n if (selector === ':window') bindTargets.push(currentWin);\n else if (selector === ':document') bindTargets.push(currentWin.document);\n else if (selector === ':parentHost') applyRootOption(hostSet.$parentHost);\n else if (selector === ':appHost') applyRootOption(hostSet.$appHost);\n else if (selector === ':firstHost') applyRootOption(hostSet.$firstHost);\n else if (selector === ':lastHost') applyRootOption(hostSet.$lastHost);\n else if (selector === ':firstAppHost') applyRootOption(hostSet.$firstAppHost);\n else if (selector === ':lastAppHost') applyRootOption(hostSet.$lastAppHost);\n else if (selector === ':hosts') hostSet.$hosts.forEach(applyRootOption);\n else if (selector === ':appHosts') hostSet.$appHosts.forEach(applyRootOption);\n else if (selector === ':host' || !selector) applyRootOption(this);\n else {\n const searchRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') searchRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') searchRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) searchRoots.push(this.shadowRoot);\n else if (r === 'all') {\n searchRoots.push(this as any);\n if (this.shadowRoot) searchRoots.push(this.shadowRoot);\n }\n\n searchRoots.forEach(sr => {\n sr.querySelectorAll(selector).forEach(el => bindTargets.push(el));\n });\n }\n\n bindTargets.forEach(t => {\n const handler = async (event: Event) => {\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = { event, ...currentHostSet, $el: t, $root: t };\n await (this as any)[meta.propertyKey](event, currentHostSet, args);\n };\n t.addEventListener(type, handler, opts);\n if (options.removeOnDisconnected === true || t === currentWin || t === currentWin.document) {\n (this as any)._boundListeners.push({ target: t, type, handler, options: opts });\n }\n });\n });\n\n if (originalConnected) originalConnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-connected', hostSet);\n (this as any)._executeSwcScript('swc-on-after-connected', hostSet);\n (this as any).__swc_connected = true;\n };\n\n const originalDisconnected = proto.disconnectedCallback;\n proto.disconnectedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-disconnected', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if ((this as any)._boundListeners) {\n (this as any)._boundListeners.forEach((l: any) => l.target.removeEventListener(l.type, l.handler, l.options));\n (this as any)._boundListeners = [];\n }\n\n if (originalDisconnected) originalDisconnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-disconnected', hostSet);\n (this as any)._executeSwcScript('swc-on-after-disconnected', hostSet);\n (this as any).__swc_connected = false;\n };\n\n const originalAdopted = proto.adoptedCallback;\n proto.adoptedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-adopted', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if (originalAdopted) originalAdopted.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-adopted', hostSet);\n (this as any)._executeSwcScript('swc-on-after-adopted', hostSet);\n };\n\n const originalAttributeChanged = proto.attributeChangedCallback;\n proto.attributeChangedCallback = function (name: string, old: string | null, newVal: string | null) {\n if (originalAttributeChanged) originalAttributeChanged.apply(this, [name, old, newVal]);\n\n const hSet = SwcUtils.getHostSet(this as any);\n\n if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {\n if (newVal !== null) {\n const eventName = name.substring(7);\n (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);\n }\n }\n\n const hostCustomEventMeta = emitHostCustomEventList.find(it => (it.options as any).attributeName === name);\n if (hostCustomEventMeta && newVal !== null) {\n (this as any)._bindAttributeEvent(this as any, name, newVal, hostCustomEventMeta.type);\n }\n\n const mKeys = attrChangeMap.get(name);\n if (mKeys && Array.isArray(mKeys)) {\n for (const key of mKeys) (this as any)[key](newVal, old, name, hSet);\n }\n };\n\n Object.defineProperty(constructor, 'observedAttributes', {\n get: () => mergedObservedAttributes,\n configurable: true\n });\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, metadata, constructor);\n const registry = metadata.customElementRegistry || (win as any)?.customElements;\n if (registry && !registry.get(metadata.name)) {\n registry.define(metadata.name, constructor as any, metadata.extends ? { extends: metadata.extends } : undefined);\n }\n return constructor;\n };\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { ON_INITIALIZE_METADATA_KEY, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, findAllLifecycleMetadata, getOnConnectedInnerHtmlMetadata } from './lifecycles';\nimport { getEmitCustomEventMetadataList } from './emitCustomEvent';\nimport { findAllAttributeChangedMetadata } from './changedAttributeHost';\nimport { findAllAttributeApplyMetadata } from './applyAttribute';\nimport { findAllAttributeMetadata } from './attribute';\nimport { getQueryMetadata } from './query';\nimport { getQueryAllMetadata } from './queryAll';\nimport { SwcUtils } from '../utils/Utils';\nimport { HTML_TAG_ENTRIES, DOM_EVENT_NAMES } from '../config/config';\nimport { SituationTypeContainer, SituationTypeContainers } from '@dooboostore/simple-boot/decorators/inject/Inject';\nimport { InjectSituationType, HostSet } from '../types';\n\n// --- Core Interfaces & Types ---\n\nexport const ELEMENT_CONFIG_KEY = Symbol.for('simple-web-component:element-config');\n\nexport interface ElementConfig {\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: any;\n window?: Window;\n}\n\nexport interface ElementMetadata extends Omit<ElementConfig, 'window'> {\n name: string;\n window: Window;\n}\n\nexport const getElementConfig = (target: any): ElementMetadata | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n\nexport const ensureInit = (inst: any) => {\n if (!inst.__swc_initialized) {\n inst._swcId = Math.random().toString(36).substring(2, 11);\n inst._emitHandlers = new Map();\n inst._boundListeners = [];\n inst.__swc_initialized = true;\n\n // const attributeList = findAllQ(inst);\n // attributeList.forEach(meta => {\n // delete (inst as any)[meta.propertyKey];\n // });\n\n const target = inst instanceof Function ? inst : inst.constructor;\n \n // \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n // \u2551 decorator \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2551\n // \u2551 \u2551\n // \u2551 \uC774\uC720: \u2551\n // \u2551 1. TypeScript\uB294 \uCD08\uAE30\uAC12\uC774 \uC788\uB294 \uD544\uB4DC\uB97C constructor\uC5D0\uC11C own property\uB85C \uC0DD\uC131 \u2551\n // \u2551 @attributeHost('id') myId: string = \"default\" \u2192 this.myId = \"default\" \u2551\n // \u2551 \u2551\n // \u2551 2. JavaScript\uC758 property lookup\uC740 own property\uB97C \uBA3C\uC800 \uCC3E\uC74C \u2551\n // \u2551 - this.myId \uC811\uADFC \u2551\n // \u2551 - 1\uC21C\uC704: instance\uC758 own property \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uADF8\uAC83 \uBC18\uD658 \u2551\n // \u2551 - 2\uC21C\uC704: prototype\uC758 getter \uC788\uB098? \u2192 \uC788\uC73C\uBA74 \uD638\uCD9C \u2551\n // \u2551 \u2551\n // \u2551 3. own property\uAC00 \uC788\uC73C\uBA74 prototype\uC758 getter\uB294 \uC808\uB300 \uD638\uCD9C\uB418\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \uB530\uB77C\uC11C getter\uC5D0\uC11C \uC815\uC758\uB41C DOM \uB3D9\uAE30\uD654 \uB85C\uC9C1\uC774 \uC791\uB3D9\uD558\uC9C0 \uC54A\uC74C \u2551\n // \u2551 \u2551\n // \u2551 4. own property\uB97C \uC0AD\uC81C\uD558\uBA74 JavaScript\uAC00 prototype\uC758 getter\uB97C \uCC3E\uAC8C \uB428 \u2551\n // \u2551 \u2192 getter \uD638\uCD9C\uB428 \u2192 DOM \uC18D\uC131 \uAC12 \uB3D9\uAE30\uD654\uB428 \u2551\n // \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n \n // @attribute \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter/setter \uC791\uB3D9\n const attributeList = findAllAttributeMetadata(target);\n attributeList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n \n // @query \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryList = getQueryMetadata(target);\n if (queryList) {\n queryList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n \n // @queryAll \uD544\uB4DC\uC758 own property \uC0AD\uC81C \u2192 getter \uC791\uB3D9\n const queryAllList = getQueryAllMetadata(target);\n if (queryAllList) {\n queryAllList.forEach(meta => {\n delete (inst as any)[meta.propertyKey];\n });\n }\n\n // Call constructor script if present\n const hostSet = SwcUtils.getHostSet(inst);\n inst._executeSwcScript?.('swc-on-constructor', hostSet);\n\n // Call @onInitialize lifecycle methods\n const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);\n if (cMethods) {\n for (const m of cMethods) (inst)._invokeLifecycleMethod(m, hostSet);\n }\n }\n};\n\n// --- Global Event Handling ---\nconst globalDelegatedRoots = new WeakSet<Node>();\n\nconst handleGlobalSwcEvent = async (event: Event) => {\n if ((event as any).__swc_handled) return;\n const path = event.composedPath();\n const type = event.type;\n const attrName = `swc-on-${type}`;\n\n for (const node of path) {\n if (!(node instanceof HTMLElement)) continue;\n const script = node.getAttribute?.(attrName);\n if (script && !getElementConfig(node)) {\n const host: any = SwcUtils.findNearestSwcHost(node);\n if (host && host.isConnected && typeof host.__swc_executeAttributeEvent === 'function') {\n await host.__swc_executeAttributeEvent(node, attrName, script, event);\n (event as any).__swc_handled = true;\n break;\n }\n }\n }\n};\n\nfunction buildEnv(configWindow?: Window) {\n const win: Window = configWindow || ((typeof window !== 'undefined' ? window : undefined) as any);\n const doc: Document = win?.document;\n const builtInTagMap = new Map<any, string>();\n for (const [cls, tag] of HTML_TAG_ENTRIES) {\n if ((win as any)?.[cls]) builtInTagMap.set((win as any)[cls], tag);\n }\n const domHelpers = SwcUtils.getHelperSet(win);\n \n return { win, doc, builtInTagMap, domHelpers };\n}\n\nconst getHandlers = (inst: any) => {\n if (!inst.__swc_attributeEventHandlers) inst.__swc_attributeEventHandlers = new Map();\n return inst.__swc_attributeEventHandlers;\n};\n\nconst setupPrototype = (proto: any) => {\n if (proto.__swc_proto_setup) return;\n proto.__swc_proto_setup = true;\n\n proto._executeSwcScript = function (attrName: string, hostSet: HostSet, extraArgs: Record<string, any> = {}) {\n ensureInit(this);\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = { ...hostSet, ...helpers, ...extraArgs, $el: this, $root: this.getRootNode() };\n FunctionUtils.execute({ script, context: this, args });\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName}:`, e);\n }\n }\n };\n\n proto._resolveWindow = function (localConfig?: ElementConfig): Window {\n ensureInit(this);\n if (localConfig?.window) return localConfig.window;\n const ancestors = SwcUtils.findAllSwcHosts(this as any);\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const aConf = getElementConfig(ancestors[i]);\n if (aConf?.window) return aConf.window;\n }\n return (typeof window !== 'undefined' ? window : undefined) as Window;\n };\n\n proto._invokeLifecycleMethod = function (methodName: string | symbol, hostSet: HostSet, extraArgs: any[] = []) {\n ensureInit(this);\n if (typeof (this as any)[methodName] !== 'function') return;\n const app = hostSet.$appHost?.simpleApplication;\n\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: InjectSituationType.HOST_SET, data: hostSet }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOST, data: hostSet.$appHost }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOSTS, data: hostSet.$appHosts }), new SituationTypeContainer({ situationType: InjectSituationType.HOST, data: hostSet.$host }), new SituationTypeContainer({ situationType: InjectSituationType.HOSTS, data: hostSet.$hosts }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_HOST, data: hostSet.$firstHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_HOST, data: hostSet.$lastHost }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_APP_HOST, data: hostSet.$firstAppHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_APP_HOST, data: hostSet.$lastAppHost })]);\n otherStorage.set(SituationTypeContainers, situations);\n\n return app.simstanceManager.executeBindParameterSimPromise(\n {\n target: this,\n targetKey: methodName,\n inputParameters: extraArgs\n },\n otherStorage\n );\n } else {\n return (this as any)[methodName](...extraArgs);\n }\n };\n\n proto._bindAttributeEvent = function (el: HTMLElement, attrName: string, script: string, eventName?: string) {\n ensureInit(this);\n if (!eventName) {\n if (!attrName.startsWith('swc-on-')) return;\n eventName = attrName.substring(7);\n }\n const elHandlers = getHandlers(this);\n let handlers = elHandlers.get(el);\n if (!handlers) {\n handlers = new Map();\n elHandlers.set(el, handlers);\n }\n\n const oldHandler = handlers.get(attrName);\n if (oldHandler) el.removeEventListener(eventName, oldHandler);\n\n const handler = async (event: any) => {\n const parent = SwcUtils.findNearestSwcHost(el);\n const hostSet = SwcUtils.getHostSet(parent || el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const helpers = SwcUtils.getHelperSet(currentWin);\n const args = {\n event,\n $data: (event as CustomEvent).detail,\n ...hostSet,\n ...helpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({ script, context: el, args });\n };\n\n el.addEventListener(eventName, handler);\n handlers.set(attrName, handler);\n };\n\n proto.__swc_executeAttributeEvent = async function (el: HTMLElement, attrName: string, script: string, event: Event) {\n ensureInit(this);\n\n const parent = SwcUtils.findNearestSwcHost(el);\n const hostSet = SwcUtils.getHostSet(parent || el);\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n const currentHelpers = SwcUtils.getHelperSet(currentWin);\n const detail = (event as CustomEvent).detail;\n const args = {\n event,\n $event: event,\n $data: detail,\n $detail: detail,\n ...hostSet,\n ...currentHelpers,\n $el: el,\n $root: this.getRootNode()\n };\n await FunctionUtils.execute({ script, context: el, args });\n };\n};\n\nexport const elementDefine =\n (name: string, config: Partial<ElementConfig> = {}): ClassDecorator =>\n (constructor: any) => {\n const { win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS } = buildEnv(config.window);\n const metadata: ElementMetadata = { ...config, name, window: win };\n\n if (!metadata.window) {\n throw new Error('window is required');\n }\n\n let extendsTagName = metadata.extends;\n if (!extendsTagName) {\n let proto = constructor;\n const BaseHTMLElement = (win as any).HTMLElement;\n while (proto && proto !== BaseHTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n metadata.extends = extendsTagName;\n }\n\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor) || [];\n const emitHostCustomEventList = emitCustomEventList.filter(meta => meta.selector === ':host' || meta.selector === '');\n const addEventListenerList = getAddEventListenerMetadata(constructor) || [];\n const attrChangeMap = findAllAttributeChangedMetadata(constructor);\n const attributeList = findAllAttributeMetadata(constructor);\n const applyAttributeMap = findAllAttributeApplyMetadata(constructor);\n\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-connected', 'swc-on-disconnected', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const swcOnEvents = DOM_EVENT_NAMES.map(e => `swc-on-${e}`);\n\n // Collect all observed attributes from all decorators\n const attributeApplyNames = Array.from(applyAttributeMap.values()).map(it => it.options.name).filter(Boolean) as string[];\n // const attributeListNames = attributeList.map(it => it.options.name || String(it.propertyKey));\n const hostAttributes = attributeList.filter(it => it.selector === ':host').map(it=>it.options.name || String(it.propertyKey));\n\n const mergedObservedAttributes = [...new Set([\n ...(metadata.observedAttributes ?? []),\n ...attrChangeMap.keys(),\n ...attributeApplyNames,\n ...hostAttributes,\n ...emitHostCustomEventList.map(it => (it.options as any).attributeName).filter(Boolean),\n ...swcLifecycleAttributes,\n ...swcOnEvents\n ])];\n\n const connectedInnerHtmlList = getOnConnectedInnerHtmlMetadata(constructor) || [];\n\n const proto = constructor.prototype;\n setupPrototype(proto);\n\n const originalConnected = proto.connectedCallback;\n proto.connectedCallback = function () {\n ensureInit(this);\n\n const hostSet = SwcUtils.getHostSet(this as any);\n const appHost = hostSet.$appHost;\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow(conf);\n\n if (connectedInnerHtmlList.some(it => it.options.useShadow === true) && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n\n (this as any)._executeSwcScript('swc-on-before-connected', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if (connectedInnerHtmlList.length > 0) {\n let sContent = '',\n lContent = '';\n for (const meta of connectedInnerHtmlList) {\n const res = (this as any)[meta.propertyKey]();\n if (res !== undefined) {\n if (meta.options.useShadow) sContent += res;\n else lContent += res;\n }\n }\n if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;\n if (lContent) this.innerHTML = lContent;\n }\n\n const root = this.getRootNode();\n if (!globalDelegatedRoots.has(root)) {\n DOM_EVENT_NAMES.forEach(type => {\n root.addEventListener(type, handleGlobalSwcEvent);\n });\n globalDelegatedRoots.add(root);\n }\n\n // Separate delegate and non-delegate listeners\n const delegateListeners: typeof addEventListenerList = [];\n const nonDelegateListeners: typeof addEventListenerList = [];\n \n addEventListenerList.forEach(meta => {\n if (meta.options.delegate && meta.selector !== ':window' && meta.selector !== ':document' && meta.selector !== ':parentHost' && meta.selector !== ':appHost' && meta.selector !== ':firstHost' && meta.selector !== ':lastHost' && meta.selector !== ':firstAppHost' && meta.selector !== ':lastAppHost' && meta.selector !== ':hosts' && meta.selector !== ':appHosts' && meta.selector !== ':host' && meta.selector !== '') {\n delegateListeners.push(meta);\n } else {\n nonDelegateListeners.push(meta);\n }\n });\n\n const delegatesByTypeAndRoot = new Map<string, any[]>();\n delegateListeners.forEach(meta => {\n const r = meta.options.root || 'auto';\n const rootKey = `${meta.type}:${r}`;\n if (!delegatesByTypeAndRoot.has(rootKey)) {\n delegatesByTypeAndRoot.set(rootKey, []);\n }\n delegatesByTypeAndRoot.get(rootKey)!.push(meta);\n });\n\n delegatesByTypeAndRoot.forEach((metaList, typeRootKey) => {\n const [type, rStr] = typeRootKey.split(':');\n const r = rStr === 'auto' ? 'auto' : rStr;\n const opts = { capture: metaList[0].options.capture, once: metaList[0].options.once, passive: metaList[0].options.passive };\n \n const bindRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') bindRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') bindRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) bindRoots.push(this.shadowRoot);\n else if (r === 'all') {\n bindRoots.push(this as any);\n if (this.shadowRoot) bindRoots.push(this.shadowRoot);\n }\n\n bindRoots.forEach(br => {\n const sortedMetaList = [...metaList].sort((a, b) => {\n const aStop = a.options.stopPropagation ? 1 : 0;\n const bStop = b.options.stopPropagation ? 1 : 0;\n return bStop - aStop;\n });\n \n const unifiedHandler = async (event: Event) => {\n for (const meta of sortedMetaList) {\n const { selector, options } = meta;\n const matchedEl = (event.target as HTMLElement).closest(selector);\n if (matchedEl && (br as any).contains(matchedEl)) {\n // Apply filter if specified\n if (options.filter) {\n const helper = SwcUtils.getHelperAndHostSet(currentWin, matchedEl);\n if (!options.filter(event, helper)) {\n continue; // Skip this listener if filter returns false\n }\n }\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = { event, ...currentHostSet, $el: matchedEl, $root: br };\n await (this as any)[meta.propertyKey](event, currentHostSet, matchedEl, args);\n if ((event as any).cancelBubble) break;\n }\n }\n };\n br.addEventListener(type, unifiedHandler, opts);\n (this as any)._boundListeners.push({ target: br, type, handler: unifiedHandler, options: opts });\n });\n });\n\n nonDelegateListeners.forEach(meta => {\n const { selector, type, options } = meta;\n const opts = { capture: options.capture, once: options.once, passive: options.passive };\n const bindTargets: EventTarget[] = [];\n const r = options.root || 'auto';\n const applyRootOption = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n bindTargets.push(target.shadowRoot || target);\n } else {\n if (r === 'light' || r === 'all') bindTargets.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) bindTargets.push(target.shadowRoot);\n }\n };\n\n if (selector === ':window') bindTargets.push(currentWin);\n else if (selector === ':document') bindTargets.push(currentWin.document);\n else if (selector === ':parentHost') applyRootOption(hostSet.$parentHost);\n else if (selector === ':appHost') applyRootOption(hostSet.$appHost);\n else if (selector === ':firstHost') applyRootOption(hostSet.$firstHost);\n else if (selector === ':lastHost') applyRootOption(hostSet.$lastHost);\n else if (selector === ':firstAppHost') applyRootOption(hostSet.$firstAppHost);\n else if (selector === ':lastAppHost') applyRootOption(hostSet.$lastAppHost);\n else if (selector === ':hosts') hostSet.$hosts.forEach(applyRootOption);\n else if (selector === ':appHosts') hostSet.$appHosts.forEach(applyRootOption);\n else if (selector === ':host' || !selector) applyRootOption(this);\n else {\n const searchRoots: (HTMLElement | ShadowRoot)[] = [];\n if (r === 'auto') searchRoots.push(this.shadowRoot || (this as any));\n else if (r === 'light') searchRoots.push(this as any);\n else if (r === 'shadow' && this.shadowRoot) searchRoots.push(this.shadowRoot);\n else if (r === 'all') {\n searchRoots.push(this as any);\n if (this.shadowRoot) searchRoots.push(this.shadowRoot);\n }\n\n searchRoots.forEach(sr => {\n sr.querySelectorAll(selector).forEach(el => bindTargets.push(el));\n });\n }\n\n bindTargets.forEach(t => {\n const handler = async (event: Event) => {\n // Apply filter if specified\n if (options.filter) {\n const helper = SwcUtils.getHelperAndHostSet(currentWin, t as HTMLElement);\n if (!options.filter(event, helper)) {\n return; // Skip if filter returns false\n }\n }\n if (options.stopPropagation) event.stopPropagation();\n if (options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (options.preventDefault) event.preventDefault();\n const currentHostSet = SwcUtils.getHostSet(this as any);\n const args = { event, ...currentHostSet, $el: t, $root: t };\n await (this as any)[meta.propertyKey](event, currentHostSet, args);\n };\n t.addEventListener(type, handler, opts);\n if (options.removeOnDisconnected === true || t === currentWin || t === currentWin.document) {\n (this as any)._boundListeners.push({ target: t, type, handler, options: opts });\n }\n });\n });\n\n if (originalConnected) originalConnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_CONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-connected', hostSet);\n (this as any)._executeSwcScript('swc-on-after-connected', hostSet);\n (this as any).__swc_connected = true;\n\n // Register to appHost LAST when all lifecycle completed\n if (appHost && typeof (appHost as any)._connected === 'function') {\n (appHost as any)._connected(this);\n }\n };\n\n const originalDisconnected = proto.disconnectedCallback;\n proto.disconnectedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-disconnected', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if ((this as any)._boundListeners) {\n (this as any)._boundListeners.forEach((l: any) => l.target.removeEventListener(l.type, l.handler, l.options));\n (this as any)._boundListeners = [];\n }\n\n if (originalDisconnected) originalDisconnected.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-disconnected', hostSet);\n (this as any)._executeSwcScript('swc-on-after-disconnected', hostSet);\n (this as any).__swc_connected = false;\n \n // Remove from appHost LAST when disconnected\n const appHost = hostSet.$appHost;\n if (appHost && typeof (appHost as any)._disconnected === 'function') {\n (appHost as any)._disconnected(this);\n }\n };\n\n const originalAdopted = proto.adoptedCallback;\n proto.adoptedCallback = function () {\n const hostSet = SwcUtils.getHostSet(this as any);\n (this as any)._executeSwcScript('swc-on-before-adopted', hostSet);\n const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n if (bMethods) {\n for (const m of bMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n\n if (originalAdopted) originalAdopted.apply(this);\n\n const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);\n if (aMethods) {\n for (const m of aMethods) (this as any)._invokeLifecycleMethod(m, hostSet);\n }\n (this as any)._executeSwcScript('swc-on-adopted', hostSet);\n (this as any)._executeSwcScript('swc-on-after-adopted', hostSet);\n };\n\n const originalAttributeChanged = proto.attributeChangedCallback;\n proto.attributeChangedCallback = function (name: string, old: string | null, newVal: string | null) {\n if (originalAttributeChanged) originalAttributeChanged.apply(this, [name, old, newVal]);\n\n const hSet = SwcUtils.getHostSet(this as any);\n\n if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {\n if (newVal !== null) {\n const eventName = name.substring(7);\n (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);\n }\n }\n\n const hostCustomEventMeta = emitHostCustomEventList.find(it => (it.options as any).attributeName === name);\n if (hostCustomEventMeta && newVal !== null) {\n (this as any)._bindAttributeEvent(this as any, name, newVal, hostCustomEventMeta.type);\n }\n\n const mKeys = attrChangeMap.get(name);\n if (mKeys && Array.isArray(mKeys)) {\n for (const key of mKeys) (this as any)[key](newVal, old, name, hSet);\n }\n };\n\n Object.defineProperty(constructor, 'observedAttributes', {\n get: () => mergedObservedAttributes,\n configurable: true\n });\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, metadata, constructor);\n const registry = metadata.customElementRegistry || (win as any)?.customElements;\n if (registry && !registry.get(metadata.name)) {\n registry.define(metadata.name, constructor as any, metadata.extends ? { extends: metadata.extends } : undefined);\n }\n return constructor;\n };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["proto", "name"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/index.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './addEventListener';\nexport * from './attribute';\nexport * from './elementDefine';\nexport * from './changedAttributeHost';\nexport * from './emitCustomEvent';\nexport * from './applyNode';\nexport * from './lifecycles';\nexport * from './query';\nexport * from './queryAll';\nexport * from './applyClass';\nexport * from './applyStyle';\nexport * from './applyAttribute';\n"],
|
|
5
|
-
"mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
4
|
+
"sourcesContent": ["export * from './addEventListener';\nexport * from './attribute';\nexport * from './elementDefine';\nexport * from './changedAttributeHost';\nexport * from './emitCustomEvent';\nexport * from './applyNode';\nexport * from './lifecycles';\nexport * from './query';\nexport * from './queryAll';\nexport * from './applyClass';\nexport * from './applyStyle';\nexport * from './applyAttribute';\nexport * from './subscribeSwcAppRouteChange';\n"],
|
|
5
|
+
"mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReflectUtils } from "@dooboostore/core";
|
|
2
|
-
const
|
|
2
|
+
const ON_INITIALIZE_METADATA_KEY = Symbol.for("simple-web-component:on-constructor");
|
|
3
3
|
const ON_BEFORE_CONNECTED_METADATA_KEY = Symbol.for("simple-web-component:on-before-connected");
|
|
4
4
|
const ON_AFTER_CONNECTED_METADATA_KEY = Symbol.for("simple-web-component:on-after-connected");
|
|
5
5
|
const ON_BEFORE_DISCONNECTED_METADATA_KEY = Symbol.for("simple-web-component:on-before-disconnected");
|
|
@@ -20,7 +20,7 @@ function createLifecycleDecorator(metadataKey) {
|
|
|
20
20
|
list.push(propertyKey);
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
const
|
|
23
|
+
const onInitialize = createLifecycleDecorator(ON_INITIALIZE_METADATA_KEY);
|
|
24
24
|
const onBeforeConnected = createLifecycleDecorator(ON_BEFORE_CONNECTED_METADATA_KEY);
|
|
25
25
|
const onAfterConnected = createLifecycleDecorator(ON_AFTER_CONNECTED_METADATA_KEY);
|
|
26
26
|
const onConnected = onAfterConnected;
|
|
@@ -66,7 +66,7 @@ export {
|
|
|
66
66
|
ON_BEFORE_ADOPTED_METADATA_KEY,
|
|
67
67
|
ON_BEFORE_CONNECTED_METADATA_KEY,
|
|
68
68
|
ON_BEFORE_DISCONNECTED_METADATA_KEY,
|
|
69
|
-
|
|
69
|
+
ON_INITIALIZE_METADATA_KEY,
|
|
70
70
|
findAllLifecycleMetadata,
|
|
71
71
|
getOnConnectedInnerHtmlMetadata,
|
|
72
72
|
onAddEventListener,
|
|
@@ -79,7 +79,7 @@ export {
|
|
|
79
79
|
onBeforeDisconnected,
|
|
80
80
|
onConnected,
|
|
81
81
|
onConnectedInnerHtml,
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
onDisconnected,
|
|
83
|
+
onInitialize
|
|
84
84
|
};
|
|
85
85
|
//# sourceMappingURL=lifecycles.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/lifecycles.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\n\nexport const
|
|
5
|
-
"mappings": "AAAA,SAAS,oBAAoB;AAEtB,MAAM,
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\n\nexport const ON_INITIALIZE_METADATA_KEY = Symbol.for('simple-web-component:on-constructor');\nexport const ON_BEFORE_CONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-before-connected');\nexport const ON_AFTER_CONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-after-connected');\nexport const ON_BEFORE_DISCONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-before-disconnected');\nexport const ON_AFTER_DISCONNECTED_METADATA_KEY = Symbol.for('simple-web-component:on-after-disconnected');\nexport const ON_BEFORE_ADOPTED_METADATA_KEY = Symbol.for('simple-web-component:on-before-adopted');\nexport const ON_AFTER_ADOPTED_METADATA_KEY = Symbol.for('simple-web-component:on-after-adopted');\nexport const ON_ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:on-add-event-listener');\nexport const INNER_HTML_METADATA_KEY = Symbol.for('simple-web-component:inner-html');\n\nexport const ATTRIBUTE_CHANGED_WILDCARD = '*';\n\nexport interface InnerHtmlOptions {\n useShadow?: boolean;\n}\n\nexport interface InnerHtmlMetadata {\n propertyKey: string | symbol;\n options: InnerHtmlOptions;\n}\n\nfunction createLifecycleDecorator(metadataKey: symbol): MethodDecorator {\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getOwnMetadata(metadataKey, constructor) as (string | symbol)[];\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(metadataKey, list, constructor);\n }\n list.push(propertyKey);\n };\n}\n\nexport const onInitialize = createLifecycleDecorator(ON_INITIALIZE_METADATA_KEY);\nexport const onBeforeConnected = createLifecycleDecorator(ON_BEFORE_CONNECTED_METADATA_KEY);\nexport const onAfterConnected = createLifecycleDecorator(ON_AFTER_CONNECTED_METADATA_KEY);\nexport const onConnected = onAfterConnected;\n\nexport const onBeforeDisconnected = createLifecycleDecorator(ON_BEFORE_DISCONNECTED_METADATA_KEY);\nexport const onAfterDisconnected = createLifecycleDecorator(ON_AFTER_DISCONNECTED_METADATA_KEY);\nexport const onDisconnected = onAfterDisconnected;\n\nexport const onBeforeAdopted = createLifecycleDecorator(ON_BEFORE_ADOPTED_METADATA_KEY);\nexport const onAfterAdopted = createLifecycleDecorator(ON_AFTER_ADOPTED_METADATA_KEY);\nexport const onAdopted = onAfterAdopted;\n\nexport const onAddEventListener = createLifecycleDecorator(ON_ADD_EVENT_LISTENER_METADATA_KEY);\n\n/**\n * @onConnectedInnerHtml decorator to define the initial HTML content when connected.\n */\nexport function onConnectedInnerHtml(options: InnerHtmlOptions): MethodDecorator;\nexport function onConnectedInnerHtml(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onConnectedInnerHtml(arg1?: InnerHtmlOptions | Object, arg2?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n const decorator = (options: InnerHtmlOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getMetadata<InnerHtmlMetadata[]>(INNER_HTML_METADATA_KEY, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(INNER_HTML_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n };\n\n if (arg2) {\n return decorator({}, arg1!, arg2);\n }\n\n return (target: Object, propertyKey: string | symbol) => {\n decorator((arg1 as InnerHtmlOptions) || {}, target, propertyKey);\n };\n}\n\n/**\n * \uD504\uB85C\uD1A0\uD0C0\uC785 \uCCB4\uC778\uC744 \uC21C\uD68C\uD558\uBA70 \uBAA8\uB4E0 \uB77C\uC774\uD504\uC0AC\uC774\uD074 \uBA54\uC11C\uB4DC\uB97C \uC218\uC9D1\uD569\uB2C8\uB2E4.\n */\nexport const findAllLifecycleMetadata = <T = (string | symbol)[]>(target: any, metadataKey: symbol): T | undefined => {\n const results = ReflectUtils.findAllMetadataFlatten(metadataKey, target);\n return results.length > 0 ? (results as unknown as T) : undefined;\n};\n\nexport const getOnConnectedInnerHtmlMetadata = (target: any): InnerHtmlMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(INNER_HTML_METADATA_KEY, constructor);\n};\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,oBAAoB;AAEtB,MAAM,6BAA6B,OAAO,IAAI,qCAAqC;AACnF,MAAM,mCAAmC,OAAO,IAAI,0CAA0C;AAC9F,MAAM,kCAAkC,OAAO,IAAI,yCAAyC;AAC5F,MAAM,sCAAsC,OAAO,IAAI,6CAA6C;AACpG,MAAM,qCAAqC,OAAO,IAAI,4CAA4C;AAClG,MAAM,iCAAiC,OAAO,IAAI,wCAAwC;AAC1F,MAAM,gCAAgC,OAAO,IAAI,uCAAuC;AACxF,MAAM,qCAAqC,OAAO,IAAI,4CAA4C;AAClG,MAAM,0BAA0B,OAAO,IAAI,iCAAiC;AAE5E,MAAM,6BAA6B;AAW1C,SAAS,yBAAyB,aAAsC;AACtE,SAAO,CAAC,QAAgB,gBAAiC;AACvD,UAAM,cAAc,OAAO;AAC3B,QAAI,OAAO,aAAa,eAAe,aAAa,WAAW;AAC/D,QAAI,CAAC,MAAM;AACT,aAAO,CAAC;AACR,mBAAa,eAAe,aAAa,MAAM,WAAW;AAAA,IAC5D;AACA,SAAK,KAAK,WAAW;AAAA,EACvB;AACF;AAEO,MAAM,eAAe,yBAAyB,0BAA0B;AACxE,MAAM,oBAAoB,yBAAyB,gCAAgC;AACnF,MAAM,mBAAmB,yBAAyB,+BAA+B;AACjF,MAAM,cAAc;AAEpB,MAAM,uBAAuB,yBAAyB,mCAAmC;AACzF,MAAM,sBAAsB,yBAAyB,kCAAkC;AACvF,MAAM,iBAAiB;AAEvB,MAAM,kBAAkB,yBAAyB,8BAA8B;AAC/E,MAAM,iBAAiB,yBAAyB,6BAA6B;AAC7E,MAAM,YAAY;AAElB,MAAM,qBAAqB,yBAAyB,kCAAkC;AAOtF,SAAS,qBAAqB,MAAkC,MAAwB,MAAmD;AAChJ,QAAM,YAAY,CAAC,SAA2B,QAAgB,gBAAiC;AAC7F,UAAM,cAAc,OAAO;AAC3B,QAAI,OAAO,aAAa,YAAiC,yBAAyB,WAAW;AAC7F,QAAI,CAAC,MAAM;AACT,aAAO,CAAC;AACR,mBAAa,eAAe,yBAAyB,MAAM,WAAW;AAAA,IACxE;AACA,SAAK,KAAK,EAAE,aAAa,QAAQ,CAAC;AAAA,EACpC;AAEA,MAAI,MAAM;AACR,WAAO,UAAU,CAAC,GAAG,MAAO,IAAI;AAAA,EAClC;AAEA,SAAO,CAAC,QAAgB,gBAAiC;AACvD,cAAW,QAA6B,CAAC,GAAG,QAAQ,WAAW;AAAA,EACjE;AACF;AAKO,MAAM,2BAA2B,CAA0B,QAAa,gBAAuC;AACpH,QAAM,UAAU,aAAa,uBAAuB,aAAa,MAAM;AACvE,SAAO,QAAQ,SAAS,IAAK,UAA2B;AAC1D;AAEO,MAAM,kCAAkC,CAAC,WAAiD;AAC/F,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,yBAAyB,WAAW;AACtE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|