@dooboostore/simple-web-component 1.0.33 → 1.0.35

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 (150) hide show
  1. package/README.md +23 -30
  2. package/dist/cjs/decorators/addEventListener.js.map +1 -1
  3. package/dist/cjs/decorators/applyAttribute.js +67 -57
  4. package/dist/cjs/decorators/applyAttribute.js.map +2 -2
  5. package/dist/cjs/decorators/applyClass.js +80 -70
  6. package/dist/cjs/decorators/applyClass.js.map +2 -2
  7. package/dist/cjs/decorators/applyNode.js +5 -8
  8. package/dist/cjs/decorators/applyNode.js.map +2 -2
  9. package/dist/cjs/decorators/applyStyle.js +66 -56
  10. package/dist/cjs/decorators/applyStyle.js.map +2 -2
  11. package/dist/cjs/decorators/attribute.js +35 -29
  12. package/dist/cjs/decorators/attribute.js.map +2 -2
  13. package/dist/cjs/decorators/changedAttributeHost.js +32 -12
  14. package/dist/cjs/decorators/changedAttributeHost.js.map +2 -2
  15. package/dist/cjs/decorators/elementDefine.js +238 -180
  16. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  17. package/dist/cjs/decorators/emitCustomEvent.js +67 -48
  18. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  19. package/dist/cjs/decorators/lifecycles.js +15 -17
  20. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  21. package/dist/cjs/decorators/setProperty.js +50 -39
  22. package/dist/cjs/decorators/setProperty.js.map +2 -2
  23. package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js.map +1 -1
  24. package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js +2 -2
  25. package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
  26. package/dist/cjs/elements/SwcAppEngine.js +14 -8
  27. package/dist/cjs/elements/SwcAppEngine.js.map +3 -3
  28. package/dist/cjs/elements/SwcAppMixin.js +154 -81
  29. package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
  30. package/dist/cjs/elements/SwcAsync.js +28 -18
  31. package/dist/cjs/elements/SwcAsync.js.map +2 -2
  32. package/dist/cjs/elements/SwcChoose.js +68 -45
  33. package/dist/cjs/elements/SwcChoose.js.map +2 -2
  34. package/dist/cjs/elements/SwcIf.js +52 -30
  35. package/dist/cjs/elements/SwcIf.js.map +2 -2
  36. package/dist/cjs/elements/SwcLoop.js +109 -35
  37. package/dist/cjs/elements/SwcLoop.js.map +2 -2
  38. package/dist/cjs/elements/register.js +263 -131
  39. package/dist/cjs/elements/register.js.map +2 -2
  40. package/dist/cjs/router/ElementRouter.js +4 -2
  41. package/dist/cjs/router/ElementRouter.js.map +1 -1
  42. package/dist/cjs/types.js.map +1 -1
  43. package/dist/cjs/utils/Utils.js +25 -7
  44. package/dist/cjs/utils/Utils.js.map +2 -2
  45. package/dist/esm/decorators/addEventListener.js.map +1 -1
  46. package/dist/esm/decorators/applyAttribute.js +67 -57
  47. package/dist/esm/decorators/applyAttribute.js.map +2 -2
  48. package/dist/esm/decorators/applyClass.js +80 -70
  49. package/dist/esm/decorators/applyClass.js.map +2 -2
  50. package/dist/esm/decorators/applyNode.js +5 -8
  51. package/dist/esm/decorators/applyNode.js.map +2 -2
  52. package/dist/esm/decorators/applyStyle.js +66 -56
  53. package/dist/esm/decorators/applyStyle.js.map +2 -2
  54. package/dist/esm/decorators/attribute.js +35 -29
  55. package/dist/esm/decorators/attribute.js.map +2 -2
  56. package/dist/esm/decorators/changedAttributeHost.js +32 -12
  57. package/dist/esm/decorators/changedAttributeHost.js.map +2 -2
  58. package/dist/esm/decorators/elementDefine.js +240 -182
  59. package/dist/esm/decorators/elementDefine.js.map +2 -2
  60. package/dist/esm/decorators/emitCustomEvent.js +67 -48
  61. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  62. package/dist/esm/decorators/lifecycles.js +15 -17
  63. package/dist/esm/decorators/lifecycles.js.map +2 -2
  64. package/dist/esm/decorators/setProperty.js +50 -39
  65. package/dist/esm/decorators/setProperty.js.map +2 -2
  66. package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js.map +1 -1
  67. package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js +2 -2
  68. package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
  69. package/dist/esm/elements/SwcAppEngine.js +14 -7
  70. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  71. package/dist/esm/elements/SwcAppMixin.js +156 -82
  72. package/dist/esm/elements/SwcAppMixin.js.map +2 -2
  73. package/dist/esm/elements/SwcAsync.js +28 -18
  74. package/dist/esm/elements/SwcAsync.js.map +2 -2
  75. package/dist/esm/elements/SwcChoose.js +69 -46
  76. package/dist/esm/elements/SwcChoose.js.map +2 -2
  77. package/dist/esm/elements/SwcIf.js +53 -31
  78. package/dist/esm/elements/SwcIf.js.map +2 -2
  79. package/dist/esm/elements/SwcLoop.js +110 -36
  80. package/dist/esm/elements/SwcLoop.js.map +2 -2
  81. package/dist/esm/elements/register.js +264 -132
  82. package/dist/esm/elements/register.js.map +2 -2
  83. package/dist/esm/router/ElementRouter.js +5 -2
  84. package/dist/esm/router/ElementRouter.js.map +1 -1
  85. package/dist/esm/types.js.map +1 -1
  86. package/dist/esm/utils/Utils.js +25 -7
  87. package/dist/esm/utils/Utils.js.map +2 -2
  88. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +728 -595
  89. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  90. package/dist/types/decorators/addEventListener.d.ts +4 -1
  91. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  92. package/dist/types/decorators/applyAttribute.d.ts +5 -1
  93. package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
  94. package/dist/types/decorators/applyClass.d.ts +4 -0
  95. package/dist/types/decorators/applyClass.d.ts.map +1 -1
  96. package/dist/types/decorators/applyNode.d.ts +5 -1
  97. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  98. package/dist/types/decorators/applyStyle.d.ts +5 -1
  99. package/dist/types/decorators/applyStyle.d.ts.map +1 -1
  100. package/dist/types/decorators/attribute.d.ts +5 -0
  101. package/dist/types/decorators/attribute.d.ts.map +1 -1
  102. package/dist/types/decorators/changedAttributeHost.d.ts +14 -3
  103. package/dist/types/decorators/changedAttributeHost.d.ts.map +1 -1
  104. package/dist/types/decorators/elementDefine.d.ts +1 -1
  105. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  106. package/dist/types/decorators/emitCustomEvent.d.ts +15 -7
  107. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  108. package/dist/types/decorators/lifecycles.d.ts +10 -7
  109. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  110. package/dist/types/decorators/setProperty.d.ts +5 -1
  111. package/dist/types/decorators/setProperty.d.ts.map +1 -1
  112. package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts +2 -2
  113. package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts.map +1 -1
  114. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts +5 -6
  115. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts.map +1 -1
  116. package/dist/types/elements/SwcAppEngine.d.ts +9 -3
  117. package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
  118. package/dist/types/elements/SwcAppMixin.d.ts +12 -7
  119. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  120. package/dist/types/elements/register.d.ts.map +1 -1
  121. package/dist/types/types.d.ts +1 -0
  122. package/dist/types/types.d.ts.map +1 -1
  123. package/dist/types/utils/Utils.d.ts +4 -1
  124. package/dist/types/utils/Utils.d.ts.map +1 -1
  125. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +728 -595
  126. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  127. package/package.json +5 -5
  128. package/src/decorators/addEventListener.ts +1 -1
  129. package/src/decorators/applyAttribute.ts +74 -61
  130. package/src/decorators/applyClass.ts +91 -77
  131. package/src/decorators/applyNode.ts +16 -13
  132. package/src/decorators/applyStyle.ts +75 -61
  133. package/src/decorators/attribute.ts +55 -43
  134. package/src/decorators/changedAttributeHost.ts +49 -15
  135. package/src/decorators/elementDefine.ts +401 -340
  136. package/src/decorators/emitCustomEvent.ts +92 -62
  137. package/src/decorators/lifecycles.ts +11 -10
  138. package/src/decorators/setProperty.ts +58 -44
  139. package/src/decorators/subscribeSwcAppMessageWhileConnected.ts +2 -2
  140. package/src/decorators/subscribeSwcAppRouteChangeWhileConnected.ts +11 -11
  141. package/src/elements/SwcAppEngine.ts +19 -13
  142. package/src/elements/SwcAppMixin.ts +214 -102
  143. package/src/elements/SwcAsync.ts +28 -17
  144. package/src/elements/SwcChoose.ts +94 -36
  145. package/src/elements/SwcIf.ts +59 -22
  146. package/src/elements/SwcLoop.ts +140 -27
  147. package/src/elements/register.ts +319 -100
  148. package/src/types.ts +1 -0
  149. package/src/utils/Utils.ts +38 -10
  150. package/tsconfig.json +2 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/register.ts"],
