@dooboostore/simple-web-component 1.0.9 → 1.0.10

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.
@@ -35,21 +35,7 @@ var import_emitCustomEvent = require("./emitCustomEvent");
35
35
  var import_Utils = require("../utils/Utils");
36
36
  const ELEMENT_CONFIG_KEY = Symbol("simple-web-component:element-config");
37
37
  const STATE_CHANGE_EVENT = "swc:state-change";
38
- const $d = document;
39
- const $w = window;
40
- const $q = (sel, root) => (root ?? document).querySelector(sel);
41
- const $qa = (sel, root) => Array.from((root ?? document).querySelectorAll(sel));
42
- const $qi = (id, root) => (root ?? document).getElementById(id);
43
- const SWC_DOM_HELPERS = { $d, $w, $q, $qa, $qi };
44
- const SWC_DOM_HELPER_KEYS = Object.keys(SWC_DOM_HELPERS);
45
- const SWC_DOM_HELPER_VALS = () => SWC_DOM_HELPER_KEYS.map((k) => SWC_DOM_HELPERS[k]);
46
- const BUILT_IN_TAG_MAP = /* @__PURE__ */ new Map();
47
- const registerTag = (className, tagName) => {
48
- if (typeof globalThis !== "undefined" && globalThis[className]) {
49
- BUILT_IN_TAG_MAP.set(globalThis[className], tagName);
50
- }
51
- };
52
- [
38
+ const HTML_TAG_ENTRIES = [
53
39
  ["HTMLAnchorElement", "a"],
54
40
  ["HTMLAreaElement", "area"],
55
41
  ["HTMLAudioElement", "audio"],
@@ -106,9 +92,28 @@ const registerTag = (className, tagName) => {
106
92
  ["HTMLUListElement", "ul"],
107
93
  ["HTMLVideoElement", "video"],
108
94
  ["HTMLHeadingElement", "h1"]
109
- ].forEach(([cls, tag]) => registerTag(cls, tag));
95
+ ];
96
+ function buildEnv(configWindow) {
97
+ const win = configWindow || (typeof window !== "undefined" ? window : void 0);
98
+ const doc = win?.document;
99
+ const builtInTagMap = /* @__PURE__ */ new Map();
100
+ for (const [cls, tag] of HTML_TAG_ENTRIES) {
101
+ if (win?.[cls]) builtInTagMap.set(win[cls], tag);
102
+ }
103
+ const domHelpers = {
104
+ $d: doc,
105
+ $w: win,
106
+ $q: (sel, root) => (root ?? doc).querySelector(sel),
107
+ $qa: (sel, root) => Array.from((root ?? doc).querySelectorAll(sel)),
108
+ $qi: (id, root) => (root ?? doc).getElementById(id)
109
+ };
110
+ return { win, doc, builtInTagMap, domHelpers };
111
+ }
110
112
  const elementDefine = (inConfig) => (constructor) => {
111
113
  const config = typeof inConfig === "string" ? { name: inConfig } : inConfig;
114
+ const { win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS } = buildEnv(config.window);
115
+ const SWC_DOM_HELPER_KEYS = Object.keys(SWC_DOM_HELPERS);
116
+ const SWC_DOM_HELPER_VALS = () => SWC_DOM_HELPER_KEYS.map((k) => SWC_DOM_HELPERS[k]);
112
117
  let extendsTagName = config.extends;
113
118
  if (!extendsTagName) {
114
119
  let proto = Object.getPrototypeOf(constructor);
@@ -130,6 +135,7 @@ const elementDefine = (inConfig) => (constructor) => {
130
135
  super(...args);
131
136
  this._swcId = Math.random().toString(36).substring(2, 11);
132
137
  this._observer = null;
138
+ this._shadowObserver = null;
133
139
  this._boundElements = /* @__PURE__ */ new WeakMap();
134
140
  this._activeListeners = [];
135
141
  this._emitHandlers = /* @__PURE__ */ new Map();
@@ -338,7 +344,7 @@ const elementDefine = (inConfig) => (constructor) => {
338
344
  }
339
345
  _buildStateMap() {
340
346
  const scan = (root) => {
341
- const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);
347
+ const walker = doc.createTreeWalker(root, win.NodeFilter.SHOW_ELEMENT | win.NodeFilter.SHOW_TEXT);
342
348
  let node = null;
343
349
  while (node = walker.nextNode()) {
344
350
  if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, "text");
@@ -552,6 +558,7 @@ const elementDefine = (inConfig) => (constructor) => {
552
558
  if (typeof this[m] === "function") this[m]();
553
559
  });
554
560
  if (this._observer) this._observer.disconnect();
561
+ if (this._shadowObserver) this._shadowObserver.disconnect();
555
562
  if (config.autoRemoveEventListeners) {
556
563
  this._activeListeners.forEach(({ el, type, handler, options }) => el.removeEventListener(type, handler, options));
557
564
  this._activeListeners = [];
@@ -655,8 +662,28 @@ const elementDefine = (inConfig) => (constructor) => {
655
662
  }
656
663
  });
657
664
  }
658
- this._observer = new MutationObserver(() => this._syncDecorators());
659
- this._observer.observe(this.shadowRoot || this, { childList: true, subtree: true });
665
+ const mutationMetaList = (0, import_lifecycles.getMutationSubscribeMetadataList)(this);
666
+ const fireMutationCallbacks = (mutationList, observer, root) => {
667
+ mutationMetaList?.forEach((meta) => {
668
+ const r = meta.options.root ?? "auto";
669
+ const matches = r === "all" || r === root || r === "auto" && (this.shadowRoot ? root === "shadow" : root === "light");
670
+ if (matches && typeof this[meta.propertyKey] === "function") {
671
+ this[meta.propertyKey](mutationList, observer, root);
672
+ }
673
+ });
674
+ };
675
+ this._observer = new win.MutationObserver((mutationList, observer) => {
676
+ this._syncDecorators();
677
+ fireMutationCallbacks(mutationList, observer, "light");
678
+ });
679
+ this._observer.observe(this, { childList: true, subtree: true });
680
+ if (this.shadowRoot) {
681
+ this._shadowObserver = new win.MutationObserver((mutationList, observer) => {
682
+ this._syncDecorators();
683
+ fireMutationCallbacks(mutationList, observer, "shadow");
684
+ });
685
+ this._shadowObserver.observe(this.shadowRoot, { childList: true, subtree: true });
686
+ }
660
687
  if (super.connectedCallback) await super.connectedCallback();
661
688
  const aMethods = (0, import_lifecycles.getLifecycleMetadata)(this, import_lifecycles.ON_AFTER_CONNECTED_METADATA_KEY);
662
689
  aMethods?.forEach((m) => {
@@ -705,7 +732,7 @@ const elementDefine = (inConfig) => (constructor) => {
705
732
  this._executeSwcScript("swc-on-attribute-changed", { $new: newValue, $old: oldValue, $name: name });
706
733
  }
707
734
  };
708
- const registry = config.customElementRegistry || (typeof customElements !== "undefined" ? customElements : void 0);
735
+ const registry = config.customElementRegistry || (typeof win !== "undefined" ? win.customElements : void 0);
709
736
  if (registry && !registry.get(config.name)) {
710
737
  const options = config.extends ? { extends: config.extends } : void 0;
711
738
  registry.define(config.name, NewClass, options);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/elementDefine.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\nimport { getInnerHtmlMetadataList } from './innerHtml';\nimport { getQueryMetadata } from './query';\nimport { getQueryAllMetadata } from './queryAll';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { getLifecycleMetadata, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, ON_ADD_EVENT_LISTENER_METADATA_KEY, ON_ATTRIBUTE_CHANGED_METADATA_KEY, ATTRIBUTE_CHANGED_WILDCARD } from './lifecycles';\nimport { getAttributeMetadataList } from './attribute';\nimport { getStateMetadataList } from './state';\nimport { getEmitCustomEventMetadataList } from './emitCustomEvent';\nimport { SwcUtils, SWC_NOT_FOUND } from '../utils/Utils';\n\nexport interface ElementConfig {\n name: string;\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: CustomElementRegistry;\n autoRemoveEventListeners?: boolean;\n}\n\nexport const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');\nexport const STATE_CHANGE_EVENT = 'swc:state-change';\n\n// swc-on-* \uD578\uB4E4\uB7EC\uC5D0 \uACF5\uD1B5 \uC8FC\uC785\uB418\uB294 DOM \uB2E8\uCD95 \uD5EC\uD37C\nconst $d = document;\nconst $w = window;\nconst $q = (sel: string, root?: Element | Document | ShadowRoot) => (root ?? document).querySelector(sel);\nconst $qa = (sel: string, root?: Element | Document | ShadowRoot) => Array.from((root ?? document).querySelectorAll(sel));\nconst $qi = (id: string, root?: Document | ShadowRoot) => (root ?? document).getElementById(id);\nconst SWC_DOM_HELPERS = { $d, $w, $q, $qa, $qi } as const;\nconst SWC_DOM_HELPER_KEYS = Object.keys(SWC_DOM_HELPERS) as (keyof typeof SWC_DOM_HELPERS)[];\nconst SWC_DOM_HELPER_VALS = () => SWC_DOM_HELPER_KEYS.map(k => SWC_DOM_HELPERS[k]);\n\nconst BUILT_IN_TAG_MAP = new Map<any, string>();\n\nconst registerTag = (className: string, tagName: string) => {\n if (typeof globalThis !== 'undefined' && (globalThis as any)[className]) {\n BUILT_IN_TAG_MAP.set((globalThis as any)[className], tagName);\n }\n};\n\n[\n ['HTMLAnchorElement', 'a'],\n ['HTMLAreaElement', 'area'],\n ['HTMLAudioElement', 'audio'],\n ['HTMLBaseElement', 'base'],\n ['HTMLButtonElement', 'button'],\n ['HTMLCanvasElement', 'canvas'],\n ['HTMLDataElement', 'data'],\n ['HTMLDataListElement', 'datalist'],\n ['HTMLDetailsElement', 'details'],\n ['HTMLDialogElement', 'dialog'],\n ['HTMLDivElement', 'div'],\n ['HTMLDListElement', 'dl'],\n ['HTMLEmbedElement', 'embed'],\n ['HTMLFieldSetElement', 'fieldset'],\n ['HTMLFormElement', 'form'],\n ['HTMLHRElement', 'hr'],\n ['HTMLIFrameElement', 'iframe'],\n ['HTMLImageElement', 'img'],\n ['HTMLInputElement', 'input'],\n ['HTMLLabelElement', 'label'],\n ['HTMLLegendElement', 'legend'],\n ['HTMLLIElement', 'li'],\n ['HTMLLinkElement', 'link'],\n ['HTMLMapElement', 'map'],\n ['HTMLMetaElement', 'meta'],\n ['HTMLMeterElement', 'meter'],\n ['HTMLModElement', 'del'],\n ['HTMLObjectElement', 'object'],\n ['HTMLOListElement', 'ol'],\n ['HTMLOptGroupElement', 'optgroup'],\n ['HTMLOptionElement', 'option'],\n ['HTMLOutputElement', 'output'],\n ['HTMLParagraphElement', 'p'],\n ['HTMLParamElement', 'param'],\n ['HTMLPictureElement', 'picture'],\n ['HTMLPreElement', 'pre'],\n ['HTMLProgressElement', 'progress'],\n ['HTMLQuoteElement', 'blockquote'],\n ['HTMLScriptElement', 'script'],\n ['HTMLSelectElement', 'select'],\n ['HTMLSlotElement', 'slot'],\n ['HTMLSourceElement', 'source'],\n ['HTMLSpanElement', 'span'],\n ['HTMLStyleElement', 'style'],\n ['HTMLTableElement', 'table'],\n ['HTMLTableSectionElement', 'tbody'],\n ['HTMLTableCellElement', 'td'],\n ['HTMLTemplateElement', 'template'],\n ['HTMLTextAreaElement', 'textarea'],\n ['HTMLTimeElement', 'time'],\n ['HTMLTitleElement', 'title'],\n ['HTMLTableRowElement', 'tr'],\n ['HTMLTrackElement', 'track'],\n ['HTMLUListElement', 'ul'],\n ['HTMLVideoElement', 'video'],\n ['HTMLHeadingElement', 'h1']\n].forEach(([cls, tag]) => registerTag(cls, tag));\n\nexport const elementDefine =\n (inConfig: ElementConfig | string): ClassDecorator =>\n (constructor: any) => {\n const config: ElementConfig = typeof inConfig === 'string' ? { name: inConfig } : inConfig;\n\n let extendsTagName = config.extends;\n if (!extendsTagName) {\n let proto = Object.getPrototypeOf(constructor);\n while (proto && proto !== HTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n }\n\n const attributePropsList = getAttributeMetadataList(constructor);\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor);\n const stateList = getStateMetadataList(constructor);\n const observedFromProps = attributePropsList ? attributePropsList.map(it => it.options.name!) : [];\n const observedFromEmits = emitCustomEventList ? emitCustomEventList.map(it => it.options.attributeName!) : [];\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const mergedObservedAttributes = [...new Set([...(config.observedAttributes ?? []), ...observedFromProps, ...observedFromEmits, ...swcLifecycleAttributes])];\n\n const NewClass = class extends (constructor as any) {\n private _swcId = Math.random().toString(36).substring(2, 11);\n private _observer: MutationObserver | null = null;\n private _boundElements = new WeakMap<Element, Set<string | symbol>>();\n private _activeListeners: Array<{ el: Element | HTMLElement; type: string; handler: EventListener; options?: any }> = [];\n private _emitHandlers = new Map<string, EventListener>();\n private _stateBindings = new Map<string, any[]>();\n private _internalStates = new Map<string | symbol, any>();\n private _externalSources = new Map<string, HTMLElement>();\n\n // name\u2192value \uCEE8\uD14D\uC2A4\uD2B8 \uBC18\uD658 (applyData\uC758 hostContext\uC6A9)\n _getHostContext(): Record<string, any> {\n const ctx: Record<string, any> = {};\n if (stateList) {\n stateList.forEach(meta => {\n const name = meta.options.name!;\n const val = this._internalStates.get(meta.propertyKey);\n ctx[name] = val;\n });\n }\n if (attributePropsList) {\n attributePropsList.forEach(meta => {\n const name = meta.options.name!;\n const val = this._internalStates.get(meta.propertyKey);\n ctx[name] = val;\n });\n }\n return ctx;\n }\n\n static get observedAttributes() {\n return mergedObservedAttributes;\n }\n\n private _executeSwcScript(attrName: string, extraArgs: Record<string, any> = {}) {\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(this as any);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n const args = { $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPERS, ...extraArgs };\n const argNames = Object.keys(args);\n const argValues = Object.values(args);\n new Function(...argNames, script).apply(this, argValues);\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName} script:`, e);\n }\n }\n }\n\n constructor(...args: any[]) {\n super(...args);\n this._executeSwcScript('swc-on-constructor');\n\n if (stateList) {\n stateList.forEach(meta => {\n const key = meta.propertyKey;\n const stateName = meta.options.name!;\n const initialVal = (this as any)[key];\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(initialVal, () => this._updateState(stateName))\n );\n Object.defineProperty(this, key, {\n get: () => this._internalStates.get(key),\n set: newVal => {\n if (this._internalStates.get(key) === newVal) return;\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(newVal, () => this._updateState(stateName))\n );\n this._updateState(stateName);\n },\n enumerable: true,\n configurable: true\n });\n });\n }\n\n if (attributePropsList) {\n attributePropsList.forEach(meta => {\n const key = meta.propertyKey;\n const attrName = meta.options.name!;\n const attrValue = this.getAttribute(attrName);\n let initialVal = attrValue !== null ? attrValue : (this as any)[key];\n if (initialVal === undefined) initialVal = null;\n\n if (attrValue !== null) {\n if (meta.options.type === Number) initialVal = Number(attrValue);\n else if (meta.options.type === Boolean) initialVal = true;\n else if (meta.options.type === Object) {\n try {\n initialVal = JSON.parse(attrValue);\n } catch (e) {}\n }\n }\n\n this._internalStates.set(key, initialVal);\n Object.defineProperty(this, key, {\n get: () => this._internalStates.get(key),\n set: newVal => {\n if (this._internalStates.get(key) === newVal) return;\n this._internalStates.set(key, newVal);\n if (typeof (this as any)._updateState === 'function') (this as any)._updateState(attrName);\n // \uAC1D\uCCB4/\uBC30\uC5F4\uC740 setAttribute\uB85C \uBC18\uC601\uD558\uC9C0 \uC54A\uC74C - attributeChangedCallback \uBB34\uD55C\uB8E8\uD504 \uBC29\uC9C0\n if (!meta.options.disableReflect && this.setAttribute && typeof newVal !== 'object') {\n if (newVal === null || newVal === undefined || newVal === false) this.removeAttribute(attrName);\n else this.setAttribute(attrName, String(newVal));\n }\n },\n enumerable: true,\n configurable: true\n });\n });\n }\n\n const innerHtmlList = getInnerHtmlMetadataList(this);\n if (innerHtmlList?.some(it => it.options.useShadow === true) && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n }\n\n private _isSyncing = false;\n\n private _syncDecorators() {\n if (this._isSyncing) return;\n this._isSyncing = true;\n try {\n this._buildStateMap();\n this._syncEventListenersAndQueries();\n } finally {\n this._isSyncing = false;\n }\n }\n\n private _syncEventListenersAndQueries() {\n const getSearchRoots = (rootOption?: string): Node[] => {\n const roots: Node[] = [];\n if (rootOption === 'shadow') {\n if (this.shadowRoot) roots.push(this.shadowRoot);\n } else if (rootOption === 'light') {\n roots.push(this as any as Node);\n } else if (rootOption === 'all') {\n if (this.shadowRoot) roots.push(this.shadowRoot);\n roots.push(this as any as Node);\n } else {\n roots.push(this.shadowRoot || (this as any as Node));\n }\n return roots;\n };\n\n const queryMetadata = getQueryMetadata(this);\n if (queryMetadata) {\n queryMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const searchRoots = getSearchRoots(it.options.root);\n let foundEl: Element | null = null;\n for (const root of searchRoots) {\n foundEl = it.selector ? (root as HTMLElement).querySelector(it.selector) : (this as any as Element);\n if (foundEl) break;\n }\n if (foundEl) {\n let bound = this._boundElements.get(foundEl);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(foundEl, bound);\n }\n if (!bound.has(it.propertyKey)) {\n (this as any)[it.propertyKey](foundEl);\n bound.add(it.propertyKey);\n }\n }\n });\n }\n\n const queryAllMetadata = getQueryAllMetadata(this);\n if (queryAllMetadata) {\n queryAllMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const searchRoots = getSearchRoots(it.options.root);\n const allElements: Element[] = [];\n searchRoots.forEach(root => {\n const found = it.selector ? (root as HTMLElement).querySelectorAll(it.selector) : [this as any as Element];\n allElements.push(...Array.from(found));\n });\n (this as any)[it.propertyKey](allElements);\n });\n }\n\n const eventListeners = getAddEventListenerMetadata(this);\n if (eventListeners) {\n eventListeners.forEach(it => {\n const { query, type, root: rootOption, ...options } = it.options;\n const searchRoots = getSearchRoots(rootOption);\n searchRoots.forEach(root => {\n const targetElements = query ? (root as HTMLElement).querySelectorAll(query) : [this as any as Element];\n targetElements.forEach(targetElement => {\n if (targetElement) {\n let bound = this._boundElements.get(targetElement);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(targetElement, bound);\n }\n const eventKey = `event:${String(it.propertyKey)}:${type}`;\n if (!bound.has(eventKey)) {\n const handler = (event: any) => {\n if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (it.options.stopPropagation) event.stopPropagation();\n if (it.options.preventDefault) event.preventDefault();\n (this as any)[it.propertyKey](event, targetElement);\n };\n targetElement.addEventListener(type, handler, options);\n bound.add(eventKey);\n if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });\n const addEventMethods = getLifecycleMetadata(this, ON_ADD_EVENT_LISTENER_METADATA_KEY);\n addEventMethods?.forEach((m: string | symbol) => {\n if (typeof (this as any)[m] === 'function') (this as any)[m](targetElement, type, handler);\n });\n }\n }\n });\n });\n });\n }\n }\n\n private _buildStateMap() {\n const scan = (root: Node) => {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);\n let node: Node | null = null;\n while ((node = walker.nextNode())) {\n if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, 'text');\n else if (node.nodeType === Node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n\n const alias = el.getAttribute('as');\n if (alias && !this._externalSources.has(alias)) {\n this._externalSources.set(alias, el);\n const aliasKey = `alias-event:${alias}`;\n let bound = this._boundElements.get(el);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(el, bound);\n }\n if (!bound.has(aliasKey)) {\n el.addEventListener(STATE_CHANGE_EVENT, () => this._updateState(alias));\n bound.add(aliasKey);\n }\n }\n\n Array.from(el.attributes).forEach(attr => {\n if (attr.name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(attr.name)) {\n const eventName = attr.name.substring(7);\n if (eventName === 'connected') {\n const eventKey = `attr-once:${attr.name}`;\n let bound = this._boundElements.get(el);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(el, bound);\n }\n if (!bound.has(eventKey)) {\n const script = el.getAttribute(attr.name);\n if (script) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(el);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n new Function('event', '$data', '$host', '$hosts', '$firstHost', '$lastHost', ...SWC_DOM_HELPER_KEYS, script).call(el, null, null, $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPER_VALS());\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attr.name} script:`, e);\n }\n }\n bound.add(eventKey);\n }\n return;\n }\n\n const eventKey = `attr-event:${attr.name}`;\n let bound = this._boundElements.get(el);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(el, bound);\n }\n if (!bound.has(eventKey)) {\n const handler = (event: any) => {\n const rawScript = el.getAttribute(attr.name);\n if (rawScript) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(el);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n new Function('event', '$data', '$host', '$hosts', '$firstHost', '$lastHost', ...SWC_DOM_HELPER_KEYS, rawScript)\n .call(el, event, (event as CustomEvent).detail, $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPER_VALS());\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attr.name} script:`, e);\n }\n }\n };\n el.addEventListener(eventName, handler);\n\n bound.add(eventKey);\n if (config.autoRemoveEventListeners) this._activeListeners.push({ el, type: eventName, handler });\n }\n }\n this._parseAndBind(attr, 'attribute', el);\n });\n\n // --- Scope Protection: Don't scan inside child SWC components ---\n // is \uC5B4\uD2B8\uB9AC\uBDF0\uD2B8 \uBC29\uC2DD \uCEE4\uC2A4\uD140 \uC5D8\uB9AC\uBA3C\uD2B8\uB3C4 \uD3EC\uD568 (swc-for-of-*, swc-if-* \uB4F1)\n const isSwcChild = (el as any)._swcId\n || getElementConfig(el.constructor)\n || (el.getAttribute('is')?.startsWith('swc-') ?? false);\n if (isSwcChild) {\n const next = walker.nextSibling();\n if (!next) break;\n node = next;\n if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, 'text');\n }\n }\n }\n };\n if (this.shadowRoot) scan(this.shadowRoot);\n scan(this as any as Node);\n }\n\n private _parseAndBind(node: Node | Attr, type: 'text' | 'attribute', owner?: HTMLElement) {\n const tplKey = `__swc_original_${this._swcId}`;\n const isAlreadyBound = (node as any).__swc_bound_ids?.has(this._swcId);\n const content = (node as any)[tplKey] || node.textContent || '';\n const matches = Array.from(content.matchAll(/{{(.*?)}}/g)) as any[];\n if (matches.length === 0 || isAlreadyBound) return;\n\n matches.forEach(match => {\n const fullPath = (match[1] as string).trim();\n const rootName = fullPath.split('.')[0];\n const isState = stateList?.some(s => s.options.name === rootName);\n const isAttr = attributePropsList?.some(a => a.options.name === rootName);\n const isLogicKey = (this as any)._asKey === rootName || (this as any)._asIndexKey === rootName;\n const isExternal = this._externalSources.has(rootName);\n const isSelfAlias = this.getAttribute('as') === rootName;\n const isInstanceProp = rootName in this;\n if (!isState && !isAttr && !isLogicKey && !isExternal && !isSelfAlias && !isInstanceProp) return;\n\n if (!this._stateBindings.has(rootName)) this._stateBindings.set(rootName, []);\n if (!(node as any)[tplKey]) (node as any)[tplKey] = content;\n if (!(node as any).__swc_bound_ids) (node as any).__swc_bound_ids = new Set();\n (node as any).__swc_bound_ids.add(this._swcId);\n this._stateBindings.get(rootName)!.push({ node, type, owner, path: fullPath });\n this._updateState(rootName);\n });\n }\n\n private _isUpdatingState = false;\n\n private _updateState(stateName: string) {\n if (!this._stateBindings) return;\n if (this._isUpdatingState) return;\n this._isUpdatingState = true;\n try {\n this._executeBindingUpdate(stateName);\n const selfAlias = this.getAttribute('as');\n if (selfAlias && selfAlias !== stateName) this._executeBindingUpdate(selfAlias);\n this.dispatchEvent(new CustomEvent(STATE_CHANGE_EVENT, { bubbles: true, composed: true }));\n } finally {\n this._isUpdatingState = false;\n }\n }\n\n private _executeBindingUpdate(stateName: string) {\n const bindings = this._stateBindings.get(stateName);\n if (!bindings) return;\n const tplKey = `__swc_original_${this._swcId}`;\n bindings.forEach(bin => {\n let text = (bin.node as any)[tplKey];\n if (!text) return;\n const matches = Array.from(text.matchAll(/{{(.*?)}}/g)) as RegExpMatchArray[];\n let updatedText = text;\n for (const match of matches) {\n const path = match[1].trim();\n const root = path.split('.')[0];\n let val: any = undefined;\n let current: HTMLElement | null = this as any as HTMLElement;\n while (current) {\n const currentNewClass = current as any;\n if (current.getAttribute('as') === root) {\n val = SwcUtils.getValueByPath(current, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== SWC_NOT_FOUND) break;\n }\n const externalSource = currentNewClass._externalSources?.get(root);\n if (externalSource) {\n val = SwcUtils.getValueByPath(externalSource, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== SWC_NOT_FOUND) break;\n }\n const cStates = getStateMetadataList(current.constructor);\n const cAttrs = getAttributeMetadataList(current.constructor);\n const sMeta = cStates?.find(s => s.options.name === root);\n const aMeta = cAttrs?.find(a => a.options.name === root);\n if (sMeta || aMeta) {\n // \uD504\uB85C\uD37C\uD2F0 \uD0A4\uB85C \uC778\uC2A4\uD134\uC2A4\uC5D0\uC11C \uB8E8\uD2B8 \uAC12\uC744 \uBA3C\uC800 \uAC00\uC838\uC628 \uB4A4 \uB098\uBA38\uC9C0 \uACBD\uB85C\uB97C \uD0D0\uC0C9\n const propKey = sMeta ? String(sMeta.propertyKey) : String(aMeta!.propertyKey);\n const rootVal = (current as any)[propKey];\n const subPath = path.split('.').slice(1).join('.');\n if (subPath) {\n // superUser.name \u2192 rootVal = superUser \uAC1D\uCCB4, subPath = \"name\"\n val = SwcUtils.getValueByPath(rootVal, subPath, subPath.split('.')[0]);\n if (val === SWC_NOT_FOUND) {\n // \uB2E8\uC21C \uC810 \uACBD\uB85C \uC9C1\uC811 \uC811\uADFC\n const parts = subPath.split('.');\n let cur = rootVal;\n for (const p of parts) {\n if (cur === null || cur === undefined) { cur = SWC_NOT_FOUND; break; }\n cur = cur[p];\n }\n if (cur !== undefined && cur !== SWC_NOT_FOUND) val = cur;\n }\n } else {\n // \uB8E8\uD2B8 \uC790\uCCB4\uAC00 \uAC12 (e.g. {{superUser}} \uC804\uCCB4)\n val = rootVal;\n }\n if (val !== SWC_NOT_FOUND && val !== undefined) break;\n }\n\n // Fallback: check raw property on instance even if not @state\n if (root in current) {\n val = SwcUtils.getValueByPath(current, path, root);\n if (val !== SWC_NOT_FOUND) break;\n }\n\n current = current.parentElement || (current.getRootNode() as any).host;\n }\n if (val !== SWC_NOT_FOUND && val !== undefined) {\n const strVal = val === null ? '' : typeof val === 'object' ? JSON.stringify(val) : String(val);\n updatedText = updatedText.replace(match[0], strVal);\n if (bin.type === 'attribute' && bin.owner) {\n const attrName = (bin.node as Attr).name;\n const ownerAttrs = getAttributeMetadataList(bin.owner.constructor);\n const attrMeta = ownerAttrs?.find(a => a.options.name === attrName);\n const propName = attrMeta ? String(attrMeta.propertyKey) : attrName.replace(/-([a-z])/g, g => g[1].toUpperCase());\n\n if (val === null || val === undefined) {\n bin.owner.removeAttribute(attrName);\n if (propName in bin.owner) (bin.owner as any)[propName] = val;\n } else {\n if (propName in bin.owner) (bin.owner as any)[propName] = val;\n bin.owner.setAttribute(attrName, updatedText);\n if ((attrName === 'value' || attrName === 'checked') && bin.owner.tagName.match(/INPUT|TEXTAREA|SELECT/)) {\n (bin.owner as any)[attrName] = updatedText;\n }\n }\n }\n }\n }\n if (bin.type === 'text') bin.node.textContent = updatedText;\n });\n }\n\n disconnectedCallback() {\n this._executeSwcScript('swc-on-before-disconnected');\n const bMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (this._observer) this._observer.disconnect();\n if (config.autoRemoveEventListeners) {\n this._activeListeners.forEach(({ el, type, handler, options }) => el.removeEventListener(type, handler, options));\n this._activeListeners = [];\n }\n if (super.disconnectedCallback) super.disconnectedCallback();\n const aMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n this._executeSwcScript('swc-on-after-disconnected');\n }\n\n adoptedCallback() {\n this._executeSwcScript('swc-on-before-adopted');\n const bMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (super.adoptedCallback) super.adoptedCallback();\n const aMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_AFTER_ADOPTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n this._executeSwcScript('swc-on-after-adopted');\n }\n\n async connectedCallback() {\n this._executeSwcScript('swc-on-before-connected');\n const bMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (typeof (this as any).initCore === 'function') (this as any).initCore();\n const iHtmlList = getInnerHtmlMetadataList(this);\n let sContent = '';\n let lContent = '';\n if (iHtmlList) {\n for (const meta of iHtmlList) {\n const result = await (this as any)[meta.propertyKey]();\n if (result !== undefined) {\n if (meta.options.useShadow === true) sContent += result;\n else lContent += result;\n }\n }\n }\n if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;\n if (lContent) this.innerHTML = lContent;\n (this as any)._syncDecorators();\n\n const isManagedByParent = !!SwcUtils.findNearestSwcHost(this as any);\n\n if (!isManagedByParent) {\n Array.from(this.attributes as any).forEach((attr: any) => {\n if (attr.name.startsWith('swc-on-') && swcLifecycleAttributes.indexOf(attr.name) === -1) {\n const eventName = attr.name.substring(7);\n if (eventName === 'connected') {\n const eventKey = `host-attr-once:${attr.name}`;\n let bound = this._boundElements.get(this as any);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(this as any, bound);\n }\n if (!bound.has(eventKey)) {\n const script = (this as any).getAttribute(attr.name);\n if (script) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(this as any);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n new Function('event', '$data', '$host', '$hosts', '$firstHost', '$lastHost', ...SWC_DOM_HELPER_KEYS, script).call(this, null, null, $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPER_VALS());\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attr.name} script:`, e);\n }\n }\n bound.add(eventKey);\n }\n return;\n }\n\n const eventKey = `host-attr-event:${attr.name}`;\n let bound = this._boundElements.get(this as any);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(this as any, bound);\n }\n\n if (!bound.has(eventKey)) {\n const handler = (event: any) => {\n const script = (this as any).getAttribute(attr.name);\n if (script) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(this as any);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n new Function('event', '$data', '$host', '$hosts', '$firstHost', '$lastHost', ...SWC_DOM_HELPER_KEYS, script)\n .call(this, event, (event as CustomEvent).detail, $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPER_VALS());\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attr.name} script:`, e);\n }\n }\n };\n this.addEventListener(eventName, handler);\n\n bound.add(eventKey);\n if (config.autoRemoveEventListeners) this._activeListeners.push({ el: this as any, type: eventName, handler });\n }\n }\n });\n }\n\n this._observer = new MutationObserver(() => (this as any)._syncDecorators());\n this._observer.observe(this.shadowRoot || this, { childList: true, subtree: true });\n if (super.connectedCallback) await super.connectedCallback();\n const aMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_AFTER_CONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n this._executeSwcScript('swc-on-after-connected');\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (super.attributeChangedCallback) super.attributeChangedCallback(name, oldValue, newValue);\n if (attributePropsList) {\n attributePropsList.forEach(meta => {\n if (meta.options.name === name) {\n const current = (this as any)[meta.propertyKey];\n // \uAC1D\uCCB4/\uBC30\uC5F4 \uD0C0\uC785\uC740 attributeChangedCallback\uC5D0\uC11C setter\uB97C \uC7AC\uD638\uCD9C\uD558\uC9C0 \uC54A\uC74C\n // (setter\uC5D0\uC11C setAttribute\uB97C \uD558\uC9C0 \uC54A\uC73C\uBBC0\uB85C \uC774 \uACBD\uB85C\uB85C \uB4E4\uC5B4\uC62C \uC77C\uC774 \uC5C6\uACE0,\n // \uC678\uBD80\uC5D0\uC11C attribute\uB97C \uC9C1\uC811 \uBC14\uAFB8\uB294 \uACBD\uC6B0\uB9CC \uCC98\uB9AC)\n if (typeof current === 'object' && current !== null) return;\n if (String(current) !== String(newValue)) (this as any)[meta.propertyKey] = newValue;\n }\n });\n }\n if (typeof (this as any)._updateState === 'function') (this as any)._updateState(name);\n const aMethodsMap = getLifecycleMetadata(constructor, ON_ATTRIBUTE_CHANGED_METADATA_KEY) as Map<string, (string | symbol)[]>;\n const mKeys = aMethodsMap?.get(name);\n if (mKeys && Array.isArray(mKeys))\n mKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n if (emitCustomEventList) {\n const eMeta = emitCustomEventList.find(it => it.options.attributeName === name);\n if (eMeta) {\n const eType = eMeta.options.type;\n const oHandler = this._emitHandlers.get(eType);\n if (oHandler) this.removeEventListener(eType, oHandler);\n if (newValue) {\n const nHandler = (e: Event) => {\n new Function('event', '$data', newValue).call(this, e, (e as CustomEvent).detail);\n };\n this.addEventListener(eType, nHandler);\n this._emitHandlers.set(eType, nHandler);\n }\n }\n }\n const wMethodsKeys = aMethodsMap?.get(ATTRIBUTE_CHANGED_WILDCARD);\n if (wMethodsKeys && Array.isArray(wMethodsKeys))\n wMethodsKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n this._executeSwcScript('swc-on-attribute-changed', { $new: newValue, $old: oldValue, $name: name });\n }\n };\n\n const registry = config.customElementRegistry || (typeof customElements !== 'undefined' ? customElements : undefined);\n if (registry && !registry.get(config.name)) {\n const options = config.extends ? { extends: config.extends } : undefined;\n registry.define(config.name, NewClass as any, options);\n }\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, NewClass);\n return NewClass as any;\n };\n\nexport const getElementConfig = (target: any): ElementConfig | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\nimport { getInnerHtmlMetadataList } from './innerHtml';\nimport { getQueryMetadata } from './query';\nimport { getQueryAllMetadata } from './queryAll';\nimport { getAddEventListenerMetadata } from './addEventListener';\nimport { getLifecycleMetadata, ON_BEFORE_CONNECTED_METADATA_KEY, ON_AFTER_CONNECTED_METADATA_KEY, ON_BEFORE_DISCONNECTED_METADATA_KEY, ON_AFTER_DISCONNECTED_METADATA_KEY, ON_BEFORE_ADOPTED_METADATA_KEY, ON_AFTER_ADOPTED_METADATA_KEY, ON_ADD_EVENT_LISTENER_METADATA_KEY, ON_ATTRIBUTE_CHANGED_METADATA_KEY, ATTRIBUTE_CHANGED_WILDCARD, getMutationSubscribeMetadataList } from './lifecycles';\nimport { getAttributeMetadataList } from './attribute';\nimport { getStateMetadataList } from './state';\nimport { getEmitCustomEventMetadataList } from './emitCustomEvent';\nimport { SwcUtils, SWC_NOT_FOUND } from '../utils/Utils';\n\nexport interface ElementConfig {\n name: string;\n extends?: string;\n observedAttributes?: string[];\n customElementRegistry?: CustomElementRegistry;\n autoRemoveEventListeners?: boolean;\n window?: Window;\n}\n\nexport const ELEMENT_CONFIG_KEY = Symbol('simple-web-component:element-config');\nexport const STATE_CHANGE_EVENT = 'swc:state-change';\n\n// --- \uD658\uACBD \uCD08\uAE30\uD654 \uD5EC\uD37C ---\n\nconst HTML_TAG_ENTRIES: [string, string][] = [\n ['HTMLAnchorElement', 'a'], ['HTMLAreaElement', 'area'], ['HTMLAudioElement', 'audio'],\n ['HTMLBaseElement', 'base'], ['HTMLButtonElement', 'button'], ['HTMLCanvasElement', 'canvas'],\n ['HTMLDataElement', 'data'], ['HTMLDataListElement', 'datalist'], ['HTMLDetailsElement', 'details'],\n ['HTMLDialogElement', 'dialog'], ['HTMLDivElement', 'div'], ['HTMLDListElement', 'dl'],\n ['HTMLEmbedElement', 'embed'], ['HTMLFieldSetElement', 'fieldset'], ['HTMLFormElement', 'form'],\n ['HTMLHRElement', 'hr'], ['HTMLIFrameElement', 'iframe'], ['HTMLImageElement', 'img'],\n ['HTMLInputElement', 'input'], ['HTMLLabelElement', 'label'], ['HTMLLegendElement', 'legend'],\n ['HTMLLIElement', 'li'], ['HTMLLinkElement', 'link'], ['HTMLMapElement', 'map'],\n ['HTMLMetaElement', 'meta'], ['HTMLMeterElement', 'meter'], ['HTMLModElement', 'del'],\n ['HTMLObjectElement', 'object'], ['HTMLOListElement', 'ol'], ['HTMLOptGroupElement', 'optgroup'],\n ['HTMLOptionElement', 'option'], ['HTMLOutputElement', 'output'], ['HTMLParagraphElement', 'p'],\n ['HTMLParamElement', 'param'], ['HTMLPictureElement', 'picture'], ['HTMLPreElement', 'pre'],\n ['HTMLProgressElement', 'progress'], ['HTMLQuoteElement', 'blockquote'], ['HTMLScriptElement', 'script'],\n ['HTMLSelectElement', 'select'], ['HTMLSlotElement', 'slot'], ['HTMLSourceElement', 'source'],\n ['HTMLSpanElement', 'span'], ['HTMLStyleElement', 'style'], ['HTMLTableElement', 'table'],\n ['HTMLTableSectionElement', 'tbody'], ['HTMLTableCellElement', 'td'], ['HTMLTemplateElement', 'template'],\n ['HTMLTextAreaElement', 'textarea'], ['HTMLTimeElement', 'time'], ['HTMLTitleElement', 'title'],\n ['HTMLTableRowElement', 'tr'], ['HTMLTrackElement', 'track'], ['HTMLUListElement', 'ul'],\n ['HTMLVideoElement', 'video'], ['HTMLHeadingElement', 'h1'],\n];\n\nfunction buildEnv(configWindow?: Window) {\n const win: any = configWindow || (typeof window !== 'undefined' ? window : undefined);\n const doc: Document = win?.document;\n\n const builtInTagMap = new Map<any, string>();\n for (const [cls, tag] of HTML_TAG_ENTRIES) {\n if (win?.[cls]) builtInTagMap.set(win[cls], tag);\n }\n\n const domHelpers = {\n $d: doc,\n $w: win,\n $q: (sel: string, root?: Element | Document | ShadowRoot) => (root ?? doc).querySelector(sel),\n $qa: (sel: string, root?: Element | Document | ShadowRoot) => Array.from((root ?? doc).querySelectorAll(sel)),\n $qi: (id: string, root?: Document | ShadowRoot) => (root ?? doc).getElementById(id),\n } as const;\n\n return { win, doc, builtInTagMap, domHelpers };\n}\n\nexport const elementDefine =\n (inConfig: ElementConfig | string): ClassDecorator =>\n (constructor: any) => {\n const config: ElementConfig = typeof inConfig === 'string' ? { name: inConfig } : inConfig;\n const { win, doc, builtInTagMap: BUILT_IN_TAG_MAP, domHelpers: SWC_DOM_HELPERS } = buildEnv(config.window);\n const SWC_DOM_HELPER_KEYS = Object.keys(SWC_DOM_HELPERS) as (keyof typeof SWC_DOM_HELPERS)[];\n const SWC_DOM_HELPER_VALS = () => SWC_DOM_HELPER_KEYS.map(k => (SWC_DOM_HELPERS as any)[k]);\n\n let extendsTagName = config.extends;\n if (!extendsTagName) {\n let proto = Object.getPrototypeOf(constructor);\n while (proto && proto !== HTMLElement && proto !== Function.prototype) {\n extendsTagName = BUILT_IN_TAG_MAP.get(proto);\n if (extendsTagName) break;\n proto = Object.getPrototypeOf(proto);\n }\n }\n\n const attributePropsList = getAttributeMetadataList(constructor);\n const emitCustomEventList = getEmitCustomEventMetadataList(constructor);\n const stateList = getStateMetadataList(constructor);\n const observedFromProps = attributePropsList ? attributePropsList.map(it => it.options.name!) : [];\n const observedFromEmits = emitCustomEventList ? emitCustomEventList.map(it => it.options.attributeName!) : [];\n const swcLifecycleAttributes = ['swc-on-constructor', 'swc-on-before-connected', 'swc-on-after-connected', 'swc-on-before-disconnected', 'swc-on-after-disconnected', 'swc-on-before-adopted', 'swc-on-after-adopted', 'swc-on-attribute-changed'];\n const mergedObservedAttributes = [...new Set([...(config.observedAttributes ?? []), ...observedFromProps, ...observedFromEmits, ...swcLifecycleAttributes])];\n\n const NewClass = class extends (constructor as any) {\n private _swcId = Math.random().toString(36).substring(2, 11);\n private _observer: MutationObserver | null = null;\n private _shadowObserver: MutationObserver | null = null;\n private _boundElements = new WeakMap<Element, Set<string | symbol>>();\n private _activeListeners: Array<{ el: Element | HTMLElement; type: string; handler: EventListener; options?: any }> = [];\n private _emitHandlers = new Map<string, EventListener>();\n private _stateBindings = new Map<string, any[]>();\n private _internalStates = new Map<string | symbol, any>();\n private _externalSources = new Map<string, HTMLElement>();\n\n // name\u2192value \uCEE8\uD14D\uC2A4\uD2B8 \uBC18\uD658 (applyData\uC758 hostContext\uC6A9)\n _getHostContext(): Record<string, any> {\n const ctx: Record<string, any> = {};\n if (stateList) {\n stateList.forEach(meta => {\n const name = meta.options.name!;\n const val = this._internalStates.get(meta.propertyKey);\n ctx[name] = val;\n });\n }\n if (attributePropsList) {\n attributePropsList.forEach(meta => {\n const name = meta.options.name!;\n const val = this._internalStates.get(meta.propertyKey);\n ctx[name] = val;\n });\n }\n return ctx;\n }\n\n static get observedAttributes() {\n return mergedObservedAttributes;\n }\n\n private _executeSwcScript(attrName: string, extraArgs: Record<string, any> = {}) {\n const script = this.getAttribute(attrName);\n if (script) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(this as any);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n const args = { $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPERS, ...extraArgs };\n const argNames = Object.keys(args);\n const argValues = Object.values(args);\n new Function(...argNames, script).apply(this, argValues);\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attrName} script:`, e);\n }\n }\n }\n\n constructor(...args: any[]) {\n super(...args);\n this._executeSwcScript('swc-on-constructor');\n\n if (stateList) {\n stateList.forEach(meta => {\n const key = meta.propertyKey;\n const stateName = meta.options.name!;\n const initialVal = (this as any)[key];\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(initialVal, () => this._updateState(stateName))\n );\n Object.defineProperty(this, key, {\n get: () => this._internalStates.get(key),\n set: newVal => {\n if (this._internalStates.get(key) === newVal) return;\n this._internalStates.set(\n key,\n SwcUtils.createReactiveProxy(newVal, () => this._updateState(stateName))\n );\n this._updateState(stateName);\n },\n enumerable: true,\n configurable: true\n });\n });\n }\n\n if (attributePropsList) {\n attributePropsList.forEach(meta => {\n const key = meta.propertyKey;\n const attrName = meta.options.name!;\n const attrValue = this.getAttribute(attrName);\n let initialVal = attrValue !== null ? attrValue : (this as any)[key];\n if (initialVal === undefined) initialVal = null;\n\n if (attrValue !== null) {\n if (meta.options.type === Number) initialVal = Number(attrValue);\n else if (meta.options.type === Boolean) initialVal = true;\n else if (meta.options.type === Object) {\n try {\n initialVal = JSON.parse(attrValue);\n } catch (e) {}\n }\n }\n\n this._internalStates.set(key, initialVal);\n Object.defineProperty(this, key, {\n get: () => this._internalStates.get(key),\n set: newVal => {\n if (this._internalStates.get(key) === newVal) return;\n this._internalStates.set(key, newVal);\n if (typeof (this as any)._updateState === 'function') (this as any)._updateState(attrName);\n // \uAC1D\uCCB4/\uBC30\uC5F4\uC740 setAttribute\uB85C \uBC18\uC601\uD558\uC9C0 \uC54A\uC74C - attributeChangedCallback \uBB34\uD55C\uB8E8\uD504 \uBC29\uC9C0\n if (!meta.options.disableReflect && this.setAttribute && typeof newVal !== 'object') {\n if (newVal === null || newVal === undefined || newVal === false) this.removeAttribute(attrName);\n else this.setAttribute(attrName, String(newVal));\n }\n },\n enumerable: true,\n configurable: true\n });\n });\n }\n\n const innerHtmlList = getInnerHtmlMetadataList(this);\n if (innerHtmlList?.some(it => it.options.useShadow === true) && !this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n }\n\n private _isSyncing = false;\n\n private _syncDecorators() {\n if (this._isSyncing) return;\n this._isSyncing = true;\n try {\n this._buildStateMap();\n this._syncEventListenersAndQueries();\n } finally {\n this._isSyncing = false;\n }\n }\n\n private _syncEventListenersAndQueries() {\n const getSearchRoots = (rootOption?: string): Node[] => {\n const roots: Node[] = [];\n if (rootOption === 'shadow') {\n if (this.shadowRoot) roots.push(this.shadowRoot);\n } else if (rootOption === 'light') {\n roots.push(this as any as Node);\n } else if (rootOption === 'all') {\n if (this.shadowRoot) roots.push(this.shadowRoot);\n roots.push(this as any as Node);\n } else {\n roots.push(this.shadowRoot || (this as any as Node));\n }\n return roots;\n };\n\n const queryMetadata = getQueryMetadata(this);\n if (queryMetadata) {\n queryMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const searchRoots = getSearchRoots(it.options.root);\n let foundEl: Element | null = null;\n for (const root of searchRoots) {\n foundEl = it.selector ? (root as HTMLElement).querySelector(it.selector) : (this as any as Element);\n if (foundEl) break;\n }\n if (foundEl) {\n let bound = this._boundElements.get(foundEl);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(foundEl, bound);\n }\n if (!bound.has(it.propertyKey)) {\n (this as any)[it.propertyKey](foundEl);\n bound.add(it.propertyKey);\n }\n }\n });\n }\n\n const queryAllMetadata = getQueryAllMetadata(this);\n if (queryAllMetadata) {\n queryAllMetadata\n .filter(it => it.isMethod)\n .forEach(it => {\n const searchRoots = getSearchRoots(it.options.root);\n const allElements: Element[] = [];\n searchRoots.forEach(root => {\n const found = it.selector ? (root as HTMLElement).querySelectorAll(it.selector) : [this as any as Element];\n allElements.push(...Array.from(found));\n });\n (this as any)[it.propertyKey](allElements);\n });\n }\n\n const eventListeners = getAddEventListenerMetadata(this);\n if (eventListeners) {\n eventListeners.forEach(it => {\n const { query, type, root: rootOption, ...options } = it.options;\n const searchRoots = getSearchRoots(rootOption);\n searchRoots.forEach(root => {\n const targetElements = query ? (root as HTMLElement).querySelectorAll(query) : [this as any as Element];\n targetElements.forEach(targetElement => {\n if (targetElement) {\n let bound = this._boundElements.get(targetElement);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(targetElement, bound);\n }\n const eventKey = `event:${String(it.propertyKey)}:${type}`;\n if (!bound.has(eventKey)) {\n const handler = (event: any) => {\n if (it.options.stopImmediatePropagation) event.stopImmediatePropagation();\n if (it.options.stopPropagation) event.stopPropagation();\n if (it.options.preventDefault) event.preventDefault();\n (this as any)[it.propertyKey](event, targetElement);\n };\n targetElement.addEventListener(type, handler, options);\n bound.add(eventKey);\n if (config.autoRemoveEventListeners) this._activeListeners.push({ el: targetElement, type, handler, options });\n const addEventMethods = getLifecycleMetadata(this, ON_ADD_EVENT_LISTENER_METADATA_KEY);\n addEventMethods?.forEach((m: string | symbol) => {\n if (typeof (this as any)[m] === 'function') (this as any)[m](targetElement, type, handler);\n });\n }\n }\n });\n });\n });\n }\n }\n\n private _buildStateMap() {\n const scan = (root: Node) => {\n const walker = doc.createTreeWalker(root, (win as any).NodeFilter.SHOW_ELEMENT | (win as any).NodeFilter.SHOW_TEXT);\n let node: Node | null = null;\n while ((node = walker.nextNode())) {\n if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, 'text');\n else if (node.nodeType === Node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n\n const alias = el.getAttribute('as');\n if (alias && !this._externalSources.has(alias)) {\n this._externalSources.set(alias, el);\n const aliasKey = `alias-event:${alias}`;\n let bound = this._boundElements.get(el);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(el, bound);\n }\n if (!bound.has(aliasKey)) {\n el.addEventListener(STATE_CHANGE_EVENT, () => this._updateState(alias));\n bound.add(aliasKey);\n }\n }\n\n Array.from(el.attributes).forEach(attr => {\n if (attr.name.startsWith('swc-on-') && !swcLifecycleAttributes.includes(attr.name)) {\n const eventName = attr.name.substring(7);\n if (eventName === 'connected') {\n const eventKey = `attr-once:${attr.name}`;\n let bound = this._boundElements.get(el);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(el, bound);\n }\n if (!bound.has(eventKey)) {\n const script = el.getAttribute(attr.name);\n if (script) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(el);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n new Function('event', '$data', '$host', '$hosts', '$firstHost', '$lastHost', ...SWC_DOM_HELPER_KEYS, script).call(el, null, null, $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPER_VALS());\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attr.name} script:`, e);\n }\n }\n bound.add(eventKey);\n }\n return;\n }\n\n const eventKey = `attr-event:${attr.name}`;\n let bound = this._boundElements.get(el);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(el, bound);\n }\n if (!bound.has(eventKey)) {\n const handler = (event: any) => {\n const rawScript = el.getAttribute(attr.name);\n if (rawScript) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(el);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n new Function('event', '$data', '$host', '$hosts', '$firstHost', '$lastHost', ...SWC_DOM_HELPER_KEYS, rawScript).call(el, event, (event as CustomEvent).detail, $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPER_VALS());\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attr.name} script:`, e);\n }\n }\n };\n el.addEventListener(eventName, handler);\n\n bound.add(eventKey);\n if (config.autoRemoveEventListeners) this._activeListeners.push({ el, type: eventName, handler });\n }\n }\n this._parseAndBind(attr, 'attribute', el);\n });\n\n // --- Scope Protection: Don't scan inside child SWC components ---\n // is \uC5B4\uD2B8\uB9AC\uBDF0\uD2B8 \uBC29\uC2DD \uCEE4\uC2A4\uD140 \uC5D8\uB9AC\uBA3C\uD2B8\uB3C4 \uD3EC\uD568 (swc-for-of-*, swc-if-* \uB4F1)\n const isSwcChild = (el as any)._swcId || getElementConfig(el.constructor) || (el.getAttribute('is')?.startsWith('swc-') ?? false);\n if (isSwcChild) {\n const next = walker.nextSibling();\n if (!next) break;\n node = next;\n if (node.nodeType === Node.TEXT_NODE) this._parseAndBind(node, 'text');\n }\n }\n }\n };\n if (this.shadowRoot) scan(this.shadowRoot);\n scan(this as any as Node);\n }\n\n private _parseAndBind(node: Node | Attr, type: 'text' | 'attribute', owner?: HTMLElement) {\n const tplKey = `__swc_original_${this._swcId}`;\n const isAlreadyBound = (node as any).__swc_bound_ids?.has(this._swcId);\n const content = (node as any)[tplKey] || node.textContent || '';\n const matches = Array.from(content.matchAll(/{{(.*?)}}/g)) as any[];\n if (matches.length === 0 || isAlreadyBound) return;\n\n matches.forEach(match => {\n const fullPath = (match[1] as string).trim();\n const rootName = fullPath.split('.')[0];\n const isState = stateList?.some(s => s.options.name === rootName);\n const isAttr = attributePropsList?.some(a => a.options.name === rootName);\n const isLogicKey = (this as any)._asKey === rootName || (this as any)._asIndexKey === rootName;\n const isExternal = this._externalSources.has(rootName);\n const isSelfAlias = this.getAttribute('as') === rootName;\n const isInstanceProp = rootName in this;\n if (!isState && !isAttr && !isLogicKey && !isExternal && !isSelfAlias && !isInstanceProp) return;\n\n if (!this._stateBindings.has(rootName)) this._stateBindings.set(rootName, []);\n if (!(node as any)[tplKey]) (node as any)[tplKey] = content;\n if (!(node as any).__swc_bound_ids) (node as any).__swc_bound_ids = new Set();\n (node as any).__swc_bound_ids.add(this._swcId);\n this._stateBindings.get(rootName)!.push({ node, type, owner, path: fullPath });\n this._updateState(rootName);\n });\n }\n\n private _isUpdatingState = false;\n\n private _updateState(stateName: string) {\n if (!this._stateBindings) return;\n if (this._isUpdatingState) return;\n this._isUpdatingState = true;\n try {\n this._executeBindingUpdate(stateName);\n const selfAlias = this.getAttribute('as');\n if (selfAlias && selfAlias !== stateName) this._executeBindingUpdate(selfAlias);\n this.dispatchEvent(new CustomEvent(STATE_CHANGE_EVENT, { bubbles: true, composed: true }));\n } finally {\n this._isUpdatingState = false;\n }\n }\n\n private _executeBindingUpdate(stateName: string) {\n const bindings = this._stateBindings.get(stateName);\n if (!bindings) return;\n const tplKey = `__swc_original_${this._swcId}`;\n bindings.forEach(bin => {\n let text = (bin.node as any)[tplKey];\n if (!text) return;\n const matches = Array.from(text.matchAll(/{{(.*?)}}/g)) as RegExpMatchArray[];\n let updatedText = text;\n for (const match of matches) {\n const path = match[1].trim();\n const root = path.split('.')[0];\n let val: any = undefined;\n let current: HTMLElement | null = this as any as HTMLElement;\n while (current) {\n const currentNewClass = current as any;\n if (current.getAttribute('as') === root) {\n val = SwcUtils.getValueByPath(current, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== SWC_NOT_FOUND) break;\n }\n const externalSource = currentNewClass._externalSources?.get(root);\n if (externalSource) {\n val = SwcUtils.getValueByPath(externalSource, path.split('.').slice(1).join('.') || 'value', 'value');\n if (val !== SWC_NOT_FOUND) break;\n }\n const cStates = getStateMetadataList(current.constructor);\n const cAttrs = getAttributeMetadataList(current.constructor);\n const sMeta = cStates?.find(s => s.options.name === root);\n const aMeta = cAttrs?.find(a => a.options.name === root);\n if (sMeta || aMeta) {\n // \uD504\uB85C\uD37C\uD2F0 \uD0A4\uB85C \uC778\uC2A4\uD134\uC2A4\uC5D0\uC11C \uB8E8\uD2B8 \uAC12\uC744 \uBA3C\uC800 \uAC00\uC838\uC628 \uB4A4 \uB098\uBA38\uC9C0 \uACBD\uB85C\uB97C \uD0D0\uC0C9\n const propKey = sMeta ? String(sMeta.propertyKey) : String(aMeta!.propertyKey);\n const rootVal = (current as any)[propKey];\n const subPath = path.split('.').slice(1).join('.');\n if (subPath) {\n // superUser.name \u2192 rootVal = superUser \uAC1D\uCCB4, subPath = \"name\"\n val = SwcUtils.getValueByPath(rootVal, subPath, subPath.split('.')[0]);\n if (val === SWC_NOT_FOUND) {\n // \uB2E8\uC21C \uC810 \uACBD\uB85C \uC9C1\uC811 \uC811\uADFC\n const parts = subPath.split('.');\n let cur = rootVal;\n for (const p of parts) {\n if (cur === null || cur === undefined) {\n cur = SWC_NOT_FOUND;\n break;\n }\n cur = cur[p];\n }\n if (cur !== undefined && cur !== SWC_NOT_FOUND) val = cur;\n }\n } else {\n // \uB8E8\uD2B8 \uC790\uCCB4\uAC00 \uAC12 (e.g. {{superUser}} \uC804\uCCB4)\n val = rootVal;\n }\n if (val !== SWC_NOT_FOUND && val !== undefined) break;\n }\n\n // Fallback: check raw property on instance even if not @state\n if (root in current) {\n val = SwcUtils.getValueByPath(current, path, root);\n if (val !== SWC_NOT_FOUND) break;\n }\n\n current = current.parentElement || (current.getRootNode() as any).host;\n }\n if (val !== SWC_NOT_FOUND && val !== undefined) {\n const strVal = val === null ? '' : typeof val === 'object' ? JSON.stringify(val) : String(val);\n updatedText = updatedText.replace(match[0], strVal);\n if (bin.type === 'attribute' && bin.owner) {\n const attrName = (bin.node as Attr).name;\n const ownerAttrs = getAttributeMetadataList(bin.owner.constructor);\n const attrMeta = ownerAttrs?.find(a => a.options.name === attrName);\n const propName = attrMeta ? String(attrMeta.propertyKey) : attrName.replace(/-([a-z])/g, g => g[1].toUpperCase());\n\n if (val === null || val === undefined) {\n bin.owner.removeAttribute(attrName);\n if (propName in bin.owner) (bin.owner as any)[propName] = val;\n } else {\n if (propName in bin.owner) (bin.owner as any)[propName] = val;\n bin.owner.setAttribute(attrName, updatedText);\n if ((attrName === 'value' || attrName === 'checked') && bin.owner.tagName.match(/INPUT|TEXTAREA|SELECT/)) {\n (bin.owner as any)[attrName] = updatedText;\n }\n }\n }\n }\n }\n if (bin.type === 'text') bin.node.textContent = updatedText;\n });\n }\n\n disconnectedCallback() {\n this._executeSwcScript('swc-on-before-disconnected');\n const bMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_BEFORE_DISCONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (this._observer) this._observer.disconnect();\n if (this._shadowObserver) this._shadowObserver.disconnect();\n if (config.autoRemoveEventListeners) {\n this._activeListeners.forEach(({ el, type, handler, options }) => el.removeEventListener(type, handler, options));\n this._activeListeners = [];\n }\n if (super.disconnectedCallback) super.disconnectedCallback();\n const aMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_AFTER_DISCONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n this._executeSwcScript('swc-on-after-disconnected');\n }\n\n adoptedCallback() {\n this._executeSwcScript('swc-on-before-adopted');\n const bMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_BEFORE_ADOPTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (super.adoptedCallback) super.adoptedCallback();\n const aMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_AFTER_ADOPTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n this._executeSwcScript('swc-on-after-adopted');\n }\n\n async connectedCallback() {\n this._executeSwcScript('swc-on-before-connected');\n const bMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_BEFORE_CONNECTED_METADATA_KEY);\n bMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n if (typeof (this as any).initCore === 'function') (this as any).initCore();\n const iHtmlList = getInnerHtmlMetadataList(this);\n let sContent = '';\n let lContent = '';\n if (iHtmlList) {\n for (const meta of iHtmlList) {\n const result = await (this as any)[meta.propertyKey]();\n if (result !== undefined) {\n if (meta.options.useShadow === true) sContent += result;\n else lContent += result;\n }\n }\n }\n if (this.shadowRoot) this.shadowRoot.innerHTML = sContent;\n if (lContent) this.innerHTML = lContent;\n (this as any)._syncDecorators();\n\n const isManagedByParent = !!SwcUtils.findNearestSwcHost(this as any);\n\n if (!isManagedByParent) {\n Array.from(this.attributes as any).forEach((attr: any) => {\n if (attr.name.startsWith('swc-on-') && swcLifecycleAttributes.indexOf(attr.name) === -1) {\n const eventName = attr.name.substring(7);\n if (eventName === 'connected') {\n const eventKey = `host-attr-once:${attr.name}`;\n let bound = this._boundElements.get(this as any);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(this as any, bound);\n }\n if (!bound.has(eventKey)) {\n const script = (this as any).getAttribute(attr.name);\n if (script) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(this as any);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n new Function('event', '$data', '$host', '$hosts', '$firstHost', '$lastHost', ...SWC_DOM_HELPER_KEYS, script).call(this, null, null, $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPER_VALS());\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attr.name} script:`, e);\n }\n }\n bound.add(eventKey);\n }\n return;\n }\n\n const eventKey = `host-attr-event:${attr.name}`;\n let bound = this._boundElements.get(this as any);\n if (!bound) {\n bound = new Set();\n this._boundElements.set(this as any, bound);\n }\n\n if (!bound.has(eventKey)) {\n const handler = (event: any) => {\n const script = (this as any).getAttribute(attr.name);\n if (script) {\n try {\n const $hosts = SwcUtils.findAllSwcHosts(this as any);\n const $firstHost = $hosts[0] || null;\n const $lastHost = $hosts[$hosts.length - 1] || null;\n const $host = $lastHost;\n new Function('event', '$data', '$host', '$hosts', '$firstHost', '$lastHost', ...SWC_DOM_HELPER_KEYS, script).call(this, event, (event as CustomEvent).detail, $host, $hosts, $firstHost, $lastHost, ...SWC_DOM_HELPER_VALS());\n } catch (e) {\n console.error(`[SWC] Failed to execute ${attr.name} script:`, e);\n }\n }\n };\n this.addEventListener(eventName, handler);\n\n bound.add(eventKey);\n if (config.autoRemoveEventListeners) this._activeListeners.push({ el: this as any, type: eventName, handler });\n }\n }\n });\n }\n\n const mutationMetaList = getMutationSubscribeMetadataList(this);\n\n const fireMutationCallbacks = (mutationList: MutationRecord[], observer: MutationObserver, root: 'light' | 'shadow') => {\n mutationMetaList?.forEach(meta => {\n const r = meta.options.root ?? 'auto';\n const matches =\n r === 'all' ||\n r === root ||\n (r === 'auto' && (this.shadowRoot ? root === 'shadow' : root === 'light'));\n if (matches && typeof (this as any)[meta.propertyKey] === 'function') {\n (this as any)[meta.propertyKey](mutationList, observer, root);\n }\n });\n };\n\n this._observer = new (win as any).MutationObserver((mutationList: MutationRecord[], observer: MutationObserver) => {\n (this as any)._syncDecorators();\n fireMutationCallbacks(mutationList, observer, 'light');\n });\n // @ts-ignore\n this._observer.observe(this as any, { childList: true, subtree: true });\n\n if (this.shadowRoot) {\n this._shadowObserver = new (win as any).MutationObserver((mutationList: MutationRecord[], observer: MutationObserver) => {\n (this as any)._syncDecorators();\n fireMutationCallbacks(mutationList, observer, 'shadow');\n });\n // @ts-ignore\n this._shadowObserver.observe(this.shadowRoot, { childList: true, subtree: true });\n }\n if (super.connectedCallback) await super.connectedCallback();\n const aMethods = getLifecycleMetadata<(string | symbol)[]>(this, ON_AFTER_CONNECTED_METADATA_KEY);\n aMethods?.forEach(m => {\n if (typeof (this as any)[m] === 'function') (this as any)[m]();\n });\n this._executeSwcScript('swc-on-after-connected');\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (super.attributeChangedCallback) super.attributeChangedCallback(name, oldValue, newValue);\n if (attributePropsList) {\n attributePropsList.forEach(meta => {\n if (meta.options.name === name) {\n const current = (this as any)[meta.propertyKey];\n // \uAC1D\uCCB4/\uBC30\uC5F4 \uD0C0\uC785\uC740 attributeChangedCallback\uC5D0\uC11C setter\uB97C \uC7AC\uD638\uCD9C\uD558\uC9C0 \uC54A\uC74C\n // (setter\uC5D0\uC11C setAttribute\uB97C \uD558\uC9C0 \uC54A\uC73C\uBBC0\uB85C \uC774 \uACBD\uB85C\uB85C \uB4E4\uC5B4\uC62C \uC77C\uC774 \uC5C6\uACE0,\n // \uC678\uBD80\uC5D0\uC11C attribute\uB97C \uC9C1\uC811 \uBC14\uAFB8\uB294 \uACBD\uC6B0\uB9CC \uCC98\uB9AC)\n if (typeof current === 'object' && current !== null) return;\n if (String(current) !== String(newValue)) (this as any)[meta.propertyKey] = newValue;\n }\n });\n }\n if (typeof (this as any)._updateState === 'function') (this as any)._updateState(name);\n const aMethodsMap = getLifecycleMetadata(constructor, ON_ATTRIBUTE_CHANGED_METADATA_KEY) as Map<string, (string | symbol)[]>;\n const mKeys = aMethodsMap?.get(name);\n if (mKeys && Array.isArray(mKeys))\n mKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n if (emitCustomEventList) {\n const eMeta = emitCustomEventList.find(it => it.options.attributeName === name);\n if (eMeta) {\n const eType = eMeta.options.type;\n const oHandler = this._emitHandlers.get(eType);\n if (oHandler) this.removeEventListener(eType, oHandler);\n if (newValue) {\n const nHandler = (e: Event) => {\n new Function('event', '$data', newValue).call(this, e, (e as CustomEvent).detail);\n };\n this.addEventListener(eType, nHandler);\n this._emitHandlers.set(eType, nHandler);\n }\n }\n }\n const wMethodsKeys = aMethodsMap?.get(ATTRIBUTE_CHANGED_WILDCARD);\n if (wMethodsKeys && Array.isArray(wMethodsKeys))\n wMethodsKeys.forEach(key => {\n if (typeof (this as any)[key] === 'function') (this as any)[key](newValue, oldValue, name);\n });\n this._executeSwcScript('swc-on-attribute-changed', { $new: newValue, $old: oldValue, $name: name });\n }\n };\n\n const registry = config.customElementRegistry || (typeof win !== 'undefined' ? win.customElements : undefined);\n if (registry && !registry.get(config.name)) {\n const options = config.extends ? { extends: config.extends } : undefined;\n registry.define(config.name, NewClass as any, options);\n }\n\n ReflectUtils.defineMetadata(ELEMENT_CONFIG_KEY, config, NewClass);\n return NewClass as any;\n };\n\nexport const getElementConfig = (target: any): ElementConfig | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["eventKey", "bound"]
7
7
  }
@@ -26,7 +26,9 @@ __export(lifecycles_exports, {
26
26
  ON_BEFORE_ADOPTED_METADATA_KEY: () => ON_BEFORE_ADOPTED_METADATA_KEY,
27
27
  ON_BEFORE_CONNECTED_METADATA_KEY: () => ON_BEFORE_CONNECTED_METADATA_KEY,
28
28
  ON_BEFORE_DISCONNECTED_METADATA_KEY: () => ON_BEFORE_DISCONNECTED_METADATA_KEY,
29
+ ON_MUTATION_SUBSCRIBE_METADATA_KEY: () => ON_MUTATION_SUBSCRIBE_METADATA_KEY,
29
30
  getLifecycleMetadata: () => getLifecycleMetadata,
31
+ getMutationSubscribeMetadataList: () => getMutationSubscribeMetadataList,
30
32
  onAddEventListener: () => onAddEventListener,
31
33
  onAdopted: () => onAdopted,
32
34
  onAfterAdopted: () => onAfterAdopted,
@@ -37,7 +39,8 @@ __export(lifecycles_exports, {
37
39
  onBeforeConnected: () => onBeforeConnected,
38
40
  onBeforeDisconnected: () => onBeforeDisconnected,
39
41
  onConnected: () => onConnected,
40
- onDisconnected: () => onDisconnected
42
+ onDisconnected: () => onDisconnected,
43
+ onMutationSubscribe: () => onMutationSubscribe
41
44
  });
42
45
  module.exports = __toCommonJS(lifecycles_exports);
43
46
  var import_ReflectUtils = require("@dooboostore/core/reflect/ReflectUtils");
@@ -49,6 +52,7 @@ const ON_BEFORE_ADOPTED_METADATA_KEY = Symbol("simple-web-component:on-before-ad
49
52
  const ON_AFTER_ADOPTED_METADATA_KEY = Symbol("simple-web-component:on-after-adopted");
50
53
  const ON_ADD_EVENT_LISTENER_METADATA_KEY = Symbol("simple-web-component:on-add-event-listener");
51
54
  const ON_ATTRIBUTE_CHANGED_METADATA_KEY = Symbol("simple-web-component:on-attribute-changed");
55
+ const ON_MUTATION_SUBSCRIBE_METADATA_KEY = Symbol("simple-web-component:on-mutation-observed");
52
56
  const ATTRIBUTE_CHANGED_WILDCARD = "*";
53
57
  function createLifecycleDecorator(metadataKey) {
54
58
  return (target, propertyKey) => {
@@ -104,4 +108,26 @@ const getLifecycleMetadata = (target, metadataKey) => {
104
108
  const constructor = target instanceof Function ? target : target.constructor;
105
109
  return import_ReflectUtils.ReflectUtils.getMetadata(metadataKey, constructor);
106
110
  };
111
+ function onMutationSubscribe(arg1, arg2, arg3) {
112
+ const register = (options, target, propertyKey) => {
113
+ const constructor = target.constructor;
114
+ let list = import_ReflectUtils.ReflectUtils.getMetadata(ON_MUTATION_SUBSCRIBE_METADATA_KEY, constructor);
115
+ if (!list) {
116
+ list = [];
117
+ import_ReflectUtils.ReflectUtils.defineMetadata(ON_MUTATION_SUBSCRIBE_METADATA_KEY, list, constructor);
118
+ }
119
+ list.push({ propertyKey, options });
120
+ };
121
+ if (arg2 !== void 0) {
122
+ register({ root: "auto" }, arg1, arg2);
123
+ return;
124
+ }
125
+ return (target, propertyKey) => {
126
+ register(arg1 || { root: "auto" }, target, propertyKey);
127
+ };
128
+ }
129
+ const getMutationSubscribeMetadataList = (target) => {
130
+ const constructor = target instanceof Function ? target : target.constructor;
131
+ return import_ReflectUtils.ReflectUtils.getMetadata(ON_MUTATION_SUBSCRIBE_METADATA_KEY, constructor);
132
+ };
107
133
  //# sourceMappingURL=lifecycles.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/lifecycles.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport const ON_BEFORE_CONNECTED_METADATA_KEY = Symbol('simple-web-component:on-before-connected');\nexport const ON_AFTER_CONNECTED_METADATA_KEY = Symbol('simple-web-component:on-after-connected');\nexport const ON_BEFORE_DISCONNECTED_METADATA_KEY = Symbol('simple-web-component:on-before-disconnected');\nexport const ON_AFTER_DISCONNECTED_METADATA_KEY = Symbol('simple-web-component:on-after-disconnected');\nexport const ON_BEFORE_ADOPTED_METADATA_KEY = Symbol('simple-web-component:on-before-adopted');\nexport const ON_AFTER_ADOPTED_METADATA_KEY = Symbol('simple-web-component:on-after-adopted');\nexport const ON_ADD_EVENT_LISTENER_METADATA_KEY = Symbol('simple-web-component:on-add-event-listener');\nexport const ON_ATTRIBUTE_CHANGED_METADATA_KEY = Symbol('simple-web-component:on-attribute-changed');\n\nexport const ATTRIBUTE_CHANGED_WILDCARD = '*';\n\nfunction createLifecycleDecorator(metadataKey: symbol): MethodDecorator {\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getMetadata<(string | symbol)[]>(metadataKey, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(metadataKey, list, constructor);\n }\n list.push(propertyKey);\n };\n}\n\nexport const onBeforeConnected = createLifecycleDecorator(ON_BEFORE_CONNECTED_METADATA_KEY);\nexport const onAfterConnected = createLifecycleDecorator(ON_AFTER_CONNECTED_METADATA_KEY);\nexport const onConnected = onAfterConnected;\n\nexport const onBeforeDisconnected = createLifecycleDecorator(ON_BEFORE_DISCONNECTED_METADATA_KEY);\nexport const onAfterDisconnected = createLifecycleDecorator(ON_AFTER_DISCONNECTED_METADATA_KEY);\nexport const onDisconnected = onAfterDisconnected;\n\nexport const onBeforeAdopted = createLifecycleDecorator(ON_BEFORE_ADOPTED_METADATA_KEY);\nexport const onAfterAdopted = createLifecycleDecorator(ON_AFTER_ADOPTED_METADATA_KEY);\nexport const onAdopted = onAfterAdopted;\n\nexport const onAddEventListener = createLifecycleDecorator(ON_ADD_EVENT_LISTENER_METADATA_KEY);\n\nexport function onAttributeChanged(attributeName: string | string[]): MethodDecorator;\nexport function onAttributeChanged(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onAttributeChanged(arg1: string | string[] | Object, arg2?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n const decorator = (attributeName: string, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let meta = ReflectUtils.getMetadata<Map<string, (string | symbol)[]>>(ON_ATTRIBUTE_CHANGED_METADATA_KEY, constructor);\n if (!meta) {\n meta = new Map<string, (string | symbol)[]>();\n ReflectUtils.defineMetadata(ON_ATTRIBUTE_CHANGED_METADATA_KEY, meta, constructor);\n }\n\n let methods = meta.get(attributeName);\n if (!methods) {\n methods = [];\n meta.set(attributeName, methods);\n }\n if (!methods.includes(propertyKey)) {\n methods.push(propertyKey);\n }\n };\n\n if (typeof arg1 === 'string') {\n return (target: Object, propertyKey: string | symbol) => {\n decorator(arg1, target, propertyKey);\n };\n } else if (Array.isArray(arg1)) {\n return (target: Object, propertyKey: string | symbol) => {\n arg1.forEach(name => decorator(name, target, propertyKey));\n };\n } else if (arg1 && arg2) {\n decorator(ATTRIBUTE_CHANGED_WILDCARD, arg1, arg2);\n }\n}\n\nexport const getLifecycleMetadata = <T = (string | symbol)[]>(target: any, metadataKey: symbol): T | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(metadataKey, constructor);\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA6B;AAEtB,MAAM,mCAAmC,OAAO,0CAA0C;AAC1F,MAAM,kCAAkC,OAAO,yCAAyC;AACxF,MAAM,sCAAsC,OAAO,6CAA6C;AAChG,MAAM,qCAAqC,OAAO,4CAA4C;AAC9F,MAAM,iCAAiC,OAAO,wCAAwC;AACtF,MAAM,gCAAgC,OAAO,uCAAuC;AACpF,MAAM,qCAAqC,OAAO,4CAA4C;AAC9F,MAAM,oCAAoC,OAAO,2CAA2C;AAE5F,MAAM,6BAA6B;AAE1C,SAAS,yBAAyB,aAAsC;AACtE,SAAO,CAAC,QAAgB,gBAAiC;AACvD,UAAM,cAAc,OAAO;AAC3B,QAAI,OAAO,iCAAa,YAAiC,aAAa,WAAW;AACjF,QAAI,CAAC,MAAM;AACT,aAAO,CAAC;AACR,uCAAa,eAAe,aAAa,MAAM,WAAW;AAAA,IAC5D;AACA,SAAK,KAAK,WAAW;AAAA,EACvB;AACF;AAEO,MAAM,oBAAoB,yBAAyB,gCAAgC;AACnF,MAAM,mBAAmB,yBAAyB,+BAA+B;AACjF,MAAM,cAAc;AAEpB,MAAM,uBAAuB,yBAAyB,mCAAmC;AACzF,MAAM,sBAAsB,yBAAyB,kCAAkC;AACvF,MAAM,iBAAiB;AAEvB,MAAM,kBAAkB,yBAAyB,8BAA8B;AAC/E,MAAM,iBAAiB,yBAAyB,6BAA6B;AAC7E,MAAM,YAAY;AAElB,MAAM,qBAAqB,yBAAyB,kCAAkC;AAItF,SAAS,mBAAmB,MAAkC,MAAwB,MAAmD;AAC9I,QAAM,YAAY,CAAC,eAAuB,QAAgB,gBAAiC;AACzF,UAAM,cAAc,OAAO;AAC3B,QAAI,OAAO,iCAAa,YAA8C,mCAAmC,WAAW;AACpH,QAAI,CAAC,MAAM;AACT,aAAO,oBAAI,IAAiC;AAC5C,uCAAa,eAAe,mCAAmC,MAAM,WAAW;AAAA,IAClF;AAEA,QAAI,UAAU,KAAK,IAAI,aAAa;AACpC,QAAI,CAAC,SAAS;AACZ,gBAAU,CAAC;AACX,WAAK,IAAI,eAAe,OAAO;AAAA,IACjC;AACA,QAAI,CAAC,QAAQ,SAAS,WAAW,GAAG;AAClC,cAAQ,KAAK,WAAW;AAAA,IAC1B;AAAA,EACF;AAEA,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO,CAAC,QAAgB,gBAAiC;AACvD,gBAAU,MAAM,QAAQ,WAAW;AAAA,IACrC;AAAA,EACF,WAAW,MAAM,QAAQ,IAAI,GAAG;AAC9B,WAAO,CAAC,QAAgB,gBAAiC;AACvD,WAAK,QAAQ,UAAQ,UAAU,MAAM,QAAQ,WAAW,CAAC;AAAA,IAC3D;AAAA,EACF,WAAW,QAAQ,MAAM;AACvB,cAAU,4BAA4B,MAAM,IAAI;AAAA,EAClD;AACF;AAEO,MAAM,uBAAuB,CAA0B,QAAa,gBAAuC;AAChH,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,iCAAa,YAAY,aAAa,WAAW;AAC1D;",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\n\nexport const ON_BEFORE_CONNECTED_METADATA_KEY = Symbol('simple-web-component:on-before-connected');\nexport const ON_AFTER_CONNECTED_METADATA_KEY = Symbol('simple-web-component:on-after-connected');\nexport const ON_BEFORE_DISCONNECTED_METADATA_KEY = Symbol('simple-web-component:on-before-disconnected');\nexport const ON_AFTER_DISCONNECTED_METADATA_KEY = Symbol('simple-web-component:on-after-disconnected');\nexport const ON_BEFORE_ADOPTED_METADATA_KEY = Symbol('simple-web-component:on-before-adopted');\nexport const ON_AFTER_ADOPTED_METADATA_KEY = Symbol('simple-web-component:on-after-adopted');\nexport const ON_ADD_EVENT_LISTENER_METADATA_KEY = Symbol('simple-web-component:on-add-event-listener');\nexport const ON_ATTRIBUTE_CHANGED_METADATA_KEY = Symbol('simple-web-component:on-attribute-changed');\nexport const ON_MUTATION_SUBSCRIBE_METADATA_KEY = Symbol('simple-web-component:on-mutation-observed');\n\nexport const ATTRIBUTE_CHANGED_WILDCARD = '*';\n\nfunction createLifecycleDecorator(metadataKey: symbol): MethodDecorator {\n return (target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getMetadata<(string | symbol)[]>(metadataKey, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(metadataKey, list, constructor);\n }\n list.push(propertyKey);\n };\n}\n\nexport const onBeforeConnected = createLifecycleDecorator(ON_BEFORE_CONNECTED_METADATA_KEY);\nexport const onAfterConnected = createLifecycleDecorator(ON_AFTER_CONNECTED_METADATA_KEY);\nexport const onConnected = onAfterConnected;\n\nexport const onBeforeDisconnected = createLifecycleDecorator(ON_BEFORE_DISCONNECTED_METADATA_KEY);\nexport const onAfterDisconnected = createLifecycleDecorator(ON_AFTER_DISCONNECTED_METADATA_KEY);\nexport const onDisconnected = onAfterDisconnected;\n\nexport const onBeforeAdopted = createLifecycleDecorator(ON_BEFORE_ADOPTED_METADATA_KEY);\nexport const onAfterAdopted = createLifecycleDecorator(ON_AFTER_ADOPTED_METADATA_KEY);\nexport const onAdopted = onAfterAdopted;\n\nexport const onAddEventListener = createLifecycleDecorator(ON_ADD_EVENT_LISTENER_METADATA_KEY);\n\nexport function onAttributeChanged(attributeName: string | string[]): MethodDecorator;\nexport function onAttributeChanged(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onAttributeChanged(arg1: string | string[] | Object, arg2?: string | symbol, arg3?: PropertyDescriptor): MethodDecorator | void {\n const decorator = (attributeName: string, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let meta = ReflectUtils.getMetadata<Map<string, (string | symbol)[]>>(ON_ATTRIBUTE_CHANGED_METADATA_KEY, constructor);\n if (!meta) {\n meta = new Map<string, (string | symbol)[]>();\n ReflectUtils.defineMetadata(ON_ATTRIBUTE_CHANGED_METADATA_KEY, meta, constructor);\n }\n\n let methods = meta.get(attributeName);\n if (!methods) {\n methods = [];\n meta.set(attributeName, methods);\n }\n if (!methods.includes(propertyKey)) {\n methods.push(propertyKey);\n }\n };\n\n if (typeof arg1 === 'string') {\n return (target: Object, propertyKey: string | symbol) => {\n decorator(arg1, target, propertyKey);\n };\n } else if (Array.isArray(arg1)) {\n return (target: Object, propertyKey: string | symbol) => {\n arg1.forEach(name => decorator(name, target, propertyKey));\n };\n } else if (arg1 && arg2) {\n decorator(ATTRIBUTE_CHANGED_WILDCARD, arg1, arg2);\n }\n}\n\nexport const getLifecycleMetadata = <T = (string | symbol)[]>(target: any, metadataKey: symbol): T | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(metadataKey, constructor);\n};\n\n// \u2500\u2500\u2500 @onMutationSubscribe \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport interface MutationSubscribeOptions {\n root?: 'light' | 'shadow' | 'all' | 'auto'; // default: 'auto'\n}\n\nexport interface MutationSubscribeMetadata {\n propertyKey: string | symbol;\n options: MutationSubscribeOptions;\n}\n\n/**\n * Called when MutationObserver detects DOM changes inside the component.\n *\n * @example\n * // Parameterless \u2014 observes auto (shadow if exists, otherwise light)\n * @onMutationObserved\n * onMutation(mutationList: MutationRecord[], observer: MutationObserver) { ... }\n *\n * // With options\n * @onMutationObserved({ root: 'shadow' })\n * onShadowMutation(mutationList: MutationRecord[], observer: MutationObserver) { ... }\n *\n * @onMutationObserved({ root: 'all' })\n * onAllMutation(mutationList: MutationRecord[], observer: MutationObserver) { ... }\n */\nexport function onMutationSubscribe(options: MutationSubscribeOptions): MethodDecorator;\nexport function onMutationSubscribe(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function onMutationSubscribe(\n arg1: MutationSubscribeOptions | Object,\n arg2?: string | symbol,\n arg3?: PropertyDescriptor\n): MethodDecorator | void {\n const register = (options: MutationSubscribeOptions, target: Object, propertyKey: string | symbol) => {\n const constructor = target.constructor;\n let list = ReflectUtils.getMetadata<MutationSubscribeMetadata[]>(ON_MUTATION_SUBSCRIBE_METADATA_KEY, constructor);\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(ON_MUTATION_SUBSCRIBE_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, options });\n };\n\n // Used as @onMutationObserved (no parentheses)\n if (arg2 !== undefined) {\n register({ root: 'auto' }, arg1 as Object, arg2);\n return;\n }\n\n // Used as @onMutationObserved({ root: 'shadow' })\n return (target: Object, propertyKey: string | symbol) => {\n register((arg1 as MutationSubscribeOptions) || { root: 'auto' }, target, propertyKey);\n };\n}\n\nexport const getMutationSubscribeMetadataList = (target: any): MutationSubscribeMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(ON_MUTATION_SUBSCRIBE_METADATA_KEY, constructor);\n};\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/cjs/index.js CHANGED
@@ -2,6 +2,10 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
5
9
  var __copyProps = (to, from, except, desc) => {
6
10
  if (from && typeof from === "object" || typeof from === "function") {
7
11
  for (let key of __getOwnPropNames(from))
@@ -13,8 +17,14 @@ var __copyProps = (to, from, except, desc) => {
13
17
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
19
  var src_exports = {};
20
+ __export(src_exports, {
21
+ Swc: () => Swc
22
+ });
16
23
  module.exports = __toCommonJS(src_exports);
17
24
  var import_reflect_metadata = require("reflect-metadata");
25
+ var import_core_web = require("@dooboostore/core-web");
26
+ var import_SimpleApplication = require("@dooboostore/simple-boot/SimpleApplication");
27
+ var import_SimOption = require("@dooboostore/simple-boot/SimOption");
18
28
  __reExport(src_exports, require("./decorators/elementDefine"), module.exports);
19
29
  __reExport(src_exports, require("./decorators/innerHtml"), module.exports);
20
30
  __reExport(src_exports, require("./decorators/attribute"), module.exports);
@@ -595,4 +605,39 @@ __reExport(src_exports, require("./is/SwcChooseChildrenHeading"), module.exports
595
605
  __reExport(src_exports, require("./is/SwcChooseHeading"), module.exports);
596
606
  __reExport(src_exports, require("./is/SwcWhenHeading"), module.exports);
597
607
  __reExport(src_exports, require("./is/SwcOtherHeading"), module.exports);
608
+ class Swc {
609
+ get config() {
610
+ return this._config;
611
+ }
612
+ get router() {
613
+ return this._router;
614
+ }
615
+ constructor(config) {
616
+ this._config = {
617
+ routeType: "path",
618
+ window,
619
+ ...config
620
+ };
621
+ this._router = this._config.routeType === "path" ? new import_core_web.PathRouter({ window: this._config.window }) : new import_core_web.HashRouter({ window: this._config.window });
622
+ const option = new import_SimOption.SimOption({ excludeProxys: [Node], rootRouter: this._config.rootRouter });
623
+ this.simpleApplication = new import_SimpleApplication.SimpleApplication(option);
624
+ this._router.observable.subscribe((route) => {
625
+ if (route.triggerPoint === "start") {
626
+ this.routingProcess(route.path);
627
+ }
628
+ });
629
+ }
630
+ run() {
631
+ const otherInstanceSim = /* @__PURE__ */ new Map();
632
+ otherInstanceSim.set(import_core_web.Router, this._router);
633
+ this.simpleApplication.run(otherInstanceSim);
634
+ return this.simpleApplication.sim(this._config.rootRouter);
635
+ }
636
+ async routing(path) {
637
+ await this._router.go(path);
638
+ }
639
+ async routingProcess(path) {
640
+ await this.simpleApplication.routing(path);
641
+ }
642
+ }
598
643
  //# sourceMappingURL=index.js.map