@dooboostore/simple-web-component 1.0.30 → 1.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +220 -1
  2. package/dist/cjs/decorators/applyStyle.js +1 -1
  3. package/dist/cjs/decorators/applyStyle.js.map +2 -2
  4. package/dist/cjs/decorators/attribute.js +17 -1
  5. package/dist/cjs/decorators/attribute.js.map +2 -2
  6. package/dist/cjs/decorators/elementDefine.js +29 -12
  7. package/dist/cjs/decorators/elementDefine.js.map +3 -3
  8. package/dist/cjs/elements/SwcAppEngine.js +3 -3
  9. package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
  10. package/dist/cjs/elements/SwcAppMixin.js +1 -8
  11. package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
  12. package/dist/cjs/elements/SwcAsync.js +71 -78
  13. package/dist/cjs/elements/SwcAsync.js.map +2 -2
  14. package/dist/cjs/elements/SwcChoose.js +66 -81
  15. package/dist/cjs/elements/SwcChoose.js.map +2 -2
  16. package/dist/cjs/elements/SwcIf.js +52 -96
  17. package/dist/cjs/elements/SwcIf.js.map +2 -2
  18. package/dist/cjs/elements/SwcLoop.js +60 -103
  19. package/dist/cjs/elements/SwcLoop.js.map +2 -2
  20. package/dist/cjs/elements/SwcSubTemplates.js +0 -27
  21. package/dist/cjs/elements/SwcSubTemplates.js.map +2 -2
  22. package/dist/cjs/elements/register.js +314 -343
  23. package/dist/cjs/elements/register.js.map +2 -2
  24. package/dist/cjs/router/ElementRouter.js +1 -8
  25. package/dist/cjs/router/ElementRouter.js.map +2 -2
  26. package/dist/cjs/types.js.map +1 -1
  27. package/dist/cjs/utils/Utils.js +31 -24
  28. package/dist/cjs/utils/Utils.js.map +2 -2
  29. package/dist/esm/decorators/applyStyle.js +1 -1
  30. package/dist/esm/decorators/applyStyle.js.map +2 -2
  31. package/dist/esm/decorators/attribute.js +18 -2
  32. package/dist/esm/decorators/attribute.js.map +2 -2
  33. package/dist/esm/decorators/elementDefine.js +27 -10
  34. package/dist/esm/decorators/elementDefine.js.map +3 -3
  35. package/dist/esm/elements/SwcAppEngine.js +3 -3
  36. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  37. package/dist/esm/elements/SwcAppMixin.js +1 -8
  38. package/dist/esm/elements/SwcAppMixin.js.map +2 -2
  39. package/dist/esm/elements/SwcAsync.js +72 -60
  40. package/dist/esm/elements/SwcAsync.js.map +2 -2
  41. package/dist/esm/elements/SwcChoose.js +67 -63
  42. package/dist/esm/elements/SwcChoose.js.map +2 -2
  43. package/dist/esm/elements/SwcIf.js +53 -78
  44. package/dist/esm/elements/SwcIf.js.map +2 -2
  45. package/dist/esm/elements/SwcLoop.js +61 -85
  46. package/dist/esm/elements/SwcLoop.js.map +2 -2
  47. package/dist/esm/elements/SwcSubTemplates.js +0 -8
  48. package/dist/esm/elements/SwcSubTemplates.js.map +2 -2
  49. package/dist/esm/elements/register.js +246 -275
  50. package/dist/esm/elements/register.js.map +2 -2
  51. package/dist/esm/router/ElementRouter.js +1 -8
  52. package/dist/esm/router/ElementRouter.js.map +2 -2
  53. package/dist/esm/types.js.map +1 -1
  54. package/dist/esm/utils/Utils.js +31 -24
  55. package/dist/esm/utils/Utils.js.map +2 -2
  56. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +2223 -2009
  57. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  58. package/dist/types/decorators/attribute.d.ts.map +1 -1
  59. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  60. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  61. package/dist/types/elements/SwcAsync.d.ts +1 -11
  62. package/dist/types/elements/SwcAsync.d.ts.map +1 -1
  63. package/dist/types/elements/SwcChoose.d.ts +1 -13
  64. package/dist/types/elements/SwcChoose.d.ts.map +1 -1
  65. package/dist/types/elements/SwcIf.d.ts +1 -13
  66. package/dist/types/elements/SwcIf.d.ts.map +1 -1
  67. package/dist/types/elements/SwcLoop.d.ts +1 -13
  68. package/dist/types/elements/SwcLoop.d.ts.map +1 -1
  69. package/dist/types/elements/SwcSubTemplates.d.ts +6 -6
  70. package/dist/types/elements/SwcSubTemplates.d.ts.map +1 -1
  71. package/dist/types/elements/register.d.ts.map +1 -1
  72. package/dist/types/router/ElementRouter.d.ts.map +1 -1
  73. package/dist/types/types.d.ts +11 -1
  74. package/dist/types/types.d.ts.map +1 -1
  75. package/dist/types/utils/Utils.d.ts +10 -0
  76. package/dist/types/utils/Utils.d.ts.map +1 -1
  77. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +2223 -2009
  78. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  79. package/package.json +3 -3
  80. package/src/decorators/applyStyle.ts +1 -1
  81. package/src/decorators/attribute.ts +35 -30
  82. package/src/decorators/elementDefine.ts +32 -10
  83. package/src/elements/SwcAppEngine.ts +3 -3
  84. package/src/elements/SwcAppMixin.ts +6 -27
  85. package/src/elements/SwcAsync.ts +75 -57
  86. package/src/elements/SwcChoose.ts +69 -77
  87. package/src/elements/SwcIf.ts +50 -75
  88. package/src/elements/SwcLoop.ts +56 -82
  89. package/src/elements/SwcSubTemplates.ts +6 -6
  90. package/src/elements/register.ts +234 -285
  91. package/src/router/ElementRouter.ts +1 -12
  92. package/src/types.ts +9 -2
  93. package/src/utils/Utils.ts +48 -37
