@dooboostore/simple-web-component 1.0.40 → 1.0.42
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 +170 -1
- package/dist/cjs/decorators/elementDefine.js +9 -23
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/lifecycles.js +78 -21
- package/dist/cjs/decorators/lifecycles.js.map +2 -2
- package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js +12 -4
- package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
- package/dist/cjs/elements/SwcAppMixin.js +9 -7
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +9 -23
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/lifecycles.js +78 -21
- package/dist/esm/decorators/lifecycles.js.map +2 -2
- package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js +12 -4
- package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js +9 -7
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +84 -56
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +2 -2
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/lifecycles.d.ts +25 -11
- package/dist/types/decorators/lifecycles.d.ts.map +1 -1
- package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts +3 -1
- package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +84 -56
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +2 -2
- package/package.json +7 -7
- package/src/decorators/elementDefine.ts +9 -23
- package/src/decorators/lifecycles.ts +120 -26
- package/src/decorators/subscribeSwcAppRouteChangeWhileConnected.ts +20 -6
- package/src/elements/SwcAppMixin.ts +13 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/elements/SwcAppMixin.ts"],
|
|
4
|
-
"sourcesContent": ["import {SwcAppInterface, SwcAppMessage} from \"../types\";\nimport {findAllLifecycleMetadata, getSubscribeSwcAppMessageWhileConnectedMetadata, getSubscribeSwcAppRouteChangeWhileConnectedMetadata, ON_CONNECTED_SWC_APP_METADATA_KEY} from \"../decorators\";\nimport {SwcAppEngine, SwcAttributeConfigType, SwcConfigType} from \"../SwcAppEngine\";\nimport {debounceTimeIntervalLock, FunctionUtils, Subscription} from \"@dooboostore/core\";\nimport {RouterEventType} from \"@dooboostore/core-web\";\nimport {SwcUtils} from \"../utils/Utils\";\n\nexport const isSSR = (i: HTMLElement) => {\n return i.hasAttribute('swc-use-ssr');\n}\nexport const setSSRAttribute = (i: HTMLElement) => {\n i.setAttribute('swc-use-ssr', (i as any)._swcId ?? '');\n}\nexport const removeSSRAttribute = (i: HTMLElement) => {\n i.removeAttribute('swc-use-ssr');\n}\n\n/**\n * SwcAppMixin: SwcApp \uAE30\uB2A5\uC744 \uBAA8\uB4E0 HTMLElement\uC5D0 \uCD94\uAC00\uD560 \uC218 \uC788\uB294 Mixin\n * \n * \uC0AC\uC6A9 \uC608:\n * @elementDefine('custom-app', { window: w })\n * class CustomApp extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n * // \uCD94\uAC00 \uAE30\uB2A5 \uAD6C\uD604\n * }\n */\nexport function SwcAppMixin<T extends { new(...args: any[]): HTMLElement }>(Base: T) {\n return class SwcAppMixinClass extends Base implements SwcAppInterface {\n __swc_engine = new SwcAppEngine(this as any);\n _swc_connected_instance = new Set<any>();\n _routerSubscription?: Subscription;\n _lastRouterEvent?: RouterEventType;\n _routeChangeInvocations = 0;\n _connectedInvocations = 0;\n\n _childrenRouteChangedInterval: any;\n _childrenConnectedDoneInterval: any;\n\n /**\n * Safari is \uC18D\uC131 \uCC98\uB9AC\n * Safari polyfill\uC5D0\uC11C\uB294 \uC790\uC2DD\uBD80\uD130 \uB9CC\uB4E4\uC5B4\uC9C0\uACE0 \uBD80\uBAA8\uAC00 \uB9CC\uB4E4\uC5B4\uC9C0\uBBC0\uB85C\n * \uBD80\uBAA8\uAC00 \uC790\uC2DD\uB4E4\uC744 \uAC15\uC81C\uB85C \uB4F1\uB85D\uD574\uC8FC\uB294 \uD615\uD0DC\uB85C \uCC98\uB9AC\n */\n _connected_safari_and_standby = [];\n\n constructor(...args: any[]) {\n super(...args);\n console.log('[SWC-APP-MIXIN] constructor')\n }\n\n get simpleApplication() {\n return this.__swc_engine.simpleApplication;\n }\n\n get config() {\n return this.__swc_engine?.config;\n }\n\n get router() {\n return this.__swc_engine?.router;\n }\n\n async _invokeRouteChangeSubscribers(instance: HTMLElement, re: RouterEventType) {\n if (instance.isConnected === false) return;\n\n this._routeChangeInvocations++;\n\n if (this._childrenRouteChangedInterval) {\n this.config.window.clearInterval(this._childrenRouteChangedInterval);\n }\n const intervalConfig = {setInterval: this.config.window.setInterval.bind(this.config.window), clearInterval: this.config.window.clearInterval.bind(this.config.window)};\n this._childrenRouteChangedInterval = debounceTimeIntervalLock(\n () => this._routeChangeInvocations === 0,\n () => {\n this._childrenRouteChangedInterval = null;\n this.config.onChildrenRouteChanged?.(re, this)\n },\n this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,\n intervalConfig\n );\n\n try {\n const routeChangeSubscribers = getSubscribeSwcAppRouteChangeWhileConnectedMetadata(instance);\n if (routeChangeSubscribers && Array.isArray(routeChangeSubscribers)) {\n console.log('[SWC-MIXIN] Route change subscribers found')\n const ps = routeChangeSubscribers.map(async metadata => {\n const methodName = metadata.propertyKey;\n let pathPattern = metadata.options?.path as any;\n const filter = metadata.options?.filter;\n\n if (typeof pathPattern === 'function') {\n pathPattern = (pathPattern as Function)(instance);\n }\n\n let pathMatched = false;\n let pathData: any = null;\n\n if (!pathPattern) {\n pathMatched = true;\n pathData = {};\n } else if (Array.isArray(pathPattern)) {\n for (const pattern of pathPattern) {\n const data = SwcUtils.parsePathPattern(pattern, re.path || '/');\n if (data !== null) {\n pathMatched = true;\n pathData = data;\n break;\n }\n }\n } else {\n pathData = SwcUtils.parsePathPattern(pathPattern, re.path || '/');\n pathMatched = pathData !== null;\n }\n\n const hostSet = SwcUtils.getHelperAndHostSet(this.config.window, this);\n const filterPassed = !filter || filter(this.router!, {helper:hostSet, currentThis:instance});\n\n if (pathMatched && filterPassed && instance[methodName]) {\n await instance[methodName]({...re, pathData: pathData});\n }\n });\n await Promise.allSettled(ps);\n }\n } finally {\n if (this.config?.ssr) {\n setSSRAttribute(instance);\n } else {\n removeSSRAttribute(instance);\n }\n this._routeChangeInvocations = Math.max(0, this._routeChangeInvocations - 1);\n }\n }\n\n async _connected(instance: HTMLElement, option?: { noIncrements: boolean }) {\n if (instance) {\n if (!this.simpleApplication && !this.config) {\n this._connected_safari_and_standby.push(instance);\n return;\n }\n\n this.config.onConnectedChildBefore?.(instance);\n if (!option?.noIncrements) {\n this._connectedInvocations++;\n }\n this._swc_connected_instance.add(instance);\n\n const connectedSwcAppCallBacks = findAllLifecycleMetadata(instance, ON_CONNECTED_SWC_APP_METADATA_KEY) ?? [];\n for (let connectedSwcAppCallBack of connectedSwcAppCallBacks) {\n await (instance as any)?._invokeLifecycleMethod?.(connectedSwcAppCallBack);\n }\n\n if (this._childrenConnectedDoneInterval) {\n this.config.window.clearInterval(this._childrenConnectedDoneInterval);\n }\n const intervalConfig = {setInterval: this.config.window.setInterval.bind(this.config.window), clearInterval: this.config.window.clearInterval.bind(this.config.window)};\n this._childrenConnectedDoneInterval = debounceTimeIntervalLock(\n () => this._connectedInvocations === 0,\n () => {\n this._childrenConnectedDoneInterval = null;\n this.config.onChildrenConnectedDone?.(this)\n },\n this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,\n intervalConfig\n );\n\n if (this.simpleApplication) {\n try {\n if (this.router && this._lastRouterEvent) {\n await this._invokeRouteChangeSubscribers(instance, this._lastRouterEvent!);\n }\n } catch (e) {\n throw e;\n }\n }\n\n if (this.config?.ssr) {\n setSSRAttribute(instance);\n } else {\n removeSSRAttribute(instance);\n }\n }\n\n this.config.onConnectedChildAfter?.(instance);\n return this;\n }\n\n async _connectedDone(instance: any) {\n try {\n // \uB0B4\uBD80 \uC5F0\uACB0 \uCC98\uB9AC \uB85C\uC9C1\n } finally {\n this._connectedInvocations = Math.max(0, this._connectedInvocations - 1);\n }\n }\n\n _disconnected(instance: any) {\n if (instance) {\n this._swc_connected_instance.delete(instance);\n this.config?.onDisconnectedChildAfter?.(instance);\n }\n }\n\n async _handleRouteChange(route: RouterEventType) {\n this._lastRouterEvent = route;\n const swcConnectedInstance = Array.from(this._swc_connected_instance);\n const ps = swcConnectedInstance.map((instance: any) => this._invokeRouteChangeSubscribers(instance, route));\n await Promise.allSettled(ps);\n }\n\n async connect(config?: SwcAttributeConfigType) {\n console.log('[SWC-MIXIN] connect')\n const swcConfig = {\n routeType: 'element',\n window: config?.window,\n ...config\n } as SwcConfigType;\n\n await this.__swc_engine.connect(swcConfig);\n\n // Safari is \uC18D\uC131 \uCC98\uB9AC\n this._connected_safari_and_standby.forEach((instance: any) => {\n this._connected(instance, {noIncrements: true});\n });\n\n // \uB77C\uC6B0\uD130 \uBCC0\uACBD \uAD6C\uB3C5\n if (!this._routerSubscription && this.router) {\n const config = this.__swc_engine.config;\n\n this._routerSubscription = this.router.observable.subscribe(async (route: RouterEventType) => {\n console.log('[SWC-MIXIN] Router event received:', route.triggerPoint);\n if (route.triggerPoint === 'end') {\n await this._handleRouteChange(route);\n }\n });\n\n if (config?.path) {\n console.log('[DEBUG] Navigating to initial path:', config.path);\n }\n }\n }\n\n connectedCallback() {\n // \uBD80\uBAA8 \uD074\uB798\uC2A4\uC758 connectedCallback \uD638\uCD9C\n // @ts-ignore\n super.connectedCallback?.();\n\n const configStr = this.getAttribute('swc-get-application-config');\n const win = this.ownerDocument?.defaultView || window;\n if (configStr && win) {\n try {\n const userConfig = FunctionUtils.executeReturn({\n script: configStr,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n this.connect(userConfig);\n } catch (e) {\n console.error('[SWC-MIXIN] Script execution failed:', e);\n }\n }\n\n this._connected(this);\n this.__swc_engine?.config?.onConnected?.(this);\n this._connectedDone(this);\n }\n\n disconnectedCallback() {\n // \uBD80\uBAA8 \uD074\uB798\uC2A4\uC758 disconnectedCallback \uD638\uCD9C\n // @ts-ignore\n super.disconnectedCallback?.();\n \n this._routerSubscription?.unsubscribe();\n this._routerSubscription = undefined;\n this._lastRouterEvent = undefined;\n this.__swc_engine.disconnect();\n this.__swc_engine?.config?.onDisconnected?.(this);\n this._disconnected(this);\n }\n\n async routing(path: string) {\n await this.router?.go(path);\n }\n\n back(): void {\n this.router?.back();\n }\n\n forward(): void {\n this.router?.forward();\n }\n\n reload(): void {\n this.router?.reload();\n }\n\n publishMessage(message: SwcAppMessage): void {\n this._swc_connected_instance.forEach((instance: any) => {\n this._invokeMessageSubscribers(instance, message);\n });\n }\n\n _invokeMessageSubscribers(instance: any, message: SwcAppMessage) {\n const messageSubscribers = getSubscribeSwcAppMessageWhileConnectedMetadata(instance);\n if (messageSubscribers && Array.isArray(messageSubscribers)) {\n messageSubscribers.forEach(metadata => {\n const methodName = metadata.propertyKey;\n const messageType = metadata.messageType;\n const filter = metadata.filter;\n\n let typeMatched = false;\n if (!messageType) {\n typeMatched = true;\n } else if (message.type === messageType) {\n typeMatched = true;\n }\n\n let filterMatched = true;\n if (filter && typeMatched) {\n filterMatched = filter(message, instance);\n }\n\n if (typeMatched && filterMatched && typeof instance[methodName] === 'function') {\n instance[methodName](message);\n }\n });\n }\n }\n };\n}\n"],
|
|
5
|
-
"mappings": ";;;AACA,SAAQ,0BAA0B,iDAAiD,qDAAqD,yCAAwC;AAChL,SAAQ,oBAA0D;AAClE,SAAQ,0BAA0B,qBAAkC;AAEpE,SAAQ,gBAAe;AAEhB,MAAM,QAAQ,CAAC,MAAmB;AACvC,SAAO,EAAE,aAAa,aAAa;AACrC;AACO,MAAM,kBAAkB,CAAC,MAAmB;AACjD,IAAE,aAAa,eAAgB,EAAU,UAAU,EAAE;AACvD;AACO,MAAM,qBAAqB,CAAC,MAAmB;AACpD,IAAE,gBAAgB,aAAa;AACjC;AAWO,SAAS,YAA4D,MAAS;AACnF,SAAO,MAAM,yBAAyB,KAAgC;AAAA,IAkBpE,eAAe,MAAa;AAC1B,YAAM,GAAG,IAAI;AAlBf,0CAAe,IAAI,aAAa,IAAW;AAC3C,qDAA0B,oBAAI,IAAS;AACvC;AACA;AACA,qDAA0B;AAC1B,mDAAwB;AAExB;AACA;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA,2DAAgC,CAAC;AAI/B,cAAQ,IAAI,6BAA6B;AAAA,IAC3C;AAAA,IAEA,IAAI,oBAAoB;AACtB,aAAO,KAAK,aAAa;AAAA,IAC3B;AAAA,IAEA,IAAI,SAAS;AACX,aAAO,KAAK,cAAc;AAAA,IAC5B;AAAA,IAEA,IAAI,SAAS;AACX,aAAO,KAAK,cAAc;AAAA,IAC5B;AAAA,IAEA,MAAM,8BAA8B,UAAuB,IAAqB;AAC9E,UAAI,SAAS,gBAAgB,MAAO;AAEpC,WAAK;AAEL,UAAI,KAAK,+BAA+B;AACtC,aAAK,OAAO,OAAO,cAAc,KAAK,6BAA6B;AAAA,MACrE;AACA,YAAM,iBAAiB,EAAC,aAAa,KAAK,OAAO,OAAO,YAAY,KAAK,KAAK,OAAO,MAAM,GAAG,eAAe,KAAK,OAAO,OAAO,cAAc,KAAK,KAAK,OAAO,MAAM,EAAC;AACtK,WAAK,gCAAgC;AAAA,QACnC,MAAM,KAAK,4BAA4B;AAAA,QACvC,MAAM;AACJ,eAAK,gCAAgC;AACrC,eAAK,OAAO,yBAAyB,IAAI,IAAI;AAAA,QAC/C;AAAA,QACA,KAAK,QAAQ,0CAA0C;AAAA,QACvD;AAAA,MACF;AAEA,UAAI;AACF,cAAM,yBAAyB,oDAAoD,QAAQ;AAC3F,YAAI,
|
|
4
|
+
"sourcesContent": ["import {SwcAppInterface, SwcAppMessage} from \"../types\";\nimport {findAllLifecycleMetadata, getSubscribeSwcAppMessageWhileConnectedMetadata, getSubscribeSwcAppRouteChangeWhileConnectedMetadata, ON_CONNECTED_SWC_APP_METADATA_KEY} from \"../decorators\";\nimport {SwcAppEngine, SwcAttributeConfigType, SwcConfigType} from \"../SwcAppEngine\";\nimport {debounceTimeIntervalLock, FunctionUtils, Subscription} from \"@dooboostore/core\";\nimport {RouterEventType} from \"@dooboostore/core-web\";\nimport {SwcUtils} from \"../utils/Utils\";\n\nexport const isSSR = (i: HTMLElement) => {\n return i.hasAttribute('swc-use-ssr');\n}\nexport const setSSRAttribute = (i: HTMLElement) => {\n i.setAttribute('swc-use-ssr', (i as any)._swcId ?? '');\n}\nexport const removeSSRAttribute = (i: HTMLElement) => {\n i.removeAttribute('swc-use-ssr');\n}\n\n/**\n * SwcAppMixin: SwcApp \uAE30\uB2A5\uC744 \uBAA8\uB4E0 HTMLElement\uC5D0 \uCD94\uAC00\uD560 \uC218 \uC788\uB294 Mixin\n * \n * \uC0AC\uC6A9 \uC608:\n * @elementDefine('custom-app', { window: w })\n * class CustomApp extends SwcAppMixin(w.HTMLElement) implements SwcAppInterface {\n * // \uCD94\uAC00 \uAE30\uB2A5 \uAD6C\uD604\n * }\n */\nexport function SwcAppMixin<T extends { new(...args: any[]): HTMLElement }>(Base: T) {\n return class SwcAppMixinClass extends Base implements SwcAppInterface {\n __swc_engine = new SwcAppEngine(this as any);\n _swc_connected_instance = new Set<any>();\n _routerSubscription?: Subscription;\n _lastRouterEvent?: RouterEventType;\n _routeChangeInvocations = 0;\n _connectedInvocations = 0;\n\n _childrenRouteChangedInterval: any;\n _childrenConnectedDoneInterval: any;\n\n /**\n * Safari is \uC18D\uC131 \uCC98\uB9AC\n * Safari polyfill\uC5D0\uC11C\uB294 \uC790\uC2DD\uBD80\uD130 \uB9CC\uB4E4\uC5B4\uC9C0\uACE0 \uBD80\uBAA8\uAC00 \uB9CC\uB4E4\uC5B4\uC9C0\uBBC0\uB85C\n * \uBD80\uBAA8\uAC00 \uC790\uC2DD\uB4E4\uC744 \uAC15\uC81C\uB85C \uB4F1\uB85D\uD574\uC8FC\uB294 \uD615\uD0DC\uB85C \uCC98\uB9AC\n */\n _connected_safari_and_standby = [];\n\n constructor(...args: any[]) {\n super(...args);\n console.log('[SWC-APP-MIXIN] constructor')\n }\n\n get simpleApplication() {\n return this.__swc_engine.simpleApplication;\n }\n\n get config() {\n return this.__swc_engine?.config;\n }\n\n get router() {\n return this.__swc_engine?.router;\n }\n\n async _invokeRouteChangeSubscribers(instance: HTMLElement, re: RouterEventType) {\n if (instance.isConnected === false) return;\n\n this._routeChangeInvocations++;\n\n if (this._childrenRouteChangedInterval) {\n this.config.window.clearInterval(this._childrenRouteChangedInterval);\n }\n const intervalConfig = {setInterval: this.config.window.setInterval.bind(this.config.window), clearInterval: this.config.window.clearInterval.bind(this.config.window)};\n this._childrenRouteChangedInterval = debounceTimeIntervalLock(\n () => this._routeChangeInvocations === 0,\n () => {\n this._childrenRouteChangedInterval = null;\n this.config.onChildrenRouteChanged?.(re, this)\n },\n this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,\n intervalConfig\n );\n\n try {\n const routeChangeSubscribers = getSubscribeSwcAppRouteChangeWhileConnectedMetadata(instance);\n if (routeChangeSubscribers.length > 0) {\n console.log('[SWC-MIXIN] Route change subscribers found')\n \n // Subscribers are already sorted by order from getSubscribeSwcAppRouteChangeWhileConnectedMetadata\n // Execute subscribers in order, stop if one returns a value\n for (const metadata of routeChangeSubscribers) {\n const methodName = metadata.propertyKey;\n let pathPattern = metadata.options?.path as any;\n const filter = metadata.options?.filter;\n\n if (typeof pathPattern === 'function') {\n pathPattern = (pathPattern as Function)(instance);\n }\n\n let pathMatched = false;\n let pathData: any = null;\n\n if (!pathPattern) {\n pathMatched = true;\n pathData = {};\n } else if (Array.isArray(pathPattern)) {\n for (const pattern of pathPattern) {\n const data = SwcUtils.parsePathPattern(pattern, re.path || '/');\n if (data !== null) {\n pathMatched = true;\n pathData = data;\n break;\n }\n }\n } else {\n pathData = SwcUtils.parsePathPattern(pathPattern, re.path || '/');\n pathMatched = pathData !== null;\n }\n\n const hostSet = SwcUtils.getHelperAndHostSet(this.config.window, this);\n const filterPassed = !filter || filter(this.router!, {helper:hostSet, currentThis:instance});\n\n if (pathMatched && filterPassed && instance[methodName]) {\n const result = await instance[methodName]({...re, pathData: pathData});\n // If handler returns a value, stop propagation to next handlers\n if (result !== undefined && result !== null) {\n break;\n }\n }\n }\n }\n } finally {\n if (this.config?.ssr) {\n setSSRAttribute(instance);\n } else {\n removeSSRAttribute(instance);\n }\n this._routeChangeInvocations = Math.max(0, this._routeChangeInvocations - 1);\n }\n }\n\n async _connected(instance: HTMLElement, option?: { noIncrements: boolean }) {\n if (instance) {\n if (!this.simpleApplication && !this.config) {\n this._connected_safari_and_standby.push(instance);\n return;\n }\n\n this.config.onConnectedChildBefore?.(instance);\n if (!option?.noIncrements) {\n this._connectedInvocations++;\n }\n this._swc_connected_instance.add(instance);\n\n const connectedSwcAppCallBacks = findAllLifecycleMetadata(instance, ON_CONNECTED_SWC_APP_METADATA_KEY);\n for (let connectedSwcAppCallBack of connectedSwcAppCallBacks) {\n await (instance as any)?._invokeLifecycleMethod?.(connectedSwcAppCallBack.propertyKey);\n }\n\n if (this._childrenConnectedDoneInterval) {\n this.config.window.clearInterval(this._childrenConnectedDoneInterval);\n }\n const intervalConfig = {setInterval: this.config.window.setInterval.bind(this.config.window), clearInterval: this.config.window.clearInterval.bind(this.config.window)};\n this._childrenConnectedDoneInterval = debounceTimeIntervalLock(\n () => this._connectedInvocations === 0,\n () => {\n this._childrenConnectedDoneInterval = null;\n this.config.onChildrenConnectedDone?.(this)\n },\n this.config?.childrenConnectedDoneCheckIntervalTime ?? 30,\n intervalConfig\n );\n\n if (this.simpleApplication) {\n try {\n if (this.router && this._lastRouterEvent) {\n await this._invokeRouteChangeSubscribers(instance, this._lastRouterEvent!);\n }\n } catch (e) {\n throw e;\n }\n }\n\n if (this.config?.ssr) {\n setSSRAttribute(instance);\n } else {\n removeSSRAttribute(instance);\n }\n }\n\n this.config.onConnectedChildAfter?.(instance);\n return this;\n }\n\n async _connectedDone(instance: any) {\n try {\n // \uB0B4\uBD80 \uC5F0\uACB0 \uCC98\uB9AC \uB85C\uC9C1\n } finally {\n this._connectedInvocations = Math.max(0, this._connectedInvocations - 1);\n }\n }\n\n _disconnected(instance: any) {\n if (instance) {\n this._swc_connected_instance.delete(instance);\n this.config?.onDisconnectedChildAfter?.(instance);\n }\n }\n\n async _handleRouteChange(route: RouterEventType) {\n this._lastRouterEvent = route;\n const swcConnectedInstance = Array.from(this._swc_connected_instance);\n const ps = swcConnectedInstance.map((instance: any) => this._invokeRouteChangeSubscribers(instance, route));\n await Promise.allSettled(ps);\n }\n\n async connect(config?: SwcAttributeConfigType) {\n console.log('[SWC-MIXIN] connect')\n const swcConfig = {\n routeType: 'element',\n window: config?.window,\n ...config\n } as SwcConfigType;\n\n await this.__swc_engine.connect(swcConfig);\n\n // Safari is \uC18D\uC131 \uCC98\uB9AC\n this._connected_safari_and_standby.forEach((instance: any) => {\n this._connected(instance, {noIncrements: true});\n });\n\n // \uB77C\uC6B0\uD130 \uBCC0\uACBD \uAD6C\uB3C5\n if (!this._routerSubscription && this.router) {\n const config = this.__swc_engine.config;\n\n this._routerSubscription = this.router.observable.subscribe(async (route: RouterEventType) => {\n console.log('[SWC-MIXIN] Router event received:', route.triggerPoint);\n if (route.triggerPoint === 'end') {\n await this._handleRouteChange(route);\n }\n });\n\n if (config?.path) {\n console.log('[DEBUG] Navigating to initial path:', config.path);\n }\n }\n }\n\n connectedCallback() {\n // \uBD80\uBAA8 \uD074\uB798\uC2A4\uC758 connectedCallback \uD638\uCD9C\n // @ts-ignore\n super.connectedCallback?.();\n\n const configStr = this.getAttribute('swc-get-application-config');\n const win = this.ownerDocument?.defaultView || window;\n if (configStr && win) {\n try {\n const userConfig = FunctionUtils.executeReturn({\n script: configStr,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n this.connect(userConfig);\n } catch (e) {\n console.error('[SWC-MIXIN] Script execution failed:', e);\n }\n }\n\n this._connected(this);\n this.__swc_engine?.config?.onConnected?.(this);\n this._connectedDone(this);\n }\n\n disconnectedCallback() {\n // \uBD80\uBAA8 \uD074\uB798\uC2A4\uC758 disconnectedCallback \uD638\uCD9C\n // @ts-ignore\n super.disconnectedCallback?.();\n \n this._routerSubscription?.unsubscribe();\n this._routerSubscription = undefined;\n this._lastRouterEvent = undefined;\n this.__swc_engine.disconnect();\n this.__swc_engine?.config?.onDisconnected?.(this);\n this._disconnected(this);\n }\n\n async routing(path: string) {\n await this.router?.go(path);\n }\n\n back(): void {\n this.router?.back();\n }\n\n forward(): void {\n this.router?.forward();\n }\n\n reload(): void {\n this.router?.reload();\n }\n\n publishMessage(message: SwcAppMessage): void {\n this._swc_connected_instance.forEach((instance: any) => {\n this._invokeMessageSubscribers(instance, message);\n });\n }\n\n _invokeMessageSubscribers(instance: any, message: SwcAppMessage) {\n const messageSubscribers = getSubscribeSwcAppMessageWhileConnectedMetadata(instance);\n if (messageSubscribers && Array.isArray(messageSubscribers)) {\n messageSubscribers.forEach(metadata => {\n const methodName = metadata.propertyKey;\n const messageType = metadata.messageType;\n const filter = metadata.filter;\n\n let typeMatched = false;\n if (!messageType) {\n typeMatched = true;\n } else if (message.type === messageType) {\n typeMatched = true;\n }\n\n let filterMatched = true;\n if (filter && typeMatched) {\n filterMatched = filter(message, instance);\n }\n\n if (typeMatched && filterMatched && typeof instance[methodName] === 'function') {\n instance[methodName](message);\n }\n });\n }\n }\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["config"]
|
|
7
7
|
}
|
|
@@ -6384,27 +6384,52 @@ function onConnectedAfter(arg1, arg2, arg3) {
|
|
|
6384
6384
|
decorator2(arg1 || {}, target, propertyKey);
|
|
6385
6385
|
};
|
|
6386
6386
|
}
|
|
6387
|
-
function
|
|
6388
|
-
return (
|
|
6389
|
-
|
|
6390
|
-
|
|
6391
|
-
|
|
6392
|
-
list
|
|
6393
|
-
|
|
6387
|
+
function createLifecycleDecoratorWithOptions(metadataKey) {
|
|
6388
|
+
return function(optionOrTarget, propertyKey) {
|
|
6389
|
+
if (propertyKey) {
|
|
6390
|
+
const constructor = optionOrTarget.constructor;
|
|
6391
|
+
let list = ReflectUtils.getOwnMetadata(metadataKey, constructor);
|
|
6392
|
+
if (!list) {
|
|
6393
|
+
list = [];
|
|
6394
|
+
ReflectUtils.defineMetadata(metadataKey, list, constructor);
|
|
6395
|
+
}
|
|
6396
|
+
list.push({ propertyKey, order: 0 });
|
|
6397
|
+
return;
|
|
6394
6398
|
}
|
|
6395
|
-
|
|
6399
|
+
return (target, propertyKey2) => {
|
|
6400
|
+
const constructor = target.constructor;
|
|
6401
|
+
let list = ReflectUtils.getOwnMetadata(metadataKey, constructor);
|
|
6402
|
+
if (!list) {
|
|
6403
|
+
list = [];
|
|
6404
|
+
ReflectUtils.defineMetadata(metadataKey, list, constructor);
|
|
6405
|
+
}
|
|
6406
|
+
list.push({ propertyKey: propertyKey2, order: optionOrTarget?.order ?? 0 });
|
|
6407
|
+
};
|
|
6396
6408
|
};
|
|
6397
6409
|
}
|
|
6398
|
-
|
|
6399
|
-
|
|
6400
|
-
|
|
6410
|
+
function onInitialize(optionOrTarget, propertyKey) {
|
|
6411
|
+
return createLifecycleDecoratorWithOptions(ON_INITIALIZE_METADATA_KEY)(optionOrTarget, propertyKey);
|
|
6412
|
+
}
|
|
6413
|
+
function onDisconnectedBefore(optionOrTarget, propertyKey) {
|
|
6414
|
+
return createLifecycleDecoratorWithOptions(ON_BEFORE_DISCONNECTED_METADATA_KEY)(optionOrTarget, propertyKey);
|
|
6415
|
+
}
|
|
6416
|
+
function onDisconnectedAfter(optionOrTarget, propertyKey) {
|
|
6417
|
+
return createLifecycleDecoratorWithOptions(ON_AFTER_DISCONNECTED_METADATA_KEY)(optionOrTarget, propertyKey);
|
|
6418
|
+
}
|
|
6401
6419
|
var onDisconnected = onDisconnectedAfter;
|
|
6402
|
-
|
|
6403
|
-
|
|
6420
|
+
function onAdoptedBefore(optionOrTarget, propertyKey) {
|
|
6421
|
+
return createLifecycleDecoratorWithOptions(ON_BEFORE_ADOPTED_METADATA_KEY)(optionOrTarget, propertyKey);
|
|
6422
|
+
}
|
|
6423
|
+
function onAdoptedAfter(optionOrTarget, propertyKey) {
|
|
6424
|
+
return createLifecycleDecoratorWithOptions(ON_AFTER_ADOPTED_METADATA_KEY)(optionOrTarget, propertyKey);
|
|
6425
|
+
}
|
|
6404
6426
|
var onAdopted = onAdoptedAfter;
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
|
|
6427
|
+
function onConnectedSwcApp(optionOrTarget, propertyKey) {
|
|
6428
|
+
return createLifecycleDecoratorWithOptions(ON_CONNECTED_SWC_APP_METADATA_KEY)(optionOrTarget, propertyKey);
|
|
6429
|
+
}
|
|
6430
|
+
function onConnectedCompleted(optionOrTarget, propertyKey) {
|
|
6431
|
+
return createLifecycleDecoratorWithOptions(ON_CONNECTED_COMPLETED_METADATA_KEY)(optionOrTarget, propertyKey);
|
|
6432
|
+
}
|
|
6408
6433
|
var decorator = (options, target, propertyKey) => {
|
|
6409
6434
|
const constructor = target.constructor;
|
|
6410
6435
|
let list = ReflectUtils.getMetadata(ON_CONNECTED_METADATA_KEY, constructor);
|
|
@@ -6439,20 +6464,28 @@ function onConnected(optionOrTarget, propertyKey, arg3) {
|
|
|
6439
6464
|
};
|
|
6440
6465
|
}
|
|
6441
6466
|
var findAllLifecycleMetadata = (target, metadataKey) => {
|
|
6442
|
-
const
|
|
6443
|
-
|
|
6467
|
+
const constructor = target instanceof Function ? target : target.constructor;
|
|
6468
|
+
const results = ReflectUtils.getOwnMetadata(metadataKey, constructor) ?? [];
|
|
6469
|
+
return [...results].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
|
|
6444
6470
|
};
|
|
6445
6471
|
var findAllOnConnectedMetadata = (target) => {
|
|
6446
6472
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
6447
|
-
|
|
6473
|
+
const results = ReflectUtils.getMetadata(ON_CONNECTED_METADATA_KEY, constructor) ?? [];
|
|
6474
|
+
return [...results].sort((a, b) => {
|
|
6475
|
+
const orderA = a.options?.order ?? 0;
|
|
6476
|
+
const orderB = b.options?.order ?? 0;
|
|
6477
|
+
return orderA - orderB;
|
|
6478
|
+
});
|
|
6448
6479
|
};
|
|
6449
6480
|
var findAllOnConnectedBeforeMetadata = (target) => {
|
|
6450
6481
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
6451
|
-
|
|
6482
|
+
const results = ReflectUtils.getMetadata(ON_BEFORE_CONNECTED_METADATA_KEY, constructor) ?? [];
|
|
6483
|
+
return [...results].sort((a, b) => (a.options?.order ?? 0) - (b.options?.order ?? 0));
|
|
6452
6484
|
};
|
|
6453
6485
|
var findAllOnConnectedAfterMetadata = (target) => {
|
|
6454
6486
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
6455
|
-
|
|
6487
|
+
const results = ReflectUtils.getMetadata(ON_AFTER_CONNECTED_METADATA_KEY, constructor) ?? [];
|
|
6488
|
+
return [...results].sort((a, b) => (a.options?.order ?? 0) - (b.options?.order ?? 0));
|
|
6456
6489
|
};
|
|
6457
6490
|
|
|
6458
6491
|
// ../core-web/dist/esm/element/CanvasUtils.js
|
|
@@ -9601,9 +9634,7 @@ var ensureInit = (inst) => {
|
|
|
9601
9634
|
const appHosts = SwcUtils.findAllAppHostsIncludingSelfDirect(inst);
|
|
9602
9635
|
inst._executeSwcScript?.("swc-on-constructor", hostSet);
|
|
9603
9636
|
const cMethods = findAllLifecycleMetadata(inst, ON_INITIALIZE_METADATA_KEY);
|
|
9604
|
-
|
|
9605
|
-
for (const m of cMethods) inst._invokeLifecycleMethod(m, hostSet);
|
|
9606
|
-
}
|
|
9637
|
+
for (const m of cMethods) inst._invokeLifecycleMethod(m.propertyKey, hostSet);
|
|
9607
9638
|
}
|
|
9608
9639
|
};
|
|
9609
9640
|
var globalDelegatedRoots = /* @__PURE__ */ new WeakSet();
|
|
@@ -9794,9 +9825,7 @@ var elementDefine = (name, config = {}) => (constructor) => {
|
|
|
9794
9825
|
const conf = getElementConfig(this);
|
|
9795
9826
|
const currentWin = this._resolveWindow(conf);
|
|
9796
9827
|
const bMethods = findAllOnConnectedBeforeMetadata(this).filter((it) => useSsr ? !it.options.ssrFirst : true);
|
|
9797
|
-
|
|
9798
|
-
for (const m of bMethods) await this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
9799
|
-
}
|
|
9828
|
+
for (const m of bMethods) await this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
9800
9829
|
this._executeSwcScript("swc-on-before-connected", helperHostSet);
|
|
9801
9830
|
const targetConnectedList = findAllOnConnectedMetadata(constructor).filter((it) => useSsr ? !it.options.ssrFirst : true);
|
|
9802
9831
|
const shadowMode = conf?.useShadow || targetConnectedList.find((it) => it.options.useShadow)?.options.useShadow;
|
|
@@ -9975,9 +10004,7 @@ var elementDefine = (name, config = {}) => (constructor) => {
|
|
|
9975
10004
|
const aMethods = findAllOnConnectedAfterMetadata(this).filter((it) => {
|
|
9976
10005
|
return useSsr ? !it.options.ssrFirst : true;
|
|
9977
10006
|
});
|
|
9978
|
-
|
|
9979
|
-
for (const m of aMethods) await this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
9980
|
-
}
|
|
10007
|
+
for (const m of aMethods) await this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
9981
10008
|
this._executeSwcScript("swc-on-connected", helperHostSet);
|
|
9982
10009
|
this._executeSwcScript("swc-on-after-connected", helperHostSet);
|
|
9983
10010
|
this.__swc_connected = true;
|
|
@@ -9992,8 +10019,8 @@ var elementDefine = (name, config = {}) => (constructor) => {
|
|
|
9992
10019
|
}
|
|
9993
10020
|
}
|
|
9994
10021
|
} finally {
|
|
9995
|
-
for (let
|
|
9996
|
-
await this._invokeLifecycleMethod(
|
|
10022
|
+
for (let m of findAllLifecycleMetadata(this, ON_CONNECTED_COMPLETED_METADATA_KEY)) {
|
|
10023
|
+
await this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
9997
10024
|
}
|
|
9998
10025
|
if (appHost && typeof appHost._connectedDone === "function") {
|
|
9999
10026
|
await appHost._connectedDone(this);
|
|
@@ -10008,9 +10035,7 @@ var elementDefine = (name, config = {}) => (constructor) => {
|
|
|
10008
10035
|
}
|
|
10009
10036
|
this._executeSwcScript("swc-on-before-disconnected", helperHostSet);
|
|
10010
10037
|
const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);
|
|
10011
|
-
|
|
10012
|
-
for (const m of bMethods) this._invokeLifecycleMethod(m, helperHostSet);
|
|
10013
|
-
}
|
|
10038
|
+
for (const m of bMethods) this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
10014
10039
|
if (this._boundListeners) {
|
|
10015
10040
|
this._boundListeners.forEach((l) => l.target.removeEventListener(l.type, l.handler, l.options));
|
|
10016
10041
|
this._boundListeners = [];
|
|
@@ -10018,9 +10043,7 @@ var elementDefine = (name, config = {}) => (constructor) => {
|
|
|
10018
10043
|
new ElementApply(this, { id: this._swcId }).removeAllEventListener();
|
|
10019
10044
|
if (originalDisconnected) originalDisconnected.apply(this);
|
|
10020
10045
|
const aMethods = findAllLifecycleMetadata(this, ON_AFTER_DISCONNECTED_METADATA_KEY);
|
|
10021
|
-
|
|
10022
|
-
for (const m of aMethods) this._invokeLifecycleMethod(m, helperHostSet);
|
|
10023
|
-
}
|
|
10046
|
+
for (const m of aMethods) this._invokeLifecycleMethod(m.propertyKey, helperHostSet);
|
|
10024
10047
|
this._executeSwcScript("swc-on-disconnected", helperHostSet);
|
|
10025
10048
|
this._executeSwcScript("swc-on-after-disconnected", helperHostSet);
|
|
10026
10049
|
this.__swc_connected = false;
|
|
@@ -10030,14 +10053,10 @@ var elementDefine = (name, config = {}) => (constructor) => {
|
|
|
10030
10053
|
const hostSet = SwcUtils.getHostSet(this);
|
|
10031
10054
|
this._executeSwcScript("swc-on-before-adopted", hostSet);
|
|
10032
10055
|
const bMethods = findAllLifecycleMetadata(this, ON_BEFORE_ADOPTED_METADATA_KEY);
|
|
10033
|
-
|
|
10034
|
-
for (const m of bMethods) this._invokeLifecycleMethod(m, hostSet);
|
|
10035
|
-
}
|
|
10056
|
+
for (const m of bMethods) this._invokeLifecycleMethod(m.propertyKey, hostSet);
|
|
10036
10057
|
if (originalAdopted) originalAdopted.apply(this);
|
|
10037
10058
|
const aMethods = findAllLifecycleMetadata(this, ON_AFTER_ADOPTED_METADATA_KEY);
|
|
10038
|
-
|
|
10039
|
-
for (const m of aMethods) this._invokeLifecycleMethod(m, hostSet);
|
|
10040
|
-
}
|
|
10059
|
+
for (const m of aMethods) this._invokeLifecycleMethod(m.propertyKey, hostSet);
|
|
10041
10060
|
this._executeSwcScript("swc-on-adopted", hostSet);
|
|
10042
10061
|
this._executeSwcScript("swc-on-after-adopted", hostSet);
|
|
10043
10062
|
};
|
|
@@ -10770,15 +10789,21 @@ function createSubscribeSwcAppRouteChangeWhileConnected(options) {
|
|
|
10770
10789
|
return descriptor;
|
|
10771
10790
|
};
|
|
10772
10791
|
}
|
|
10773
|
-
function subscribeSwcAppRouteChangeWhileConnected(targetOrOptions,
|
|
10774
|
-
if (
|
|
10775
|
-
return createSubscribeSwcAppRouteChangeWhileConnected({})(targetOrOptions,
|
|
10792
|
+
function subscribeSwcAppRouteChangeWhileConnected(targetOrOptions, propertyKeyOrConfig, descriptor) {
|
|
10793
|
+
if (propertyKeyOrConfig && (typeof propertyKeyOrConfig === "string" || typeof propertyKeyOrConfig === "symbol")) {
|
|
10794
|
+
return createSubscribeSwcAppRouteChangeWhileConnected({})(targetOrOptions, propertyKeyOrConfig, descriptor);
|
|
10776
10795
|
}
|
|
10777
10796
|
let options = {};
|
|
10778
10797
|
if (Array.isArray(targetOrOptions)) {
|
|
10779
10798
|
options.path = targetOrOptions;
|
|
10799
|
+
if (propertyKeyOrConfig && typeof propertyKeyOrConfig === "object") {
|
|
10800
|
+
options = { ...options, ...propertyKeyOrConfig };
|
|
10801
|
+
}
|
|
10780
10802
|
} else if (typeof targetOrOptions === "string" || typeof targetOrOptions === "function") {
|
|
10781
10803
|
options.path = targetOrOptions;
|
|
10804
|
+
if (propertyKeyOrConfig && typeof propertyKeyOrConfig === "object") {
|
|
10805
|
+
options = { ...options, ...propertyKeyOrConfig };
|
|
10806
|
+
}
|
|
10782
10807
|
} else if (targetOrOptions && typeof targetOrOptions === "object") {
|
|
10783
10808
|
options = targetOrOptions;
|
|
10784
10809
|
}
|
|
@@ -10786,7 +10811,9 @@ function subscribeSwcAppRouteChangeWhileConnected(targetOrOptions, propertyKey,
|
|
|
10786
10811
|
}
|
|
10787
10812
|
var getSubscribeSwcAppRouteChangeWhileConnectedMetadata = (target) => {
|
|
10788
10813
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
10789
|
-
|
|
10814
|
+
const results = ReflectUtils.getOwnMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_WHILE_CONNECTED_METADATA_KEY, constructor);
|
|
10815
|
+
if (!results) return [];
|
|
10816
|
+
return [...results].sort((a, b) => (a.options?.order ?? 0) - (b.options?.order ?? 0));
|
|
10790
10817
|
};
|
|
10791
10818
|
|
|
10792
10819
|
// src/decorators/subscribeSwcAppMessageWhileConnected.ts
|
|
@@ -13232,9 +13259,9 @@ function SwcAppMixin(Base) {
|
|
|
13232
13259
|
);
|
|
13233
13260
|
try {
|
|
13234
13261
|
const routeChangeSubscribers = getSubscribeSwcAppRouteChangeWhileConnectedMetadata(instance);
|
|
13235
|
-
if (routeChangeSubscribers
|
|
13262
|
+
if (routeChangeSubscribers.length > 0) {
|
|
13236
13263
|
console.log("[SWC-MIXIN] Route change subscribers found");
|
|
13237
|
-
const
|
|
13264
|
+
for (const metadata of routeChangeSubscribers) {
|
|
13238
13265
|
const methodName = metadata.propertyKey;
|
|
13239
13266
|
let pathPattern = metadata.options?.path;
|
|
13240
13267
|
const filter = metadata.options?.filter;
|
|
@@ -13262,10 +13289,12 @@ function SwcAppMixin(Base) {
|
|
|
13262
13289
|
const hostSet = SwcUtils.getHelperAndHostSet(this.config.window, this);
|
|
13263
13290
|
const filterPassed = !filter || filter(this.router, { helper: hostSet, currentThis: instance });
|
|
13264
13291
|
if (pathMatched && filterPassed && instance[methodName]) {
|
|
13265
|
-
await instance[methodName]({ ...re, pathData });
|
|
13292
|
+
const result = await instance[methodName]({ ...re, pathData });
|
|
13293
|
+
if (result !== void 0 && result !== null) {
|
|
13294
|
+
break;
|
|
13295
|
+
}
|
|
13266
13296
|
}
|
|
13267
|
-
}
|
|
13268
|
-
await Promise.allSettled(ps);
|
|
13297
|
+
}
|
|
13269
13298
|
}
|
|
13270
13299
|
} finally {
|
|
13271
13300
|
if (this.config?.ssr) {
|
|
@@ -13287,9 +13316,9 @@ function SwcAppMixin(Base) {
|
|
|
13287
13316
|
this._connectedInvocations++;
|
|
13288
13317
|
}
|
|
13289
13318
|
this._swc_connected_instance.add(instance);
|
|
13290
|
-
const connectedSwcAppCallBacks = findAllLifecycleMetadata(instance, ON_CONNECTED_SWC_APP_METADATA_KEY)
|
|
13319
|
+
const connectedSwcAppCallBacks = findAllLifecycleMetadata(instance, ON_CONNECTED_SWC_APP_METADATA_KEY);
|
|
13291
13320
|
for (let connectedSwcAppCallBack of connectedSwcAppCallBacks) {
|
|
13292
|
-
await instance?._invokeLifecycleMethod?.(connectedSwcAppCallBack);
|
|
13321
|
+
await instance?._invokeLifecycleMethod?.(connectedSwcAppCallBack.propertyKey);
|
|
13293
13322
|
}
|
|
13294
13323
|
if (this._childrenConnectedDoneInterval) {
|
|
13295
13324
|
this.config.window.clearInterval(this._childrenConnectedDoneInterval);
|
|
@@ -13754,7 +13783,6 @@ export {
|
|
|
13754
13783
|
innerTextNodeThis,
|
|
13755
13784
|
innerTextShadowNode,
|
|
13756
13785
|
isSSR,
|
|
13757
|
-
onAddEventListener,
|
|
13758
13786
|
onAdopted,
|
|
13759
13787
|
onAdoptedAfter,
|
|
13760
13788
|
onAdoptedBefore,
|