4
- "sourcesContent": ["import { elementDefine, attributeHost, changedAttributeHost } from '../decorators';\nimport { SwcAppMixin } from './SwcAppMixin';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils,ActionExpression } from '@dooboostore/core';\nimport { ConvertUtils } from '@dooboostore/core-web';\n\ntype Constructor<T> = new (...args: any[]) => T;\n\nexport const registerAllElements = (w: any): Record<string, Constructor<HTMLElement>> => {\n const {\n HTMLElement: _HTMLElement,\n HTMLTemplateElement: _HTMLTemplateElement,\n DocumentFragment: _DocumentFragment,\n Node: _Node,\n Element: _Element,\n HTMLAnchorElement: _HTMLAnchorElement,\n HTMLAreaElement: _HTMLAreaElement,\n HTMLAudioElement: _HTMLAudioElement,\n HTMLBaseElement: _HTMLBaseElement,\n HTMLButtonElement: _HTMLButtonElement,\n HTMLCanvasElement: _HTMLCanvasElement,\n HTMLDataElement: _HTMLDataElement,\n HTMLDataListElement: _HTMLDataListElement,\n HTMLDetailsElement: _HTMLDetailsElement,\n HTMLDialogElement: _HTMLDialogElement,\n HTMLDivElement: _HTMLDivElement,\n HTMLDListElement: _HTMLDListElement,\n HTMLEmbedElement: _HTMLEmbedElement,\n HTMLFieldSetElement: _HTMLFieldSetElement,\n HTMLFormElement: _HTMLFormElement,\n HTMLHRElement: _HTMLHRElement,\n HTMLIFrameElement: _HTMLIFrameElement,\n HTMLImageElement: _HTMLImageElement,\n HTMLInputElement: _HTMLInputElement,\n HTMLLabelElement: _HTMLLabelElement,\n HTMLLegendElement: _HTMLLegendElement,\n HTMLLIElement: _HTMLLIElement,\n HTMLLinkElement: _HTMLLinkElement,\n HTMLMapElement: _HTMLMapElement,\n HTMLMetaElement: _HTMLMetaElement,\n HTMLMeterElement: _HTMLMeterElement,\n HTMLModElement: _HTMLModElement,\n HTMLObjectElement: _HTMLObjectElement,\n HTMLOListElement: _HTMLOListElement,\n HTMLOptGroupElement: _HTMLOptGroupElement,\n HTMLOptionElement: _HTMLOptionElement,\n HTMLOutputElement: _HTMLOutputElement,\n HTMLParagraphElement: _HTMLParagraphElement,\n HTMLParamElement: _HTMLParamElement,\n HTMLPictureElement: _HTMLPictureElement,\n HTMLPreElement: _HTMLPreElement,\n HTMLProgressElement: _HTMLProgressElement,\n HTMLQuoteElement: _HTMLQuoteElement,\n HTMLScriptElement: _HTMLScriptElement,\n HTMLSelectElement: _HTMLSelectElement,\n HTMLSlotElement: _HTMLSlotElement,\n HTMLSourceElement: _HTMLSourceElement,\n HTMLSpanElement: _HTMLSpanElement,\n HTMLStyleElement: _HTMLStyleElement,\n HTMLTableElement: _HTMLTableElement,\n HTMLTableSectionElement: _HTMLTableSectionElement,\n HTMLTableCellElement: _HTMLTableCellElement,\n HTMLTextAreaElement: _HTMLTextAreaElement,\n HTMLTimeElement: _HTMLTimeElement,\n HTMLTitleElement: _HTMLTitleElement,\n HTMLTableRowElement: _HTMLTableRowElement,\n HTMLTrackElement: _HTMLTrackElement,\n HTMLUListElement: _HTMLUListElement,\n HTMLVideoElement: _HTMLVideoElement,\n HTMLHeadingElement: _HTMLHeadingElement,\n HTMLBodyElement: _HTMLBodyElement,\n } = w as any;\n\n const HTMLElement = _HTMLElement as typeof globalThis.HTMLElement;\n const HTMLTemplateElement = _HTMLTemplateElement as typeof globalThis.HTMLTemplateElement;\n const DocumentFragment = _DocumentFragment as typeof globalThis.DocumentFragment;\n const Node = _Node as typeof globalThis.Node;\n const Element = _Element as typeof globalThis.Element;\n const HTMLAnchorElement = _HTMLAnchorElement as typeof globalThis.HTMLAnchorElement;\n const HTMLAreaElement = _HTMLAreaElement as typeof globalThis.HTMLAreaElement;\n const HTMLAudioElement = _HTMLAudioElement as typeof globalThis.HTMLAudioElement;\n const HTMLBaseElement = _HTMLBaseElement as typeof globalThis.HTMLBaseElement;\n const HTMLButtonElement = _HTMLButtonElement as typeof globalThis.HTMLButtonElement;\n const HTMLCanvasElement = _HTMLCanvasElement as typeof globalThis.HTMLCanvasElement;\n const HTMLDataElement = _HTMLDataElement as typeof globalThis.HTMLDataElement;\n const HTMLDataListElement = _HTMLDataListElement as typeof globalThis.HTMLDataListElement;\n const HTMLDetailsElement = _HTMLDetailsElement as typeof globalThis.HTMLDetailsElement;\n const HTMLDialogElement = _HTMLDialogElement as typeof globalThis.HTMLDialogElement;\n const HTMLDivElement = _HTMLDivElement as typeof globalThis.HTMLDivElement;\n const HTMLDListElement = _HTMLDListElement as typeof globalThis.HTMLDListElement;\n const HTMLEmbedElement = _HTMLEmbedElement as typeof globalThis.HTMLEmbedElement;\n const HTMLFieldSetElement = _HTMLFieldSetElement as typeof globalThis.HTMLFieldSetElement;\n const HTMLFormElement = _HTMLFormElement as typeof globalThis.HTMLFormElement;\n const HTMLHRElement = _HTMLHRElement as typeof globalThis.HTMLHRElement;\n const HTMLIFrameElement = _HTMLIFrameElement as typeof globalThis.HTMLIFrameElement;\n const HTMLImageElement = _HTMLImageElement as typeof globalThis.HTMLImageElement;\n const HTMLInputElement = _HTMLInputElement as typeof globalThis.HTMLInputElement;\n const HTMLLabelElement = _HTMLLabelElement as typeof globalThis.HTMLLabelElement;\n const HTMLLegendElement = _HTMLLegendElement as typeof globalThis.HTMLLegendElement;\n const HTMLLIElement = _HTMLLIElement as typeof globalThis.HTMLLIElement;\n const HTMLLinkElement = _HTMLLinkElement as typeof globalThis.HTMLLinkElement;\n const HTMLMapElement = _HTMLMapElement as typeof globalThis.HTMLMapElement;\n const HTMLMetaElement = _HTMLMetaElement as typeof globalThis.HTMLMetaElement;\n const HTMLMeterElement = _HTMLMeterElement as typeof globalThis.HTMLMeterElement;\n const HTMLModElement = _HTMLModElement as typeof globalThis.HTMLModElement;\n const HTMLObjectElement = _HTMLObjectElement as typeof globalThis.HTMLObjectElement;\n const HTMLOListElement = _HTMLOListElement as typeof globalThis.HTMLOListElement;\n const HTMLOptGroupElement = _HTMLOptGroupElement as typeof globalThis.HTMLOptGroupElement;\n const HTMLOptionElement = _HTMLOptionElement as typeof globalThis.HTMLOptionElement;\n const HTMLOutputElement = _HTMLOutputElement as typeof globalThis.HTMLOutputElement;\n const HTMLParagraphElement = _HTMLParagraphElement as typeof globalThis.HTMLParagraphElement;\n const HTMLParamElement = _HTMLParamElement as typeof globalThis.HTMLParamElement;\n const HTMLPictureElement = _HTMLPictureElement as typeof globalThis.HTMLPictureElement;\n const HTMLPreElement = _HTMLPreElement as typeof globalThis.HTMLPreElement;\n const HTMLProgressElement = _HTMLProgressElement as typeof globalThis.HTMLProgressElement;\n const HTMLQuoteElement = _HTMLQuoteElement as typeof globalThis.HTMLQuoteElement;\n const HTMLScriptElement = _HTMLScriptElement as typeof globalThis.HTMLScriptElement;\n const HTMLSelectElement = _HTMLSelectElement as typeof globalThis.HTMLSelectElement;\n const HTMLSlotElement = _HTMLSlotElement as typeof globalThis.HTMLSlotElement;\n const HTMLSourceElement = _HTMLSourceElement as typeof globalThis.HTMLSourceElement;\n const HTMLSpanElement = _HTMLSpanElement as typeof globalThis.HTMLSpanElement;\n const HTMLStyleElement = _HTMLStyleElement as typeof globalThis.HTMLStyleElement;\n const HTMLTableElement = _HTMLTableElement as typeof globalThis.HTMLTableElement;\n const HTMLTableSectionElement = _HTMLTableSectionElement as typeof globalThis.HTMLTableSectionElement;\n const HTMLTableCellElement = _HTMLTableCellElement as typeof globalThis.HTMLTableCellElement;\n const HTMLTextAreaElement = _HTMLTextAreaElement as typeof globalThis.HTMLTextAreaElement;\n const HTMLTimeElement = _HTMLTimeElement as typeof globalThis.HTMLTimeElement;\n const HTMLTitleElement = _HTMLTitleElement as typeof globalThis.HTMLTitleElement;\n const HTMLTableRowElement = _HTMLTableRowElement as typeof globalThis.HTMLTableRowElement;\n const HTMLTrackElement = _HTMLTrackElement as typeof globalThis.HTMLTrackElement;\n const HTMLUListElement = _HTMLUListElement as typeof globalThis.HTMLUListElement;\n const HTMLVideoElement = _HTMLVideoElement as typeof globalThis.HTMLVideoElement;\n const HTMLHeadingElement = _HTMLHeadingElement as typeof globalThis.HTMLHeadingElement;\n const HTMLBodyElement = _HTMLBodyElement as typeof globalThis.HTMLBodyElement;\n\n\n // --- Sub Templates ---\n @elementDefine('swc-loading', { extends: 'template', window: w }) class SwcLoading extends HTMLTemplateElement {}\n @elementDefine('swc-error', { extends: 'template', window: w }) class SwcError extends HTMLTemplateElement {}\n @elementDefine('swc-success', { extends: 'template', window: w }) class SwcSuccess extends HTMLTemplateElement {}\n @elementDefine('swc-when', { extends: 'template', window: w }) class SwcWhen extends HTMLTemplateElement {}\n @elementDefine('swc-otherwise', { extends: 'template', window: w }) class SwcOtherwise extends HTMLTemplateElement {}\n @elementDefine('swc-default', { extends: 'template', window: w }) class SwcDefault extends HTMLTemplateElement {}\n\n // --- Core Elements ---\n @elementDefine('swc-app', { window: w })\n class SwcApp extends SwcAppMixin(HTMLElement) {}\n\n @elementDefine('swc-if', { extends: 'template', window: w })\n class SwcIf extends HTMLTemplateElement {\n @attributeHost('value')\n _value: any;\n\n @attributeHost('replace-wrap')\n _replaceWrap: string | null;\n\n private _nodes: Node[] = [];\n\n get value(): boolean {\n return this._value;\n }\n\n set value(nv: any) {\n // this._value = nv;\n this.refresh(nv);\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 @changedAttributeHost('value')\n private setValue(valueAttr?: string | null) {\n this.refresh();\n }\n\n @changedAttributeHost('replace-wrap')\n private setReplaceWrap(replaceWrapAttr?: string | null) {\n this.refresh();\n }\n\n refresh(value = this._value) {\n this.cleanup();\n const portal = this.parentElement;\n if (!portal || !value) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n let htmlString = this.innerHTML;\n const groupArgs = { ...helperSet, $value: value };\n\n htmlString = this.replaceExpressions(htmlString, groupArgs, this, this._replaceWrap);\n\n const result = this.ownerDocument?.createElement('template') || document.createElement('template');\n result.innerHTML = htmlString;\n const processedFragment = result.content;\n\n this._nodes = Array.from(processedFragment.childNodes);\n portal.insertBefore(processedFragment, this.nextSibling);\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\n @elementDefine('swc-loop', { extends: 'template', window: w })\n class SwcLoop extends HTMLTemplateElement {\n @attributeHost('value')\n _value: any[];\n\n @attributeHost('replace-wrap')\n _replaceWrap: string | null;\n\n private _nodeGroups: Node[][] = [];\n\n get value(): any[] {\n return this._value;\n }\n set value(nv: any[]) {\n // this._value = Array.isArray(nv) ? [...nv] : [];\n this.refresh(nv);\n }\n\n @changedAttributeHost('value')\n private setValue() {\n this.refresh();\n }\n\n @changedAttributeHost('replace-wrap')\n private setReplaceWrap() {\n this.refresh();\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(value = this._value) {\n this.cleanup();\n if (value?.length<=0) return;\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 const fragment = win.document.createDocumentFragment();\n\n value.forEach((item, index) => {\n let htmlString = this.innerHTML;\n const groupArgs = { ...helperSet, $item: item, $index: index, $value: this._value };\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\n const content = temp.content;\n const nodes = Array.from(content.childNodes);\n this._nodeGroups.push(nodes);\n fragment.appendChild(content);\n });\n\n portal.insertBefore(fragment, this.nextSibling);\n }\n\n private cleanup() {\n this._nodeGroups.forEach(nodes => nodes.forEach(n => n.parentElement?.removeChild(n)));\n this._nodeGroups = [];\n }\n\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-choose', { extends: 'template', window: w })\n class SwcChoose extends HTMLTemplateElement {\n @attributeHost('value')\n _value: any;\n\n @attributeHost('replace-wrap')\n _replaceWrap: string | null;\n\n private _nodes: Node[] = [];\n private _previousTemplate: HTMLTemplateElement | null = null;\n\n get value(): any {\n return this._value;\n }\n\n set value(nv: any) {\n this.refresh(nv);\n }\n\n @changedAttributeHost('value')\n private setValue() {\n this.refresh();\n }\n\n @changedAttributeHost('replace-wrap')\n private setReplaceWrap(replaceWrapAttr?: string | null) {\n this.refresh();\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(value = this._value) {\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 const groupArgs = { ...helperSet, $value: value };\n\n const templates = Array.from(this.content.querySelectorAll('template'));\n let selected: HTMLTemplateElement | null = null;\n\n for (const t of templates) {\n if (t.getAttribute('is') === 'swc-when') {\n const attrVal = t.getAttribute('value') || '';\n let matches = false;\n\n // Use ActionExpression to parse and extract script from value attribute\n const ae = new ActionExpression(attrVal);\n const expr = ae.getFirstExpression('replace');\n\n if (expr) {\n const decodedScript = ConvertUtils.decodeHtmlEntity(expr.script, win.document);\n const result = FunctionUtils.executeReturn({\n script: decodedScript,\n context: t,\n args: groupArgs\n });\n matches = !!result;\n } else {\n matches = String(attrVal) === String(value);\n }\n\n if (matches) {\n selected = t;\n break;\n }\n }\n }\n\n const target = selected || (this.content.querySelector('template[is=\"swc-otherwise\"]') as HTMLTemplateElement);\n\n const skipValue = target?.getAttribute?.('skip-if-same');\n const skipValue2 = this._previousTemplate?.getAttribute?.('skip-if-same');\n const hasSkipIfSame = target?.hasAttribute?.('skip-if-same');\n const isSame = this._previousTemplate === target;\n // console.log('---rrrr---', this._previousTemplate, target, hasSkipIfSame, isSame, skipValue, skipValue2);\n if (hasSkipIfSame && isSame) {\n return;\n }\n\n this.cleanup();\n this._previousTemplate = target;\n\n if (target) {\n let htmlString = target.innerHTML;\n htmlString = this.replaceExpressions(htmlString, groupArgs, this, this._replaceWrap);\n\n const result = this.ownerDocument?.createElement('template') || document.createElement('template');\n result.innerHTML = htmlString;\n const processedFragment = result.content;\n\n this._nodes = Array.from(processedFragment.childNodes);\n portal.insertBefore(processedFragment, 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\n @elementDefine('swc-async', { extends: 'template', window: w })\n class 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\n // --- \"is\" Elements ---\n @elementDefine('swc-app-a', { extends: 'a', window: w })\n class SwcAppAnchor extends SwcAppMixin(HTMLAnchorElement) {}\n\n @elementDefine('swc-app-area', { extends: 'area', window: w })\n class SwcAppArea extends SwcAppMixin(HTMLAreaElement) {}\n\n @elementDefine('swc-app-audio', { extends: 'audio', window: w })\n class SwcAppAudio extends SwcAppMixin(HTMLAudioElement) {}\n\n @elementDefine('swc-app-base', { extends: 'base', window: w })\n class SwcAppBase extends SwcAppMixin(HTMLBaseElement) {}\n\n @elementDefine('swc-app-button', { extends: 'button', window: w })\n class SwcAppButton extends SwcAppMixin(HTMLButtonElement) {}\n\n @elementDefine('swc-app-canvas', { extends: 'canvas', window: w })\n class SwcAppCanvas extends SwcAppMixin(HTMLCanvasElement) {}\n\n @elementDefine('swc-app-data', { extends: 'data', window: w })\n class SwcAppData extends SwcAppMixin(HTMLDataElement) {}\n\n @elementDefine('swc-app-datalist', { extends: 'datalist', window: w })\n class SwcAppDataList extends SwcAppMixin(HTMLDataListElement) {}\n\n @elementDefine('swc-app-details', { extends: 'details', window: w })\n class SwcAppDetails extends SwcAppMixin(HTMLDetailsElement) {}\n\n @elementDefine('swc-app-dialog', { extends: 'dialog', window: w })\n class SwcAppDialog extends SwcAppMixin(HTMLDialogElement) {}\n\n @elementDefine('swc-app-div', { extends: 'div', window: w })\n class SwcAppDiv extends SwcAppMixin(HTMLDivElement) {}\n\n @elementDefine('swc-app-dl', { extends: 'dl', window: w })\n class SwcAppDList extends SwcAppMixin(HTMLDListElement) {}\n\n @elementDefine('swc-app-embed', { extends: 'embed', window: w })\n class SwcAppEmbed extends SwcAppMixin(HTMLEmbedElement) {}\n\n @elementDefine('swc-app-fieldset', { extends: 'fieldset', window: w })\n class SwcAppFieldSet extends SwcAppMixin(HTMLFieldSetElement) {}\n\n @elementDefine('swc-app-form', { extends: 'form', window: w })\n class SwcAppForm extends SwcAppMixin(HTMLFormElement) {}\n\n @elementDefine('swc-app-hr', { extends: 'hr', window: w })\n class SwcAppHR extends SwcAppMixin(HTMLHRElement) {}\n\n @elementDefine('swc-app-iframe', { extends: 'iframe', window: w })\n class SwcAppIFrame extends SwcAppMixin(HTMLIFrameElement) {}\n\n @elementDefine('swc-app-img', { extends: 'img', window: w })\n class SwcAppImage extends SwcAppMixin(HTMLImageElement) {}\n\n @elementDefine('swc-app-input', { extends: 'input', window: w })\n class SwcAppInput extends SwcAppMixin(HTMLInputElement) {}\n\n @elementDefine('swc-app-label', { extends: 'label', window: w })\n class SwcAppLabel extends SwcAppMixin(HTMLLabelElement) {}\n\n @elementDefine('swc-app-legend', { extends: 'legend', window: w })\n class SwcAppLegend extends SwcAppMixin(HTMLLegendElement) {}\n\n @elementDefine('swc-app-li', { extends: 'li', window: w })\n class SwcAppLI extends SwcAppMixin(HTMLLIElement) {}\n\n @elementDefine('swc-app-link', { extends: 'link', window: w })\n class SwcAppLink extends SwcAppMixin(HTMLLinkElement) {}\n\n @elementDefine('swc-app-map', { extends: 'map', window: w })\n class SwcAppMap extends SwcAppMixin(HTMLMapElement) {}\n\n @elementDefine('swc-app-meta', { extends: 'meta', window: w })\n class SwcAppMeta extends SwcAppMixin(HTMLMetaElement) {}\n\n @elementDefine('swc-app-meter', { extends: 'meter', window: w })\n class SwcAppMeter extends SwcAppMixin(HTMLMeterElement) {}\n\n @elementDefine('swc-app-del', { extends: 'del', window: w })\n class SwcAppMod extends SwcAppMixin(HTMLModElement) {}\n\n @elementDefine('swc-app-object', { extends: 'object', window: w })\n class SwcAppObject extends SwcAppMixin(HTMLObjectElement) {}\n\n @elementDefine('swc-app-ol', { extends: 'ol', window: w })\n class SwcAppOList extends SwcAppMixin(HTMLOListElement) {}\n\n @elementDefine('swc-app-optgroup', { extends: 'optgroup', window: w })\n class SwcAppOptGroup extends SwcAppMixin(HTMLOptGroupElement) {}\n\n @elementDefine('swc-app-option', { extends: 'option', window: w })\n class SwcAppOption extends SwcAppMixin(HTMLOptionElement) {}\n\n @elementDefine('swc-app-output', { extends: 'output', window: w })\n class SwcAppOutput extends SwcAppMixin(HTMLOutputElement) {}\n\n @elementDefine('swc-app-p', { extends: 'p', window: w })\n class SwcAppParagraph extends SwcAppMixin(HTMLParagraphElement) {}\n\n @elementDefine('swc-app-param', { extends: 'param', window: w })\n class SwcAppParam extends SwcAppMixin(HTMLParamElement) {}\n\n @elementDefine('swc-app-picture', { extends: 'picture', window: w })\n class SwcAppPicture extends SwcAppMixin(HTMLPictureElement) {}\n\n @elementDefine('swc-app-pre', { extends: 'pre', window: w })\n class SwcAppPre extends SwcAppMixin(HTMLPreElement) {}\n\n @elementDefine('swc-app-progress', { extends: 'progress', window: w })\n class SwcAppProgress extends SwcAppMixin(HTMLProgressElement) {}\n\n @elementDefine('swc-app-blockquote', { extends: 'blockquote', window: w })\n class SwcAppQuote extends SwcAppMixin(HTMLQuoteElement) {}\n\n @elementDefine('swc-app-script', { extends: 'script', window: w })\n class SwcAppScript extends SwcAppMixin(HTMLScriptElement) {}\n\n @elementDefine('swc-app-select', { extends: 'select', window: w })\n class SwcAppSelect extends SwcAppMixin(HTMLSelectElement) {}\n\n @elementDefine('swc-app-slot', { extends: 'slot', window: w })\n class SwcAppSlot extends SwcAppMixin(HTMLSlotElement) {}\n\n @elementDefine('swc-app-source', { extends: 'source', window: w })\n class SwcAppSource extends SwcAppMixin(HTMLSourceElement) {}\n\n @elementDefine('swc-app-span', { extends: 'span', window: w })\n class SwcAppSpan extends SwcAppMixin(HTMLSpanElement) {}\n\n @elementDefine('swc-app-style', { extends: 'style', window: w })\n class SwcAppStyle extends SwcAppMixin(HTMLStyleElement) {}\n\n @elementDefine('swc-app-table', { extends: 'table', window: w })\n class SwcAppTable extends SwcAppMixin(HTMLTableElement) {}\n\n @elementDefine('swc-app-tbody', { extends: 'tbody', window: w })\n class SwcAppTableSection extends SwcAppMixin(HTMLTableSectionElement) {}\n\n @elementDefine('swc-app-td', { extends: 'td', window: w })\n class SwcAppTableCell extends SwcAppMixin(HTMLTableCellElement) {}\n\n @elementDefine('swc-app-template', { extends: 'template', window: w })\n class SwcAppTemplate extends SwcAppMixin(HTMLTemplateElement) {}\n\n @elementDefine('swc-app-textarea', { extends: 'textarea', window: w })\n class SwcAppTextArea extends SwcAppMixin(HTMLTextAreaElement) {}\n\n @elementDefine('swc-app-time', { extends: 'time', window: w })\n class SwcAppTime extends SwcAppMixin(HTMLTimeElement) {}\n\n @elementDefine('swc-app-title', { extends: 'title', window: w })\n class SwcAppTitle extends SwcAppMixin(HTMLTitleElement) {}\n\n @elementDefine('swc-app-tr', { extends: 'tr', window: w })\n class SwcAppTableRow extends SwcAppMixin(HTMLTableRowElement) {}\n\n @elementDefine('swc-app-track', { extends: 'track', window: w })\n class SwcAppTrack extends SwcAppMixin(HTMLTrackElement) {}\n\n @elementDefine('swc-app-ul', { extends: 'ul', window: w })\n class SwcAppUList extends SwcAppMixin(HTMLUListElement) {}\n\n @elementDefine('swc-app-video', { extends: 'video', window: w })\n class SwcAppVideo extends SwcAppMixin(HTMLVideoElement) {}\n\n @elementDefine('swc-app-h1', { extends: 'h1', window: w })\n class SwcAppHeading extends SwcAppMixin(HTMLHeadingElement) {}\n\n @elementDefine('swc-app-body', { extends: 'body', window: w })\n class SwcAppBody extends SwcAppMixin(HTMLBodyElement) {}\n\n\n return {\n // Sub Templates\n SwcLoading,\n SwcError,\n SwcSuccess,\n SwcWhen,\n SwcOtherwise,\n SwcDefault,\n // Core Elements\n SwcApp,\n SwcIf,\n SwcLoop,\n SwcChoose,\n SwcAsync,\n // App Elements\n SwcAppAnchor,\n SwcAppArea,\n SwcAppAudio,\n SwcAppBase,\n SwcAppButton,\n SwcAppCanvas,\n SwcAppData,\n SwcAppDataList,\n SwcAppDetails,\n SwcAppDialog,\n SwcAppDiv,\n SwcAppDList,\n SwcAppEmbed,\n SwcAppFieldSet,\n SwcAppForm,\n SwcAppHR,\n SwcAppIFrame,\n SwcAppImage,\n SwcAppInput,\n SwcAppLabel,\n SwcAppLegend,\n SwcAppLI,\n SwcAppLink,\n SwcAppMap,\n SwcAppMeta,\n SwcAppMeter,\n SwcAppMod,\n SwcAppObject,\n SwcAppOList,\n SwcAppOptGroup,\n SwcAppOption,\n SwcAppOutput,\n SwcAppParagraph,\n SwcAppParam,\n SwcAppPicture,\n SwcAppPre,\n SwcAppProgress,\n SwcAppQuote,\n SwcAppScript,\n SwcAppSelect,\n SwcAppSlot,\n SwcAppSource,\n SwcAppSpan,\n SwcAppStyle,\n SwcAppTable,\n SwcAppTableSection,\n SwcAppTableCell,\n SwcAppTemplate,\n SwcAppTextArea,\n SwcAppTime,\n SwcAppTitle,\n SwcAppTableRow,\n SwcAppTrack,\n SwcAppUList,\n SwcAppVideo,\n SwcAppHeading,\n SwcAppBody,\n };\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { getElementConfig, elementDefine, attributeHost, changedAttributeHost, getAttributeValue } from '../decorators';\nimport { SwcAppMixin } from './SwcAppMixin';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils,ActionExpression } from '@dooboostore/core';\nimport { ConvertUtils } from '@dooboostore/core-web';\n\ntype Constructor<T> = new (...args: any[]) => T;\n\nexport const registerAllElements = (w: any): Record<string, Constructor<HTMLElement>> => {\n const {\n HTMLElement: _HTMLElement,\n HTMLTemplateElement: _HTMLTemplateElement,\n DocumentFragment: _DocumentFragment,\n Node: _Node,\n Element: _Element,\n HTMLAnchorElement: _HTMLAnchorElement,\n HTMLAreaElement: _HTMLAreaElement,\n HTMLAudioElement: _HTMLAudioElement,\n HTMLBaseElement: _HTMLBaseElement,\n HTMLButtonElement: _HTMLButtonElement,\n HTMLCanvasElement: _HTMLCanvasElement,\n HTMLDataElement: _HTMLDataElement,\n HTMLDataListElement: _HTMLDataListElement,\n HTMLDetailsElement: _HTMLDetailsElement,\n HTMLDialogElement: _HTMLDialogElement,\n HTMLDivElement: _HTMLDivElement,\n HTMLDListElement: _HTMLDListElement,\n HTMLEmbedElement: _HTMLEmbedElement,\n HTMLFieldSetElement: _HTMLFieldSetElement,\n HTMLFormElement: _HTMLFormElement,\n HTMLHRElement: _HTMLHRElement,\n HTMLIFrameElement: _HTMLIFrameElement,\n HTMLImageElement: _HTMLImageElement,\n HTMLInputElement: _HTMLInputElement,\n HTMLLabelElement: _HTMLLabelElement,\n HTMLLegendElement: _HTMLLegendElement,\n HTMLLIElement: _HTMLLIElement,\n HTMLLinkElement: _HTMLLinkElement,\n HTMLMapElement: _HTMLMapElement,\n HTMLMetaElement: _HTMLMetaElement,\n HTMLMeterElement: _HTMLMeterElement,\n HTMLModElement: _HTMLModElement,\n HTMLObjectElement: _HTMLObjectElement,\n HTMLOListElement: _HTMLOListElement,\n HTMLOptGroupElement: _HTMLOptGroupElement,\n HTMLOptionElement: _HTMLOptionElement,\n HTMLOutputElement: _HTMLOutputElement,\n HTMLParagraphElement: _HTMLParagraphElement,\n HTMLParamElement: _HTMLParamElement,\n HTMLPictureElement: _HTMLPictureElement,\n HTMLPreElement: _HTMLPreElement,\n HTMLProgressElement: _HTMLProgressElement,\n HTMLQuoteElement: _HTMLQuoteElement,\n HTMLScriptElement: _HTMLScriptElement,\n HTMLSelectElement: _HTMLSelectElement,\n HTMLSlotElement: _HTMLSlotElement,\n HTMLSourceElement: _HTMLSourceElement,\n HTMLSpanElement: _HTMLSpanElement,\n HTMLStyleElement: _HTMLStyleElement,\n HTMLTableElement: _HTMLTableElement,\n HTMLTableSectionElement: _HTMLTableSectionElement,\n HTMLTableCellElement: _HTMLTableCellElement,\n HTMLTextAreaElement: _HTMLTextAreaElement,\n HTMLTimeElement: _HTMLTimeElement,\n HTMLTitleElement: _HTMLTitleElement,\n HTMLTableRowElement: _HTMLTableRowElement,\n HTMLTrackElement: _HTMLTrackElement,\n HTMLUListElement: _HTMLUListElement,\n HTMLVideoElement: _HTMLVideoElement,\n HTMLHeadingElement: _HTMLHeadingElement,\n HTMLBodyElement: _HTMLBodyElement,\n } = w as any;\n\n const HTMLElement = _HTMLElement as typeof globalThis.HTMLElement;\n const HTMLTemplateElement = _HTMLTemplateElement as typeof globalThis.HTMLTemplateElement;\n const DocumentFragment = _DocumentFragment as typeof globalThis.DocumentFragment;\n const Node = _Node as typeof globalThis.Node;\n const Element = _Element as typeof globalThis.Element;\n const HTMLAnchorElement = _HTMLAnchorElement as typeof globalThis.HTMLAnchorElement;\n const HTMLAreaElement = _HTMLAreaElement as typeof globalThis.HTMLAreaElement;\n const HTMLAudioElement = _HTMLAudioElement as typeof globalThis.HTMLAudioElement;\n const HTMLBaseElement = _HTMLBaseElement as typeof globalThis.HTMLBaseElement;\n const HTMLButtonElement = _HTMLButtonElement as typeof globalThis.HTMLButtonElement;\n const HTMLCanvasElement = _HTMLCanvasElement as typeof globalThis.HTMLCanvasElement;\n const HTMLDataElement = _HTMLDataElement as typeof globalThis.HTMLDataElement;\n const HTMLDataListElement = _HTMLDataListElement as typeof globalThis.HTMLDataListElement;\n const HTMLDetailsElement = _HTMLDetailsElement as typeof globalThis.HTMLDetailsElement;\n const HTMLDialogElement = _HTMLDialogElement as typeof globalThis.HTMLDialogElement;\n const HTMLDivElement = _HTMLDivElement as typeof globalThis.HTMLDivElement;\n const HTMLDListElement = _HTMLDListElement as typeof globalThis.HTMLDListElement;\n const HTMLEmbedElement = _HTMLEmbedElement as typeof globalThis.HTMLEmbedElement;\n const HTMLFieldSetElement = _HTMLFieldSetElement as typeof globalThis.HTMLFieldSetElement;\n const HTMLFormElement = _HTMLFormElement as typeof globalThis.HTMLFormElement;\n const HTMLHRElement = _HTMLHRElement as typeof globalThis.HTMLHRElement;\n const HTMLIFrameElement = _HTMLIFrameElement as typeof globalThis.HTMLIFrameElement;\n const HTMLImageElement = _HTMLImageElement as typeof globalThis.HTMLImageElement;\n const HTMLInputElement = _HTMLInputElement as typeof globalThis.HTMLInputElement;\n const HTMLLabelElement = _HTMLLabelElement as typeof globalThis.HTMLLabelElement;\n const HTMLLegendElement = _HTMLLegendElement as typeof globalThis.HTMLLegendElement;\n const HTMLLIElement = _HTMLLIElement as typeof globalThis.HTMLLIElement;\n const HTMLLinkElement = _HTMLLinkElement as typeof globalThis.HTMLLinkElement;\n const HTMLMapElement = _HTMLMapElement as typeof globalThis.HTMLMapElement;\n const HTMLMetaElement = _HTMLMetaElement as typeof globalThis.HTMLMetaElement;\n const HTMLMeterElement = _HTMLMeterElement as typeof globalThis.HTMLMeterElement;\n const HTMLModElement = _HTMLModElement as typeof globalThis.HTMLModElement;\n const HTMLObjectElement = _HTMLObjectElement as typeof globalThis.HTMLObjectElement;\n const HTMLOListElement = _HTMLOListElement as typeof globalThis.HTMLOListElement;\n const HTMLOptGroupElement = _HTMLOptGroupElement as typeof globalThis.HTMLOptGroupElement;\n const HTMLOptionElement = _HTMLOptionElement as typeof globalThis.HTMLOptionElement;\n const HTMLOutputElement = _HTMLOutputElement as typeof globalThis.HTMLOutputElement;\n const HTMLParagraphElement = _HTMLParagraphElement as typeof globalThis.HTMLParagraphElement;\n const HTMLParamElement = _HTMLParamElement as typeof globalThis.HTMLParamElement;\n const HTMLPictureElement = _HTMLPictureElement as typeof globalThis.HTMLPictureElement;\n const HTMLPreElement = _HTMLPreElement as typeof globalThis.HTMLPreElement;\n const HTMLProgressElement = _HTMLProgressElement as typeof globalThis.HTMLProgressElement;\n const HTMLQuoteElement = _HTMLQuoteElement as typeof globalThis.HTMLQuoteElement;\n const HTMLScriptElement = _HTMLScriptElement as typeof globalThis.HTMLScriptElement;\n const HTMLSelectElement = _HTMLSelectElement as typeof globalThis.HTMLSelectElement;\n const HTMLSlotElement = _HTMLSlotElement as typeof globalThis.HTMLSlotElement;\n const HTMLSourceElement = _HTMLSourceElement as typeof globalThis.HTMLSourceElement;\n const HTMLSpanElement = _HTMLSpanElement as typeof globalThis.HTMLSpanElement;\n const HTMLStyleElement = _HTMLStyleElement as typeof globalThis.HTMLStyleElement;\n const HTMLTableElement = _HTMLTableElement as typeof globalThis.HTMLTableElement;\n const HTMLTableSectionElement = _HTMLTableSectionElement as typeof globalThis.HTMLTableSectionElement;\n const HTMLTableCellElement = _HTMLTableCellElement as typeof globalThis.HTMLTableCellElement;\n const HTMLTextAreaElement = _HTMLTextAreaElement as typeof globalThis.HTMLTextAreaElement;\n const HTMLTimeElement = _HTMLTimeElement as typeof globalThis.HTMLTimeElement;\n const HTMLTitleElement = _HTMLTitleElement as typeof globalThis.HTMLTitleElement;\n const HTMLTableRowElement = _HTMLTableRowElement as typeof globalThis.HTMLTableRowElement;\n const HTMLTrackElement = _HTMLTrackElement as typeof globalThis.HTMLTrackElement;\n const HTMLUListElement = _HTMLUListElement as typeof globalThis.HTMLUListElement;\n const HTMLVideoElement = _HTMLVideoElement as typeof globalThis.HTMLVideoElement;\n const HTMLHeadingElement = _HTMLHeadingElement as typeof globalThis.HTMLHeadingElement;\n const HTMLBodyElement = _HTMLBodyElement as typeof globalThis.HTMLBodyElement;\n\n\n // --- Sub Templates ---\n @elementDefine('swc-loading', { extends: 'template', window: w }) class SwcLoading extends HTMLTemplateElement {}\n @elementDefine('swc-error', { extends: 'template', window: w }) class SwcError extends HTMLTemplateElement {}\n @elementDefine('swc-success', { extends: 'template', window: w }) class SwcSuccess extends HTMLTemplateElement {}\n @elementDefine('swc-when', { extends: 'template', window: w }) class SwcWhen extends HTMLTemplateElement {}\n @elementDefine('swc-otherwise', { extends: 'template', window: w }) class SwcOtherwise extends HTMLTemplateElement {}\n @elementDefine('swc-default', { extends: 'template', window: w }) class SwcDefault extends HTMLTemplateElement {}\n\n // --- Core Elements ---\n @elementDefine('swc-app', { window: w })\n class SwcApp extends SwcAppMixin(HTMLElement) {}\n\n @elementDefine('swc-if', { extends: 'template', window: w })\n class SwcIf extends HTMLTemplateElement {\n // id =\n // @attributeHost('value')\n _value: any;\n\n @attributeHost('replace-wrap-start')\n _replaceWrapStart: string | null;\n @attributeHost('replace-wrap-end')\n _replaceWrapEnd: string | null;\n\n @attributeHost('skip-if-same')\n _skipIfSame: string | null;\n\n private _nodes: Node[] = [];\n\n get value(): boolean {\n return this._value;\n }\n\n set value(nv: any) {\n // this._value = nv;\n this.refresh(nv);\n }\n\n constructor() {\n super();\n }\n\n @changedAttributeHost('value')\n private setValue(value: any, o: string, n: string) {\n this._value = value;\n this.refresh(this._value);\n }\n\n // @changedAttributeHost('replace-wrap')\n // private setReplaceWrap(replaceWrapAttr?: string | null) {\n // this.refresh();\n // }\n\n private replaceExpressions(html: string, groupArgs: any, context: any, wrap: {start: string, end: string}): string {\n let config: any = undefined;\n if (wrap) {\n config = {\n expression: {\n replace: { start: `${wrap.start}`, end: `${wrap.end}` },\n callReturn: { start: `${wrap.start}=`, end: `${wrap.end}` },\n call: { start: `${wrap.start}@`, end: `${wrap.end}` }\n }\n };\n }\n const ae = new ActionExpression(html, config);\n const win = this.ownerDocument?.defaultView || window;\n\n // @ts-ignore\n for (const expr of ae.getExpressions('replace')) {\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(value?: any) {\n const targetValue = value !== undefined ? value : (getAttributeValue(this, 'value') ?? this._value);\n\n // skip-if-same 속성이 존재하고(true/빈 문자열), 이전 값과 새로운 값이 완전히 동일하면 렌더링 스킵!\n if (this.hasAttribute('skip-if-same') && this._value === targetValue && this._nodes.length > 0) {\n return;\n }\n\n this.cleanup();\n this._value = targetValue;\n\n const portal = this.parentElement;\n if (!portal || !this._value) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n let htmlString = this.innerHTML;\n const groupArgs = { ...helperSet, $value: this._value, $templateHost: this };\n\n htmlString = this.replaceExpressions(htmlString, groupArgs, this, {start:this._replaceWrapStart ?? '{#{', end: this._replaceWrapEnd ?? '}#}'});\n\n const result = this.ownerDocument?.createElement('template') || document.createElement('template');\n result.innerHTML = htmlString;\n const processedFragment = result.content;\n\n this._nodes = Array.from(processedFragment.childNodes);\n this._nodes.forEach((node: any) => {\n if (node instanceof HTMLElement) (node as any).__swc_template_host = this;\n });\n\n portal.insertBefore(processedFragment, this.nextSibling);\n }\n\n private cleanup() {\n this._nodes.forEach(n => {\n const realNode = (n as any).__upgraded_instance || n;\n if (realNode.parentElement) {\n realNode.parentElement.removeChild(realNode);\n }\n });\n this._nodes = [];\n }\n\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-loop', { extends: 'template', window: w })\n class SwcLoop extends HTMLTemplateElement {\n _value: any[] = [];\n\n @attributeHost('replace-wrap-start')\n _replaceWrapStart: string | null;\n @attributeHost('replace-wrap-end')\n _replaceWrapEnd: string | null;\n\n private _nodeGroups: Node[][] = [];\n\n get value(): any[] {\n return this._value;\n }\n\n set value(nv: any[]) {\n this._value = nv;\n this.refresh(nv);\n }\n\n getValue(index: number) {\n return this._value?.[index];\n }\n\n constructor() {\n super();\n // console.log('swc SwcLoop constructor called!');\n // console.log('swc SwcLoop', this.getAttribute('value'));\n }\n\n @changedAttributeHost('value')\n private setValue(value: any, o: string, n: string) {\n this._value = value;\n this.refresh(this._value);\n }\n\n // @changedAttributeHost('replace-wrap')\n // private setReplaceWrap(replaceWrapAttr?: string | null) {\n // this.refresh();\n // }\n\n private replaceExpressions(html: string, groupArgs: any, context: any, wrap: {start: string, end: string}): string {\n let config: any = undefined;\n config = {\n expression: {\n replace: { start: `${wrap.start}`, end: `${wrap.end}` },\n callReturn: { start: `${wrap.start}=`, end: `${wrap.end}` },\n call: { start: `${wrap.start}@`, end: `${wrap.end}` }\n }\n };\n const ae = new ActionExpression(html, config);\n const win = this.ownerDocument?.defaultView || window;\n\n // @ts-ignore\n const expressions = ae.getExpressions('replace');\n for (const expr of expressions) {\n const script = ConvertUtils.decodeHtmlEntity(expr.script, win.document);\n try {\n const value = FunctionUtils.executeReturn({\n script: script,\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 private createFragmentAndNodes(items: any[], helperSet: any, startIndex: number = 0): { fragment: DocumentFragment; newNodesGroup: Node[][] } {\n const win = this.ownerDocument?.defaultView || window;\n const fragment = win.document.createDocumentFragment();\n const newNodesGroup: Node[][] = [];\n\n items.forEach((item, i) => {\n const index = startIndex + i;\n let htmlString = this.innerHTML;\n const groupArgs = { ...helperSet, $item: item, $index: index, $value: this._value };\n\n htmlString = this.replaceExpressions(htmlString, groupArgs, this, {start:this._replaceWrapStart ?? '{#{', end: this._replaceWrapEnd ?? '}#}'});\n\n const temp = this.ownerDocument?.createElement('template') || document.createElement('template');\n temp.innerHTML = htmlString;\n\n const content = temp.content;\n const nodes = Array.from(content.childNodes);\n\n const setTemplateHost = (element: HTMLElement) => {\n (element as any).__swc_template_host = this;\n Array.from(element.children).forEach((child: any) => {\n if (child instanceof HTMLElement) {\n setTemplateHost(child);\n }\n });\n };\n\n nodes.forEach((node: any) => {\n if (node instanceof HTMLElement) {\n setTemplateHost(node as HTMLElement);\n }\n });\n newNodesGroup.push(nodes);\n fragment.appendChild(content);\n });\n\n return { fragment, newNodesGroup };\n }\n\n appendItem(...items: any[]) {\n if (!items || items.length <= 0) return;\n const portal = SwcUtils.getParentContainer(this);\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n const startIndex = this._value ? this._value.length : 0;\n\n // 내부 상태(value) 업데이트 (기존 배열에 새 아이템 추가)\n if (this._value !== items) {\n this._value = [...(this._value || []), ...items];\n }\n\n const { fragment, newNodesGroup } = this.createFragmentAndNodes(items, helperSet, startIndex);\n this._nodeGroups.push(...newNodesGroup);\n\n console.log('뭐야 씨발');\n // append 위치 계산: 기존에 그려진 마지막 노드 뒤에 삽입, 없으면 템플릿 바로 뒤에 삽입\n let insertReference: Node | null = this.nextSibling;\n if (this._nodeGroups.length > items.length) {\n const lastExistingGroup = this._nodeGroups[this._nodeGroups.length - items.length - 1];\n if (lastExistingGroup && lastExistingGroup.length > 0) {\n const lastNode = lastExistingGroup[lastExistingGroup.length - 1];\n insertReference = lastNode.nextSibling;\n }\n }\n\n portal.insertBefore(fragment, insertReference);\n }\n\n async prependItem(...items: any[]) {\n if (!items || items.length <= 0) return;\n const portal = SwcUtils.getParentContainer(this);\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n // 내부 상태(value) 업데이트 (기존 배열의 앞쪽에 새 아이템 추가)\n if (this._value !== items) {\n this._value = [...items, ...(this._value || [])];\n }\n\n const { fragment, newNodesGroup } = this.createFragmentAndNodes(items, helperSet, 0);\n\n // 기존의 nodeGroups 배열 맨 앞에 새로운 그룹들을 추가\n this._nodeGroups = [...newNodesGroup, ...this._nodeGroups];\n\n // prepend 위치: 이 템플릿(SwcLoop) 노드의 바로 다음 위치 (가장 위)\n portal.insertBefore(fragment, this.nextSibling);\n }\n\n refresh(value?: any) {\n // 1. 그릴 대상 확정\n const targetValue = value !== undefined ? value : (getAttributeValue(this, 'value') ?? this._value ?? []);\n\n // 2. 화면 정리\n this.cleanup();\n\n // 3. 상태 완전 교체 (이어붙이지 않음!)\n this._value = targetValue;\n\n if (!this._value || this._value.length <= 0) return;\n\n // 4. 화면 다시 그리기 (appendItem을 쓰지 않고 바로 그리기)\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n helperSet.$templateHost = this;\n const { fragment, newNodesGroup } = this.createFragmentAndNodes(this._value, helperSet, 0);\n\n this._nodeGroups = newNodesGroup;\n const portal = SwcUtils.getParentContainer(this);\n if (portal) {\n // console.log('append????!~~~~~!?',fragment)\n portal.insertBefore(fragment, this.nextSibling);\n }\n }\n\n private cleanup() {\n console.log('누가 cleanup');\n this._nodeGroups.forEach(nodes => nodes.forEach(n => n.parentElement?.removeChild(n)));\n this._nodeGroups = [];\n }\n\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-choose', { extends: 'template', window: w })\n class SwcChoose extends HTMLTemplateElement {\n _value: any;\n\n @attributeHost('replace-wrap-start')\n _replaceWrapStart: string | null;\n @attributeHost('replace-wrap-end')\n _replaceWrapEnd: string | null;\n\n private _nodes: Node[] = [];\n private _previousTemplate: HTMLTemplateElement | null = null;\n\n get value(): any {\n return this._value;\n }\n\n set value(nv: any) {\n this._value = nv;\n this.refresh(this._value);\n }\n\n constructor() {\n super();\n // console.log('swc chooooooooooooooooooooooooose constructor called!');\n // console.log('swc cccccccss', this.getAttribute('value'));\n }\n\n // static get observedAttributes() {\n // return ['value'];\n // }\n\n attributeChangedCallback(na, o, n) {\n // console.log('-----------------choooooooose attr origin', na, o, n);\n }\n\n @changedAttributeHost('value')\n private setValue(value: any, o: string, n: string) {\n console.log('chooooooose value', value)\n this._value = value;\n this.refresh(this._value);\n }\n\n // @changedAttributeHost('replace-wrap')\n // private setReplaceWrap(replaceWrapAttr?: string | null) {\n // this.refresh();\n // }\n\n private replaceExpressions(html: string, groupArgs: any, context: any, wrap: {start: string, end: string}): string {\n let config: any = undefined;\n if (wrap) {\n config = {\n expression: {\n replace: { start: `${wrap.start}`, end: `${wrap.end}` },\n callReturn: { start: `${wrap.start}=`, end: `${wrap.end}` },\n call: { start: `${wrap.start}@`, end: `${wrap.end}` }\n }\n };\n }\n const ae = new ActionExpression(html, config);\n const win = this.ownerDocument?.defaultView || window;\n\n // @ts-ignore\n for (const expr of ae.getExpressions('replace')) {\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(value?: any) {\n value = getAttributeValue(this, 'value') ?? this._value;\n console.log('[DEBUG] SwcChoose.refresh called, value:', value);\n const portal = SwcUtils.getParentContainer(this);\n if (!portal) {\n console.log('[DEBUG] SwcChoose portal is null!');\n return;\n }\n\n const win = (getElementConfig(this).window ?? this.ownerDocument?.defaultView) || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n const groupArgs = { ...helperSet, $value: value, $templateHost: this };\n\n const templates = Array.from(this.content.querySelectorAll('template'));\n let selected: HTMLTemplateElement | null = null;\n\n for (const t of templates) {\n if (t.getAttribute('is') === 'swc-when') {\n const attrVal = t.getAttribute('test') || '';\n let matches = false;\n\n\n\n const result = FunctionUtils.executeReturn({\n script: attrVal,\n context: t,\n args: groupArgs\n });\n matches = !!result;\n // Use ActionExpression to parse and extract script from value attribute\n // const ae = new ActionExpression(attrVal);\n // const expr = ae.getFirstExpression('replace');\n\n // if (expr) {\n // const decodedScript = ConvertUtils.decodeHtmlEntity(expr.script, win.document);\n // const result = FunctionUtils.executeReturn({\n // script: decodedScript,\n // context: t,\n // args: groupArgs\n // });\n // matches = !!result;\n // } else {\n // matches = String(attrVal) === String(value);\n // }\n\n if (matches) {\n selected = t;\n break;\n }\n }\n }\n\n const target = selected || (this.content.querySelector('template[is=\"swc-otherwise\"]') as HTMLTemplateElement);\n\n const skipValue = target?.getAttribute?.('skip-if-same');\n const skipValue2 = this._previousTemplate?.getAttribute?.('skip-if-same');\n const hasSkipIfSame = target?.hasAttribute?.('skip-if-same');\n const isSame = this._previousTemplate === target;\n // console.log('---rrrr---', this._previousTemplate, target, hasSkipIfSame, isSame, skipValue, skipValue2);\n if (hasSkipIfSame && isSame) {\n return;\n }\n\n this.cleanup();\n this._previousTemplate = target;\n\n if (target) {\n let htmlString = target.innerHTML;\n htmlString = this.replaceExpressions(htmlString, groupArgs, this, {start:this._replaceWrapStart ?? '{#{', end: this._replaceWrapEnd ?? '}#}'});\n\n const result = this.ownerDocument?.createElement('template') || document.createElement('template');\n result.innerHTML = htmlString;\n const processedFragment = result.content;\n\n // console.log('[DEBUG] SwcChoose processedFragment children:', processedFragment._childNodesInternal?.length);\n this._nodes = Array.from(processedFragment.childNodes);\n \n const setTemplateHost = (element: HTMLElement) => {\n (element as any).__swc_template_host = this;\n Array.from(element.children).forEach((child: any) => {\n if (child instanceof HTMLElement) {\n setTemplateHost(child);\n }\n });\n };\n \n this._nodes.forEach((node: any) => {\n if (node instanceof HTMLElement) {\n setTemplateHost(node as HTMLElement);\n }\n });\n\n console.log(`[DEBUG] SwcChoose before insertBefore, portal: ${portal?.tagName}, isConnected: ${(portal as any)?.isConnected}`);\n portal.insertBefore(processedFragment, this.nextSibling);\n console.log('[DEBUG] SwcChoose after insertBefore');\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\n @elementDefine('swc-async', { extends: 'template', window: w })\n class SwcAsync extends HTMLTemplateElement {\n @attributeHost('value')\n _value: any;\n @attributeHost('replace-wrap-start')\n _replaceWrapStart: string | null;\n @attributeHost('replace-wrap-end')\n _replaceWrapEnd: string | null; 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: {start: string, end: string}): string {\n let config: any = undefined;\n if (wrap) {\n config = {\n expression: {\n replace: { start: `${wrap.start}`, end: `${wrap.end}` },\n callReturn: { start: `${wrap.start}=`, end: `${wrap.end}` },\n call: { start: `${wrap.start}@`, end: `${wrap.end}` }\n }\n };\n }\n const ae = new ActionExpression(html, config);\n const win = this.ownerDocument?.defaultView || window;\n\n // @ts-ignore\n for (const expr of ae.getExpressions('replace')) {\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 = SwcUtils.getParentContainer(this);\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, $templateHost: this };\n\n htmlString = this.replaceExpressions(htmlString, groupArgs, this, {start:this._replaceWrapStart ?? '{#{', end: this._replaceWrapEnd ?? '}#}'});\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 this._nodes.forEach((node: any) => {\n if (node instanceof HTMLElement) (node as any).__template_swc_host = this;\n });\n\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\n // --- \"is\" Elements ---\n @elementDefine('swc-app-a', { extends: 'a', window: w })\n class SwcAppAnchor extends SwcAppMixin(HTMLAnchorElement) {}\n\n @elementDefine('swc-app-area', { extends: 'area', window: w })\n class SwcAppArea extends SwcAppMixin(HTMLAreaElement) {}\n\n @elementDefine('swc-app-audio', { extends: 'audio', window: w })\n class SwcAppAudio extends SwcAppMixin(HTMLAudioElement) {}\n\n @elementDefine('swc-app-base', { extends: 'base', window: w })\n class SwcAppBase extends SwcAppMixin(HTMLBaseElement) {}\n\n @elementDefine('swc-app-button', { extends: 'button', window: w })\n class SwcAppButton extends SwcAppMixin(HTMLButtonElement) {}\n\n @elementDefine('swc-app-canvas', { extends: 'canvas', window: w })\n class SwcAppCanvas extends SwcAppMixin(HTMLCanvasElement) {}\n\n @elementDefine('swc-app-data', { extends: 'data', window: w })\n class SwcAppData extends SwcAppMixin(HTMLDataElement) {}\n\n @elementDefine('swc-app-datalist', { extends: 'datalist', window: w })\n class SwcAppDataList extends SwcAppMixin(HTMLDataListElement) {}\n\n @elementDefine('swc-app-details', { extends: 'details', window: w })\n class SwcAppDetails extends SwcAppMixin(HTMLDetailsElement) {}\n\n @elementDefine('swc-app-dialog', { extends: 'dialog', window: w })\n class SwcAppDialog extends SwcAppMixin(HTMLDialogElement) {}\n\n @elementDefine('swc-app-div', { extends: 'div', window: w })\n class SwcAppDiv extends SwcAppMixin(HTMLDivElement) {}\n\n @elementDefine('swc-app-dl', { extends: 'dl', window: w })\n class SwcAppDList extends SwcAppMixin(HTMLDListElement) {}\n\n @elementDefine('swc-app-embed', { extends: 'embed', window: w })\n class SwcAppEmbed extends SwcAppMixin(HTMLEmbedElement) {}\n\n @elementDefine('swc-app-fieldset', { extends: 'fieldset', window: w })\n class SwcAppFieldSet extends SwcAppMixin(HTMLFieldSetElement) {}\n\n @elementDefine('swc-app-form', { extends: 'form', window: w })\n class SwcAppForm extends SwcAppMixin(HTMLFormElement) {}\n\n @elementDefine('swc-app-hr', { extends: 'hr', window: w })\n class SwcAppHR extends SwcAppMixin(HTMLHRElement) {}\n\n @elementDefine('swc-app-iframe', { extends: 'iframe', window: w })\n class SwcAppIFrame extends SwcAppMixin(HTMLIFrameElement) {}\n\n @elementDefine('swc-app-img', { extends: 'img', window: w })\n class SwcAppImage extends SwcAppMixin(HTMLImageElement) {}\n\n @elementDefine('swc-app-input', { extends: 'input', window: w })\n class SwcAppInput extends SwcAppMixin(HTMLInputElement) {}\n\n @elementDefine('swc-app-label', { extends: 'label', window: w })\n class SwcAppLabel extends SwcAppMixin(HTMLLabelElement) {}\n\n @elementDefine('swc-app-legend', { extends: 'legend', window: w })\n class SwcAppLegend extends SwcAppMixin(HTMLLegendElement) {}\n\n @elementDefine('swc-app-li', { extends: 'li', window: w })\n class SwcAppLI extends SwcAppMixin(HTMLLIElement) {}\n\n @elementDefine('swc-app-link', { extends: 'link', window: w })\n class SwcAppLink extends SwcAppMixin(HTMLLinkElement) {}\n\n @elementDefine('swc-app-map', { extends: 'map', window: w })\n class SwcAppMap extends SwcAppMixin(HTMLMapElement) {}\n\n @elementDefine('swc-app-meta', { extends: 'meta', window: w })\n class SwcAppMeta extends SwcAppMixin(HTMLMetaElement) {}\n\n @elementDefine('swc-app-meter', { extends: 'meter', window: w })\n class SwcAppMeter extends SwcAppMixin(HTMLMeterElement) {}\n\n @elementDefine('swc-app-del', { extends: 'del', window: w })\n class SwcAppMod extends SwcAppMixin(HTMLModElement) {}\n\n @elementDefine('swc-app-object', { extends: 'object', window: w })\n class SwcAppObject extends SwcAppMixin(HTMLObjectElement) {}\n\n @elementDefine('swc-app-ol', { extends: 'ol', window: w })\n class SwcAppOList extends SwcAppMixin(HTMLOListElement) {}\n\n @elementDefine('swc-app-optgroup', { extends: 'optgroup', window: w })\n class SwcAppOptGroup extends SwcAppMixin(HTMLOptGroupElement) {}\n\n @elementDefine('swc-app-option', { extends: 'option', window: w })\n class SwcAppOption extends SwcAppMixin(HTMLOptionElement) {}\n\n @elementDefine('swc-app-output', { extends: 'output', window: w })\n class SwcAppOutput extends SwcAppMixin(HTMLOutputElement) {}\n\n @elementDefine('swc-app-p', { extends: 'p', window: w })\n class SwcAppParagraph extends SwcAppMixin(HTMLParagraphElement) {}\n\n @elementDefine('swc-app-param', { extends: 'param', window: w })\n class SwcAppParam extends SwcAppMixin(HTMLParamElement) {}\n\n @elementDefine('swc-app-picture', { extends: 'picture', window: w })\n class SwcAppPicture extends SwcAppMixin(HTMLPictureElement) {}\n\n @elementDefine('swc-app-pre', { extends: 'pre', window: w })\n class SwcAppPre extends SwcAppMixin(HTMLPreElement) {}\n\n @elementDefine('swc-app-progress', { extends: 'progress', window: w })\n class SwcAppProgress extends SwcAppMixin(HTMLProgressElement) {}\n\n @elementDefine('swc-app-blockquote', { extends: 'blockquote', window: w })\n class SwcAppQuote extends SwcAppMixin(HTMLQuoteElement) {}\n\n @elementDefine('swc-app-script', { extends: 'script', window: w })\n class SwcAppScript extends SwcAppMixin(HTMLScriptElement) {}\n\n @elementDefine('swc-app-select', { extends: 'select', window: w })\n class SwcAppSelect extends SwcAppMixin(HTMLSelectElement) {}\n\n @elementDefine('swc-app-slot', { extends: 'slot', window: w })\n class SwcAppSlot extends SwcAppMixin(HTMLSlotElement) {}\n\n @elementDefine('swc-app-source', { extends: 'source', window: w })\n class SwcAppSource extends SwcAppMixin(HTMLSourceElement) {}\n\n @elementDefine('swc-app-span', { extends: 'span', window: w })\n class SwcAppSpan extends SwcAppMixin(HTMLSpanElement) {}\n\n @elementDefine('swc-app-style', { extends: 'style', window: w })\n class SwcAppStyle extends SwcAppMixin(HTMLStyleElement) {}\n\n @elementDefine('swc-app-table', { extends: 'table', window: w })\n class SwcAppTable extends SwcAppMixin(HTMLTableElement) {}\n\n @elementDefine('swc-app-tbody', { extends: 'tbody', window: w })\n class SwcAppTableSection extends SwcAppMixin(HTMLTableSectionElement) {}\n\n @elementDefine('swc-app-td', { extends: 'td', window: w })\n class SwcAppTableCell extends SwcAppMixin(HTMLTableCellElement) {}\n\n @elementDefine('swc-app-template', { extends: 'template', window: w })\n class SwcAppTemplate extends SwcAppMixin(HTMLTemplateElement) {}\n\n @elementDefine('swc-app-textarea', { extends: 'textarea', window: w })\n class SwcAppTextArea extends SwcAppMixin(HTMLTextAreaElement) {}\n\n @elementDefine('swc-app-time', { extends: 'time', window: w })\n class SwcAppTime extends SwcAppMixin(HTMLTimeElement) {}\n\n @elementDefine('swc-app-title', { extends: 'title', window: w })\n class SwcAppTitle extends SwcAppMixin(HTMLTitleElement) {}\n\n @elementDefine('swc-app-tr', { extends: 'tr', window: w })\n class SwcAppTableRow extends SwcAppMixin(HTMLTableRowElement) {}\n\n @elementDefine('swc-app-track', { extends: 'track', window: w })\n class SwcAppTrack extends SwcAppMixin(HTMLTrackElement) {}\n\n @elementDefine('swc-app-ul', { extends: 'ul', window: w })\n class SwcAppUList extends SwcAppMixin(HTMLUListElement) {}\n\n @elementDefine('swc-app-video', { extends: 'video', window: w })\n class SwcAppVideo extends SwcAppMixin(HTMLVideoElement) {}\n\n @elementDefine('swc-app-h1', { extends: 'h1', window: w })\n class SwcAppHeading extends SwcAppMixin(HTMLHeadingElement) {}\n\n @elementDefine('swc-app-body', { extends: 'body', window: w })\n class SwcAppBody extends SwcAppMixin(HTMLBodyElement) {}\n\n\n return {\n // Sub Templates\n SwcLoading,\n SwcError,\n SwcSuccess,\n SwcWhen,\n SwcOtherwise,\n SwcDefault,\n // Core Elements\n SwcApp,\n SwcIf,\n SwcLoop,\n SwcChoose,\n SwcAsync,\n // App Elements\n SwcAppAnchor,\n SwcAppArea,\n SwcAppAudio,\n SwcAppBase,\n SwcAppButton,\n SwcAppCanvas,\n SwcAppData,\n SwcAppDataList,\n SwcAppDetails,\n SwcAppDialog,\n SwcAppDiv,\n SwcAppDList,\n SwcAppEmbed,\n SwcAppFieldSet,\n SwcAppForm,\n SwcAppHR,\n SwcAppIFrame,\n SwcAppImage,\n SwcAppInput,\n SwcAppLabel,\n SwcAppLegend,\n SwcAppLI,\n SwcAppLink,\n SwcAppMap,\n SwcAppMeta,\n SwcAppMeter,\n SwcAppMod,\n SwcAppObject,\n SwcAppOList,\n SwcAppOptGroup,\n SwcAppOption,\n SwcAppOutput,\n SwcAppParagraph,\n SwcAppParam,\n SwcAppPicture,\n SwcAppPre,\n SwcAppProgress,\n SwcAppQuote,\n SwcAppScript,\n SwcAppSelect,\n SwcAppSlot,\n SwcAppSource,\n SwcAppSpan,\n SwcAppStyle,\n SwcAppTable,\n SwcAppTableSection,\n SwcAppTableCell,\n SwcAppTemplate,\n SwcAppTextArea,\n SwcAppTime,\n SwcAppTitle,\n SwcAppTableRow,\n SwcAppTrack,\n SwcAppUList,\n SwcAppVideo,\n SwcAppHeading,\n SwcAppBody,\n };\n};\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
6
  var __export = (target, all) => {
6
7
  for (var name in all)
7
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -15,6 +16,7 @@ var __copyProps = (to, from, except, desc) => {
15
16
  return to;
16
17
  };
17
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
18
20
  var ElementRouter_exports = {};
19
21
  __export(ElementRouter_exports, {
20
22
  ElementRouter: () => ElementRouter
@@ -25,8 +27,8 @@ var import_core = require("@dooboostore/core");
25
27
  class ElementRouter extends import_core_web.Router {
26
28
  constructor(config) {
27
29
  super(config);
28
- this._history = [];
29
- this._currentIndex = -1;
30
+ __publicField(this, "_history", []);
31
+ __publicField(this, "_currentIndex", -1);
30
32
  }
31
33
  // Override pushState to manage internal history
32
34
  pushState(data, title, path, config) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/router/ElementRouter.ts"],
4
4
  "sourcesContent": ["import { ChangeStateConfig, ChangeStateResult, RouteAction, Router, RouterConfig, RouterMethodOptions } from '@dooboostore/core-web';\nimport { UrlUtils } from '@dooboostore/core';\n\nexport class ElementRouter extends Router {\n private _history: { url: string; data: any; title?: string }[] = [];\n private _currentIndex = -1;\n\n constructor(config: RouterConfig) {\n super(config);\n }\n\n // Override pushState to manage internal history\n pushState(data: any, title: string | undefined, path: string, config?: ChangeStateConfig): ChangeStateResult {\n const behaviorSubject = (this as any).behaviorSubject;\n if (!config?.noEventAndPublish && behaviorSubject) {\n behaviorSubject.next({ ...this.getRouteData({ pathOrUrl: path }), triggerPoint: 'start' });\n }\n\n // Ensure _history is initialized (defense for super calls)\n if (!this._history) this._history = [];\n\n this._history = this._history.slice(0, this._currentIndex + 1);\n this._history.push({ url: path, data, title });\n this._currentIndex++;\n\n if (!config?.noEventAndPublish && behaviorSubject) {\n behaviorSubject.next({ ...this.getRouteData({ pathOrUrl: path }), triggerPoint: 'end' });\n }\n return { data };\n }\n\n // Override replaceState to manage internal history\n replaceState(data: any, title: string | undefined, path: string, config?: ChangeStateConfig): ChangeStateResult {\n const behaviorSubject = (this as any).behaviorSubject;\n if (!config?.noEventAndPublish && behaviorSubject) {\n behaviorSubject.next({ ...this.getRouteData({ pathOrUrl: path }), triggerPoint: 'start' });\n }\n\n if (!this._history) this._history = [];\n if (this._currentIndex === -1) {\n this._history.push({ url: path, data, title });\n this._currentIndex = 0;\n } else {\n this._history[this._currentIndex] = { url: path, data, title };\n }\n\n if (!config?.noEventAndPublish && behaviorSubject) {\n behaviorSubject.next({ ...this.getRouteData({ pathOrUrl: path }), triggerPoint: 'end' });\n }\n return { data };\n }\n\n push(path: RouteAction, state?: RouterMethodOptions): void {\n this.pushState(state?.data, state?.title, this.toUrl(path), state?.config);\n }\n\n replace(path: RouteAction, state?: RouterMethodOptions): void {\n this.replaceState(state?.data, state?.title, this.toUrl(path), state?.config);\n }\n\n back(config?: ChangeStateConfig): void {\n if (this._currentIndex > 0) {\n this.go(-1, config);\n }\n }\n\n forward(config?: ChangeStateConfig): void {\n if (this._currentIndex < this._history.length - 1) {\n this.go(1, config);\n }\n }\n\n go(i: number, config?: ChangeStateConfig): void;\n async go(config: string | { path: RouteAction; state?: RouterMethodOptions; replace?: boolean; scrollToTop?: boolean }): Promise<void>;\n go(config: number | string | { path: RouteAction; state?: RouterMethodOptions; replace?: boolean; scrollToTop?: boolean }, changeStateConfig?: ChangeStateConfig): Promise<void> | void {\n if (typeof config === 'number') {\n const targetIndex = this._currentIndex + config;\n if (this._history && targetIndex >= 0 && targetIndex < this._history.length) {\n const behaviorSubject = (this as any).behaviorSubject;\n if (!changeStateConfig?.noEventAndPublish && behaviorSubject) {\n behaviorSubject.next({ ...this.getRouteData(), triggerPoint: 'start' });\n }\n\n this._currentIndex = targetIndex;\n const entry = this._history[this._currentIndex];\n\n if (!changeStateConfig?.noEventAndPublish && behaviorSubject) {\n behaviorSubject.next({ ...this.getRouteData({ pathOrUrl: entry.url }), triggerPoint: 'end' });\n }\n }\n return;\n }\n return super.go(config as any, changeStateConfig);\n }\n\n getData(): any {\n return this._history?.[this._currentIndex]?.data;\n }\n\n getUrl(): string {\n return this._history?.[this._currentIndex]?.url ?? this.config?.firstUrl ?? '/';\n }\n\n getHref(): string {\n return this.getUrl();\n }\n\n getPathName(): string {\n return this.getUrl().split('?')[0];\n }\n\n getSearch(): string {\n const parts = this.getUrl().split('?');\n return parts[1] ? `?${parts[1]}` : '';\n }\n\n getSearchParams(data?: { delete?: string[]; append?: [[string, string]] }): URLSearchParams {\n const search = this.getSearch();\n const searchParams = new URLSearchParams(search);\n return UrlUtils.manipulateSearchParams(searchParams, data);\n }\n\n getHashSearchParams(data?: { delete?: string[]; append?: [[string, string]] }): URLSearchParams {\n const url = this.getUrl();\n const hashIdx = url.indexOf('#');\n const hash = hashIdx !== -1 ? url.slice(hashIdx + 1) : '';\n const searchParams = new URLSearchParams(hash);\n return UrlUtils.manipulateSearchParams(searchParams, data);\n }\n\n pushAddSearchParam(params: [[string, string]], state: RouterMethodOptions | undefined): void {\n const s = this.getSearchParams({ append: params });\n this.push({ searchParams: s }, state);\n }\n\n pushDeleteHashSearchParam(name: string | string[], state: RouterMethodOptions | undefined): void {\n const s = this.getHashSearchParams({ delete: Array.isArray(name) ? name : [name] });\n const url = this.getUrl().split('#')[0];\n const size = Array.from(s.entries()).length;\n this.push(url + (size > 0 ? '#' + s.toString() : ''), state);\n }\n\n pushDeleteSearchParam(name: string | string[], state: RouterMethodOptions | undefined): void {\n const s = this.getSearchParams({ delete: Array.isArray(name) ? name : [name] });\n this.push({ searchParams: s }, state);\n }\n\n pushUpsertSearchParam(params: Record<string, string | string[]>, state: RouterMethodOptions | undefined): void {\n const s = this.getSearchParams();\n UrlUtils.upsertSearchParam(s, params);\n this.push({ searchParams: s }, state);\n }\n\n replaceAddSearchParam(params: [[string, string]], state: RouterMethodOptions | undefined): void {\n const s = this.getSearchParams({ append: params });\n this.replace({ searchParams: s }, state);\n }\n\n replaceDeleteHashSearchParam(name: string | string[], state: RouterMethodOptions | undefined): void {\n const s = this.getHashSearchParams({ delete: Array.isArray(name) ? name : [name] });\n const url = this.getUrl().split('#')[0];\n const size = Array.from(s.entries()).length;\n this.replace(url + (size > 0 ? '#' + s.toString() : ''), state);\n }\n\n replaceDeleteSearchParam(name: string | string[], state: RouterMethodOptions | undefined): void {\n const s = this.getSearchParams({ delete: Array.isArray(name) ? name : [name] });\n this.replace({ searchParams: s }, state);\n }\n\n replaceUpsertSearchParam(params: Record<string, string | string[]>, state: RouterMethodOptions | undefined): void {\n const s = this.getSearchParamObject();\n UrlUtils.upsertSearchParam(s as any, params);\n this.replace({ searchParams: s as any }, state);\n }\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types.ts"],
4
- "sourcesContent": ["import { SimpleApplication } from '@dooboostore/simple-boot/SimpleApplication';\nimport { Router } from '@dooboostore/core-web';\nimport {SwcAttributeConfigType} from \"./elements/SwcAppEngine\";\n\nexport enum InjectSituationType {\n HOST_SET = 'SIMPLE_WEB_COMPONENT://HOSTSET',\n APP_HOST = 'SIMPLE_WEB_COMPONENT://APPHOST',\n APP_HOSTS = 'SIMPLE_WEB_COMPONENT://APPHOSTS',\n HOST = 'SIMPLE_WEB_COMPONENT://HOST',\n PARENT_HOST = 'SIMPLE_WEB_COMPONENT://PARENTHOST',\n HOSTS = 'SIMPLE_WEB_COMPONENT://HOSTS',\n FIRST_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTHOST',\n LAST_HOST = 'SIMPLE_WEB_COMPONENT://LASTHOST',\n FIRST_APP_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTAPPHOST',\n LAST_APP_HOST = 'SIMPLE_WEB_COMPONENT://LASTAPPHOST'\n}\n\nexport type SwcRootType = 'light' | 'shadow' | 'all' | 'auto';\n\nexport type SpecialSelector = ':host' | ':window' | ':document' | ':parentHost' | ':appHost' | ':firstHost' | ':lastHost' | ':firstAppHost' | ':lastAppHost' | ':hosts' | ':appHosts';\n\nexport type SwcQueryOptions = { root?: SwcRootType };\n\nexport type HelperSet = {\n $d: Document;\n $w: Window;\n $q: (selector: string, root?: Element | Document | ShadowRoot) => HTMLElement | null;\n $qa: (selector: string, root?: Element | Document | ShadowRoot) => HTMLElement[];\n $qi: (id: string, root?: Document | ShadowRoot) => HTMLElement | null;\n};\n\nexport type HostSet = {\n $host: HTMLElement; // Current component itself\n $parentHost: HTMLElement | null; // Nearest parent SWC component\n $hosts: HTMLElement[]; // [root, ..., parent, self]\n $firstHost: HTMLElement | null; // Top-most SWC ancestor\n $lastHost: HTMLElement | null; // Same as $parentHost (for backward compatibility or clarity)\n $appHost: SwcAppInterface | null;\n $appHosts: SwcAppInterface[];\n $firstAppHost: SwcAppInterface | null;\n $lastAppHost: SwcAppInterface | null;\n};\n\nexport type HelperHostSet = HelperSet & HostSet & {$this: any};\n\nexport type SwcAppMessage<T = any> = {\n publisher?: any;\n data?: T;\n type?: string;\n};\n\nexport interface SwcChooseInterface extends HTMLTemplateElement {\n value: any;\n refresh(): void;\n}\nexport interface SwcIfInterface extends HTMLTemplateElement {\n value: any;\n refresh(): void;\n}\nexport interface SwcAppInterface extends HTMLElement {\n simpleApplication?: SimpleApplication;\n router?: Router;\n connect(config?: SwcAttributeConfigType): Promise<void>;\n routing(path: string): Promise<void>;\n reload(): void;\n back(): void;\n forward(): void;\n publishMessage(message: SwcAppMessage): void;\n}\n"],
4
+ "sourcesContent": ["import { SimpleApplication } from '@dooboostore/simple-boot/SimpleApplication';\nimport { Router } from '@dooboostore/core-web';\nimport {SwcAttributeConfigType} from \"./elements/SwcAppEngine\";\n\nexport enum InjectSituationType {\n HOST_SET = 'SIMPLE_WEB_COMPONENT://HOSTSET',\n APP_HOST = 'SIMPLE_WEB_COMPONENT://APPHOST',\n APP_HOSTS = 'SIMPLE_WEB_COMPONENT://APPHOSTS',\n HOST = 'SIMPLE_WEB_COMPONENT://HOST',\n PARENT_HOST = 'SIMPLE_WEB_COMPONENT://PARENTHOST',\n HOSTS = 'SIMPLE_WEB_COMPONENT://HOSTS',\n FIRST_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTHOST',\n LAST_HOST = 'SIMPLE_WEB_COMPONENT://LASTHOST',\n FIRST_APP_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTAPPHOST',\n LAST_APP_HOST = 'SIMPLE_WEB_COMPONENT://LASTAPPHOST'\n}\n\nexport type SwcRootType = 'light' | 'shadow' | 'all' | 'auto';\n\nexport type SpecialSelector = ':host' | ':window' | ':document' | ':parentHost' | ':appHost' | ':firstHost' | ':lastHost' | ':firstAppHost' | ':lastAppHost' | ':hosts' | ':appHosts';\n\nexport type SwcQueryOptions = { root?: SwcRootType };\n\nexport type HelperSet = {\n $d: Document;\n $w: Window;\n $q: (selector: string, root?: Element | Document | ShadowRoot) => HTMLElement | null;\n $qa: (selector: string, root?: Element | Document | ShadowRoot) => HTMLElement[];\n $qi: (id: string, root?: Document | ShadowRoot) => HTMLElement | null;\n};\n\nexport type HostSet = {\n $host: HTMLElement; // Current component itself\n $parentHost: HTMLElement | null; // Nearest parent SWC component\n $hosts: HTMLElement[]; // [root, ..., parent, self]\n $firstHost: HTMLElement | null; // Top-most SWC ancestor\n $lastHost: HTMLElement | null; // Same as $parentHost (for backward compatibility or clarity)\n $templateHost: HTMLTemplateElement | null | undefined;\n $appHost: SwcAppInterface | null;\n $appHosts: SwcAppInterface[];\n $firstAppHost: SwcAppInterface | null;\n $lastAppHost: SwcAppInterface | null;\n};\n\nexport type HelperHostSet = HelperSet & HostSet & {$this: any};\n\nexport type SwcAppMessage<T = any> = {\n publisher?: any;\n data?: T;\n type?: string;\n};\n\nexport interface SwcChooseInterface extends HTMLTemplateElement {\n value: any;\n refresh(): void;\n}\nexport interface SwcIfInterface extends HTMLTemplateElement {\n value: any;\n refresh(): void;\n}\nexport interface SwcAppInterface extends HTMLElement {\n simpleApplication?: SimpleApplication;\n router?: Router;\n connect(config?: SwcAttributeConfigType): Promise<void>;\n routing(path: string): Promise<void>;\n reload(): void;\n back(): void;\n forward(): void;\n publishMessage(message: SwcAppMessage): void;\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,IAAK,sBAAL,kBAAKA,yBAAL;AACL,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,eAAY;AACZ,EAAAA,qBAAA,UAAO;AACP,EAAAA,qBAAA,iBAAc;AACd,EAAAA,qBAAA,WAAQ;AACR,EAAAA,qBAAA,gBAAa;AACb,EAAAA,qBAAA,eAAY;AACZ,EAAAA,qBAAA,oBAAiB;AACjB,EAAAA,qBAAA,mBAAgB;AAVN,SAAAA;AAAA,GAAA;",
6
6
  "names": ["InjectSituationType"]
7
7
  }
@@ -164,13 +164,25 @@ const htmlArticleElement = (options) => {
164
164
  };
165
165
  var SwcUtils;
166
166
  ((SwcUtils2) => {
167
+ SwcUtils2.getParentContainer = (e) => {
168
+ return e.parentElement ?? e.getRootNode();
169
+ };
167
170
  SwcUtils2.parsePathPatternsSetAttributeString = (pathPattern, path) => {
168
171
  return JSON.stringify(SwcUtils2.parsePathPatternsSet(pathPattern, path)).replace(/"/g, "'");
169
172
  };
170
- SwcUtils2.parsePathPatternsSet = (pathPattern, path) => {
173
+ SwcUtils2.parsePathPatternsSet = (pathPattern, urlAndRouter) => {
174
+ urlAndRouter ?? (urlAndRouter = "/");
175
+ const p = typeof urlAndRouter === "string" ? urlAndRouter : urlAndRouter.value.url;
176
+ const searchParams = new URLSearchParams();
177
+ const qs = p.split("?")[1];
178
+ qs?.split("&").forEach((it) => {
179
+ const [k, v] = it.split("=");
180
+ searchParams.set(k, v);
181
+ });
171
182
  return {
172
- path,
173
- pathData: SwcUtils2.parsePathPatterns(pathPattern, path)
183
+ path: p,
184
+ searchParams,
185
+ pathData: SwcUtils2.parsePathPatterns(pathPattern, p)
174
186
  };
175
187
  };
176
188
  SwcUtils2.parsePathPatterns = (pathPattern, path) => {
@@ -211,7 +223,8 @@ var SwcUtils;
211
223
  return current;
212
224
  };
213
225
  SwcUtils2.findNearestSwcHost = (el) => {
214
- if (el.__swc_host) return el.__swc_host;
226
+ const el1 = el;
227
+ if (el1.__swc_host) return el1.__swc_host;
215
228
  let current = el.parentElement || el.getRootNode?.()?.host;
216
229
  const doc = el.ownerDocument;
217
230
  const win = doc?.defaultView || (typeof window !== "undefined" ? window : void 0);
@@ -241,8 +254,8 @@ var SwcUtils;
241
254
  return (0, SwcUtils2.findNearestSwcHost)(el);
242
255
  };
243
256
  SwcUtils2.getAppHosts = (el) => {
244
- const hosts = (0, SwcUtils2.getHosts)(el);
245
- return hosts.filter((host) => host.tagName.toLowerCase() === "swc-app" || host.getAttribute("is")?.startsWith("swc-app-"));
257
+ const hosts = SwcUtils2.findAllParentAppHostsDirect(el);
258
+ return hosts;
246
259
  };
247
260
  SwcUtils2.getAppHost = (el) => {
248
261
  const appHosts = (0, SwcUtils2.getAppHosts)(el);
@@ -255,6 +268,10 @@ var SwcUtils;
255
268
  };
256
269
  SwcUtils2.findAllParentAppHostsDirect = (el) => {
257
270
  const appHosts = [];
271
+ const w = el.ownerDocument?.defaultView || (typeof window !== "undefined" ? window : void 0);
272
+ if (!w) {
273
+ return appHosts;
274
+ }
258
275
  let current = el;
259
276
  while (current) {
260
277
  const isAppHost = current.tagName.toLowerCase() === "swc-app" || current.getAttribute("is")?.startsWith("swc-app-");
@@ -265,7 +282,7 @@ var SwcUtils;
265
282
  current = current.parentElement;
266
283
  } else {
267
284
  const root = current.getRootNode();
268
- if (root instanceof ShadowRoot) {
285
+ if (w.ShadowRoot && root instanceof w.ShadowRoot) {
269
286
  current = root.host;
270
287
  } else {
271
288
  break;
@@ -298,6 +315,7 @@ var SwcUtils;
298
315
  $hosts,
299
316
  $firstHost,
300
317
  $lastHost: $parentHost,
318
+ $templateHost: el.__swc_template_host,
301
319
  $appHost,
302
320
  $appHosts,
303
321
  $firstAppHost,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/Utils.ts"],
4
- "sourcesContent": ["import { SwcAppInterface, HostSet, HelperSet, HelperHostSet } from '../types';\nimport {getElementConfig} from \"../decorators\";\nimport { getExpression, ExpressionResult, GetExpressionConfig, GetExpressionResult } from '@dooboostore/core';\n\nexport const SWC_NOT_FOUND = Symbol.for('simple-web-component:not-found');\n\n// DOM Creation Utilities\nexport const htmlFragment = (html: string, doc?: Document): DocumentFragment => {\n const d = doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const template = d.createElement('template');\n template.innerHTML = html.trim();\n return template.content;\n};\n\nexport const textNode = (text: string | any, doc?: Document): Text => {\n const d = doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n return d.createTextNode(text !== undefined && text !== null ? String(text) : '');\n};\n\nexport const commentNode = (comment: string | any, doc?: Document): Comment => {\n const d = doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n return d.createComment(comment !== undefined && comment !== null ? String(comment) : '');\n};\n\nexport const createElement = <T extends HTMLElement>(\n tagName: string,\n options?: { html?: string; attrs?: Record<string, any>; doc?: Document }\n): T => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement(tagName) as T;\n if (options?.html) el.innerHTML = options.html;\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\n// Element factory functions\nexport const htmlDivElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLDivElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('div') as HTMLDivElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlSpanElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLSpanElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('span') as HTMLSpanElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlButtonElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLButtonElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('button') as HTMLButtonElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlUlElement = (options?: { doc?: Document; attrs?: Record<string, any> }): HTMLUListElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('ul') as HTMLUListElement;\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlLiElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLLIElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('li') as HTMLLIElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlAElement = (html: string, options?: { href?: string; doc?: Document; attrs?: Record<string, any> }): HTMLAnchorElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('a') as HTMLAnchorElement;\n el.innerHTML = html.trim();\n if (options?.href) el.href = options.href;\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlPElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLParagraphElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('p') as HTMLParagraphElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlHeadingElement = (level: 1 | 2 | 3 | 4 | 5 | 6, html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLHeadingElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement(`h${level}`) as HTMLHeadingElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlSectionElement = (options?: { doc?: Document; attrs?: Record<string, any> }): HTMLElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('section');\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlArticleElement = (options?: { doc?: Document; attrs?: Record<string, any> }): HTMLElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('article');\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport namespace SwcUtils {\n\n\n export const parsePathPatternsSetAttributeString = (pathPattern: string[], path: string) => {\n return JSON.stringify(SwcUtils.parsePathPatternsSet(pathPattern, path)).replace(/\"/g, \"'\");\n }\n\n export const parsePathPatternsSet = (pathPattern: string[], path: string) => {\n return {\n path: path,\n pathData: SwcUtils.parsePathPatterns(pathPattern, path)\n };\n };\n export const parsePathPatterns = (pathPattern: string[], path: string) => {\n for (const pattern of pathPattern) {\n const data = SwcUtils.parsePathPattern(pattern, path || '/');\n if (data !== null) {\n return data;\n }\n }\n };\n\n export const getHelperSet = (win: Window): HelperSet => {\n const doc: Document = win.document;\n return {\n $d: doc,\n $w: win,\n $q: (sel: string, root?: Element | Document | ShadowRoot) => (root ?? doc).querySelector(sel),\n $qa: (sel: string, root?: Element | Document | ShadowRoot) => Array.from((root ?? doc).querySelectorAll(sel)) as HTMLElement[],\n $qi: (id: string, root?: Document | ShadowRoot) => (root ?? doc).getElementById(id) as HTMLElement\n } as const;\n };\n\n export const getHelperAndHostSet = (win: Window, el: HTMLElement): HelperHostSet => {\n const helperSet = getHelperSet(win);\n const hostSet = getHostSet(el);\n return {\n ...helperSet,\n ...hostSet,\n $this: el,\n };\n };\n\n export const getValueByPath = (obj: any, path: string, rootName: string) => {\n if (!obj || !path) return SWC_NOT_FOUND;\n\n const parts = path.split('.');\n let current = obj;\n\n for (const part of parts) {\n if (current === null || current === undefined) return SWC_NOT_FOUND;\n current = current[part];\n }\n return current;\n };\n\n /**\n * Finds the nearest logical SWC host for an element.\n * Checks __swc_host property first, then climbs the DOM tree.\n */\n export const findNearestSwcHost = (el: HTMLElement | Node): HTMLElement | undefined => {\n if ((el as any).__swc_host) return (el as any).__swc_host;\n // if ((el as any).__swc_proto_setup) return (el as any).__swc_proto_setup;\n\n let current: any = el.parentElement || (el.getRootNode?.() as any)?.host;\n const doc = el.ownerDocument;\n const win = doc?.defaultView || ((typeof window !== 'undefined' ? window : undefined) as any);\n while (current && current !== doc && current !== win) {\n if (current.__swc_host) return current.__swc_host;\n if (getElementConfig(current)) return current as HTMLElement;\n current = current.parentElement || (current.getRootNode?.() as any)?.host;\n }\n return undefined;\n };\n\n /**\n * Returns all SWC ancestors (excluding self) in [root, ..., parent] order.\n */\n export const findAllSwcHosts = (el: HTMLElement | Node): HTMLElement[] => {\n const hosts: HTMLElement[] = [];\n let current = findNearestSwcHost(el);\n while (current) {\n hosts.push(current);\n // To find the next ancestor, we must start searching from the PARENT of the found host\n current = findNearestSwcHost(current);\n }\n return hosts.reverse();\n };\n\n export const getHosts = (el: HTMLElement): HTMLElement[] => {\n const ancestors = findAllSwcHosts(el);\n if (getElementConfig(el)) return [...ancestors, el];\n return ancestors;\n };\n\n export const getHost = (el: HTMLElement): HTMLElement | undefined => {\n if (getElementConfig(el)) return el;\n return findNearestSwcHost(el);\n };\n\n export const getAppHosts = (el: HTMLElement): SwcAppInterface[] => {\n const hosts = getHosts(el);\n return hosts.filter(host => host.tagName.toLowerCase() === 'swc-app' || host.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];\n };\n\n export const getAppHost = (el: HTMLElement): SwcAppInterface | undefined => {\n const appHosts = getAppHosts(el);\n const appHostsWithoutSelf = appHosts.filter(h => h !== el);\n return appHostsWithoutSelf.length > 0 ? appHostsWithoutSelf[appHostsWithoutSelf.length - 1] : undefined;\n };\n\n /**\n * Find parent app host by traversing DOM tree directly.\n * Only checks tagName and is attribute - no SWC host discovery.\n * Useful for Safari polyfill compatibility where is=\"\" elements upgrade in child-first order.\n */\n export const findParentAppHostDirect = (el: HTMLElement): SwcAppInterface | null => {\n const appHosts = findAllParentAppHostsDirect(el);\n return appHosts.length > 0 ? appHosts[appHosts.length - 1] : null;\n };\n\n /**\n * Find all parent app hosts by traversing DOM tree directly.\n * Returns array of all parent app hosts in [closest-parent, ..., root] order.\n * Only checks tagName and is attribute - no SWC host discovery.\n * Useful for Safari polyfill compatibility where is=\"\" elements upgrade in child-first order.\n */\n export const findAllParentAppHostsDirect = (el: HTMLElement): SwcAppInterface[] => {\n const appHosts: SwcAppInterface[] = [];\n \n // el \uC790\uCCB4\uBD80\uD130 \uC2DC\uC791 (el\uC774 app host\uC77C \uC218\uB3C4 \uC788\uC74C)\n let current: HTMLElement | null = el;\n\n while (current) {\n const isAppHost =\n current.tagName.toLowerCase() === 'swc-app' ||\n current.getAttribute('is')?.startsWith('swc-app-');\n if (isAppHost) {\n appHosts.push(current as SwcAppInterface);\n }\n\n // \uB2E4\uC74C \uBD80\uBAA8 \uCC3E\uAE30\n if (current.parentElement) {\n // Light DOM: \uC815\uC0C1\uC801\uC778 \uBD80\uBAA8 \uC694\uC18C\n current = current.parentElement;\n } else {\n // parentElement\uAC00 \uC5C6\uC74C = Shadow root\uC758 \uC9C1\uC811 \uC790\uC2DD\uC77C \uC218 \uC788\uC74C\n const root = current.getRootNode();\n if (root instanceof ShadowRoot) {\n // Shadow host\uB85C \uC62C\uB77C\uAC00\uAE30\n current = root.host as HTMLElement;\n } else {\n // Document root \uB3C4\uB2EC\n break;\n }\n }\n }\n return appHosts.reverse(); // [root, ..., closest-parent]\n };\n\n export const getHostSet = (el: HTMLElement): HostSet => {\n const ancestors = findAllSwcHosts(el); // [root, ..., parent]\n \n const $host = ancestors.length > 0 ? ancestors[ancestors.length - 1] : null;\n const $parentHost = ancestors.length > 1 ? ancestors[ancestors.length - 2] : null;\n const $hosts = ancestors;\n const $firstHost = ancestors.length > 0 ? ancestors[0] : null;\n\n // Collect loop contexts\n const loopContext: Record<string, any> = {};\n let curr: any = el;\n const rootEl = el.ownerDocument?.documentElement;\n while (curr && curr !== rootEl) {\n if (curr.__swc_loop_context) {\n Object.assign(loopContext, curr.__swc_loop_context);\n }\n curr = curr.parentElement || (curr.getRootNode() as any).host;\n }\n\n const $appHosts = SwcUtils.findAllParentAppHostsDirect(el); //$hosts.filter(h => h.tagName.toLowerCase() === 'swc-app' || h.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];\n // console.log('apphosts00000000', $appHosts)\n const $appHost = $appHosts.length > 0 ? ($appHosts[$appHosts.length - 1] === el ? ($appHosts.length > 1 ? $appHosts[$appHosts.length - 2] : null) : $appHosts[$appHosts.length - 1]) : null;\n const $firstAppHost = $appHosts.length > 0 ? $appHosts[0] : null;\n\n return {\n $host,\n $parentHost,\n $hosts,\n $firstHost,\n $lastHost: $parentHost,\n $appHost,\n $appHosts,\n $firstAppHost,\n $lastAppHost: $appHost,\n ...loopContext\n } as any;\n };\n\n export const parsePathPattern = (pattern: string | undefined, currentPath: string): { [key: string]: string } | null => {\n // pattern\uC774 null/undefined\uBA74 \uC640\uC77C\uB4DC\uCE74\uB4DC (\uBAA8\uB4E0 \uACBD\uB85C \uB9E4\uCE6D)\n if (pattern === null || pattern === undefined) return {};\n \n // \uACF5\uBC31\uB9CC \uC788\uB294 \uD328\uD134\uB3C4 \uC640\uC77C\uB4DC\uCE74\uB4DC\n const trimmedPattern = pattern.trim();\n if (trimmedPattern === '' && pattern !== '') return {}; // \uACF5\uBC31 \uBB38\uC790\uB9CC \uC788\uB294 \uACBD\uC6B0\n \n // \uD328\uD134\uC744 \uC815\uADDC\uC2DD\uC73C\uB85C \uBCC0\uD658\n // \uC9C0\uC6D0 \uD615\uC2DD:\n // {id} \u2192 ([^/]+) \uAE30\uBCF8 (/ \uC81C\uC678\uD55C \uBAA8\uB4E0 \uBB38\uC790)\n // {tail:.*} \u2192 (.*) \uC815\uADDC\uD45C\uD604\uC2DD \uC9C1\uC811 \uC9C0\uC815\n // {slug:[a-z0-9-]+} \u2192 ([a-z0-9-]+)\n const paramNames: string[] = [];\n const regexPattern = trimmedPattern.replace(/{(\\w+)(?::(.+?))?}/g, (match, paramName, customRegex) => {\n paramNames.push(paramName);\n // customRegex\uAC00 \uC788\uC73C\uBA74 \uC0AC\uC6A9, \uC5C6\uC73C\uBA74 \uAE30\uBCF8\uAC12 ([^/]+)\n return `(${customRegex || '[^/]+'})`;\n });\n \n const regex = new RegExp(`^${regexPattern}$`);\n const match = currentPath.match(regex);\n \n if (!match) return null;\n \n const result: { [key: string]: string } = {};\n paramNames.forEach((name, index) => {\n result[name] = match[index + 1];\n });\n \n return result;\n };\n\n\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { SwcAppInterface, HostSet, HelperSet, HelperHostSet } from '../types';\nimport {getElementConfig} from \"../decorators\";\nimport { getExpression, ExpressionResult, GetExpressionConfig, GetExpressionResult } from '@dooboostore/core';\nimport {Router} from \"@dooboostore/core-web\";\n\nexport const SWC_NOT_FOUND = Symbol.for('simple-web-component:not-found');\n\n// DOM Creation Utilities\nexport const htmlFragment = (html: string, doc?: Document): DocumentFragment => {\n const d = doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const template = d.createElement('template');\n template.innerHTML = html.trim();\n return template.content;\n};\n\nexport const textNode = (text: string | any, doc?: Document): Text => {\n const d = doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n return d.createTextNode(text !== undefined && text !== null ? String(text) : '');\n};\n\nexport const commentNode = (comment: string | any, doc?: Document): Comment => {\n const d = doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n return d.createComment(comment !== undefined && comment !== null ? String(comment) : '');\n};\n\nexport const createElement = <T extends HTMLElement>(\n tagName: string,\n options?: { html?: string; attrs?: Record<string, any>; doc?: Document }\n): T => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement(tagName) as T;\n if (options?.html) el.innerHTML = options.html;\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\n// Element factory functions\nexport const htmlDivElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLDivElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('div') as HTMLDivElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlSpanElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLSpanElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('span') as HTMLSpanElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlButtonElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLButtonElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('button') as HTMLButtonElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlUlElement = (options?: { doc?: Document; attrs?: Record<string, any> }): HTMLUListElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('ul') as HTMLUListElement;\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlLiElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLLIElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('li') as HTMLLIElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlAElement = (html: string, options?: { href?: string; doc?: Document; attrs?: Record<string, any> }): HTMLAnchorElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('a') as HTMLAnchorElement;\n el.innerHTML = html.trim();\n if (options?.href) el.href = options.href;\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlPElement = (html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLParagraphElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('p') as HTMLParagraphElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlHeadingElement = (level: 1 | 2 | 3 | 4 | 5 | 6, html: string, options?: { doc?: Document; attrs?: Record<string, any> }): HTMLHeadingElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement(`h${level}`) as HTMLHeadingElement;\n el.innerHTML = html.trim();\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlSectionElement = (options?: { doc?: Document; attrs?: Record<string, any> }): HTMLElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('section');\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport const htmlArticleElement = (options?: { doc?: Document; attrs?: Record<string, any> }): HTMLElement => {\n const d = options?.doc || (typeof document !== 'undefined' ? document : undefined);\n if (!d) throw new Error('Document is not available');\n const el = d.createElement('article');\n if (options?.attrs) {\n Object.entries(options.attrs).forEach(([k, v]) => el.setAttribute(k, String(v)));\n }\n return el;\n};\n\nexport namespace SwcUtils {\n\n\n export const getParentContainer = (e: Node) => {\n return e.parentElement ?? e.getRootNode() as any;\n }\n\n export const parsePathPatternsSetAttributeString = (pathPattern: string[], path: string) => {\n return JSON.stringify(SwcUtils.parsePathPatternsSet(pathPattern, path)).replace(/\"/g, \"'\");\n }\n\n export const parsePathPatternsSet = (pathPattern: string[], urlAndRouter?: string | Router) => {\n // if (!path) {\n // return;\n // }\n urlAndRouter ??= '/'\n const p = typeof urlAndRouter === 'string' ? urlAndRouter : urlAndRouter.value.url;\n const searchParams = new URLSearchParams();\n const qs = p.split('?')[1];\n qs?.split('&').forEach(it => {\n const [k, v] = it.split('=');\n searchParams.set(k,v);\n })\n return {\n path: p,\n searchParams,\n pathData: SwcUtils.parsePathPatterns(pathPattern, p)\n };\n };\n export const parsePathPatterns = (pathPattern: string[], path: string) => {\n for (const pattern of pathPattern) {\n const data = SwcUtils.parsePathPattern(pattern, path || '/');\n if (data !== null) {\n return data;\n }\n }\n };\n\n export const getHelperSet = (win: Window): HelperSet => {\n const doc: Document = win.document;\n return {\n $d: doc,\n $w: win,\n $q: (sel: string, root?: Element | Document | ShadowRoot) => (root ?? doc).querySelector(sel),\n $qa: (sel: string, root?: Element | Document | ShadowRoot) => Array.from((root ?? doc).querySelectorAll(sel)) as HTMLElement[],\n $qi: (id: string, root?: Document | ShadowRoot) => (root ?? doc).getElementById(id) as HTMLElement\n } as const;\n };\n\n export const getHelperAndHostSet = (win: Window, el: HTMLElement): HelperHostSet => {\n const helperSet = getHelperSet(win);\n const hostSet = getHostSet(el);\n return {\n ...helperSet,\n ...hostSet,\n $this: el,\n };\n };\n\n export const getValueByPath = (obj: any, path: string, rootName: string) => {\n if (!obj || !path) return SWC_NOT_FOUND;\n\n const parts = path.split('.');\n let current = obj;\n\n for (const part of parts) {\n if (current === null || current === undefined) return SWC_NOT_FOUND;\n current = current[part];\n }\n return current;\n };\n\n /**\n * Finds the nearest logical SWC host for an element.\n * Checks __swc_host property first, then climbs the DOM tree.\n */\n export const findNearestSwcHost = (el: HTMLElement | Node): HTMLElement | undefined => {\n const el1 = el as any;\n if (el1.__swc_host) return el1.__swc_host;\n\n let current: any = el.parentElement || (el.getRootNode?.() as any)?.host;\n const doc = el.ownerDocument;\n const win = doc?.defaultView || ((typeof window !== 'undefined' ? window : undefined) as any);\n while (current && current !== doc && current !== win) {\n if (current.__swc_host) return current.__swc_host;\n if (getElementConfig(current)) return current as HTMLElement;\n current = current.parentElement || (current.getRootNode?.() as any)?.host;\n }\n return undefined;\n };\n\n /**\n * Returns all SWC ancestors (excluding self) in [root, ..., parent] order.\n */\n export const findAllSwcHosts = (el: HTMLElement | Node): HTMLElement[] => {\n const hosts: HTMLElement[] = [];\n let current = findNearestSwcHost(el);\n while (current) {\n hosts.push(current);\n // To find the next ancestor, we must start searching from the PARENT of the found host\n current = findNearestSwcHost(current);\n }\n return hosts.reverse();\n };\n\n export const getHosts = (el: HTMLElement): HTMLElement[] => {\n const ancestors = findAllSwcHosts(el);\n if (getElementConfig(el)) return [...ancestors, el];\n return ancestors;\n };\n\n export const getHost = (el: HTMLElement): HTMLElement | undefined => {\n if (getElementConfig(el)) return el;\n return findNearestSwcHost(el);\n };\n\n export const getAppHosts = (el: HTMLElement): SwcAppInterface[] => {\n // const hosts = getHosts(el);\n // return hosts.filter(host => host.tagName.toLowerCase() === 'swc-app' || host.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];\n const hosts = SwcUtils.findAllParentAppHostsDirect(el);\n return hosts;\n };\n\n export const getAppHost = (el: HTMLElement): SwcAppInterface | undefined => {\n const appHosts = getAppHosts(el);\n const appHostsWithoutSelf = appHosts.filter(h => h !== el);\n return appHostsWithoutSelf.length > 0 ? appHostsWithoutSelf[appHostsWithoutSelf.length - 1] : undefined;\n };\n\n /**\n * Find parent app host by traversing DOM tree directly.\n * Only checks tagName and is attribute - no SWC host discovery.\n * Useful for Safari polyfill compatibility where is=\"\" elements upgrade in child-first order.\n */\n export const findParentAppHostDirect = (el: HTMLElement): SwcAppInterface | null => {\n const appHosts = findAllParentAppHostsDirect(el);\n return appHosts.length > 0 ? appHosts[appHosts.length - 1] : null;\n };\n\n /**\n * Find all parent app hosts by traversing DOM tree directly.\n * Returns array of all parent app hosts in [closest-parent, ..., root] order.\n * Only checks tagName and is attribute - no SWC host discovery.\n * Useful for Safari polyfill compatibility where is=\"\" elements upgrade in child-first order.\n */\n export const findAllParentAppHostsDirect = (el: HTMLElement): SwcAppInterface[] => {\n const appHosts: SwcAppInterface[] = [];\n\n const w = el.ownerDocument?.defaultView || ((typeof window !== 'undefined' ? window : undefined) as any);\n\n // Guard against SSR environment where window might be undefined\n if (!w) {\n return appHosts;\n }\n\n // console.log('------?',w.ShadowRoot);\n // el \uC790\uCCB4\uBD80\uD130 \uC2DC\uC791 (el\uC774 app host\uC77C \uC218\uB3C4 \uC788\uC74C)\n let current: HTMLElement | null = el;\n\n while (current) {\n const isAppHost =\n current.tagName.toLowerCase() === 'swc-app' ||\n current.getAttribute('is')?.startsWith('swc-app-');\n if (isAppHost) {\n appHosts.push(current as SwcAppInterface);\n }\n\n // \uB2E4\uC74C \uBD80\uBAA8 \uCC3E\uAE30\n if (current.parentElement) {\n // Light DOM: \uC815\uC0C1\uC801\uC778 \uBD80\uBAA8 \uC694\uC18C\n current = current.parentElement;\n } else {\n // parentElement\uAC00 \uC5C6\uC74C = Shadow root\uC758 \uC9C1\uC811 \uC790\uC2DD\uC77C \uC218 \uC788\uC74C\n const root = current.getRootNode();\n if (w.ShadowRoot && root instanceof w.ShadowRoot) {\n // Shadow host\uB85C \uC62C\uB77C\uAC00\uAE30\n current = (root as ShadowRoot).host as HTMLElement;\n } else {\n // Document root \uB3C4\uB2EC\n break;\n }\n }\n }\n return appHosts.reverse(); // [root, ..., closest-parent]\n };\n\n export const getHostSet = (el: HTMLElement): HostSet => {\n const ancestors = findAllSwcHosts(el); // [root, ..., parent]\n \n const $host = ancestors.length > 0 ? ancestors[ancestors.length - 1] : null;\n const $parentHost = ancestors.length > 1 ? ancestors[ancestors.length - 2] : null;\n const $hosts = ancestors;\n const $firstHost = ancestors.length > 0 ? ancestors[0] : null;\n\n // Collect loop contexts\n const loopContext: Record<string, any> = {};\n let curr: any = el;\n const rootEl = el.ownerDocument?.documentElement;\n while (curr && curr !== rootEl) {\n if (curr.__swc_loop_context) {\n Object.assign(loopContext, curr.__swc_loop_context);\n }\n curr = curr.parentElement || (curr.getRootNode() as any).host;\n }\n\n const $appHosts = SwcUtils.findAllParentAppHostsDirect(el); //$hosts.filter(h => h.tagName.toLowerCase() === 'swc-app' || h.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];\n // console.log('apphosts00000000', $appHosts)\n const $appHost = $appHosts.length > 0 ? ($appHosts[$appHosts.length - 1] === el ? ($appHosts.length > 1 ? $appHosts[$appHosts.length - 2] : null) : $appHosts[$appHosts.length - 1]) : null;\n const $firstAppHost = $appHosts.length > 0 ? $appHosts[0] : null;\n\n return {\n $host,\n $parentHost,\n $hosts,\n $firstHost,\n $lastHost: $parentHost,\n $templateHost: (el as any).__swc_template_host,\n $appHost,\n $appHosts,\n $firstAppHost,\n $lastAppHost: $appHost,\n ...loopContext\n } as any;\n };\n\n export const parsePathPattern = (pattern: string | undefined, currentPath: string): { [key: string]: string } | null => {\n // pattern\uC774 null/undefined\uBA74 \uC640\uC77C\uB4DC\uCE74\uB4DC (\uBAA8\uB4E0 \uACBD\uB85C \uB9E4\uCE6D)\n if (pattern === null || pattern === undefined) return {};\n \n // \uACF5\uBC31\uB9CC \uC788\uB294 \uD328\uD134\uB3C4 \uC640\uC77C\uB4DC\uCE74\uB4DC\n const trimmedPattern = pattern.trim();\n if (trimmedPattern === '' && pattern !== '') return {}; // \uACF5\uBC31 \uBB38\uC790\uB9CC \uC788\uB294 \uACBD\uC6B0\n \n // \uD328\uD134\uC744 \uC815\uADDC\uC2DD\uC73C\uB85C \uBCC0\uD658\n // \uC9C0\uC6D0 \uD615\uC2DD:\n // {id} \u2192 ([^/]+) \uAE30\uBCF8 (/ \uC81C\uC678\uD55C \uBAA8\uB4E0 \uBB38\uC790)\n // {tail:.*} \u2192 (.*) \uC815\uADDC\uD45C\uD604\uC2DD \uC9C1\uC811 \uC9C0\uC815\n // {slug:[a-z0-9-]+} \u2192 ([a-z0-9-]+)\n const paramNames: string[] = [];\n const regexPattern = trimmedPattern.replace(/{(\\w+)(?::(.+?))?}/g, (match, paramName, customRegex) => {\n paramNames.push(paramName);\n // customRegex\uAC00 \uC788\uC73C\uBA74 \uC0AC\uC6A9, \uC5C6\uC73C\uBA74 \uAE30\uBCF8\uAC12 ([^/]+)\n return `(${customRegex || '[^/]+'})`;\n });\n \n const regex = new RegExp(`^${regexPattern}$`);\n const match = currentPath.match(regex);\n \n if (!match) return null;\n \n const result: { [key: string]: string } = {};\n paramNames.forEach((name, index) => {\n result[name] = match[index + 1];\n });\n \n return result;\n };\n\n\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["SwcUtils", "match"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/addEventListener.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions, HelperHostSet } from '../types';\n\nexport interface AddEventListenerBaseOptions extends EventListenerOptions {\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n stopPropagation?: boolean;\n stopImmediatePropagation?: boolean;\n preventDefault?: boolean;\n removeOnDisconnected?: boolean;\n delegate?: boolean;\n filter?: (target: Event | CustomEvent, helper: HelperHostSet) => boolean;\n}\n\nexport interface AddEventListenerMetadata {\n propertyKey: string | symbol;\n selector: string;\n type: string;\n options: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean };\n}\n\nexport const ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:add-event-listener');\n\nexport function addEventListener(target: SpecialSelector, type: string, options?: AddEventListenerBaseOptions): MethodDecorator;\nexport function addEventListener(selector: string, type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;\n/**\n * @addEventListener decorator to bind events to elements.\n */\nexport function addEventListener(selectorOrTarget: string, type: string, options: any = {}): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = targetObj.constructor;\n\n let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata[]>(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n if (!listeners) {\n listeners = [];\n ReflectUtils.defineMetadata(ADD_EVENT_LISTENER_METADATA_KEY, listeners, constructor);\n }\n\n listeners.push({ propertyKey, selector: selectorOrTarget, type, options });\n };\n}\n\nexport const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n};\n\n/**\n * @addEventListenerHost decorator - simplified version of @addEventListener for :host selector\n * Usage: @addEventListenerHost('click')\n * Usage: @addEventListenerHost('click', { stopPropagation: true })\n */\nexport function addEventListenerHost(type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions): MethodDecorator {\n return addEventListener(':host', type, options);\n}\n\n/**\n * @addEventListenerAppHost decorator - simplified version of @addEventListener for :appHost selector\n * Usage: @addEventListenerAppHost('click')\n * Usage: @addEventListenerAppHost('click', { stopPropagation: true })\n */\nexport function addEventListenerAppHost(type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions): MethodDecorator {\n return addEventListener(':appHost', type, options);\n}\n"],
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions, HelperHostSet } from '../types';\n\nexport interface AddEventListenerBaseOptions extends EventListenerOptions {\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n stopPropagation?: boolean;\n stopImmediatePropagation?: boolean;\n preventDefault?: boolean;\n removeOnDisconnected?: boolean;\n delegate?: boolean;\n filter?: (target: Event | CustomEvent, meta:{currentThis: any, helper: HelperHostSet}) => boolean;\n}\n\nexport interface AddEventListenerMetadata {\n propertyKey: string | symbol;\n selector: string;\n type: string;\n options: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean };\n}\n\nexport const ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:add-event-listener');\n\nexport function addEventListener(target: SpecialSelector, type: string, options?: AddEventListenerBaseOptions): MethodDecorator;\nexport function addEventListener(selector: string, type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;\n/**\n * @addEventListener decorator to bind events to elements.\n */\nexport function addEventListener(selectorOrTarget: string, type: string, options: any = {}): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = targetObj.constructor;\n\n let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata[]>(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n if (!listeners) {\n listeners = [];\n ReflectUtils.defineMetadata(ADD_EVENT_LISTENER_METADATA_KEY, listeners, constructor);\n }\n\n listeners.push({ propertyKey, selector: selectorOrTarget, type, options });\n };\n}\n\nexport const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n};\n\n/**\n * @addEventListenerHost decorator - simplified version of @addEventListener for :host selector\n * Usage: @addEventListenerHost('click')\n * Usage: @addEventListenerHost('click', { stopPropagation: true })\n */\nexport function addEventListenerHost(type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions): MethodDecorator {\n return addEventListener(':host', type, options);\n}\n\n/**\n * @addEventListenerAppHost decorator - simplified version of @addEventListener for :appHost selector\n * Usage: @addEventListenerAppHost('click')\n * Usage: @addEventListenerAppHost('click', { stopPropagation: true })\n */\nexport function addEventListenerAppHost(type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions): MethodDecorator {\n return addEventListener(':appHost', type, options);\n}\n"],
5
5
  "mappings": "AAAA,SAAS,oBAAoB;AAsBtB,MAAM,kCAAkC,OAAO,IAAI,yCAAyC;AAO5F,SAAS,iBAAiB,kBAA0B,MAAc,UAAe,CAAC,GAAoB;AAC3G,SAAO,CAAC,WAAmB,aAA8B,eAAmC;AAC1F,UAAM,cAAc,UAAU;AAE9B,QAAI,YAAY,aAAa,YAAwC,iCAAiC,WAAW;AACjH,QAAI,CAAC,WAAW;AACd,kBAAY,CAAC;AACb,mBAAa,eAAe,iCAAiC,WAAW,WAAW;AAAA,IACrF;AAEA,cAAU,KAAK,EAAE,aAAa,UAAU,kBAAkB,MAAM,QAAQ,CAAC;AAAA,EAC3E;AACF;AAEO,MAAM,8BAA8B,CAAC,WAAwD;AAClG,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,YAAY,iCAAiC,WAAW;AAC9E;AAOO,SAAS,qBAAqB,MAAc,SAA0E;AAC3H,SAAO,iBAAiB,SAAS,MAAM,OAAO;AAChD;AAOO,SAAS,wBAAwB,MAAc,SAA0E;AAC9H,SAAO,iBAAiB,YAAY,MAAM,OAAO;AACnD;",
6
6
  "names": []
7
7
  }