@@ -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_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 const appHosts = SwcUtils.findAllParentAppHostsDirect(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 useHostSet = hostSet ?? SwcUtils.getHostSet(this);\n const app = useHostSet?.$appHost.simpleApplication;\n // console.log('---->hh',app, this, methodName);\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: InjectSituationType.HOST_SET, data: useHostSet }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOST, data: useHostSet.$appHost }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOSTS, data: useHostSet.$appHosts }), new SituationTypeContainer({ situationType: InjectSituationType.HOST, data: useHostSet.$host }), new SituationTypeContainer({ situationType: InjectSituationType.HOSTS, data: useHostSet.$hosts }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_HOST, data: useHostSet.$firstHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_HOST, data: useHostSet.$lastHost }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_APP_HOST, data: useHostSet.$firstAppHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_APP_HOST, data: useHostSet.$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 // console.log('!!!!!!!!!!!!!!', this, appHost)\n const appHostss = SwcUtils.findAllParentAppHostsDirect(this)\n // const nAppHostSet = SwcUtils.getHostSet(this as any);\n if (appHost && typeof (appHost as any)._connected === 'function') {\n (appHost as any)._connected(this);\n } else if (appHost && typeof (appHost as any)) {\n (appHost as any)._connected_safari ??= [];\n (appHost as any)._connected_safari.push(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
- "names": ["import_core", "proto", "name"]
4
+ "sourcesContent": ["import { ReflectUtils, FunctionUtils, ActionExpression } 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';\nimport { ConvertUtils } from '@dooboostore/core-web';\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 const appHosts = SwcUtils.findAllParentAppHostsDirect(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 useHostSet = hostSet ?? SwcUtils.getHostSet(this);\n const app = useHostSet?.$appHost?.simpleApplication;\n // console.log('---->hh',app, this, methodName);\n if (app) {\n const otherStorage = new Map<any, any>();\n const situations = new SituationTypeContainers([new SituationTypeContainer({ situationType: InjectSituationType.HOST_SET, data: useHostSet }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOST, data: useHostSet.$appHost }), new SituationTypeContainer({ situationType: InjectSituationType.APP_HOSTS, data: useHostSet.$appHosts }), new SituationTypeContainer({ situationType: InjectSituationType.HOST, data: useHostSet.$host }), new SituationTypeContainer({ situationType: InjectSituationType.HOSTS, data: useHostSet.$hosts }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_HOST, data: useHostSet.$firstHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_HOST, data: useHostSet.$lastHost }), new SituationTypeContainer({ situationType: InjectSituationType.FIRST_APP_HOST, data: useHostSet.$firstAppHost }), new SituationTypeContainer({ situationType: InjectSituationType.LAST_APP_HOST, data: useHostSet.$lastAppHost })]);\n otherStorage.set(SituationTypeContainers, situations);\n\n return app.simstanceManager.executeBindParameterSim(\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 hostSet = SwcUtils.getHostSet(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 hostSet = SwcUtils.getHostSet(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 const res = (this as any)._invokeLifecycleMethod(meta.propertyKey, hostSet);\n // console.log('------res0', res);\n // console.log('------res1', res1);\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 // console.log('!!!!!!!!!!!!!!', this, appHost)\n const appHostss = SwcUtils.findAllParentAppHostsDirect(this)\n // const nAppHostSet = SwcUtils.getHostSet(this as any);\n if (appHost && typeof (appHost as any)._connected === 'function') {\n (appHost as any)._connected(this);\n } else if (appHost && typeof (appHost as any)) {\n (appHost as any)._connected_safari ??= [];\n (appHost as any)._connected_safari.push(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 // Process expression directive before passing to handlers\n let processedVal = newVal;\n if (newVal !== null) {\n const ae = new ActionExpression(newVal);\n const expr = ae.getFirstExpression('call-return');\n if (expr) {\n const win = (this as any)._resolveWindow?.() || ((typeof window !== 'undefined' ? window : undefined) as any);\n try {\n const result = FunctionUtils.executeReturn({\n script: ConvertUtils.decodeHtmlEntity(expr.script, win.document),\n context: this,\n args: SwcUtils.getHelperAndHostSet(win,this as any)\n });\n processedVal = String(result);\n } catch (e) {\n console.error(`[SWC] Failed to execute directive {{= ${expr.script} }} on attribute ${name}:`, e);\n processedVal = newVal;\n }\n }\n }\n\n if (name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(name)) {\n if (newVal !== null) {\n const eventName = name.substring(7);\n (this as any)._bindAttributeEvent(this as any, name, newVal, eventName);\n }\n }\n\n 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](processedVal, 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": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA8D;AAC9D,8BAA4C;AAC5C,wBAAiT;AACjT,6BAA+C;AAC/C,kCAAgD;AAChD,4BAA8C;AAC9C,uBAAyC;AACzC,mBAAiC;AACjC,sBAAoC;AACpC,mBAAyB;AACzB,oBAAkD;AAClD,oBAAgE;AAChE,mBAA6C;AAC7C,sBAA6B;AAItB,MAAM,qBAAqB,OAAO,IAAI,qCAAqC;AAc3E,MAAM,mBAAmB,CAAC,WAA6C;AAC5E,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,yBAAa,YAAY,oBAAoB,WAAW;AACjE;AAEO,MAAM,aAAa,CAAC,SAAc;AACvC,MAAI,CAAC,KAAK,mBAAmB;AAC3B,SAAK,SAAS,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,EAAE;AACxD,SAAK,gBAAgB,oBAAI,IAAI;AAC7B,SAAK,kBAAkB,CAAC;AACxB,SAAK,oBAAoB;AAOzB,UAAM,SAAS,gBAAgB,WAAW,OAAO,KAAK;AAsBtD,UAAM,oBAAgB,2CAAyB,MAAM;AACrD,kBAAc,QAAQ,UAAQ;AAC5B,aAAQ,KAAa,KAAK,WAAW;AAAA,IACvC,CAAC;AAGD,UAAM,gBAAY,+BAAiB,MAAM;AACzC,QAAI,WAAW;AACb,gBAAU,QAAQ,UAAQ;AACxB,eAAQ,KAAa,KAAK,WAAW;AAAA,MACvC,CAAC;AAAA,IACH;AAGA,UAAM,mBAAe,qCAAoB,MAAM;AAC/C,QAAI,cAAc;AAChB,mBAAa,QAAQ,UAAQ;AAC3B,eAAQ,KAAa,KAAK,WAAW;AAAA,MACvC,CAAC;AAAA,IACH;AAGA,UAAM,UAAU,sBAAS,WAAW,IAAI;AACxC,UAAM,WAAW,sBAAS,4BAA4B,IAAI;AAC1D,SAAK,oBAAoB,sBAAsB,OAAO;AAGtD,UAAM,eAAW,4CAAyB,MAAM,4CAA0B;AAC1E,QAAI,UAAU;AACZ,iBAAW,KAAK,SAAU,CAAC,KAAM,uBAAuB,GAAG,OAAO;AAAA,IACpE;AAAA,EACF;AACF;AAGA,MAAM,uBAAuB,oBAAI,QAAc;AAE/C,MAAM,uBAAuB,OAAO,UAAiB;AACnD,MAAK,MAAc,cAAe;AAClC,QAAM,OAAO,MAAM,aAAa;AAChC,QAAM,OAAO,MAAM;AACnB,QAAM,WAAW,UAAU,IAAI;AAE/B,aAAW,QAAQ,MAAM;AACvB,QAAI,EAAE,gBAAgB,aAAc;AACpC,UAAM,SAAS,KAAK,eAAe,QAAQ;AAC3C,QAAI,UAAU,CAAC,iBAAiB,IAAI,GAAG;AACrC,YAAM,OAAY,sBAAS,mBAAmB,IAAI;AAClD,UAAI,QAAQ,KAAK,eAAe,OAAO,KAAK,gCAAgC,YAAY;AACtF,cAAM,KAAK,4BAA4B,MAAM,UAAU,QAAQ,KAAK;AACpE,QAAC,MAAc,gBAAgB;AAC/B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,SAAS,cAAuB;AACvC,QAAM,MAAc,iBAAkB,OAAO,WAAW,cAAc,SAAS;AAC/E,QAAM,MAAgB,KAAK;AAC3B,QAAM,gBAAgB,oBAAI,IAAiB;AAC3C,aAAW,CAAC,KAAK,GAAG,KAAK,gCAAkB;AACzC,QAAK,MAAc,GAAG,EAAG,eAAc,IAAK,IAAY,GAAG,GAAG,GAAG;AAAA,EACnE;AACA,QAAM,aAAa,sBAAS,aAAa,GAAG;AAE5C,SAAO,EAAE,KAAK,KAAK,eAAe,WAAW;AAC/C;AAEA,MAAM,cAAc,CAAC,SAAc;AACjC,MAAI,CAAC,KAAK,6BAA8B,MAAK,+BAA+B,oBAAI,IAAI;AACpF,SAAO,KAAK;AACd;AAEA,MAAM,iBAAiB,CAAC,UAAe;AACrC,MAAI,MAAM,kBAAmB;AAC7B,QAAM,oBAAoB;AAE1B,QAAM,oBAAoB,SAAU,UAAkB,SAAkB,YAAiC,CAAC,GAAG;AAC3G,eAAW,IAAI;AACf,UAAM,SAAS,KAAK,aAAa,QAAQ;AACzC,QAAI,QAAQ;AACV,UAAI;AACF,cAAM,OAAO,iBAAiB,IAAI;AAClC,cAAM,aAAc,KAAa,eAAe,IAAI;AACpD,cAAM,UAAU,sBAAS,aAAa,UAAU;AAChD,cAAM,OAAO,EAAE,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,KAAK,MAAM,OAAO,KAAK,YAAY,EAAE;AAC1F,kCAAc,QAAQ,EAAE,QAAQ,SAAS,MAAM,KAAK,CAAC;AAAA,MACvD,SAAS,GAAG;AACV,gBAAQ,MAAM,2BAA2B,QAAQ,KAAK,CAAC;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,iBAAiB,SAAU,aAAqC;AACpE,eAAW,IAAI;AACf,QAAI,aAAa,OAAQ,QAAO,YAAY;AAC5C,UAAM,YAAY,sBAAS,gBAAgB,IAAW;AACtD,aAAS,IAAI,UAAU,SAAS,GAAG,KAAK,GAAG,KAAK;AAC9C,YAAM,QAAQ,iBAAiB,UAAU,CAAC,CAAC;AAC3C,UAAI,OAAO,OAAQ,QAAO,MAAM;AAAA,IAClC;AACA,WAAQ,OAAO,WAAW,cAAc,SAAS;AAAA,EACnD;AAEA,QAAM,yBAAyB,SAAU,YAA6B,SAAmB,YAAmB,CAAC,GAAG;AAC9G,eAAW,IAAI;AACf,QAAI,OAAQ,KAAa,UAAU,MAAM,WAAY;AACrD,UAAM,aAAa,WAAW,sBAAS,WAAW,IAAI;AACtD,UAAM,MAAM,YAAY,UAAU;AAElC,QAAI,KAAK;AACP,YAAM,eAAe,oBAAI,IAAc;AACvC,YAAM,aAAa,IAAI,sCAAwB,CAAC,IAAI,qCAAuB,EAAE,eAAe,iCAAoB,UAAU,MAAM,WAAW,CAAC,GAAG,IAAI,qCAAuB,EAAE,eAAe,iCAAoB,UAAU,MAAM,WAAW,SAAS,CAAC,GAAG,IAAI,qCAAuB,EAAE,eAAe,iCAAoB,WAAW,MAAM,WAAW,UAAU,CAAC,GAAG,IAAI,qCAAuB,EAAE,eAAe,iCAAoB,MAAM,MAAM,WAAW,MAAM,CAAC,GAAG,IAAI,qCAAuB,EAAE,eAAe,iCAAoB,OAAO,MAAM,WAAW,OAAO,CAAC,GAAG,IAAI,qCAAuB,EAAE,eAAe,iCAAoB,YAAY,MAAM,WAAW,WAAW,CAAC,GAAG,IAAI,qCAAuB,EAAE,eAAe,iCAAoB,WAAW,MAAM,WAAW,UAAU,CAAC,GAAG,IAAI,qCAAuB,EAAE,eAAe,iCAAoB,gBAAgB,MAAM,WAAW,cAAc,CAAC,GAAG,IAAI,qCAAuB,EAAE,eAAe,iCAAoB,eAAe,MAAM,WAAW,aAAa,CAAC,CAAC,CAAC;AAC99B,mBAAa,IAAI,uCAAyB,UAAU;AAEpD,aAAO,IAAI,iBAAiB;AAAA,QAC1B;AAAA,UACE,QAAQ;AAAA,UACR,WAAW;AAAA,UACX,iBAAiB;AAAA,QACnB;AAAA,QACA;AAAA,MACF;AAAA,IACF,OAAO;AACL,aAAQ,KAAa,UAAU,EAAE,GAAG,SAAS;AAAA,IAC/C;AAAA,EACF;AAEA,QAAM,sBAAsB,SAAU,IAAiB,UAAkB,QAAgB,WAAoB;AAC3G,eAAW,IAAI;AACf,QAAI,CAAC,WAAW;AACd,UAAI,CAAC,SAAS,WAAW,SAAS,EAAG;AACrC,kBAAY,SAAS,UAAU,CAAC;AAAA,IAClC;AACA,UAAM,aAAa,YAAY,IAAI;AACnC,QAAI,WAAW,WAAW,IAAI,EAAE;AAChC,QAAI,CAAC,UAAU;AACb,iBAAW,oBAAI,IAAI;AACnB,iBAAW,IAAI,IAAI,QAAQ;AAAA,IAC7B;AAEA,UAAM,aAAa,SAAS,IAAI,QAAQ;AACxC,QAAI,WAAY,IAAG,oBAAoB,WAAW,UAAU;AAE5D,UAAM,UAAU,OAAO,UAAe;AACpC,YAAM,UAAU,sBAAS,WAAW,EAAE;AACtC,YAAM,OAAO,iBAAiB,IAAI;AAClC,YAAM,aAAc,KAAa,eAAe,IAAI;AACpD,YAAM,UAAU,sBAAS,aAAa,UAAU;AAChD,YAAM,OAAO;AAAA,QACX;AAAA,QACA,OAAQ,MAAsB;AAAA,QAC9B,GAAG;AAAA,QACH,GAAG;AAAA,QACH,KAAK;AAAA,QACL,OAAO,KAAK,YAAY;AAAA,MAC1B;AACA,YAAM,0BAAc,QAAQ,EAAE,QAAQ,SAAS,IAAI,KAAK,CAAC;AAAA,IAC3D;AAEA,OAAG,iBAAiB,WAAW,OAAO;AACtC,aAAS,IAAI,UAAU,OAAO;AAAA,EAChC;AAEA,QAAM,8BAA8B,eAAgB,IAAiB,UAAkB,QAAgB,OAAc;AACnH,eAAW,IAAI;AAEf,UAAM,UAAU,sBAAS,WAAW,EAAE;AACtC,UAAM,OAAO,iBAAiB,IAAI;AAClC,UAAM,aAAc,KAAa,eAAe,IAAI;AACpD,UAAM,iBAAiB,sBAAS,aAAa,UAAU;AACvD,UAAM,SAAU,MAAsB;AACtC,UAAM,OAAO;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,SAAS;AAAA,MACT,GAAG;AAAA,MACH,GAAG;AAAA,MACH,KAAK;AAAA,MACL,OAAO,KAAK,YAAY;AAAA,IAC1B;AACA,UAAM,0BAAc,QAAQ,EAAE,QAAQ,SAAS,IAAI,KAAK,CAAC;AAAA,EAC3D;AACF;AAEO,MAAM,gBACX,CAAC,MAAc,SAAiC,CAAC,MACjD,CAAC,gBAAqB;AACpB,QAAM,EAAE,KAAK,KAAK,eAAe,kBAAkB,YAAY,gBAAgB,IAAI,SAAS,OAAO,MAAM;AACzG,QAAM,WAA4B,EAAE,GAAG,QAAQ,MAAM,QAAQ,IAAI;AAEjE,MAAI,CAAC,SAAS,QAAQ;AACpB,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACtC;AAEA,MAAI,iBAAiB,SAAS;AAC9B,MAAI,CAAC,gBAAgB;AACnB,QAAIA,SAAQ;AACZ,UAAM,kBAAmB,IAAY;AACrC,WAAOA,UAASA,WAAU,mBAAmBA,WAAU,SAAS,WAAW;AACzE,uBAAiB,iBAAiB,IAAIA,MAAK;AAC3C,UAAI,eAAgB;AACpB,MAAAA,SAAQ,OAAO,eAAeA,MAAK;AAAA,IACrC;AACA,aAAS,UAAU;AAAA,EACrB;AAEA,QAAM,0BAAsB,uDAA+B,WAAW,KAAK,CAAC;AAC5E,QAAM,0BAA0B,oBAAoB,OAAO,UAAQ,KAAK,aAAa,WAAW,KAAK,aAAa,EAAE;AACpH,QAAM,2BAAuB,qDAA4B,WAAW,KAAK,CAAC;AAC1E,QAAM,oBAAgB,6DAAgC,WAAW;AACjE,QAAM,oBAAgB,2CAAyB,WAAW;AAC1D,QAAM,wBAAoB,qDAA8B,WAAW;AAEnE,QAAM,yBAAyB,CAAC,sBAAsB,oBAAoB,uBAAuB,2BAA2B,0BAA0B,8BAA8B,6BAA6B,yBAAyB,wBAAwB,0BAA0B;AAC5R,QAAM,cAAc,8BAAgB,IAAI,OAAK,UAAU,CAAC,EAAE;AAG1D,QAAM,sBAAsB,MAAM,KAAK,kBAAkB,OAAO,CAAC,EAAE,IAAI,QAAM,GAAG,QAAQ,IAAI,EAAE,OAAO,OAAO;AAE5G,QAAM,iBAAiB,cAAc,OAAO,QAAM,GAAG,aAAa,OAAO,EAAE,IAAI,QAAI,GAAG,QAAQ,QAAQ,OAAO,GAAG,WAAW,CAAC;AAE5H,QAAM,2BAA2B,CAAC,GAAG,oBAAI,IAAI;AAAA,IAC3C,GAAI,SAAS,sBAAsB,CAAC;AAAA,IACpC,GAAG,cAAc,KAAK;AAAA,IACtB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG,wBAAwB,IAAI,QAAO,GAAG,QAAgB,aAAa,EAAE,OAAO,OAAO;AAAA,IACtF,GAAG;AAAA,IACH,GAAG;AAAA,EACL,CAAC,CAAC;AAEF,QAAM,6BAAyB,mDAAgC,WAAW,KAAK,CAAC;AAEhF,QAAM,QAAQ,YAAY;AAC1B,iBAAe,KAAK;AAEpB,QAAM,oBAAoB,MAAM;AAChC,QAAM,oBAAoB,WAAY;AACpC,eAAW,IAAI;AAEf,UAAM,UAAU,sBAAS,WAAW,IAAW;AAC/C,UAAM,UAAU,QAAQ;AACxB,UAAM,OAAO,iBAAiB,IAAI;AAClC,UAAM,aAAc,KAAa,eAAe,IAAI;AAEpD,QAAI,uBAAuB,KAAK,QAAM,GAAG,QAAQ,cAAc,IAAI,KAAK,CAAC,KAAK,YAAY;AACxF,WAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAAA,IACpC;AAEA,IAAC,KAAa,kBAAkB,2BAA2B,OAAO;AAClE,UAAM,eAAW,4CAAyB,MAAM,kDAAgC;AAChF,QAAI,UAAU;AACZ,iBAAW,KAAK,SAAU,CAAC,KAAa,uBAAuB,GAAG,OAAO;AAAA,IAC3E;AAEA,QAAI,uBAAuB,SAAS,GAAG;AACrC,UAAI,WAAW,IACb,WAAW;AACb,iBAAW,QAAQ,wBAAwB;AAEzC,cAAM,MAAO,KAAa,uBAAuB,KAAK,aAAa,OAAO;AAG1E,YAAI,QAAQ,QAAW;AACrB,cAAI,KAAK,QAAQ,UAAW,aAAY;AAAA,cACnC,aAAY;AAAA,QACnB;AAAA,MACF;AACA,UAAI,KAAK,WAAY,MAAK,WAAW,YAAY;AACjD,UAAI,SAAU,MAAK,YAAY;AAAA,IACjC;AAEA,UAAM,OAAO,KAAK,YAAY;AAC9B,QAAI,CAAC,qBAAqB,IAAI,IAAI,GAAG;AACnC,oCAAgB,QAAQ,UAAQ;AAC9B,aAAK,iBAAiB,MAAM,oBAAoB;AAAA,MAClD,CAAC;AACD,2BAAqB,IAAI,IAAI;AAAA,IAC/B;AAGA,UAAM,oBAAiD,CAAC;AACxD,UAAM,uBAAoD,CAAC;AAE3D,yBAAqB,QAAQ,UAAQ;AACnC,UAAI,KAAK,QAAQ,YAAY,KAAK,aAAa,aAAa,KAAK,aAAa,eAAe,KAAK,aAAa,iBAAiB,KAAK,aAAa,cAAc,KAAK,aAAa,gBAAgB,KAAK,aAAa,eAAe,KAAK,aAAa,mBAAmB,KAAK,aAAa,kBAAkB,KAAK,aAAa,YAAY,KAAK,aAAa,eAAe,KAAK,aAAa,WAAW,KAAK,aAAa,IAAI;AAC5Z,0BAAkB,KAAK,IAAI;AAAA,MAC7B,OAAO;AACL,6BAAqB,KAAK,IAAI;AAAA,MAChC;AAAA,IACF,CAAC;AAED,UAAM,yBAAyB,oBAAI,IAAmB;AACtD,sBAAkB,QAAQ,UAAQ;AAChC,YAAM,IAAI,KAAK,QAAQ,QAAQ;AAC/B,YAAM,UAAU,GAAG,KAAK,IAAI,IAAI,CAAC;AACjC,UAAI,CAAC,uBAAuB,IAAI,OAAO,GAAG;AACxC,+BAAuB,IAAI,SAAS,CAAC,CAAC;AAAA,MACxC;AACA,6BAAuB,IAAI,OAAO,EAAG,KAAK,IAAI;AAAA,IAChD,CAAC;AAED,2BAAuB,QAAQ,CAAC,UAAU,gBAAgB;AACxD,YAAM,CAAC,MAAM,IAAI,IAAI,YAAY,MAAM,GAAG;AAC1C,YAAM,IAAI,SAAS,SAAS,SAAS;AACrC,YAAM,OAAO,EAAE,SAAS,SAAS,CAAC,EAAE,QAAQ,SAAS,MAAM,SAAS,CAAC,EAAE,QAAQ,MAAM,SAAS,SAAS,CAAC,EAAE,QAAQ,QAAQ;AAE1H,YAAM,YAA0C,CAAC;AACjD,UAAI,MAAM,OAAQ,WAAU,KAAK,KAAK,cAAe,IAAY;AAAA,eACxD,MAAM,QAAS,WAAU,KAAK,IAAW;AAAA,eACzC,MAAM,YAAY,KAAK,WAAY,WAAU,KAAK,KAAK,UAAU;AAAA,eACjE,MAAM,OAAO;AACpB,kBAAU,KAAK,IAAW;AAC1B,YAAI,KAAK,WAAY,WAAU,KAAK,KAAK,UAAU;AAAA,MACrD;AAEA,gBAAU,QAAQ,QAAM;AACtB,cAAM,iBAAiB,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM;AAClD,gBAAM,QAAQ,EAAE,QAAQ,kBAAkB,IAAI;AAC9C,gBAAM,QAAQ,EAAE,QAAQ,kBAAkB,IAAI;AAC9C,iBAAO,QAAQ;AAAA,QACjB,CAAC;AAED,cAAM,iBAAiB,OAAO,UAAiB;AAC7C,qBAAW,QAAQ,gBAAgB;AACjC,kBAAM,EAAE,UAAU,QAAQ,IAAI;AAC9B,kBAAM,YAAa,MAAM,OAAuB,QAAQ,QAAQ;AAChE,gBAAI,aAAc,GAAW,SAAS,SAAS,GAAG;AAEhD,kBAAI,QAAQ,QAAQ;AAClB,sBAAM,SAAS,sBAAS,oBAAoB,YAAY,SAAS;AACjE,oBAAI,CAAC,QAAQ,OAAO,OAAO,MAAM,GAAG;AAClC;AAAA,gBACF;AAAA,cACF;AACA,kBAAI,QAAQ,gBAAiB,OAAM,gBAAgB;AACnD,kBAAI,QAAQ,yBAA0B,OAAM,yBAAyB;AACrE,kBAAI,QAAQ,eAAgB,OAAM,eAAe;AACjD,oBAAM,iBAAiB,sBAAS,WAAW,IAAW;AACtD,oBAAM,OAAO,EAAE,OAAO,GAAG,gBAAgB,KAAK,WAAW,OAAO,GAAG;AACnE,oBAAO,KAAa,KAAK,WAAW,EAAE,OAAO,gBAAgB,WAAW,IAAI;AAC5E,kBAAK,MAAc,aAAc;AAAA,YACnC;AAAA,UACF;AAAA,QACF;AACA,WAAG,iBAAiB,MAAM,gBAAgB,IAAI;AAC9C,QAAC,KAAa,gBAAgB,KAAK,EAAE,QAAQ,IAAI,MAAM,SAAS,gBAAgB,SAAS,KAAK,CAAC;AAAA,MACjG,CAAC;AAAA,IACH,CAAC;AAED,yBAAqB,QAAQ,UAAQ;AACnC,YAAM,EAAE,UAAU,MAAM,QAAQ,IAAI;AACpC,YAAM,OAAO,EAAE,SAAS,QAAQ,SAAS,MAAM,QAAQ,MAAM,SAAS,QAAQ,QAAQ;AACtF,YAAM,cAA6B,CAAC;AACpC,YAAM,IAAI,QAAQ,QAAQ;AAC1B,YAAM,kBAAkB,CAAC,WAAgB;AACvC,YAAI,CAAC,OAAQ;AACb,YAAI,MAAM,QAAQ;AAChB,sBAAY,KAAK,OAAO,cAAc,MAAM;AAAA,QAC9C,OAAO;AACL,cAAI,MAAM,WAAW,MAAM,MAAO,aAAY,KAAK,MAAM;AACzD,eAAK,MAAM,YAAY,MAAM,UAAU,OAAO,WAAY,aAAY,KAAK,OAAO,UAAU;AAAA,QAC9F;AAAA,MACF;AAEA,UAAI,aAAa,UAAW,aAAY,KAAK,UAAU;AAAA,eAC9C,aAAa,YAAa,aAAY,KAAK,WAAW,QAAQ;AAAA,eAC9D,aAAa,cAAe,iBAAgB,QAAQ,WAAW;AAAA,eAC/D,aAAa,WAAY,iBAAgB,QAAQ,QAAQ;AAAA,eACzD,aAAa,aAAc,iBAAgB,QAAQ,UAAU;AAAA,eAC7D,aAAa,YAAa,iBAAgB,QAAQ,SAAS;AAAA,eAC3D,aAAa,gBAAiB,iBAAgB,QAAQ,aAAa;AAAA,eACnE,aAAa,eAAgB,iBAAgB,QAAQ,YAAY;AAAA,eACjE,aAAa,SAAU,SAAQ,OAAO,QAAQ,eAAe;AAAA,eAC7D,aAAa,YAAa,SAAQ,UAAU,QAAQ,eAAe;AAAA,eACnE,aAAa,WAAW,CAAC,SAAU,iBAAgB,IAAI;AAAA,WAC3D;AACH,cAAM,cAA4C,CAAC;AACnD,YAAI,MAAM,OAAQ,aAAY,KAAK,KAAK,cAAe,IAAY;AAAA,iBAC1D,MAAM,QAAS,aAAY,KAAK,IAAW;AAAA,iBAC3C,MAAM,YAAY,KAAK,WAAY,aAAY,KAAK,KAAK,UAAU;AAAA,iBACnE,MAAM,OAAO;AACpB,sBAAY,KAAK,IAAW;AAC5B,cAAI,KAAK,WAAY,aAAY,KAAK,KAAK,UAAU;AAAA,QACvD;AAEA,oBAAY,QAAQ,QAAM;AACxB,aAAG,iBAAiB,QAAQ,EAAE,QAAQ,QAAM,YAAY,KAAK,EAAE,CAAC;AAAA,QAClE,CAAC;AAAA,MACH;AAEA,kBAAY,QAAQ,OAAK;AACvB,cAAM,UAAU,OAAO,UAAiB;AAEtC,cAAI,QAAQ,QAAQ;AAClB,kBAAM,SAAS,sBAAS,oBAAoB,YAAY,CAAgB;AACxE,gBAAI,CAAC,QAAQ,OAAO,OAAO,MAAM,GAAG;AAClC;AAAA,YACF;AAAA,UACF;AACA,cAAI,QAAQ,gBAAiB,OAAM,gBAAgB;AACnD,cAAI,QAAQ,yBAA0B,OAAM,yBAAyB;AACrE,cAAI,QAAQ,eAAgB,OAAM,eAAe;AACjD,gBAAM,iBAAiB,sBAAS,WAAW,IAAW;AACtD,gBAAM,OAAO,EAAE,OAAO,GAAG,gBAAgB,KAAK,GAAG,OAAO,EAAE;AAC1D,gBAAO,KAAa,KAAK,WAAW,EAAE,OAAO,gBAAgB,IAAI;AAAA,QACnE;AACA,UAAE,iBAAiB,MAAM,SAAS,IAAI;AACtC,YAAI,QAAQ,yBAAyB,QAAQ,MAAM,cAAc,MAAM,WAAW,UAAU;AAC1F,UAAC,KAAa,gBAAgB,KAAK,EAAE,QAAQ,GAAG,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,QAChF;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,QAAI,kBAAmB,mBAAkB,MAAM,IAAI;AAEnD,UAAM,eAAW,4CAAyB,MAAM,iDAA+B;AAC/E,QAAI,UAAU;AACZ,iBAAW,KAAK,SAAU,CAAC,KAAa,uBAAuB,GAAG,OAAO;AAAA,IAC3E;AACA,IAAC,KAAa,kBAAkB,oBAAoB,OAAO;AAC3D,IAAC,KAAa,kBAAkB,0BAA0B,OAAO;AACjE,IAAC,KAAa,kBAAkB;AAIhC,UAAM,YAAY,sBAAS,4BAA4B,IAAI;AAE3D,QAAI,WAAW,OAAQ,QAAgB,eAAe,YAAY;AAChE,MAAC,QAAgB,WAAW,IAAI;AAAA,IAClC,WAAW,WAAW,OAAQ,SAAiB;AAC7C,MAAC,QAAgB,sBAAhB,QAAgB,oBAAsB,CAAC;AACxC,MAAC,QAAgB,kBAAkB,KAAK,IAAI;AAAA,IAC9C;AAAA,EACF;AAEA,QAAM,uBAAuB,MAAM;AACnC,QAAM,uBAAuB,WAAY;AACvC,UAAM,UAAU,sBAAS,WAAW,IAAW;AAC/C,IAAC,KAAa,kBAAkB,8BAA8B,OAAO;AACrE,UAAM,eAAW,4CAAyB,MAAM,qDAAmC;AACnF,QAAI,UAAU;AACZ,iBAAW,KAAK,SAAU,CAAC,KAAa,uBAAuB,GAAG,OAAO;AAAA,IAC3E;AAEA,QAAK,KAAa,iBAAiB;AACjC,MAAC,KAAa,gBAAgB,QAAQ,CAAC,MAAW,EAAE,OAAO,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;AAC5G,MAAC,KAAa,kBAAkB,CAAC;AAAA,IACnC;AAEA,QAAI,qBAAsB,sBAAqB,MAAM,IAAI;AAEzD,UAAM,eAAW,4CAAyB,MAAM,oDAAkC;AAClF,QAAI,UAAU;AACZ,iBAAW,KAAK,SAAU,CAAC,KAAa,uBAAuB,GAAG,OAAO;AAAA,IAC3E;AACA,IAAC,KAAa,kBAAkB,uBAAuB,OAAO;AAC9D,IAAC,KAAa,kBAAkB,6BAA6B,OAAO;AACpE,IAAC,KAAa,kBAAkB;AAGhC,UAAM,UAAU,QAAQ;AACxB,QAAI,WAAW,OAAQ,QAAgB,kBAAkB,YAAY;AACnE,MAAC,QAAgB,cAAc,IAAI;AAAA,IACrC;AAAA,EACF;AAEA,QAAM,kBAAkB,MAAM;AAC9B,QAAM,kBAAkB,WAAY;AAClC,UAAM,UAAU,sBAAS,WAAW,IAAW;AAC/C,IAAC,KAAa,kBAAkB,yBAAyB,OAAO;AAChE,UAAM,eAAW,4CAAyB,MAAM,gDAA8B;AAC9E,QAAI,UAAU;AACZ,iBAAW,KAAK,SAAU,CAAC,KAAa,uBAAuB,GAAG,OAAO;AAAA,IAC3E;AAEA,QAAI,gBAAiB,iBAAgB,MAAM,IAAI;AAE/C,UAAM,eAAW,4CAAyB,MAAM,+CAA6B;AAC7E,QAAI,UAAU;AACZ,iBAAW,KAAK,SAAU,CAAC,KAAa,uBAAuB,GAAG,OAAO;AAAA,IAC3E;AACA,IAAC,KAAa,kBAAkB,kBAAkB,OAAO;AACzD,IAAC,KAAa,kBAAkB,wBAAwB,OAAO;AAAA,EACjE;AAEA,QAAM,2BAA2B,MAAM;AACvC,QAAM,2BAA2B,SAAUC,OAAc,KAAoB,QAAuB;AAClG,QAAI,yBAA0B,0BAAyB,MAAM,MAAM,CAACA,OAAM,KAAK,MAAM,CAAC;AAEtF,UAAM,OAAO,sBAAS,WAAW,IAAW;AAG5C,QAAI,eAAe;AACnB,QAAI,WAAW,MAAM;AACnB,YAAM,KAAK,IAAI,6BAAiB,MAAM;AACtC,YAAM,OAAO,GAAG,mBAAmB,aAAa;AAChD,UAAI,MAAM;AACR,cAAMC,OAAO,KAAa,iBAAiB,MAAO,OAAO,WAAW,cAAc,SAAS;AAC3F,YAAI;AACF,gBAAM,SAAS,0BAAc,cAAc;AAAA,YACzC,QAAQ,6BAAa,iBAAiB,KAAK,QAAQA,KAAI,QAAQ;AAAA,YAC/D,SAAS;AAAA,YACT,MAAM,sBAAS,oBAAoBA,MAAI,IAAW;AAAA,UACpD,CAAC;AACD,yBAAe,OAAO,MAAM;AAAA,QAC9B,SAAS,GAAG;AACV,kBAAQ,MAAM,yCAAyC,KAAK,MAAM,oBAAoBD,KAAI,KAAK,CAAC;AAChG,yBAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAEA,QAAIA,MAAK,WAAW,SAAS,KAAK,CAAC,uBAAuB,SAASA,KAAI,GAAG;AACxE,UAAI,WAAW,MAAM;AACnB,cAAM,YAAYA,MAAK,UAAU,CAAC;AAClC,QAAC,KAAa,oBAAoB,MAAaA,OAAM,QAAQ,SAAS;AAAA,MACxE;AAAA,IACF;AAEA,UAAM,sBAAsB,wBAAwB,KAAK,QAAO,GAAG,QAAgB,kBAAkBA,KAAI;AACzG,QAAI,uBAAuB,WAAW,MAAM;AAC1C,MAAC,KAAa,oBAAoB,MAAaA,OAAM,QAAQ,oBAAoB,IAAI;AAAA,IACvF;AAEA,UAAM,QAAQ,cAAc,IAAIA,KAAI;AACpC,QAAI,SAAS,MAAM,QAAQ,KAAK,GAAG;AACjC,iBAAW,OAAO,MAAO,CAAC,KAAa,GAAG,EAAE,cAAc,KAAKA,OAAM,IAAI;AAAA,IAC3E;AAAA,EACF;AAEA,SAAO,eAAe,aAAa,sBAAsB;AAAA,IACvD,KAAK,MAAM;AAAA,IACX,cAAc;AAAA,EAChB,CAAC;AAED,2BAAa,eAAe,oBAAoB,UAAU,WAAW;AACrE,QAAM,WAAW,SAAS,yBAA0B,KAAa;AACjE,MAAI,YAAY,CAAC,SAAS,IAAI,SAAS,IAAI,GAAG;AAC5C,aAAS,OAAO,SAAS,MAAM,aAAoB,SAAS,UAAU,EAAE,SAAS,SAAS,QAAQ,IAAI,MAAS;AAAA,EACjH;AACA,SAAO;AACT;",
6
+ "names": ["proto", "name", "win"]
7
7
  }
@@ -37,11 +37,11 @@ class SwcAppEngine {
37
37
  try {
38
38
  this._config = config;
39
39
  if (this._config.routeType === "path") {
40
- this.router = new import_core_web.PathRouter({ window: this._config.window });
40
+ this.router = new import_core_web.PathRouter({ window: this._config.window, firstUrl: this._config.path });
41
41
  } else if (this._config.routeType === "hash") {
42
- this.router = new import_core_web2.HashRouter({ window: this._config.window });
42
+ this.router = new import_core_web2.HashRouter({ window: this._config.window, firstUrl: this._config.path });
43
43
  } else if (this._config.routeType === "element") {
44
- this.router = new import_ElementRouter.ElementRouter({ window: this._config.window });
44
+ this.router = new import_ElementRouter.ElementRouter({ window: this._config.window, firstUrl: this._config.path });
45
45
  }
46
46
  const containerSymbol = this._config.container || this.host.getContainerSymbol?.();
47
47
  this.simpleApplication = new import_SimpleApplication.SimpleApplication(
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcAppEngine.ts"],
4
- "sourcesContent": ["import { SimpleApplication } from '@dooboostore/simple-boot/SimpleApplication';\nimport { PathRouter } from '@dooboostore/core-web';\nimport { HashRouter } from '@dooboostore/core-web';\nimport { ElementRouter } from '../router/ElementRouter';\nimport { SimOption } from '@dooboostore/simple-boot/SimOption';\nimport { Router, RouterEventType } from '@dooboostore/core-web';\nimport { Subscription } from '@dooboostore/core';\nimport { ConstructorType, OptionalType } from '@dooboostore/core';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { SwcUtils } from '../utils/Utils';\n\nimport { SwcAppInterface } from '../types';\nimport {Intent} from \"@dooboostore/simple-boot\";\n\nexport type SwcConfigType = {\n routeType: 'path' | 'hash' | 'element';\n connectMode?: 'direct' | 'swap';\n container?: symbol;\n path?: string;\n window: Window;\n onEngineStarted?: (sp: SimpleApplication, app: SwcAppInterface) => void;\n onConnected?: (app: SwcAppInterface) => void;\n onDisconnected?: (app: SwcAppInterface) => void;\n};\n\nexport type SwcAttributeConfigType = OptionalType<SwcConfigType, 'routeType' | 'window'>;\n\nexport class SwcAppEngine {\n public simpleApplication?: SimpleApplication;\n public router?: Router;\n private routerSubscription?: Subscription;\n private _config?: SwcConfigType;\n\n constructor(private host: HTMLElement) {}\n\n get config() {\n return this._config;\n }\n async connect(config: SwcConfigType) {\n try {\n this._config = config;\n\n // Router Selection\n if (this._config.routeType === 'path') {\n this.router = new PathRouter({ window: this._config.window });\n } else if (this._config.routeType === 'hash') {\n this.router = new HashRouter({ window: this._config.window });\n } else if (this._config.routeType === 'element') {\n this.router = new ElementRouter({ window: this._config.window });\n }\n\n // console.log('vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv', this.router)\n\n // App start\n const containerSymbol = this._config.container || (this.host as any).getContainerSymbol?.();\n this.simpleApplication = new SimpleApplication(\n new SimOption({\n excludeProxys: [Node],\n container: containerSymbol\n })\n );\n\n const otherInstanceSim = new Map<any, any>();\n if (this.router) otherInstanceSim.set(Router, this.router);\n this.simpleApplication.run(otherInstanceSim);\n\n if (this._config.onEngineStarted) {\n this._config.onEngineStarted(this.simpleApplication, this.host as unknown as SwcAppInterface);\n }\n } catch (e) {\n console.error('[SWC-APP-ENGINE] Init failed:', e);\n }\n }\n\n disconnect() {\n this.routerSubscription?.unsubscribe();\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAkC;AAClC,sBAA2B;AAC3B,IAAAA,mBAA2B;AAC3B,2BAA8B;AAC9B,uBAA0B;AAC1B,IAAAA,mBAAwC;AAsBjC,MAAM,aAAa;AAAA,EAMxB,YAAoB,MAAmB;AAAnB;AAAA,EAAoB;AAAA,EAExC,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACd;AAAA,EACA,MAAM,QAAQ,QAAuB;AACnC,QAAI;AACF,WAAK,UAAU;AAGf,UAAI,KAAK,QAAQ,cAAc,QAAQ;AACrC,aAAK,SAAS,IAAI,2BAAW,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,MAC9D,WAAW,KAAK,QAAQ,cAAc,QAAQ;AAC5C,aAAK,SAAS,IAAI,4BAAW,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,MAC9D,WAAW,KAAK,QAAQ,cAAc,WAAW;AAC/C,aAAK,SAAS,IAAI,mCAAc,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,MACjE;AAKA,YAAM,kBAAkB,KAAK,QAAQ,aAAc,KAAK,KAAa,qBAAqB;AAC1F,WAAK,oBAAoB,IAAI;AAAA,QAC3B,IAAI,2BAAU;AAAA,UACZ,eAAe,CAAC,IAAI;AAAA,UACpB,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AAEA,YAAM,mBAAmB,oBAAI,IAAc;AAC3C,UAAI,KAAK,OAAQ,kBAAiB,IAAI,yBAAQ,KAAK,MAAM;AACzD,WAAK,kBAAkB,IAAI,gBAAgB;AAE3C,UAAI,KAAK,QAAQ,iBAAiB;AAChC,aAAK,QAAQ,gBAAgB,KAAK,mBAAmB,KAAK,IAAkC;AAAA,MAC9F;AAAA,IACF,SAAS,GAAG;AACV,cAAQ,MAAM,iCAAiC,CAAC;AAAA,IAClD;AAAA,EACF;AAAA,EAEA,aAAa;AACX,SAAK,oBAAoB,YAAY;AAAA,EACvC;AACF;",
4
+ "sourcesContent": ["import { SimpleApplication } from '@dooboostore/simple-boot/SimpleApplication';\nimport { PathRouter } from '@dooboostore/core-web';\nimport { HashRouter } from '@dooboostore/core-web';\nimport { ElementRouter } from '../router/ElementRouter';\nimport { SimOption } from '@dooboostore/simple-boot/SimOption';\nimport { Router, RouterEventType } from '@dooboostore/core-web';\nimport { Subscription } from '@dooboostore/core';\nimport { ConstructorType, OptionalType } from '@dooboostore/core';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { SwcUtils } from '../utils/Utils';\n\nimport { SwcAppInterface } from '../types';\nimport {Intent} from \"@dooboostore/simple-boot\";\n\nexport type SwcConfigType = {\n routeType: 'path' | 'hash' | 'element';\n connectMode?: 'direct' | 'swap';\n container?: symbol;\n path?: string;\n window: Window;\n onEngineStarted?: (sp: SimpleApplication, app: SwcAppInterface) => void;\n onConnected?: (app: SwcAppInterface) => void;\n onDisconnected?: (app: SwcAppInterface) => void;\n};\n\nexport type SwcAttributeConfigType = OptionalType<SwcConfigType, 'routeType' | 'window'>;\n\nexport class SwcAppEngine {\n public simpleApplication?: SimpleApplication;\n public router?: Router;\n private routerSubscription?: Subscription;\n private _config?: SwcConfigType;\n\n constructor(private host: HTMLElement) {}\n\n get config() {\n return this._config;\n }\n async connect(config: SwcConfigType) {\n try {\n this._config = config;\n\n // Router Selection\n if (this._config.routeType === 'path') {\n this.router = new PathRouter({ window: this._config.window, firstUrl: this._config.path });\n } else if (this._config.routeType === 'hash') {\n this.router = new HashRouter({ window: this._config.window, firstUrl: this._config.path });\n } else if (this._config.routeType === 'element') {\n this.router = new ElementRouter({ window: this._config.window, firstUrl: this._config.path });\n }\n\n // console.log('vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv', this.router)\n\n // App start\n const containerSymbol = this._config.container || (this.host as any).getContainerSymbol?.();\n this.simpleApplication = new SimpleApplication(\n new SimOption({\n excludeProxys: [Node],\n container: containerSymbol\n })\n );\n\n const otherInstanceSim = new Map<any, any>();\n if (this.router) otherInstanceSim.set(Router, this.router);\n this.simpleApplication.run(otherInstanceSim);\n\n if (this._config.onEngineStarted) {\n this._config.onEngineStarted(this.simpleApplication, this.host as unknown as SwcAppInterface);\n }\n } catch (e) {\n console.error('[SWC-APP-ENGINE] Init failed:', e);\n }\n }\n\n disconnect() {\n this.routerSubscription?.unsubscribe();\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAkC;AAClC,sBAA2B;AAC3B,IAAAA,mBAA2B;AAC3B,2BAA8B;AAC9B,uBAA0B;AAC1B,IAAAA,mBAAwC;AAsBjC,MAAM,aAAa;AAAA,EAMxB,YAAoB,MAAmB;AAAnB;AAAA,EAAoB;AAAA,EAExC,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACd;AAAA,EACA,MAAM,QAAQ,QAAuB;AACnC,QAAI;AACF,WAAK,UAAU;AAGf,UAAI,KAAK,QAAQ,cAAc,QAAQ;AACrC,aAAK,SAAS,IAAI,2BAAW,EAAE,QAAQ,KAAK,QAAQ,QAAQ,UAAU,KAAK,QAAQ,KAAK,CAAC;AAAA,MAC3F,WAAW,KAAK,QAAQ,cAAc,QAAQ;AAC5C,aAAK,SAAS,IAAI,4BAAW,EAAE,QAAQ,KAAK,QAAQ,QAAQ,UAAU,KAAK,QAAQ,KAAK,CAAC;AAAA,MAC3F,WAAW,KAAK,QAAQ,cAAc,WAAW;AAC/C,aAAK,SAAS,IAAI,mCAAc,EAAE,QAAQ,KAAK,QAAQ,QAAQ,UAAU,KAAK,QAAQ,KAAK,CAAC;AAAA,MAC9F;AAKA,YAAM,kBAAkB,KAAK,QAAQ,aAAc,KAAK,KAAa,qBAAqB;AAC1F,WAAK,oBAAoB,IAAI;AAAA,QAC3B,IAAI,2BAAU;AAAA,UACZ,eAAe,CAAC,IAAI;AAAA,UACpB,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AAEA,YAAM,mBAAmB,oBAAI,IAAc;AAC3C,UAAI,KAAK,OAAQ,kBAAiB,IAAI,yBAAQ,KAAK,MAAM;AACzD,WAAK,kBAAkB,IAAI,gBAAgB;AAE3C,UAAI,KAAK,QAAQ,iBAAiB;AAChC,aAAK,QAAQ,gBAAgB,KAAK,mBAAmB,KAAK,IAAkC;AAAA,MAC9F;AAAA,IACF,SAAS,GAAG;AACV,cAAQ,MAAM,iCAAiC,CAAC;AAAA,IAClD;AAAA,EACF;AAAA,EAEA,aAAa;AACX,SAAK,oBAAoB,YAAY;AAAA,EACvC;AACF;",
6
6
  "names": ["import_core_web"]
7
7
  }
@@ -39,10 +39,6 @@ function SwcAppMixin(Base) {
39
39
  get router() {
40
40
  return this.__swc_engine.router;
41
41
  }
42
- // constructor() {
43
- // super();
44
- // console.log('cccccccccccccccccccccc');
45
- // }
46
42
  _invokeRouteChangeSubscribers(instance, re) {
47
43
  const routeChangeSubscribers = (0, import_subscribeSwcAppRouteChange.getSubscribeSwcAppRouteChangeMetadata)(instance);
48
44
  if (routeChangeSubscribers && Array.isArray(routeChangeSubscribers)) {
@@ -140,9 +136,6 @@ function SwcAppMixin(Base) {
140
136
  this._handleRouteChange(route);
141
137
  });
142
138
  const config2 = this.__swc_engine.config;
143
- if (config2?.path) {
144
- this.router.go(config2.path);
145
- }
146
139
  }
147
140
  }
148
141
  _invokeOnConnectedSwcAppStarted(instance) {
@@ -163,7 +156,7 @@ function SwcAppMixin(Base) {
163
156
  const userConfig = import_core.FunctionUtils.executeReturn({
164
157
  script: configStr,
165
158
  context: this,
166
- args: import_Utils.SwcUtils.getHelperAndHostSet(win, import_Utils.SwcUtils.findNearestSwcHost(this))
159
+ args: import_Utils.SwcUtils.getHelperAndHostSet(win, this)
167
160
  });
168
161
  this.connect(userConfig);
169
162
  } catch (e) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcAppMixin.ts"],
4
- "sourcesContent": ["import { SwcAppEngine, SwcAttributeConfigType, SwcConfigType } from './SwcAppEngine';\nimport { SwcAppInterface } from '../types';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils, Subscription } from '@dooboostore/core';\nimport { Router, RouterEventType } from '@dooboostore/core-web';\nimport { ON_CONNECTED_SWC_APP_METADATA_KEY, findAllLifecycleMetadata } from '../decorators/lifecycles';\nimport { getSubscribeSwcAppRouteChangeMetadata } from '../decorators/subscribeSwcAppRouteChange';\n\nexport function SwcAppMixin<T extends { new (...args: any[]): HTMLElement }>(Base: T) {\n //@ts-ignore\n return class 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\n /*\n 사파리 is 일경우\n <script src=\"https://unpkg.com/@ungap/custom-elements\"></script>\n 이걸사용하는데 is 대응하는거다 그런데 이때 처리되는 순서가 크롬이나 표준에서는 부모부터 만들어지고 자식들이 만들어지는데\n 저 polyfill에서는 자식부터 만들어지고 부모가 만들어진다 is일때 아 .. 이문제때문에 자식이 _connected_safari 에 강제로 자기자식넣어준다\n */\n _connected_safari = [];\n get simpleApplication() {\n return this.__swc_engine.simpleApplication;\n }\n get router() {\n return this.__swc_engine.router;\n }\n\n // constructor() {\n // super();\n // console.log('cccccccccccccccccccccc');\n // }\n\n _invokeRouteChangeSubscribers(instance: any, re: RouterEventType) {\n const routeChangeSubscribers = getSubscribeSwcAppRouteChangeMetadata(instance);\n if (routeChangeSubscribers && Array.isArray(routeChangeSubscribers)) {\n routeChangeSubscribers.forEach((metadata: any) => {\n const methodName = metadata.propertyKey || metadata;\n const pathPattern = metadata.pathPattern;\n const filter = metadata.filter;\n\n // Path pattern matching (support both string and array)\n let pathMatched = false;\n let pathData: any = null;\n\n if (!pathPattern) {\n // pathPattern이 없으면 모든 경로 매칭 (와일드카드)\n pathMatched = true;\n pathData = {};\n } else if (Array.isArray(pathPattern)) {\n // 배열: 하나라도 매칭되면 OK\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 // 문자열\n pathData = SwcUtils.parsePathPattern(pathPattern, re.path || '/');\n pathMatched = pathData !== null;\n }\n\n // Filter validation\n const filterPassed = !filter || filter(this.router!);\n\n // Invoke method if conditions pass\n if (pathMatched && filterPassed) {\n instance[methodName]?.({...re, pathData: pathData});\n }\n });\n }\n }\n\n _connected(instance: any) {\n // console.log('appmixin--> connected', this, instance);\n if (instance) {\n this._swc_connected_instance.add(instance);\n if (this.simpleApplication) {\n this._invokeOnConnectedSwcAppStarted(instance);\n // Notify current route subscribers immediately after connection\n if (this.router && this._lastRouterEvent) {\n this._invokeRouteChangeSubscribers(instance, this._lastRouterEvent);\n }\n }\n }\n }\n\n _disconnected(instance: any) {\n if (instance) {\n this._swc_connected_instance.delete(instance);\n }\n }\n\n _handleRouteChange(route: RouterEventType) {\n if (route.triggerPoint === 'end') {\n // Iterate through all connected component instances\n this._swc_connected_instance.forEach((instance: any) => {\n this._invokeRouteChangeSubscribers(instance, route);\n });\n }\n\n // Save last router event\n this._lastRouterEvent = route;\n }\n\n async connect(config?: SwcAttributeConfigType) {\n const swcConfig = {\n routeType: 'element',\n window: config.window,\n ...config\n } as SwcConfigType;\n\n const mode = config?.connectMode || 'direct';\n\n if (mode === 'direct') {\n await this.__swc_engine.connect(swcConfig);\n this.setAttribute('swc-connect-mode', 'direct');\n } else if (mode === 'swap' && !this.parentNode) {\n await this.__swc_engine.connect(swcConfig);\n this.setAttribute('swc-connect-mode', 'direct');\n\n const clonedApp = this.cloneNode(true) as any;\n clonedApp.style.display = 'none';\n this.parentNode.insertBefore(clonedApp, this.nextSibling);\n\n try {\n await clonedApp.connect({ ...(config || {}), connectMode: 'direct' });\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n clonedApp.setAttribute('swc-connect-mode', 'swap');\n clonedApp.style.display = '';\n } catch (e) {\n if (clonedApp.parentNode) {\n clonedApp.parentNode.removeChild(clonedApp);\n }\n throw e;\n }\n }\n\n // 사파리일떄 예외이다 is 일때 polyfill되는데 이떄 부모부터 만들어지는게 아니라 자식부터 만들어진다 그래서 부모가 만들어질때 자식들이 이미 만들어져있어서 부모가 자식들을 등록해주는 형태로 강제로 등록해준다\n this._connected_safari.forEach((instance: any) => {\n this._swc_connected_instance.add(instance);\n });\n // Invoke @onConnectedSwcApp lifecycle methods on all connected component instances\n // const hostSet = SwcUtils.getHostSet(this as any);\n this._swc_connected_instance.forEach((instance: any) => {\n this._invokeOnConnectedSwcAppStarted(instance);\n });\n\n // Safari fix: Manually scan DOM tree and register any SWC components that couldn't find parent\n // This handles the case where is=\"\" elements get upgraded in child-first order\n // const allElements = (this as any).querySelectorAll('*');\n // for (const el of allElements) {\n // const isConnected = (el as any).__swc_connected;\n // if (!isConnected && typeof (el as any)._resolveWindow === 'function') {\n // // Element is an SWC component but hasn't registered with app yet\n // try {\n // this._connected(el);\n // if ((el as any)._invokeOnConnectedSwcAppStarted) {\n // this._invokeOnConnectedSwcAppStarted(el);\n // }\n // } catch (e) {\n // console.warn('[SWC] Error registering discovered element:', el.tagName, e);\n // }\n // }\n // }\n\n // Subscribe to router changes after connect\n if (!this._routerSubscription && this.router) {\n this._routerSubscription = this.router.observable.subscribe((route: RouterEventType) => {\n // console.log('Route changed:', route);\n this._handleRouteChange(route);\n });\n // Navigate to initial path if specified\n const config = this.__swc_engine.config;\n if (config?.path) {\n this.router.go(config.path);\n }\n }\n }\n\n _invokeOnConnectedSwcAppStarted(instance: any) {\n const startedMethods = findAllLifecycleMetadata(instance, ON_CONNECTED_SWC_APP_METADATA_KEY);\n if (startedMethods) {\n for (const m of startedMethods) {\n instance._invokeLifecycleMethod(m);\n }\n }\n }\n\n connectedCallback() {\n // @ts-ignore\n if (super.connectedCallback) 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 // console.log('vvvvvvvvvvvvvvvv->>>>', SwcUtils.findNearestSwcHost(this.host), SwcUtils.getHostSet(this.host))\n const userConfig = FunctionUtils.executeReturn({\n script: configStr,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, SwcUtils.findNearestSwcHost(this))\n });\n this.connect(userConfig);\n } catch (e) {\n console.error('[SWC-APP-ENGINE] Script execution failed:', e);\n }\n }\n\n this.__swc_engine?.config?.onConnected?.(this);\n }\n\n disconnectedCallback() {\n // @ts-ignore\n if (super.disconnectedCallback) super.disconnectedCallback();\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 }\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}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { SwcAppEngine, SwcAttributeConfigType, SwcConfigType } from './SwcAppEngine';\nimport { SwcAppInterface } from '../types';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils, Subscription } from '@dooboostore/core';\nimport { Router, RouterEventType } from '@dooboostore/core-web';\nimport { ON_CONNECTED_SWC_APP_METADATA_KEY, findAllLifecycleMetadata } from '../decorators/lifecycles';\nimport { getSubscribeSwcAppRouteChangeMetadata } from '../decorators/subscribeSwcAppRouteChange';\n\nexport function SwcAppMixin<T extends { new (...args: any[]): HTMLElement }>(Base: T) {\n //@ts-ignore\n return class 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\n /*\n 사파리 is 일경우\n <script src=\"https://unpkg.com/@ungap/custom-elements\"></script>\n 이걸사용하는데 is 대응하는거다 그런데 이때 처리되는 순서가 크롬이나 표준에서는 부모부터 만들어지고 자식들이 만들어지는데\n 저 polyfill에서는 자식부터 만들어지고 부모가 만들어진다 is일때 아 .. 이문제때문에 자식이 _connected_safari 에 강제로 자기자식넣어준다\n */\n _connected_safari = [];\n get simpleApplication() {\n return this.__swc_engine.simpleApplication;\n }\n get router() {\n return this.__swc_engine.router;\n }\n\n _invokeRouteChangeSubscribers(instance: any, re: RouterEventType) {\n const routeChangeSubscribers = getSubscribeSwcAppRouteChangeMetadata(instance);\n if (routeChangeSubscribers && Array.isArray(routeChangeSubscribers)) {\n routeChangeSubscribers.forEach((metadata: any) => {\n const methodName = metadata.propertyKey || metadata;\n const pathPattern = metadata.pathPattern;\n const filter = metadata.filter;\n\n // Path pattern matching (support both string and array)\n let pathMatched = false;\n let pathData: any = null;\n\n if (!pathPattern) {\n // pathPattern이 없으면 모든 경로 매칭 (와일드카드)\n pathMatched = true;\n pathData = {};\n } else if (Array.isArray(pathPattern)) {\n // 배열: 하나라도 매칭되면 OK\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 // 문자열\n pathData = SwcUtils.parsePathPattern(pathPattern, re.path || '/');\n pathMatched = pathData !== null;\n }\n\n // Filter validation\n const filterPassed = !filter || filter(this.router!);\n\n // Invoke method if conditions pass\n if (pathMatched && filterPassed) {\n instance[methodName]?.({...re, pathData: pathData});\n }\n });\n }\n }\n\n _connected(instance: any) {\n // console.log('appmixin--> connected', this, instance);\n if (instance) {\n this._swc_connected_instance.add(instance);\n if (this.simpleApplication) {\n this._invokeOnConnectedSwcAppStarted(instance);\n // Notify current route subscribers immediately after connection\n if (this.router && this._lastRouterEvent) {\n this._invokeRouteChangeSubscribers(instance, this._lastRouterEvent);\n }\n }\n }\n }\n\n _disconnected(instance: any) {\n if (instance) {\n this._swc_connected_instance.delete(instance);\n }\n }\n\n _handleRouteChange(route: RouterEventType) {\n if (route.triggerPoint === 'end') {\n // Iterate through all connected component instances\n this._swc_connected_instance.forEach((instance: any) => {\n this._invokeRouteChangeSubscribers(instance, route);\n });\n }\n\n // Save last router event\n this._lastRouterEvent = route;\n }\n\n async connect(config?: SwcAttributeConfigType) {\n const swcConfig = {\n routeType: 'element',\n window: config.window,\n ...config\n } as SwcConfigType;\n\n const mode = config?.connectMode || 'direct';\n\n if (mode === 'direct') {\n await this.__swc_engine.connect(swcConfig);\n this.setAttribute('swc-connect-mode', 'direct');\n } else if (mode === 'swap' && !this.parentNode) {\n await this.__swc_engine.connect(swcConfig);\n this.setAttribute('swc-connect-mode', 'direct');\n\n const clonedApp = this.cloneNode(true) as any;\n clonedApp.style.display = 'none';\n this.parentNode.insertBefore(clonedApp, this.nextSibling);\n\n try {\n await clonedApp.connect({ ...(config || {}), connectMode: 'direct' });\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n clonedApp.setAttribute('swc-connect-mode', 'swap');\n clonedApp.style.display = '';\n } catch (e) {\n if (clonedApp.parentNode) {\n clonedApp.parentNode.removeChild(clonedApp);\n }\n throw e;\n }\n }\n\n // 사파리일떄 예외이다 is 일때 polyfill되는데 이떄 부모부터 만들어지는게 아니라 자식부터 만들어진다 그래서 부모가 만들어질때 자식들이 이미 만들어져있어서 부모가 자식들을 등록해주는 형태로 강제로 등록해준다\n this._connected_safari.forEach((instance: any) => {\n this._swc_connected_instance.add(instance);\n });\n // Invoke @onConnectedSwcApp lifecycle methods on all connected component instances\n // const hostSet = SwcUtils.getHostSet(this as any);\n this._swc_connected_instance.forEach((instance: any) => {\n this._invokeOnConnectedSwcAppStarted(instance);\n });\n\n\n // Subscribe to router changes after connect\n if (!this._routerSubscription && this.router) {\n this._routerSubscription = this.router.observable.subscribe((route: RouterEventType) => {\n //@ts-ignore\n // console.log('Route changed:', route, this._swcId);\n this._handleRouteChange(route);\n });\n // Navigate to initial path if specified\n const config = this.__swc_engine.config;\n // if (config?.path) {\n // this.router.go(config.path);\n // }\n }\n }\n\n _invokeOnConnectedSwcAppStarted(instance: any) {\n const startedMethods = findAllLifecycleMetadata(instance, ON_CONNECTED_SWC_APP_METADATA_KEY);\n if (startedMethods) {\n for (const m of startedMethods) {\n instance._invokeLifecycleMethod(m);\n }\n }\n }\n\n connectedCallback() {\n // @ts-ignore\n if (super.connectedCallback) 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 // console.log('vvvvvvvvvvvvvvvv->>>>', SwcUtils.findNearestSwcHost(this.host), SwcUtils.getHostSet(this.host))\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-APP-ENGINE] Script execution failed:', e);\n }\n }\n\n this.__swc_engine?.config?.onConnected?.(this);\n }\n\n disconnectedCallback() {\n // @ts-ignore\n if (super.disconnectedCallback) super.disconnectedCallback();\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 }\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}\n"],
5
+ "mappings": "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",
6
6
  "names": ["config"]
7
7
  }
@@ -1,28 +1,8 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var SwcAsync_exports = {};
19
- __export(SwcAsync_exports, {
20
- SwcAsync: () => SwcAsync
21
- });
22
- module.exports = __toCommonJS(SwcAsync_exports);
23
1
  var import_changedAttributeHost = require("../decorators/changedAttributeHost");
24
2
  var import_Utils = require("../utils/Utils");
25
3
  var import_core = require("@dooboostore/core");
4
+ var import_core_web = require("@dooboostore/core-web");
5
+ var import_decorators = require("../decorators");
26
6
  var __decorate = function(decorators, target, key, desc) {
27
7
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28
8
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -36,91 +16,104 @@ class SwcAsync extends HTMLTemplateElement {
36
16
  constructor() {
37
17
  super(...arguments);
38
18
  this._nodes = [];
39
- this._value = null;
40
19
  }
41
- _resolvePortal() {
42
- const portalScript = this.getAttribute("on-get-portal");
43
- if (!portalScript)
44
- return this.parentElement;
45
- const win = this.ownerDocument?.defaultView || window;
46
- const res = import_core.FunctionUtils.executeReturn({
47
- script: portalScript,
48
- context: this,
49
- args: import_Utils.SwcUtils.getHelperAndHostSet(win, this)
50
- });
51
- if (res instanceof HTMLElement)
52
- return res;
53
- if (typeof res === "string")
54
- return win.document.querySelector(res);
55
- return this.parentElement;
20
+ get value() {
21
+ return this._value;
56
22
  }
57
- _executeCloneCallback(attr, args) {
58
- const script = this.getAttribute(attr);
59
- if (!script)
60
- return;
61
- import_core.FunctionUtils.execute({ script, context: this, args });
23
+ set value(nv) {
24
+ this.executeAsync(nv);
25
+ }
26
+ setValue(valueAttr) {
27
+ this.executeAsync(this._value);
62
28
  }
63
- refresh() {
64
- const script = this.getAttribute("on-get-value");
65
- if (!script) {
66
- this.render("default");
29
+ setReplaceWrap() {
30
+ this.executeAsync(this._value);
31
+ }
32
+ executeAsync(result = this._value) {
33
+ if (result === void 0 || result === null) {
34
+ this.refresh("default");
67
35
  return;
68
36
  }
69
- const win = this.ownerDocument?.defaultView || window;
70
- const result = import_core.FunctionUtils.executeReturn({ script, context: this, args: import_Utils.SwcUtils.getHelperAndHostSet(win, this) });
71
37
  if (result instanceof Promise) {
72
- this.render("loading");
38
+ this.refresh("loading");
73
39
  result.then((v) => {
74
- this._value = v;
75
- this.render("success");
76
- }).catch((e) => this.render("error"));
40
+ this.resultValue = v;
41
+ this.refresh("success");
42
+ }).catch((e) => {
43
+ console.error("[SWC-ASYNC] Promise rejected:", e);
44
+ this.resultValue = e;
45
+ this.refresh("error");
46
+ });
77
47
  } else {
78
- this._value = result;
79
- this.render("success");
48
+ this.resultValue = result;
49
+ this.refresh("success");
80
50
  }
81
51
  }
82
- render(state) {
52
+ replaceExpressions(html, groupArgs, context, wrap) {
53
+ const config = wrap ? { wrapExpression: wrap } : void 0;
54
+ const ae = new import_core.ActionExpression(html, config);
55
+ const filterOptions = wrap ? { type: "replace", wrap } : "replace";
56
+ const win = this.ownerDocument?.defaultView || window;
57
+ for (const expr of ae.getExpressions(filterOptions)) {
58
+ try {
59
+ const value = import_core.FunctionUtils.executeReturn({
60
+ script: import_core_web.ConvertUtils.decodeHtmlEntity(expr.script, win.document),
61
+ context,
62
+ args: groupArgs
63
+ });
64
+ ae.replace(expr, String(value));
65
+ } catch (e) {
66
+ console.error(`[SWC] Failed to execute ${expr.original}:`, e);
67
+ }
68
+ }
69
+ return ae.getUnprocessedTemplate();
70
+ }
71
+ refresh(state = "default") {
72
+ console.log("rrrrrrrrrrrrrrrrr", state);
83
73
  this.cleanup();
84
- const portal = this._resolvePortal();
74
+ const portal = this.parentElement;
85
75
  if (!portal)
86
76
  return;
87
77
  const win = this.ownerDocument?.defaultView || window;
88
78
  const helperSet = import_Utils.SwcUtils.getHelperAndHostSet(win, this);
89
79
  const t = this.content.querySelector(`template[is="swc-${state}"]`);
90
80
  if (t) {
91
- const clone = t.content.cloneNode(true);
92
- this._nodes = Array.from(clone.childNodes);
93
- const elements = this._nodes.filter((n) => n.nodeType === 1);
94
- const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0], $state: state };
95
- this._nodes.forEach((n, nodeIdx) => {
96
- if (n instanceof HTMLElement)
97
- n.__swc_host = this;
98
- this._executeCloneCallback("on-clone-node", { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });
99
- });
100
- this._executeCloneCallback("on-clone-nodes", groupArgs);
101
- if (portal === this.parentElement) {
102
- portal.insertBefore(clone, this.nextSibling);
103
- } else {
104
- portal.appendChild(clone);
105
- }
81
+ let htmlString = t.innerHTML;
82
+ const groupArgs = { ...helperSet, $value: this._value, $state: state };
83
+ htmlString = this.replaceExpressions(htmlString, groupArgs, this, this._replaceWrap);
84
+ const temp = this.ownerDocument?.createElement("template") || document.createElement("template");
85
+ temp.innerHTML = htmlString;
86
+ const content = temp.content;
87
+ this._nodes = Array.from(content.childNodes);
88
+ portal.insertBefore(content, this.nextSibling);
106
89
  }
107
90
  }
108
91
  cleanup() {
109
92
  this._nodes.forEach((n) => n.parentElement?.removeChild(n));
110
93
  this._nodes = [];
111
94
  }
112
- connectedCallback() {
113
- console.log("[SwcAsync] connectedCallback called");
114
- this.refresh();
115
- }
116
95
  disconnectedCallback() {
117
96
  this.cleanup();
118
97
  }
119
98
  }
120
99
  __decorate([
121
- (0, import_changedAttributeHost.changedAttributeHost)("on-get-value"),
100
+ (0, import_decorators.attributeHost)("value"),
101
+ __metadata("design:type", Object)
102
+ ], SwcAsync.prototype, "_value", void 0);
103
+ __decorate([
104
+ (0, import_decorators.attributeHost)("replace-wrap"),
105
+ __metadata("design:type", String)
106
+ ], SwcAsync.prototype, "_replaceWrap", void 0);
107
+ __decorate([
108
+ (0, import_changedAttributeHost.changedAttributeHost)("value"),
109
+ __metadata("design:type", Function),
110
+ __metadata("design:paramtypes", [String]),
111
+ __metadata("design:returntype", void 0)
112
+ ], SwcAsync.prototype, "setValue", null);
113
+ __decorate([
114
+ (0, import_changedAttributeHost.changedAttributeHost)("replace-wrap"),
122
115
  __metadata("design:type", Function),
123
116
  __metadata("design:paramtypes", []),
124
117
  __metadata("design:returntype", void 0)
125
- ], SwcAsync.prototype, "refresh", null);
118
+ ], SwcAsync.prototype, "setReplaceWrap", null);
126
119
  //# sourceMappingURL=SwcAsync.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcAsync.ts"],
4
- "sourcesContent": ["import { changedAttributeHost } from '../decorators/changedAttributeHost';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils } from '@dooboostore/core';\n\nexport class SwcAsync extends HTMLTemplateElement {\n private _nodes: Node[] = [];\n private _value: any = null;\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('on-get-value')\n private refresh() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.render('default');\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const result = FunctionUtils.executeReturn({ script, context: this, args: SwcUtils.getHelperAndHostSet(win, this) });\n\n if (result instanceof Promise) {\n this.render('loading');\n result\n .then(v => {\n this._value = v;\n this.render('success');\n })\n .catch(e => this.render('error'));\n } else {\n this._value = result;\n this.render('success');\n }\n }\n\n private render(state: string) {\n this.cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n const t = this.content.querySelector(`template[is=\"swc-${state}\"]`) as HTMLTemplateElement;\n if (t) {\n const clone = t.content.cloneNode(true) as DocumentFragment;\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0], $state: state };\n\n this._nodes.forEach((n, nodeIdx) => {\n if (n instanceof HTMLElement) (n as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n if (portal === this.parentElement) {\n portal.insertBefore(clone, this.nextSibling);\n } else {\n portal.appendChild(clone);\n }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n console.log('[SwcAsync] connectedCallback called');\n this.refresh();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,kCAAqC;AACrC,mBAAyB;AACzB,kBAA8B;;;;;;;;;;AAExB,MAAO,iBAAiB,oBAAmB;EAAjD,cAAA;;AACU,SAAA,SAAiB,CAAA;AACjB,SAAA,SAAc;EA0FxB;EAxFU,iBAAc;AACpB,UAAM,eAAe,KAAK,aAAa,eAAe;AACtD,QAAI,CAAC;AAAc,aAAO,KAAK;AAE/B,UAAM,MAAM,KAAK,eAAe,eAAe;AAC/C,UAAM,MAAM,0BAAc,cAAc;MACtC,QAAQ;MACR,SAAS;MACT,MAAM,sBAAS,oBAAoB,KAAK,IAAI;KAC7C;AAED,QAAI,eAAe;AAAa,aAAO;AACvC,QAAI,OAAO,QAAQ;AAAU,aAAO,IAAI,SAAS,cAAc,GAAG;AAClE,WAAO,KAAK;EACd;EAEQ,sBAAsB,MAAc,MAAS;AACnD,UAAM,SAAS,KAAK,aAAa,IAAI;AACrC,QAAI,CAAC;AAAQ;AACb,8BAAc,QAAQ,EAAE,QAAQ,SAAS,MAAM,KAAI,CAAE;EACvD;EAGQ,UAAO;AACb,UAAM,SAAS,KAAK,aAAa,cAAc;AAC/C,QAAI,CAAC,QAAQ;AACX,WAAK,OAAO,SAAS;AACrB;IACF;AACA,UAAM,MAAM,KAAK,eAAe,eAAe;AAC/C,UAAM,SAAS,0BAAc,cAAc,EAAE,QAAQ,SAAS,MAAM,MAAM,sBAAS,oBAAoB,KAAK,IAAI,EAAC,CAAE;AAEnH,QAAI,kBAAkB,SAAS;AAC7B,WAAK,OAAO,SAAS;AACrB,aACG,KAAK,OAAI;AACR,aAAK,SAAS;AACd,aAAK,OAAO,SAAS;MACvB,CAAC,EACA,MAAM,OAAK,KAAK,OAAO,OAAO,CAAC;IACpC,OAAO;AACL,WAAK,SAAS;AACd,WAAK,OAAO,SAAS;IACvB;EACF;EAEQ,OAAO,OAAa;AAC1B,SAAK,QAAO;AACZ,UAAM,SAAS,KAAK,eAAc;AAClC,QAAI,CAAC;AAAQ;AAEb,UAAM,MAAM,KAAK,eAAe,eAAe;AAC/C,UAAM,YAAY,sBAAS,oBAAoB,KAAK,IAAI;AAExD,UAAM,IAAI,KAAK,QAAQ,cAAc,oBAAoB,KAAK,IAAI;AAClE,QAAI,GAAG;AACL,YAAM,QAAQ,EAAE,QAAQ,UAAU,IAAI;AACtC,WAAK,SAAS,MAAM,KAAK,MAAM,UAAU;AACzC,YAAM,WAAW,KAAK,OAAO,OAAO,OAAK,EAAE,aAAa,CAAC;AACzD,YAAM,YAAY,EAAE,GAAG,WAAW,QAAQ,KAAK,QAAQ,QAAQ,KAAK,QAAQ,WAAW,UAAU,eAAe,SAAS,CAAC,GAAG,QAAQ,MAAK;AAE1I,WAAK,OAAO,QAAQ,CAAC,GAAG,YAAW;AACjC,YAAI,aAAa;AAAc,YAAU,aAAa;AACtD,aAAK,sBAAsB,iBAAiB,EAAE,GAAG,WAAW,OAAO,GAAG,YAAY,SAAS,YAAY,EAAE,aAAa,EAAC,CAAE;MAC3H,CAAC;AAED,WAAK,sBAAsB,kBAAkB,SAAS;AAEtD,UAAI,WAAW,KAAK,eAAe;AACjC,eAAO,aAAa,OAAO,KAAK,WAAW;MAC7C,OAAO;AACL,eAAO,YAAY,KAAK;MAC1B;IACF;EACF;EAEQ,UAAO;AACb,SAAK,OAAO,QAAQ,OAAK,EAAE,eAAe,YAAY,CAAC,CAAC;AACxD,SAAK,SAAS,CAAA;EAChB;EAEA,oBAAiB;AACf,YAAQ,IAAI,qCAAqC;AACjD,SAAK,QAAO;EACd;EACA,uBAAoB;AAClB,SAAK,QAAO;EACd;;AAhEQ,WAAA;MADP,kDAAqB,cAAc;;;;;",
4
+ "sourcesContent": ["import { changedAttributeHost } from '../decorators/changedAttributeHost';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils, ActionExpression } from '@dooboostore/core';\nimport { ConvertUtils } from '@dooboostore/core-web';\nimport { attributeHost } from '../decorators';\n\nclass SwcAsync extends HTMLTemplateElement {\n @attributeHost('value')\n _value: any;\n\n @attributeHost('replace-wrap')\n _replaceWrap: string | null;\n\n resultValue?: any;\n\n get value(): boolean {\n return this._value;\n }\n\n set value(nv: any) {\n this.executeAsync(nv);\n }\n\n private _nodes: Node[] = [];\n\n @changedAttributeHost('value')\n private setValue(valueAttr?: string | null) {\n this.executeAsync(this._value);\n }\n\n @changedAttributeHost('replace-wrap')\n private setReplaceWrap() {\n this.executeAsync(this._value);\n }\n\n private executeAsync(result: any = this._value) {\n if (result === undefined || result === null) {\n this.refresh('default');\n return;\n }\n\n if (result instanceof Promise) {\n this.refresh('loading');\n result\n .then(v => {\n this.resultValue = v;\n this.refresh('success');\n })\n .catch(e => {\n console.error('[SWC-ASYNC] Promise rejected:', e);\n this.resultValue = e;\n this.refresh('error');\n });\n } else {\n this.resultValue = result;\n this.refresh('success');\n }\n }\n\n private replaceExpressions(html: string, groupArgs: any, context: any, wrap?: string | null): string {\n const config = wrap ? { wrapExpression: wrap } : undefined;\n const ae = new ActionExpression(html, config);\n const filterOptions = wrap ? { type: 'replace' as const, wrap } : 'replace';\n const win = this.ownerDocument?.defaultView || window;\n\n // @ts-ignore\n for (const expr of ae.getExpressions(filterOptions)) {\n try {\n const value = FunctionUtils.executeReturn({\n script: ConvertUtils.decodeHtmlEntity(expr.script, win.document),\n context,\n args: groupArgs\n });\n ae.replace(expr, String(value));\n } catch (e) {\n console.error(`[SWC] Failed to execute ${expr.original}:`, e);\n }\n }\n return ae.getUnprocessedTemplate();\n }\n\n refresh(state: string = 'default') {\n console.log('rrrrrrrrrrrrrrrrr', state);\n this.cleanup();\n const portal = this.parentElement;\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n const t = this.content.querySelector(`template[is=\"swc-${state}\"]`) as HTMLTemplateElement;\n if (t) {\n let htmlString = t.innerHTML;\n const groupArgs = { ...helperSet, $value: this._value, $state: state };\n\n htmlString = this.replaceExpressions(htmlString, groupArgs, this, this._replaceWrap);\n\n const temp = this.ownerDocument?.createElement('template') || document.createElement('template');\n temp.innerHTML = htmlString;\n const content = temp.content;\n\n this._nodes = Array.from(content.childNodes);\n portal.insertBefore(content, this.nextSibling);\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n disconnectedCallback() {\n this.cleanup();\n }\n}\n"],
5
+ "mappings": "AAAA,kCAAqC;AACrC,mBAAyB;AACzB,kBAAgD;AAChD,sBAA6B;AAC7B,wBAA8B;;;;;;;;;;AAE9B,MAAM,iBAAiB,oBAAmB;EAA1C,cAAA;;AAiBU,SAAA,SAAiB,CAAA;EA2F3B;EAnGE,IAAI,QAAK;AACP,WAAO,KAAK;EACd;EAEA,IAAI,MAAM,IAAO;AACf,SAAK,aAAa,EAAE;EACtB;EAKQ,SAAS,WAAyB;AACxC,SAAK,aAAa,KAAK,MAAM;EAC/B;EAGQ,iBAAc;AACpB,SAAK,aAAa,KAAK,MAAM;EAC/B;EAEQ,aAAa,SAAc,KAAK,QAAM;AAC5C,QAAI,WAAW,UAAa,WAAW,MAAM;AAC3C,WAAK,QAAQ,SAAS;AACtB;IACF;AAEA,QAAI,kBAAkB,SAAS;AAC7B,WAAK,QAAQ,SAAS;AACtB,aACG,KAAK,OAAI;AACR,aAAK,cAAc;AACnB,aAAK,QAAQ,SAAS;MACxB,CAAC,EACA,MAAM,OAAI;AACT,gBAAQ,MAAM,iCAAiC,CAAC;AAChD,aAAK,cAAc;AACnB,aAAK,QAAQ,OAAO;MACtB,CAAC;IACL,OAAO;AACL,WAAK,cAAc;AACnB,WAAK,QAAQ,SAAS;IACxB;EACF;EAEQ,mBAAmB,MAAc,WAAgB,SAAc,MAAoB;AACzF,UAAM,SAAS,OAAO,EAAE,gBAAgB,KAAI,IAAK;AACjD,UAAM,KAAK,IAAI,6BAAiB,MAAM,MAAM;AAC5C,UAAM,gBAAgB,OAAO,EAAE,MAAM,WAAoB,KAAI,IAAK;AAClE,UAAM,MAAM,KAAK,eAAe,eAAe;AAG/C,eAAW,QAAQ,GAAG,eAAe,aAAa,GAAG;AACnD,UAAI;AACF,cAAM,QAAQ,0BAAc,cAAc;UACxC,QAAQ,6BAAa,iBAAiB,KAAK,QAAQ,IAAI,QAAQ;UAC/D;UACA,MAAM;SACP;AACD,WAAG,QAAQ,MAAM,OAAO,KAAK,CAAC;MAChC,SAAS,GAAG;AACV,gBAAQ,MAAM,2BAA2B,KAAK,QAAQ,KAAK,CAAC;MAC9D;IACF;AACA,WAAO,GAAG,uBAAsB;EAClC;EAEA,QAAQ,QAAgB,WAAS;AAC/B,YAAQ,IAAI,qBAAqB,KAAK;AACtC,SAAK,QAAO;AACZ,UAAM,SAAS,KAAK;AACpB,QAAI,CAAC;AAAQ;AAEb,UAAM,MAAM,KAAK,eAAe,eAAe;AAC/C,UAAM,YAAY,sBAAS,oBAAoB,KAAK,IAAI;AAExD,UAAM,IAAI,KAAK,QAAQ,cAAc,oBAAoB,KAAK,IAAI;AAClE,QAAI,GAAG;AACL,UAAI,aAAa,EAAE;AACnB,YAAM,YAAY,EAAE,GAAG,WAAW,QAAQ,KAAK,QAAQ,QAAQ,MAAK;AAEpE,mBAAa,KAAK,mBAAmB,YAAY,WAAW,MAAM,KAAK,YAAY;AAEnF,YAAM,OAAO,KAAK,eAAe,cAAc,UAAU,KAAK,SAAS,cAAc,UAAU;AAC/F,WAAK,YAAY;AACjB,YAAM,UAAU,KAAK;AAErB,WAAK,SAAS,MAAM,KAAK,QAAQ,UAAU;AAC3C,aAAO,aAAa,SAAS,KAAK,WAAW;IAC/C;EACF;EAEQ,UAAO;AACb,SAAK,OAAO,QAAQ,OAAK,EAAE,eAAe,YAAY,CAAC,CAAC;AACxD,SAAK,SAAS,CAAA;EAChB;EAEA,uBAAoB;AAClB,SAAK,QAAO;EACd;;AAzGA,WAAA;MADC,iCAAc,OAAO;;;AAItB,WAAA;MADC,iCAAc,cAAc;;;AAgBrB,WAAA;MADP,kDAAqB,OAAO;;;;;AAMrB,WAAA;MADP,kDAAqB,cAAc;;;;;",
6
6
  "names": []
7
7
  }