@dooboostore/simple-web-component 1.0.21 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +771 -95
- package/dist/cjs/decorators/addEventListener.js +4 -0
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/{appendChild.js → applyNode.js} +25 -17
- package/dist/cjs/decorators/applyNode.js.map +7 -0
- package/dist/cjs/decorators/attribute.js +31 -10
- package/dist/cjs/decorators/attribute.js.map +3 -3
- package/dist/cjs/decorators/{changedAttribute.js → changedAttributeHost.js} +6 -6
- package/dist/cjs/decorators/changedAttributeHost.js.map +7 -0
- package/dist/cjs/decorators/classList.js +11 -1
- package/dist/cjs/decorators/classList.js.map +2 -2
- package/dist/cjs/decorators/elementDefine.js +106 -55
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/emitCustomEvent.js +4 -3
- package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
- package/dist/cjs/decorators/index.js +2 -3
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/lifecycles.js +4 -0
- package/dist/cjs/decorators/lifecycles.js.map +2 -2
- package/dist/cjs/decorators/query.js +5 -1
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/queryAll.js +5 -1
- package/dist/cjs/decorators/queryAll.js.map +2 -2
- package/dist/cjs/decorators/setAttribute.js +5 -1
- package/dist/cjs/decorators/setAttribute.js.map +2 -2
- package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/cjs/elements/SwcAsync.js +2 -2
- package/dist/cjs/elements/SwcAsync.js.map +2 -2
- package/dist/cjs/elements/SwcChoose.js +2 -2
- package/dist/cjs/elements/SwcChoose.js.map +2 -2
- package/dist/cjs/elements/SwcIf.js +2 -2
- package/dist/cjs/elements/SwcIf.js.map +2 -2
- package/dist/cjs/elements/SwcLoop.js +2 -2
- package/dist/cjs/elements/SwcLoop.js.map +2 -2
- package/dist/cjs/elements/register.js +6 -5
- package/dist/cjs/elements/register.js.map +2 -2
- package/dist/cjs/index.js +6 -18
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/types.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js +4 -0
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/{appendChild.js → applyNode.js} +22 -14
- package/dist/esm/decorators/applyNode.js.map +7 -0
- package/dist/esm/decorators/attribute.js +31 -10
- package/dist/esm/decorators/attribute.js.map +3 -3
- package/dist/esm/decorators/{changedAttribute.js → changedAttributeHost.js} +3 -3
- package/dist/esm/decorators/changedAttributeHost.js.map +7 -0
- package/dist/esm/decorators/classList.js +11 -1
- package/dist/esm/decorators/classList.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +106 -55
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/emitCustomEvent.js +4 -3
- package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
- package/dist/esm/decorators/index.js +2 -3
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/lifecycles.js +4 -0
- package/dist/esm/decorators/lifecycles.js.map +2 -2
- package/dist/esm/decorators/query.js +5 -1
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/queryAll.js +5 -1
- package/dist/esm/decorators/queryAll.js.map +2 -2
- package/dist/esm/decorators/setAttribute.js +5 -1
- package/dist/esm/decorators/setAttribute.js.map +2 -2
- package/dist/esm/elements/SwcAppEngine.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/elements/SwcAsync.js +2 -2
- package/dist/esm/elements/SwcAsync.js.map +2 -2
- package/dist/esm/elements/SwcChoose.js +2 -2
- package/dist/esm/elements/SwcChoose.js.map +2 -2
- package/dist/esm/elements/SwcIf.js +2 -2
- package/dist/esm/elements/SwcIf.js.map +2 -2
- package/dist/esm/elements/SwcLoop.js +2 -2
- package/dist/esm/elements/SwcLoop.js.map +2 -2
- package/dist/esm/elements/register.js +6 -5
- package/dist/esm/elements/register.js.map +2 -2
- package/dist/esm/index.js +6 -18
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/types.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +195 -139
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/decorators/addEventListener.d.ts +6 -0
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/applyNode.d.ts +38 -0
- package/dist/types/decorators/applyNode.d.ts.map +1 -0
- package/dist/types/decorators/attribute.d.ts +6 -0
- package/dist/types/decorators/attribute.d.ts.map +1 -1
- package/dist/types/decorators/{changedAttribute.d.ts → changedAttributeHost.d.ts} +6 -2
- package/dist/types/decorators/changedAttributeHost.d.ts.map +1 -0
- package/dist/types/decorators/classList.d.ts +25 -0
- package/dist/types/decorators/classList.d.ts.map +1 -1
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts +14 -2
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +2 -3
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/lifecycles.d.ts +2 -0
- package/dist/types/decorators/lifecycles.d.ts.map +1 -1
- package/dist/types/decorators/query.d.ts +6 -0
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/queryAll.d.ts +6 -0
- package/dist/types/decorators/queryAll.d.ts.map +1 -1
- package/dist/types/decorators/setAttribute.d.ts +5 -0
- package/dist/types/decorators/setAttribute.d.ts.map +1 -1
- package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/types/elements/register.d.ts +1 -1
- package/dist/types/elements/register.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -15
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +2 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +195 -139
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +3 -3
- package/src/decorators/addEventListener.ts +9 -0
- package/src/decorators/applyNode.ts +127 -0
- package/src/decorators/attribute.ts +46 -12
- package/src/decorators/{changedAttribute.ts → changedAttributeHost.ts} +5 -1
- package/src/decorators/classList.ts +32 -0
- package/src/decorators/elementDefine.ts +130 -62
- package/src/decorators/emitCustomEvent.ts +13 -5
- package/src/decorators/index.ts +2 -3
- package/src/decorators/lifecycles.ts +3 -1
- package/src/decorators/query.ts +9 -0
- package/src/decorators/queryAll.ts +9 -0
- package/src/decorators/setAttribute.ts +8 -0
- package/src/elements/SwcAppEngine.ts +1 -0
- package/src/elements/SwcAppMixin.ts +2 -1
- package/src/elements/SwcAsync.ts +2 -2
- package/src/elements/SwcChoose.ts +2 -2
- package/src/elements/SwcIf.ts +2 -2
- package/src/elements/SwcLoop.ts +2 -2
- package/src/elements/register.ts +7 -5
- package/src/index.ts +8 -17
- package/src/types.ts +2 -1
- package/dist/cjs/decorators/appendChild.js.map +0 -7
- package/dist/cjs/decorators/changedAttribute.js.map +0 -7
- package/dist/cjs/decorators/replaceChildren.js +0 -79
- package/dist/cjs/decorators/replaceChildren.js.map +0 -7
- package/dist/esm/decorators/appendChild.js.map +0 -7
- package/dist/esm/decorators/changedAttribute.js.map +0 -7
- package/dist/esm/decorators/replaceChildren.js +0 -60
- package/dist/esm/decorators/replaceChildren.js.map +0 -7
- package/dist/types/decorators/appendChild.d.ts +0 -17
- package/dist/types/decorators/appendChild.d.ts.map +0 -1
- package/dist/types/decorators/changedAttribute.d.ts.map +0 -1
- package/dist/types/decorators/replaceChildren.d.ts +0 -9
- package/dist/types/decorators/replaceChildren.d.ts.map +0 -1
- package/src/decorators/appendChild.ts +0 -86
- package/src/decorators/replaceChildren.ts +0 -64
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/elements/register.ts"],
|
|
4
|
-
"sourcesContent": ["import { elementDefine } from '../decorators/elementDefine';\nimport { SwcAppMixin } from './SwcAppMixin';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { changedAttribute } from '../decorators/changedAttribute';\n\nexport const registerAllElements = (w: any) => {\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 private _value = false;\n private _nodes: Node[] = [];\n\n get value(): boolean {\n return this._value;\n }\n set value(nv: any) {\n this._value = Boolean(nv);\n this.render();\n }\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttribute('on-get-value')\n private refreshValue() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.value = false;\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof Promise) {\n res.then(v => (this.value = v)).catch(() => (this.value = false));\n } else {\n this.value = res;\n }\n }\n\n private render() {\n this.cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n let targetTpl: HTMLTemplateElement | null = null;\n if (this._value) {\n targetTpl = this;\n } else {\n targetTpl = this.content.querySelector('template[is=\"swc-default\"]') as HTMLTemplateElement;\n }\n\n if (targetTpl) {\n const clone = targetTpl.content.cloneNode(true) as DocumentFragment;\n // If it's the host template, remove sub-templates from clone\n if (targetTpl === this) {\n clone.querySelectorAll('template[is^=\"swc-\"]').forEach(t => t.remove());\n }\n\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };\n\n this._nodes.forEach((node, nodeIdx) => {\n if (node instanceof HTMLElement) (node as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n if (portal === this.parentElement) {\n portal.insertBefore(clone, this.nextSibling);\n } else {\n portal.appendChild(clone);\n }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refreshValue();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-loop', { extends: 'template', window: w })\n class SwcLoop extends HTMLTemplateElement {\n private _value: any[] = [];\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.render();\n }\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n private _cleanup() {\n this._nodeGroups.forEach(nodes => nodes.forEach(n => n.parentElement?.removeChild(n)));\n this._nodeGroups = [];\n }\n\n @changedAttribute('on-get-value')\n private refreshValue() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.value = [];\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof Promise) {\n res.then(v => (this.value = v)).catch(() => (this.value = []));\n } else {\n this.value = res;\n }\n }\n\n render() {\n this._cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n const fragment = win.document.createDocumentFragment();\n\n if (this._value.length === 0) {\n const defaultTpl = this.content.querySelector('template[is=\"swc-default\"]') as HTMLTemplateElement;\n if (defaultTpl) {\n const clone = defaultTpl.content.cloneNode(true);\n const nodes = Array.from(clone.childNodes);\n this._nodeGroups.push(nodes);\n fragment.appendChild(clone);\n }\n } else {\n this._value.forEach((item, index) => {\n const clone = this.content.cloneNode(true) as DocumentFragment;\n // Filter out sub-templates\n const subTemplates = clone.querySelectorAll('template[is^=\"swc-\"]');\n subTemplates.forEach(t => t.remove());\n\n const nodes = Array.from(clone.childNodes);\n const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n\n const groupArgs = { ...helperSet, $item: item, $index: index, $value: this._value, $nodes: nodes, $elements: elements, $firstElement: elements[0] };\n\n nodes.forEach((node, nodeIdx) => {\n if (node instanceof HTMLElement) (node as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n this._nodeGroups.push(nodes);\n fragment.appendChild(clone);\n });\n }\n\n if (portal === this.parentElement) {\n portal.insertBefore(fragment, this.nextSibling);\n } else {\n portal.appendChild(fragment);\n }\n }\n\n connectedCallback() {\n this.refreshValue();\n }\n disconnectedCallback() {\n this._cleanup();\n }\n }\n\n @elementDefine('swc-choose', { extends: 'template', window: w })\n class SwcChoose extends HTMLTemplateElement {\n private _nodes: Node[] = [];\n private _value: any = null;\n\n get value(): any {\n return this._value;\n }\n set value(nv: any) {\n this._value = nv;\n this.render();\n }\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttribute('on-get-value')\n private refresh() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.value = null;\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const result = FunctionUtils.executeReturn({ script, context: this, args: SwcUtils.getHelperAndHostSet(win, this) });\n this.value = result;\n }\n\n private render() {\n this.cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n const templates = Array.from(this.content.querySelectorAll('template'));\n let selected: HTMLTemplateElement | null = null;\n for (const t of templates) {\n if (t.getAttribute('is') === 'swc-when' && String(t.getAttribute('value')) === String(this._value)) {\n selected = t;\n break;\n }\n }\n const target = selected || (this.content.querySelector('template[is=\"swc-otherwise\"]') as HTMLTemplateElement);\n\n if (target) {\n const clone = target.content.cloneNode(true) as DocumentFragment;\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };\n\n this._nodes.forEach((n, nodeIdx) => {\n if (n instanceof HTMLElement) (n as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n if (portal === this.parentElement) {\n portal.insertBefore(clone, this.nextSibling);\n } else {\n portal.appendChild(clone);\n }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-async', { extends: 'template', window: w })\n class SwcAsync extends HTMLTemplateElement {\n private _nodes: Node[] = [];\n private _value: any = null;\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttribute('on-get-value')\n private refresh() {\n const script = this.getAttribute('on-get-value');\n if (!script) return;\n const win = this.ownerDocument?.defaultView || window;\n const result = FunctionUtils.executeReturn({ script, context: this, args: SwcUtils.getHelperAndHostSet(win, this) });\n\n if (result instanceof Promise) {\n this.render('loading');\n result\n .then(v => {\n this._value = v;\n this.render('success');\n })\n .catch(e => this.render('error'));\n } else {\n this._value = result;\n this.render('success');\n }\n }\n\n private render(state: string) {\n this.cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n const t = this.content.querySelector(`template[is=\"swc-${state}\"]`) as HTMLTemplateElement;\n if (t) {\n const clone = t.content.cloneNode(true) as DocumentFragment;\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0], $state: state };\n\n this._nodes.forEach((n, nodeIdx) => {\n if (n instanceof HTMLElement) (n as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n if (portal === this.parentElement) {\n portal.insertBefore(clone, this.nextSibling);\n } else {\n portal.appendChild(clone);\n }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refresh();\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"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { elementDefine } from '../decorators/elementDefine';\nimport { SwcAppMixin } from './SwcAppMixin';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils } from '@dooboostore/core';\nimport { changedAttributeHost } from '../decorators/changedAttributeHost';\n\nexport const registerAllElements = (w: any) => {\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 private _value = false;\n private _nodes: Node[] = [];\n\n get value(): boolean {\n return this._value;\n }\n set value(nv: any) {\n this._value = Boolean(nv);\n this.render();\n }\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('on-get-value')\n private refreshValue() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.value = false;\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof Promise) {\n res.then(v => (this.value = v)).catch(() => (this.value = false));\n } else {\n this.value = res;\n }\n }\n\n private render() {\n this.cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n let targetTpl: HTMLTemplateElement | null = null;\n if (this._value) {\n targetTpl = this;\n } else {\n targetTpl = this.content.querySelector('template[is=\"swc-default\"]') as HTMLTemplateElement;\n }\n\n if (targetTpl) {\n const clone = targetTpl.content.cloneNode(true) as DocumentFragment;\n // If it's the host template, remove sub-templates from clone\n if (targetTpl === this) {\n clone.querySelectorAll('template[is^=\"swc-\"]').forEach(t => t.remove());\n }\n\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };\n\n this._nodes.forEach((node, nodeIdx) => {\n if (node instanceof HTMLElement) (node as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n if (portal === this.parentElement) {\n portal.insertBefore(clone, this.nextSibling);\n } else {\n portal.appendChild(clone);\n }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refreshValue();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-loop', { extends: 'template', window: w })\n class SwcLoop extends HTMLTemplateElement {\n private _value: any[] = [];\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.render();\n }\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n private _cleanup() {\n this._nodeGroups.forEach(nodes => nodes.forEach(n => n.parentElement?.removeChild(n)));\n this._nodeGroups = [];\n }\n\n @changedAttributeHost('on-get-value')\n private refreshValue() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.value = [];\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof Promise) {\n res.then(v => (this.value = v)).catch(() => (this.value = []));\n } else {\n this.value = res;\n }\n }\n\n render() {\n this._cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n const fragment = win.document.createDocumentFragment();\n\n if (this._value.length === 0) {\n const defaultTpl = this.content.querySelector('template[is=\"swc-default\"]') as HTMLTemplateElement;\n if (defaultTpl) {\n const clone = defaultTpl.content.cloneNode(true);\n const nodes = Array.from(clone.childNodes);\n this._nodeGroups.push(nodes);\n fragment.appendChild(clone);\n }\n } else {\n this._value.forEach((item, index) => {\n const clone = this.content.cloneNode(true) as DocumentFragment;\n // Filter out sub-templates\n const subTemplates = clone.querySelectorAll('template[is^=\"swc-\"]');\n subTemplates.forEach(t => t.remove());\n\n const nodes = Array.from(clone.childNodes);\n const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n\n const groupArgs = { ...helperSet, $item: item, $index: index, $value: this._value, $nodes: nodes, $elements: elements, $firstElement: elements[0] };\n\n nodes.forEach((node, nodeIdx) => {\n if (node instanceof HTMLElement) (node as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: node, $nodeIndex: nodeIdx, $isElement: node.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n this._nodeGroups.push(nodes);\n fragment.appendChild(clone);\n });\n }\n\n if (portal === this.parentElement) {\n portal.insertBefore(fragment, this.nextSibling);\n } else {\n portal.appendChild(fragment);\n }\n }\n\n connectedCallback() {\n this.refreshValue();\n }\n disconnectedCallback() {\n this._cleanup();\n }\n }\n\n @elementDefine('swc-choose', { extends: 'template', window: w })\n class SwcChoose extends HTMLTemplateElement {\n private _nodes: Node[] = [];\n private _value: any = null;\n\n get value(): any {\n return this._value;\n }\n set value(nv: any) {\n this._value = nv;\n this.render();\n }\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('on-get-value')\n private refresh() {\n const script = this.getAttribute('on-get-value');\n if (!script) {\n this.value = null;\n return;\n }\n const win = this.ownerDocument?.defaultView || window;\n const result = FunctionUtils.executeReturn({ script, context: this, args: SwcUtils.getHelperAndHostSet(win, this) });\n this.value = result;\n }\n\n private render() {\n this.cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n const templates = Array.from(this.content.querySelectorAll('template'));\n let selected: HTMLTemplateElement | null = null;\n for (const t of templates) {\n if (t.getAttribute('is') === 'swc-when' && String(t.getAttribute('value')) === String(this._value)) {\n selected = t;\n break;\n }\n }\n const target = selected || (this.content.querySelector('template[is=\"swc-otherwise\"]') as HTMLTemplateElement);\n\n if (target) {\n const clone = target.content.cloneNode(true) as DocumentFragment;\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0] };\n\n this._nodes.forEach((n, nodeIdx) => {\n if (n instanceof HTMLElement) (n as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n if (portal === this.parentElement) {\n portal.insertBefore(clone, this.nextSibling);\n } else {\n portal.appendChild(clone);\n }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n }\n\n @elementDefine('swc-async', { extends: 'template', window: w })\n class SwcAsync extends HTMLTemplateElement {\n private _nodes: Node[] = [];\n private _value: any = null;\n\n private _resolvePortal(): Element | null {\n const portalScript = this.getAttribute('on-get-portal');\n if (!portalScript) return this.parentElement;\n\n const win = this.ownerDocument?.defaultView || window;\n const res = FunctionUtils.executeReturn({\n script: portalScript,\n context: this,\n args: SwcUtils.getHelperAndHostSet(win, this)\n });\n\n if (res instanceof HTMLElement) return res;\n if (typeof res === 'string') return win.document.querySelector(res);\n return this.parentElement;\n }\n\n private _executeCloneCallback(attr: string, args: any) {\n const script = this.getAttribute(attr);\n if (!script) return;\n FunctionUtils.execute({ script, context: this, args });\n }\n\n @changedAttributeHost('on-get-value')\n private refresh() {\n const script = this.getAttribute('on-get-value');\n if (!script) return;\n const win = this.ownerDocument?.defaultView || window;\n const result = FunctionUtils.executeReturn({ script, context: this, args: SwcUtils.getHelperAndHostSet(win, this) });\n\n if (result instanceof Promise) {\n this.render('loading');\n result\n .then(v => {\n this._value = v;\n this.render('success');\n })\n .catch(e => this.render('error'));\n } else {\n this._value = result;\n this.render('success');\n }\n }\n\n private render(state: string) {\n this.cleanup();\n const portal = this._resolvePortal();\n if (!portal) return;\n\n const win = this.ownerDocument?.defaultView || window;\n const helperSet = SwcUtils.getHelperAndHostSet(win, this);\n\n const t = this.content.querySelector(`template[is=\"swc-${state}\"]`) as HTMLTemplateElement;\n if (t) {\n const clone = t.content.cloneNode(true) as DocumentFragment;\n this._nodes = Array.from(clone.childNodes);\n const elements = this._nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n const groupArgs = { ...helperSet, $value: this._value, $nodes: this._nodes, $elements: elements, $firstElement: elements[0], $state: state };\n\n this._nodes.forEach((n, nodeIdx) => {\n if (n instanceof HTMLElement) (n as any).__swc_host = this;\n this._executeCloneCallback('on-clone-node', { ...groupArgs, $node: n, $nodeIndex: nodeIdx, $isElement: n.nodeType === 1 });\n });\n\n this._executeCloneCallback('on-clone-nodes', groupArgs);\n\n if (portal === this.parentElement) {\n portal.insertBefore(clone, this.nextSibling);\n } else {\n portal.appendChild(clone);\n }\n }\n }\n\n private cleanup() {\n this._nodes.forEach(n => n.parentElement?.removeChild(n));\n this._nodes = [];\n }\n\n connectedCallback() {\n this.refresh();\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};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/index.js
CHANGED
|
@@ -18,34 +18,22 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var src_exports = {};
|
|
20
20
|
__export(src_exports, {
|
|
21
|
-
default: () => src_default
|
|
22
|
-
onConnectedInnerHtml: () => import_onConnectedInnerHtml.onConnectedInnerHtml
|
|
21
|
+
default: () => src_default
|
|
23
22
|
});
|
|
24
23
|
module.exports = __toCommonJS(src_exports);
|
|
25
24
|
var import_reflect_metadata = require("reflect-metadata");
|
|
26
25
|
var import_register = require("./elements/register");
|
|
27
|
-
__reExport(src_exports, require("./decorators
|
|
28
|
-
__reExport(src_exports, require("./decorators/attribute"), module.exports);
|
|
29
|
-
__reExport(src_exports, require("./decorators/setAttribute"), module.exports);
|
|
30
|
-
__reExport(src_exports, require("./decorators/changedAttribute"), module.exports);
|
|
31
|
-
var import_onConnectedInnerHtml = require("./decorators/onConnectedInnerHtml");
|
|
32
|
-
__reExport(src_exports, require("./decorators/replaceChildren"), module.exports);
|
|
33
|
-
__reExport(src_exports, require("./decorators/appendChild"), module.exports);
|
|
34
|
-
__reExport(src_exports, require("./decorators/classList"), module.exports);
|
|
35
|
-
__reExport(src_exports, require("./decorators/style"), module.exports);
|
|
36
|
-
__reExport(src_exports, require("./decorators/emitCustomEvent"), module.exports);
|
|
37
|
-
__reExport(src_exports, require("./decorators/lifecycles"), module.exports);
|
|
38
|
-
__reExport(src_exports, require("./decorators/query"), module.exports);
|
|
39
|
-
__reExport(src_exports, require("./decorators/queryAll"), module.exports);
|
|
40
|
-
__reExport(src_exports, require("./decorators/addEventListener"), module.exports);
|
|
26
|
+
__reExport(src_exports, require("./decorators"), module.exports);
|
|
41
27
|
__reExport(src_exports, require("./types"), module.exports);
|
|
42
28
|
__reExport(src_exports, require("./utils/Utils"), module.exports);
|
|
43
29
|
__reExport(src_exports, require("./utils/TemplateUtils"), module.exports);
|
|
44
30
|
__reExport(src_exports, require("./config/config"), module.exports);
|
|
45
31
|
var src_default = (w, other) => {
|
|
46
32
|
(0, import_register.registerAllElements)(w);
|
|
47
|
-
other?.
|
|
48
|
-
fn(w);
|
|
33
|
+
const r = other?.map((fn) => {
|
|
34
|
+
const a = fn(w);
|
|
35
|
+
return a;
|
|
49
36
|
});
|
|
37
|
+
return r ?? [];
|
|
50
38
|
};
|
|
51
39
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["import 'reflect-metadata';\nimport { registerAllElements } from './elements/register';\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA
|
|
4
|
+
"sourcesContent": ["import 'reflect-metadata';\nimport { registerAllElements } from './elements/register';\nimport {ConstructorType} from \"@dooboostore/core\";\n\n// Decorators\nexport * from './decorators';\n\n// Types\nexport * from './types';\n\n// Utilities\nexport * from './utils/Utils';\nexport * from './utils/TemplateUtils';\n\n// Config\nexport * from './config/config';\n\n// Registration Factory\nexport default (w: Window, other?: ((w: Window) => ConstructorType<any>)[]): ConstructorType<any>[] => {\n registerAllElements(w);\n const r = other?.map(fn => {\n const a = fn(w);\n // console.log('l', fn, a)\n return a;\n });\n return r??[];\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAO;AACP,sBAAoC;AAIpC,wBAAc,yBALd;AAQA,wBAAc,oBARd;AAWA,wBAAc,0BAXd;AAYA,wBAAc,kCAZd;AAeA,wBAAc,4BAfd;AAkBA,IAAO,cAAQ,CAAC,GAAW,UAA4E;AACrG,2CAAoB,CAAC;AACrB,QAAM,IAAI,OAAO,IAAI,QAAM;AACzB,UAAM,IAAI,GAAG,CAAC;AAEd,WAAO;AAAA,EACT,CAAC;AACD,SAAO,KAAG,CAAC;AACb;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -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';\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;\n\nexport interface SwcAppInterface extends HTMLElement {\n simpleApplication?: SimpleApplication;\n router?: Router;\n connect(config?:
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
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;\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}\n"],
|
|
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
|
}
|
|
@@ -15,9 +15,13 @@ const getAddEventListenerMetadata = (target) => {
|
|
|
15
15
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
16
16
|
return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);
|
|
17
17
|
};
|
|
18
|
+
function addEventListenerHost(type, options) {
|
|
19
|
+
return addEventListener(":host", type, options);
|
|
20
|
+
}
|
|
18
21
|
export {
|
|
19
22
|
ADD_EVENT_LISTENER_METADATA_KEY,
|
|
20
23
|
addEventListener,
|
|
24
|
+
addEventListenerHost,
|
|
21
25
|
getAddEventListenerMetadata
|
|
22
26
|
};
|
|
23
27
|
//# sourceMappingURL=addEventListener.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/addEventListener.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions } from '../types';\n\nexport interface AddEventListenerBaseOptions extends EventListenerOptions {\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n stopPropagation?: boolean;\n stopImmediatePropagation?: boolean;\n preventDefault?: boolean;\n removeOnDisconnected?: boolean;\n delegate?: boolean;\n}\n\nexport interface AddEventListenerMetadata {\n propertyKey: string | symbol;\n selector: string;\n type: string;\n options: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean };\n}\n\nexport const ADD_EVENT_LISTENER_METADATA_KEY = Symbol('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"],
|
|
5
|
-
"mappings": "AAAA,SAAS,oBAAoB;AAqBtB,MAAM,kCAAkC,OAAO,yCAAyC;AAOxF,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;",
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { SpecialSelector, SwcQueryOptions } from '../types';\n\nexport interface AddEventListenerBaseOptions extends EventListenerOptions {\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n stopPropagation?: boolean;\n stopImmediatePropagation?: boolean;\n preventDefault?: boolean;\n removeOnDisconnected?: boolean;\n delegate?: boolean;\n}\n\nexport interface AddEventListenerMetadata {\n propertyKey: string | symbol;\n selector: string;\n type: string;\n options: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean };\n}\n\nexport const ADD_EVENT_LISTENER_METADATA_KEY = Symbol('simple-web-component:add-event-listener');\n\nexport function addEventListener(target: SpecialSelector, type: string, options?: AddEventListenerBaseOptions): MethodDecorator;\nexport function addEventListener(selector: string, type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;\n/**\n * @addEventListener decorator to bind events to elements.\n */\nexport function addEventListener(selectorOrTarget: string, type: string, options: any = {}): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = targetObj.constructor;\n\n let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata[]>(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n if (!listeners) {\n listeners = [];\n ReflectUtils.defineMetadata(ADD_EVENT_LISTENER_METADATA_KEY, listeners, constructor);\n }\n\n listeners.push({ propertyKey, selector: selectorOrTarget, type, options });\n };\n}\n\nexport const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);\n};\n\n/**\n * @addEventListenerHost decorator - simplified version of @addEventListener for :host selector\n * Usage: @addEventListenerHost('click')\n * Usage: @addEventListenerHost('click', { stopPropagation: true })\n */\nexport function addEventListenerHost(type: string, options?: AddEventListenerBaseOptions & SwcQueryOptions): MethodDecorator {\n return addEventListener(':host', type, options);\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,oBAAoB;AAqBtB,MAAM,kCAAkC,OAAO,yCAAyC;AAOxF,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;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReflectUtils } from "@dooboostore/core";
|
|
2
2
|
import { ensureInit, getElementConfig } from "./elementDefine.js";
|
|
3
|
-
const
|
|
3
|
+
const APPLY_NODE_METADATA_KEY = Symbol("simple-web-component:apply-node");
|
|
4
4
|
const normalizeNodes = (res, doc) => {
|
|
5
5
|
const items = Array.isArray(res) ? res : [res];
|
|
6
6
|
return items.map((it) => {
|
|
@@ -9,13 +9,13 @@ const normalizeNodes = (res, doc) => {
|
|
|
9
9
|
return doc.createTextNode(it !== void 0 && it !== null ? String(it) : "");
|
|
10
10
|
});
|
|
11
11
|
};
|
|
12
|
-
function
|
|
12
|
+
function applyNode(selector, options = { position: "beforeEnd" }) {
|
|
13
13
|
return (target, propertyKey, descriptor) => {
|
|
14
14
|
const constructor = target.constructor;
|
|
15
|
-
let metaList = ReflectUtils.getOwnMetadata(
|
|
15
|
+
let metaList = ReflectUtils.getOwnMetadata(APPLY_NODE_METADATA_KEY, constructor);
|
|
16
16
|
if (!metaList) {
|
|
17
17
|
metaList = /* @__PURE__ */ new Map();
|
|
18
|
-
ReflectUtils.defineMetadata(
|
|
18
|
+
ReflectUtils.defineMetadata(APPLY_NODE_METADATA_KEY, metaList, constructor);
|
|
19
19
|
}
|
|
20
20
|
metaList.set(propertyKey, { propertyKey, selector, options });
|
|
21
21
|
const original = descriptor.value;
|
|
@@ -35,10 +35,14 @@ function appendChild(selector, options = { position: "beforeEnd" }) {
|
|
|
35
35
|
if (targetEl) {
|
|
36
36
|
const nodes = normalizeNodes(res, currentDoc);
|
|
37
37
|
const pos = options.position || "beforeEnd";
|
|
38
|
-
if (
|
|
39
|
-
targetEl.
|
|
40
|
-
} else if (
|
|
41
|
-
targetEl.
|
|
38
|
+
if (pos === "replace") {
|
|
39
|
+
targetEl.replaceWith(...nodes);
|
|
40
|
+
} else if (pos === "replaceChildren") {
|
|
41
|
+
targetEl.replaceChildren(...nodes);
|
|
42
|
+
} else if (pos === "innerHtml") {
|
|
43
|
+
targetEl.innerHTML = res !== void 0 && res !== null ? String(res) : "";
|
|
44
|
+
} else if (pos === "innerText") {
|
|
45
|
+
targetEl.innerText = res !== void 0 && res !== null ? String(res) : "";
|
|
42
46
|
} else {
|
|
43
47
|
if (pos === "beforeEnd")
|
|
44
48
|
targetEl.append(...nodes);
|
|
@@ -55,9 +59,9 @@ function appendChild(selector, options = { position: "beforeEnd" }) {
|
|
|
55
59
|
};
|
|
56
60
|
};
|
|
57
61
|
}
|
|
58
|
-
const
|
|
62
|
+
const findAllApplyNodeMetadata = (target) => {
|
|
59
63
|
const result = /* @__PURE__ */ new Map();
|
|
60
|
-
const maps = ReflectUtils.findAllMetadata(
|
|
64
|
+
const maps = ReflectUtils.findAllMetadata(APPLY_NODE_METADATA_KEY, target);
|
|
61
65
|
maps.forEach((map) => {
|
|
62
66
|
if (map instanceof Map) {
|
|
63
67
|
map.forEach((v, k) => result.set(k, v));
|
|
@@ -65,9 +69,13 @@ const findAllAppendChildMetadata = (target) => {
|
|
|
65
69
|
});
|
|
66
70
|
return result;
|
|
67
71
|
};
|
|
72
|
+
function applyNodeHost(options = { position: "beforeEnd" }) {
|
|
73
|
+
return applyNode(":host", options);
|
|
74
|
+
}
|
|
68
75
|
export {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
76
|
+
APPLY_NODE_METADATA_KEY,
|
|
77
|
+
applyNode,
|
|
78
|
+
applyNodeHost,
|
|
79
|
+
findAllApplyNodeMetadata
|
|
72
80
|
};
|
|
73
|
-
//# sourceMappingURL=
|
|
81
|
+
//# sourceMappingURL=applyNode.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/decorators/applyNode.ts"],
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit, getElementConfig } from './elementDefine';\n\nexport type ApplyNodePosition = 'beforeBegin' | 'afterBegin' | 'beforeEnd' | 'afterEnd' | 'replace' | 'replaceChildren' | 'innerHtml' | 'innerText';\n\nexport interface ApplyNodeOptions {\n position?: ApplyNodePosition;\n}\n\nexport interface ApplyNodeMetadata {\n propertyKey: string | symbol;\n selector: string;\n options: ApplyNodeOptions;\n}\n\nexport const APPLY_NODE_METADATA_KEY = Symbol('simple-web-component:apply-node');\n\nconst normalizeNodes = (res: any, doc: Document): Node[] => {\n const items = Array.isArray(res) ? res : [res];\n return items.map(it => {\n if (it instanceof Node) return it;\n return doc.createTextNode(it !== undefined && it !== null ? String(it) : '');\n });\n};\n\n/**\n * @applyNode decorator to surgically add/replace nodes to a target element.\n * \n * Usage examples:\n * @applyNode('#list') addItem() { return '<li>New Item</li>'; } // append at end\n * @applyNode('#header', { position: 'afterBegin' }) prependItem() { return '<h1>Title</h1>'; } // prepend at start\n * @applyNode('#item', { position: 'replace' }) replaceItem() { return '<div>Replaced</div>'; } // replace element\n * @applyNode('#list', { position: 'replaceChildren' }) updateList() { return [item1, item2]; } // replace all children\n * \n * Positions:\n * - 'beforeEnd' (default): Append at end of target\n * - 'afterBegin': Prepend at start of target\n * - 'beforeBegin': Insert before target\n * - 'afterEnd': Insert after target\n * - 'replace': Replace the entire target element\n * - 'replaceChildren': Replace all children of target element\n * - 'innerHtml': Set target's innerHTML\n * - 'innerText': Set target's innerText\n */\nexport function applyNode(selector: string, options: ApplyNodeOptions = { position: 'beforeEnd' }): MethodDecorator {\n return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = target.constructor;\n let metaList = ReflectUtils.getOwnMetadata(APPLY_NODE_METADATA_KEY, constructor) as Map<string | symbol, ApplyNodeMetadata>;\n if (!metaList) {\n metaList = new Map<string | symbol, ApplyNodeMetadata>();\n ReflectUtils.defineMetadata(APPLY_NODE_METADATA_KEY, metaList, constructor);\n }\n metaList.set(propertyKey, { propertyKey, selector, options });\n\n const original = descriptor.value;\n descriptor.value = async function (...args: any[]) {\n ensureInit(this);\n const res = await original.apply(this, args);\n if (res !== undefined) {\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as Window);\n const currentDoc = currentWin.document;\n\n let targetEl: HTMLElement | null = null;\n if (selector === ':host' || !selector) {\n targetEl = this as any;\n } else {\n targetEl = (this.shadowRoot || (this as any)).querySelector(selector);\n }\n\n if (targetEl) {\n const nodes = normalizeNodes(res, currentDoc);\n const pos = options.position || 'beforeEnd';\n\n if (pos === 'replace') {\n // Replace the entire target element with new nodes\n targetEl.replaceWith(...nodes);\n } else if (pos === 'replaceChildren') {\n // Replace all children of target element\n targetEl.replaceChildren(...nodes);\n } else if (pos === 'innerHtml') {\n // Set innerHTML\n targetEl.innerHTML = res !== undefined && res !== null ? String(res) : '';\n } else if (pos === 'innerText') {\n // Set innerText\n targetEl.innerText = res !== undefined && res !== null ? String(res) : '';\n } else {\n /*\n <!-- beforebegin -->\n <p>\n <!-- afterbegin -->\n foo\n <!-- beforeend -->\n </p>\n <!-- afterend -->\n */\n if (pos === 'beforeEnd') targetEl.append(...nodes);\n else if (pos === 'afterBegin') targetEl.prepend(...nodes);\n else if (pos === 'beforeBegin') targetEl.before(...nodes);\n else if (pos === 'afterEnd') targetEl.after(...nodes);\n }\n }\n }\n return res;\n };\n };\n}\n\nexport const findAllApplyNodeMetadata = (target: any): Map<string | symbol, ApplyNodeMetadata> => {\n const result = new Map<string | symbol, ApplyNodeMetadata>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, ApplyNodeMetadata>>(APPLY_NODE_METADATA_KEY, target);\n maps.forEach(map => {\n if (map instanceof Map) {\n map.forEach((v, k) => result.set(k, v));\n }\n });\n return result;\n};\n\n/**\n * @applyNodeHost decorator - simplified version of @applyNode for :host selector\n * Usage: @applyNodeHost() addItem() { return '<li>New Item</li>'; }\n * Usage: @applyNodeHost({ position: 'afterBegin' }) prependItem() { return '<h1>Title</h1>'; }\n */\nexport function applyNodeHost(options: ApplyNodeOptions = { position: 'beforeEnd' }): MethodDecorator {\n return applyNode(':host', options);\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,YAAY,wBAAwB;AActC,MAAM,0BAA0B,OAAO,iCAAiC;AAE/E,MAAM,iBAAiB,CAAC,KAAU,QAAyB;AACzD,QAAM,QAAQ,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG;AAC7C,SAAO,MAAM,IAAI,QAAK;AACpB,QAAI,cAAc;AAAM,aAAO;AAC/B,WAAO,IAAI,eAAe,OAAO,UAAa,OAAO,OAAO,OAAO,EAAE,IAAI,EAAE;EAC7E,CAAC;AACH;AAqBM,SAAU,UAAU,UAAkB,UAA4B,EAAE,UAAU,YAAW,GAAE;AAC/F,SAAO,CAAC,QAAgB,aAA8B,eAAkC;AACtF,UAAM,cAAc,OAAO;AAC3B,QAAI,WAAW,aAAa,eAAe,yBAAyB,WAAW;AAC/E,QAAI,CAAC,UAAU;AACb,iBAAW,oBAAI,IAAG;AAClB,mBAAa,eAAe,yBAAyB,UAAU,WAAW;IAC5E;AACA,aAAS,IAAI,aAAa,EAAE,aAAa,UAAU,QAAO,CAAE;AAE5D,UAAM,WAAW,WAAW;AAC5B,eAAW,QAAQ,kBAAmB,MAAW;AAC/C,iBAAW,IAAI;AACf,YAAM,MAAM,MAAM,SAAS,MAAM,MAAM,IAAI;AAC3C,UAAI,QAAQ,QAAW;AACrB,cAAM,OAAO,iBAAiB,IAAI;AAClC,cAAM,aAAc,KAAa,iBAAiB,IAAI,MAAO,OAAO,WAAW,cAAc,SAAS;AACtG,cAAM,aAAa,WAAW;AAE9B,YAAI,WAA+B;AACnC,YAAI,aAAa,WAAW,CAAC,UAAU;AACrC,qBAAW;QACb,OAAO;AACL,sBAAY,KAAK,cAAe,MAAc,cAAc,QAAQ;QACtE;AAEA,YAAI,UAAU;AACZ,gBAAM,QAAQ,eAAe,KAAK,UAAU;AAC5C,gBAAM,MAAM,QAAQ,YAAY;AAEhC,cAAI,QAAQ,WAAW;AAErB,qBAAS,YAAY,GAAG,KAAK;UAC/B,WAAW,QAAQ,mBAAmB;AAEpC,qBAAS,gBAAgB,GAAG,KAAK;UACnC,WAAW,QAAQ,aAAa;AAE9B,qBAAS,YAAY,QAAQ,UAAa,QAAQ,OAAO,OAAO,GAAG,IAAI;UACzE,WAAW,QAAQ,aAAa;AAE9B,qBAAS,YAAY,QAAQ,UAAa,QAAQ,OAAO,OAAO,GAAG,IAAI;UACzE,OAAO;AAUL,gBAAI,QAAQ;AAAa,uBAAS,OAAO,GAAG,KAAK;qBACxC,QAAQ;AAAc,uBAAS,QAAQ,GAAG,KAAK;qBAC/C,QAAQ;AAAe,uBAAS,OAAO,GAAG,KAAK;qBAC/C,QAAQ;AAAY,uBAAS,MAAM,GAAG,KAAK;UACtD;QACF;MACF;AACA,aAAO;IACT;EACF;AACF;AAEO,MAAM,2BAA2B,CAAC,WAAwD;AAC/F,QAAM,SAAS,oBAAI,IAAG;AACtB,QAAM,OAAO,aAAa,gBAAyD,yBAAyB,MAAM;AAClH,OAAK,QAAQ,SAAM;AACjB,QAAI,eAAe,KAAK;AACtB,UAAI,QAAQ,CAAC,GAAG,MAAM,OAAO,IAAI,GAAG,CAAC,CAAC;IACxC;EACF,CAAC;AACD,SAAO;AACT;AAOM,SAAU,cAAc,UAA4B,EAAE,UAAU,YAAW,GAAE;AACjF,SAAO,UAAU,SAAS,OAAO;AACnC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -65,6 +65,20 @@ function attribute(selector, options = {}) {
|
|
|
65
65
|
ReflectUtils.defineMetadata(ATTRIBUTE_METADATA_KEY, metaList, constructor);
|
|
66
66
|
}
|
|
67
67
|
metaList.push({ propertyKey, selector, options, privateKey });
|
|
68
|
+
const applySetAttribute = (inst, targets, attrName, nv) => {
|
|
69
|
+
targets.forEach((it) => {
|
|
70
|
+
console.log("----->", it);
|
|
71
|
+
if (it && typeof it.setAttribute === "function") {
|
|
72
|
+
if (nv === null) {
|
|
73
|
+
it.removeAttribute(attrName);
|
|
74
|
+
} else {
|
|
75
|
+
it.setAttribute(attrName, String(nv));
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
inst[privateKey] = nv;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
};
|
|
68
82
|
Object.defineProperty(target, propertyKey, {
|
|
69
83
|
get() {
|
|
70
84
|
const attrName = options.name || String(propertyKey);
|
|
@@ -88,22 +102,25 @@ function attribute(selector, options = {}) {
|
|
|
88
102
|
},
|
|
89
103
|
set(nv) {
|
|
90
104
|
const targetType = options.type || designType;
|
|
105
|
+
console.log("---set", propertyKey, targetType, nv, this, this.__swc_syncing_init);
|
|
91
106
|
const attrName = options.name || String(propertyKey);
|
|
92
107
|
const conf = getElementConfig(this);
|
|
93
108
|
const currentWin = this._resolveWindow?.(conf) || (typeof window !== "undefined" ? window : void 0);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (nv === null) {
|
|
99
|
-
it.removeAttribute(attrName);
|
|
100
|
-
} else {
|
|
101
|
-
it.setAttribute(attrName, String(nv));
|
|
102
|
-
}
|
|
109
|
+
if (this.__swc_syncing_init) {
|
|
110
|
+
if (options.connectedInitialize === true) {
|
|
111
|
+
const targets2 = resolveTargetEls(this, selector, options, currentWin);
|
|
112
|
+
applySetAttribute(this, targets2, attrName, nv);
|
|
103
113
|
} else {
|
|
104
114
|
this[privateKey] = nv;
|
|
105
115
|
}
|
|
106
|
-
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (!this.__swc_connected) {
|
|
119
|
+
this[privateKey] = nv;
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const targets = resolveTargetEls(this, selector, options, currentWin);
|
|
123
|
+
applySetAttribute(this, targets, attrName, nv);
|
|
107
124
|
},
|
|
108
125
|
enumerable: true,
|
|
109
126
|
configurable: true
|
|
@@ -113,9 +130,13 @@ function attribute(selector, options = {}) {
|
|
|
113
130
|
const findAllAttributeMetadata = (target) => {
|
|
114
131
|
return ReflectUtils.findAllMetadata(ATTRIBUTE_METADATA_KEY, target).flat();
|
|
115
132
|
};
|
|
133
|
+
function attributeHost(attrName, options = {}) {
|
|
134
|
+
return attribute(":host", { ...options, name: attrName });
|
|
135
|
+
}
|
|
116
136
|
export {
|
|
117
137
|
ATTRIBUTE_METADATA_KEY,
|
|
118
138
|
attribute,
|
|
139
|
+
attributeHost,
|
|
119
140
|
findAllAttributeMetadata,
|
|
120
141
|
resolveTargetEls
|
|
121
142
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/attribute.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit, getElementConfig } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SpecialSelector, SwcQueryOptions } from '../types';\n\nexport interface AttributeOptions extends SwcQueryOptions {\n name?: string;\n connectedInitialize?: boolean;\n type?: typeof Number | typeof Boolean | typeof String;\n}\n\nexport interface AttributeMetadata {\n propertyKey: string | symbol;\n selector: string;\n options: AttributeOptions;\n privateKey: symbol; // Added to bypass getter during initialization\n}\n\nexport const ATTRIBUTE_METADATA_KEY = Symbol('simple-web-component:attribute');\n\n/**\n * Helper to perform type conversion from string to target type\n */\nconst convertValue = (val: string | null, type: any): any => {\n if (val === null || val === undefined) return val;\n if (type === Number) return Number(val);\n if (type === Boolean) return val === 'false' || val === '0' ? false : true;\n return val;\n};\n\n/**\n * Helper to resolve target elements based on selector and root options\n */\nexport const resolveTargetEls = (inst: any, selector: string, options: AttributeOptions, currentWin: any): HTMLElement[] => {\n const r = options.root || 'auto';\n const results: HTMLElement[] = [];\n\n const applyRoot = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n // Attributes belong to the ELEMENT, not the ShadowRoot.\n // So for :host and direct attribute sync, we mostly want the element itself.\n results.push(target);\n } else {\n if (r === 'light' || r === 'all') results.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) results.push(target.shadowRoot);\n }\n };\n\n if (selector === ':host' || !selector) {\n applyRoot(inst);\n } else if (selector === ':window') {\n results.push(currentWin);\n } else if (selector === ':document') {\n results.push(currentWin.document);\n } else {\n const hostSet = SwcUtils.getHostSet(inst);\n if (selector === ':parentHost') applyRoot(hostSet.$parentHost);\n else if (selector === ':appHost') applyRoot(hostSet.$appHost as any);\n else if (selector === ':firstHost') applyRoot(hostSet.$firstHost);\n else if (selector === ':lastHost') applyRoot(hostSet.$lastHost);\n else if (selector === ':firstAppHost') applyRoot(hostSet.$firstAppHost as any);\n else if (selector === ':lastAppHost') applyRoot(hostSet.$lastAppHost as any);\n else {\n if (r === 'shadow') {\n const found = inst.shadowRoot?.querySelectorAll(selector);\n if (found) results.push(...found);\n } else if (r === 'light') {\n const found = inst.querySelectorAll(selector);\n if (found) results.push(...found);\n } else if (r === 'all') {\n const sMatch = inst.shadowRoot?.querySelectorAll(selector);\n const lMatch = inst.querySelectorAll(selector);\n if (sMatch) results.push(...sMatch);\n if (lMatch) results.push(...lMatch);\n } else {\n const found = (inst.shadowRoot || inst).querySelectorAll(selector);\n if (found) results.push(...found);\n }\n }\n }\n return results;\n};\n\n/**\n * @attribute decorator to sync a field value with an element's attribute.\n */\nexport function attribute(selector: string, options: AttributeOptions = {}): PropertyDecorator {\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n const privateKey = Symbol(String(propertyKey));\n\n const designType = (Reflect as any).getMetadata('design:type', target, propertyKey);\n\n let metaList = ReflectUtils.getOwnMetadata(ATTRIBUTE_METADATA_KEY, constructor) as AttributeMetadata[];\n if (!metaList) {\n metaList = [];\n ReflectUtils.defineMetadata(ATTRIBUTE_METADATA_KEY, metaList, constructor);\n }\n metaList.push({ propertyKey, selector, options, privateKey });\n\n Object.defineProperty(target, propertyKey, {\n get(this: any) {\n const attrName = options.name || String(propertyKey);\n const conf = getElementConfig(this);\n const currentWin = this._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as any);\n const targetType = options.type || designType;\n\n console.log('type-->', propertyKey, targetType);\n // During early init phase, if syncing memory to DOM, return memory.\n if (this.__swc_syncing_init || (options.connectedInitialize && !this.__swc_connected)) {\n return convertValue(this[privateKey], targetType);\n }\n\n const targets = resolveTargetEls(this, selector, options, currentWin);\n const primaryTarget = targets[0];\n\n if (primaryTarget && typeof (primaryTarget as any).hasAttribute === 'function') {\n if ((primaryTarget as any).hasAttribute(attrName)) {\n const domVal = (primaryTarget as any).getAttribute(attrName);\n return convertValue(domVal, targetType);\n }\n return null;\n }\n\n return convertValue(this[privateKey], targetType);\n },\n set(this: any, nv: any) {\n const targetType = options.type || designType;\n
|
|
5
|
-
"mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAqB,wBAAwB;AAC7C,SAAS,gBAAgB;AAgBlB,MAAM,yBAAyB,OAAO,gCAAgC;AAK7E,MAAM,eAAe,CAAC,KAAoB,SAAmB;AAC3D,MAAI,QAAQ,QAAQ,QAAQ,OAAW,QAAO;AAC9C,MAAI,SAAS,OAAQ,QAAO,OAAO,GAAG;AACtC,MAAI,SAAS,QAAS,QAAO,QAAQ,WAAW,QAAQ,MAAM,QAAQ;AACtE,SAAO;AACT;AAKO,MAAM,mBAAmB,CAAC,MAAW,UAAkB,SAA2B,eAAmC;AAC1H,QAAM,IAAI,QAAQ,QAAQ;AAC1B,QAAM,UAAyB,CAAC;AAEhC,QAAM,YAAY,CAAC,WAAgB;AACjC,QAAI,CAAC,OAAQ;AACb,QAAI,MAAM,QAAQ;AAGhB,cAAQ,KAAK,MAAM;AAAA,IACrB,OAAO;AACL,UAAI,MAAM,WAAW,MAAM,MAAO,SAAQ,KAAK,MAAM;AACrD,WAAK,MAAM,YAAY,MAAM,UAAU,OAAO,WAAY,SAAQ,KAAK,OAAO,UAAU;AAAA,IAC1F;AAAA,EACF;AAEA,MAAI,aAAa,WAAW,CAAC,UAAU;AACrC,cAAU,IAAI;AAAA,EAChB,WAAW,aAAa,WAAW;AACjC,YAAQ,KAAK,UAAU;AAAA,EACzB,WAAW,aAAa,aAAa;AACnC,YAAQ,KAAK,WAAW,QAAQ;AAAA,EAClC,OAAO;AACL,UAAM,UAAU,SAAS,WAAW,IAAI;AACxC,QAAI,aAAa,cAAe,WAAU,QAAQ,WAAW;AAAA,aACpD,aAAa,WAAY,WAAU,QAAQ,QAAe;AAAA,aAC1D,aAAa,aAAc,WAAU,QAAQ,UAAU;AAAA,aACvD,aAAa,YAAa,WAAU,QAAQ,SAAS;AAAA,aACrD,aAAa,gBAAiB,WAAU,QAAQ,aAAoB;AAAA,aACpE,aAAa,eAAgB,WAAU,QAAQ,YAAmB;AAAA,SACtE;AACH,UAAI,MAAM,UAAU;AAClB,cAAM,QAAQ,KAAK,YAAY,iBAAiB,QAAQ;AACxD,YAAI,MAAO,SAAQ,KAAK,GAAG,KAAK;AAAA,MAClC,WAAW,MAAM,SAAS;AACxB,cAAM,QAAQ,KAAK,iBAAiB,QAAQ;AAC5C,YAAI,MAAO,SAAQ,KAAK,GAAG,KAAK;AAAA,MAClC,WAAW,MAAM,OAAO;AACtB,cAAM,SAAS,KAAK,YAAY,iBAAiB,QAAQ;AACzD,cAAM,SAAS,KAAK,iBAAiB,QAAQ;AAC7C,YAAI,OAAQ,SAAQ,KAAK,GAAG,MAAM;AAClC,YAAI,OAAQ,SAAQ,KAAK,GAAG,MAAM;AAAA,MACpC,OAAO;AACL,cAAM,SAAS,KAAK,cAAc,MAAM,iBAAiB,QAAQ;AACjE,YAAI,MAAO,SAAQ,KAAK,GAAG,KAAK;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAKO,SAAS,UAAU,UAAkB,UAA4B,CAAC,GAAsB;AAC7F,SAAO,CAAC,QAAgB,gBAAiC;AACvD,UAAM,cAAc,OAAO;AAC3B,UAAM,aAAa,OAAO,OAAO,WAAW,CAAC;AAE7C,UAAM,aAAc,QAAgB,YAAY,eAAe,QAAQ,WAAW;AAElF,QAAI,WAAW,aAAa,eAAe,wBAAwB,WAAW;AAC9E,QAAI,CAAC,UAAU;AACb,iBAAW,CAAC;AACZ,mBAAa,eAAe,wBAAwB,UAAU,WAAW;AAAA,IAC3E;AACA,aAAS,KAAK,EAAE,aAAa,UAAU,SAAS,WAAW,CAAC;
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit, getElementConfig } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SpecialSelector, SwcQueryOptions } from '../types';\n\nexport interface AttributeOptions extends SwcQueryOptions {\n name?: string;\n connectedInitialize?: boolean;\n type?: typeof Number | typeof Boolean | typeof String;\n}\n\nexport interface AttributeMetadata {\n propertyKey: string | symbol;\n selector: string;\n options: AttributeOptions;\n privateKey: symbol; // Added to bypass getter during initialization\n}\n\nexport const ATTRIBUTE_METADATA_KEY = Symbol('simple-web-component:attribute');\n\n/**\n * Helper to perform type conversion from string to target type\n */\nconst convertValue = (val: string | null, type: any): any => {\n if (val === null || val === undefined) return val;\n if (type === Number) return Number(val);\n if (type === Boolean) return val === 'false' || val === '0' ? false : true;\n return val;\n};\n\n/**\n * Helper to resolve target elements based on selector and root options\n */\nexport const resolveTargetEls = (inst: any, selector: string, options: AttributeOptions, currentWin: any): HTMLElement[] => {\n const r = options.root || 'auto';\n const results: HTMLElement[] = [];\n\n const applyRoot = (target: any) => {\n if (!target) return;\n if (r === 'auto') {\n // Attributes belong to the ELEMENT, not the ShadowRoot.\n // So for :host and direct attribute sync, we mostly want the element itself.\n results.push(target);\n } else {\n if (r === 'light' || r === 'all') results.push(target);\n if ((r === 'shadow' || r === 'all') && target.shadowRoot) results.push(target.shadowRoot);\n }\n };\n\n if (selector === ':host' || !selector) {\n applyRoot(inst);\n } else if (selector === ':window') {\n results.push(currentWin);\n } else if (selector === ':document') {\n results.push(currentWin.document);\n } else {\n const hostSet = SwcUtils.getHostSet(inst);\n if (selector === ':parentHost') applyRoot(hostSet.$parentHost);\n else if (selector === ':appHost') applyRoot(hostSet.$appHost as any);\n else if (selector === ':firstHost') applyRoot(hostSet.$firstHost);\n else if (selector === ':lastHost') applyRoot(hostSet.$lastHost);\n else if (selector === ':firstAppHost') applyRoot(hostSet.$firstAppHost as any);\n else if (selector === ':lastAppHost') applyRoot(hostSet.$lastAppHost as any);\n else {\n if (r === 'shadow') {\n const found = inst.shadowRoot?.querySelectorAll(selector);\n if (found) results.push(...found);\n } else if (r === 'light') {\n const found = inst.querySelectorAll(selector);\n if (found) results.push(...found);\n } else if (r === 'all') {\n const sMatch = inst.shadowRoot?.querySelectorAll(selector);\n const lMatch = inst.querySelectorAll(selector);\n if (sMatch) results.push(...sMatch);\n if (lMatch) results.push(...lMatch);\n } else {\n const found = (inst.shadowRoot || inst).querySelectorAll(selector);\n if (found) results.push(...found);\n }\n }\n }\n return results;\n};\n\n/**\n * @attribute decorator to sync a field value with an element's attribute.\n */\nexport function attribute(selector: string, options: AttributeOptions = {}): PropertyDecorator {\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n const privateKey = Symbol(String(propertyKey));\n\n const designType = (Reflect as any).getMetadata('design:type', target, propertyKey);\n\n let metaList = ReflectUtils.getOwnMetadata(ATTRIBUTE_METADATA_KEY, constructor) as AttributeMetadata[];\n if (!metaList) {\n metaList = [];\n ReflectUtils.defineMetadata(ATTRIBUTE_METADATA_KEY, metaList, constructor);\n }\n metaList.push({ propertyKey, selector, options, privateKey });\n\n // Helper function to apply setAttribute to targets\n const applySetAttribute = (inst: any, targets: HTMLElement[], attrName: string, nv: any) => {\n targets.forEach(it => {\n console.log('----->', it)\n if (it && typeof (it as any).setAttribute === 'function') {\n if (nv === null) {\n (it as any).removeAttribute(attrName);\n } else {\n (it as any).setAttribute(attrName, String(nv));\n }\n } else {\n inst[privateKey] = nv;\n }\n });\n };\n\n Object.defineProperty(target, propertyKey, {\n get(this: any) {\n const attrName = options.name || String(propertyKey);\n const conf = getElementConfig(this);\n const currentWin = this._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as any);\n const targetType = options.type || designType;\n\n console.log('type-->', propertyKey, targetType);\n // During early init phase, if syncing memory to DOM, return memory.\n if (this.__swc_syncing_init || (options.connectedInitialize && !this.__swc_connected)) {\n return convertValue(this[privateKey], targetType);\n }\n\n const targets = resolveTargetEls(this, selector, options, currentWin);\n const primaryTarget = targets[0];\n\n if (primaryTarget && typeof (primaryTarget as any).hasAttribute === 'function') {\n if ((primaryTarget as any).hasAttribute(attrName)) {\n const domVal = (primaryTarget as any).getAttribute(attrName);\n return convertValue(domVal, targetType);\n }\n return null;\n }\n\n return convertValue(this[privateKey], targetType);\n },\n set(this: any, nv: any) {\n const targetType = options.type || designType;\n console.log('---set', propertyKey, targetType, nv, this, this.__swc_syncing_init);\n\n const attrName = options.name || String(propertyKey);\n const conf = getElementConfig(this);\n const currentWin = this._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as any);\n\n // During initialization/syncing phase\n if (this.__swc_syncing_init) {\n // If connectedInitialize is enabled, force setAttribute (JS -> DOM)\n if (options.connectedInitialize === true) {\n const targets = resolveTargetEls(this, selector, options, currentWin);\n applySetAttribute(this, targets, attrName, nv);\n } else {\n // Otherwise just update memory\n this[privateKey] = nv;\n }\n return;\n }\n\n // Before connected, save to memory only\n if (!this.__swc_connected) {\n this[privateKey] = nv;\n return;\n }\n\n // After connected, normal setAttribute\n const targets = resolveTargetEls(this, selector, options, currentWin);\n applySetAttribute(this, targets, attrName, nv);\n },\n enumerable: true,\n configurable: true\n });\n };\n}\n\nexport const findAllAttributeMetadata = (target: any): AttributeMetadata[] => {\n return ReflectUtils.findAllMetadata<AttributeMetadata[]>(ATTRIBUTE_METADATA_KEY, target).flat();\n};\n\n/**\n * @hostAttribute decorator - simplified version of @attribute for :host selector\n * Usage: @hostAttribute('data-product-id')\n * Usage: @hostAttribute('disabled', { type: Boolean })\n */\nexport function attributeHost(attrName: string, options: AttributeOptions = {}): PropertyDecorator {\n return attribute(':host', { ...options, name: attrName });\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["targets"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReflectUtils } from "@dooboostore/core";
|
|
2
2
|
const ON_ATTRIBUTE_CHANGED_METADATA_KEY = Symbol("simple-web-component:on-attribute-changed");
|
|
3
|
-
function
|
|
3
|
+
function changedAttributeHost(attributeName) {
|
|
4
4
|
return (target, propertyKey) => {
|
|
5
5
|
const constructor = target.constructor;
|
|
6
6
|
let meta = ReflectUtils.getOwnMetadata(ON_ATTRIBUTE_CHANGED_METADATA_KEY, constructor);
|
|
@@ -26,8 +26,8 @@ const findAllAttributeChangedMetadata = (target) => {
|
|
|
26
26
|
};
|
|
27
27
|
export {
|
|
28
28
|
ON_ATTRIBUTE_CHANGED_METADATA_KEY,
|
|
29
|
-
|
|
29
|
+
changedAttributeHost,
|
|
30
30
|
findAllAttributeChangedMetadata,
|
|
31
31
|
getChangedAttributeMetadata
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=changedAttributeHost.js.map
|