@dooboostore/simple-web-component 1.0.44 → 1.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +25 -25
  2. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  3. package/dist/cjs/decorators/applyAttribute.js +36 -15
  4. package/dist/cjs/decorators/applyAttribute.js.map +2 -2
  5. package/dist/cjs/decorators/applyClass.js +53 -22
  6. package/dist/cjs/decorators/applyClass.js.map +2 -2
  7. package/dist/cjs/decorators/applyNode.js +51 -23
  8. package/dist/cjs/decorators/applyNode.js.map +2 -2
  9. package/dist/cjs/decorators/applyProperty.js +38 -17
  10. package/dist/cjs/decorators/applyProperty.js.map +2 -2
  11. package/dist/cjs/decorators/applyStyle.js +53 -22
  12. package/dist/cjs/decorators/applyStyle.js.map +2 -2
  13. package/dist/cjs/decorators/elementDefine.js +44 -25
  14. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  15. package/dist/cjs/decorators/emitCustomEvent.js +61 -47
  16. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  17. package/dist/cjs/decorators/query.js +91 -56
  18. package/dist/cjs/decorators/query.js.map +2 -2
  19. package/dist/cjs/decorators/queryAll.js +104 -66
  20. package/dist/cjs/decorators/queryAll.js.map +2 -2
  21. package/dist/cjs/types/window.d.js.map +1 -1
  22. package/dist/esm/decorators/addEventListener.js.map +2 -2
  23. package/dist/esm/decorators/applyAttribute.js +36 -15
  24. package/dist/esm/decorators/applyAttribute.js.map +2 -2
  25. package/dist/esm/decorators/applyClass.js +53 -22
  26. package/dist/esm/decorators/applyClass.js.map +2 -2
  27. package/dist/esm/decorators/applyNode.js +51 -23
  28. package/dist/esm/decorators/applyNode.js.map +2 -2
  29. package/dist/esm/decorators/applyProperty.js +38 -17
  30. package/dist/esm/decorators/applyProperty.js.map +2 -2
  31. package/dist/esm/decorators/applyStyle.js +53 -22
  32. package/dist/esm/decorators/applyStyle.js.map +2 -2
  33. package/dist/esm/decorators/elementDefine.js +44 -25
  34. package/dist/esm/decorators/elementDefine.js.map +2 -2
  35. package/dist/esm/decorators/emitCustomEvent.js +61 -47
  36. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  37. package/dist/esm/decorators/query.js +91 -56
  38. package/dist/esm/decorators/query.js.map +2 -2
  39. package/dist/esm/decorators/queryAll.js +104 -66
  40. package/dist/esm/decorators/queryAll.js.map +2 -2
  41. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +531 -293
  42. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +3 -3
  43. package/dist/types/decorators/addEventListener.d.ts +7 -6
  44. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  45. package/dist/types/decorators/applyAttribute.d.ts +12 -8
  46. package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
  47. package/dist/types/decorators/applyClass.d.ts +8 -7
  48. package/dist/types/decorators/applyClass.d.ts.map +1 -1
  49. package/dist/types/decorators/applyNode.d.ts +18 -17
  50. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  51. package/dist/types/decorators/applyProperty.d.ts +13 -9
  52. package/dist/types/decorators/applyProperty.d.ts.map +1 -1
  53. package/dist/types/decorators/applyStyle.d.ts +6 -5
  54. package/dist/types/decorators/applyStyle.d.ts.map +1 -1
  55. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  56. package/dist/types/decorators/emitCustomEvent.d.ts +3 -2
  57. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  58. package/dist/types/decorators/query.d.ts +15 -5
  59. package/dist/types/decorators/query.d.ts.map +1 -1
  60. package/dist/types/decorators/queryAll.d.ts +15 -5
  61. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  62. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +531 -293
  63. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +3 -3
  64. package/package.json +3 -3
  65. package/src/decorators/addEventListener.ts +9 -7
  66. package/src/decorators/applyAttribute.ts +59 -27
  67. package/src/decorators/applyClass.ts +78 -32
  68. package/src/decorators/applyNode.ts +115 -72
  69. package/src/decorators/applyProperty.ts +62 -30
  70. package/src/decorators/applyStyle.ts +76 -30
  71. package/src/decorators/elementDefine.ts +49 -26
  72. package/src/decorators/emitCustomEvent.ts +63 -39
  73. package/src/decorators/query.ts +111 -49
  74. package/src/decorators/queryAll.ts +121 -61
  75. package/src/types/window.d.ts +3 -0
@@ -6,7 +6,7 @@ function query(selectorOrTarget, optionsOrPropertyKey, descriptor) {
6
6
  if (descriptor !== void 0 && (typeof optionsOrPropertyKey === "string" || typeof optionsOrPropertyKey === "symbol")) {
7
7
  throw new Error(`@query decorator cannot be used on methods. (Method: ${String(optionsOrPropertyKey)})`);
8
8
  }
9
- if (typeof selectorOrTarget === "string") {
9
+ if (typeof selectorOrTarget === "string" || typeof selectorOrTarget === "function") {
10
10
  return (targetObj, propertyKey, descriptor2) => {
11
11
  if (descriptor2 !== void 0) {
12
12
  throw new Error(`@query decorator cannot be used on methods. (Method: ${String(propertyKey)})`);
@@ -21,75 +21,110 @@ function query(selectorOrTarget, optionsOrPropertyKey, descriptor) {
21
21
  Object.defineProperty(targetObj, propertyKey, {
22
22
  get() {
23
23
  ensureInit(this);
24
- const selector = selectorOrTarget;
25
- const r = optionsOrPropertyKey?.root || "auto";
26
- const applyRoot = (t) => {
27
- if (!t || !(t instanceof HTMLElement))
28
- return t;
29
- if (r === "auto")
30
- return t.shadowRoot || t;
31
- if (r === "shadow")
32
- return t.shadowRoot;
33
- if (r === "light")
34
- return t;
35
- if (r === "all")
36
- return t.shadowRoot || t;
37
- return t;
38
- };
39
- const hostSet = SwcUtils.getHostSet(this);
40
- if (selector === "$this")
41
- return applyRoot(this);
42
- if (selector === "$host")
43
- return applyRoot(hostSet.$host);
44
- if (selector === "$parentHost")
45
- return applyRoot(hostSet.$parentHost);
46
- if (selector === "$appHost")
47
- return applyRoot(hostSet.$appHost);
48
- if (selector === "$firstHost")
49
- return applyRoot(hostSet.$firstHost);
50
- if (selector === "$lastHost")
51
- return applyRoot(hostSet.$lastHost);
52
- if (selector === "$firstAppHost")
53
- return applyRoot(hostSet.$firstAppHost);
54
- if (selector === "$lastAppHost")
55
- return applyRoot(hostSet.$lastAppHost);
56
24
  const config = getElementConfig(this);
57
25
  const win = config?.window || window;
58
- if (selector === "$window")
59
- return win;
60
- if (selector === "$document")
61
- return win.document;
62
- if (r === "shadow")
63
- return this.shadowRoot ? this.shadowRoot.querySelector(selector) : null;
64
- if (r === "light")
65
- return this.querySelector(selector);
66
- if (r === "all") {
67
- const shadowMatch = this.shadowRoot ? this.shadowRoot.querySelector(selector) : null;
68
- return shadowMatch || this.querySelector(selector);
26
+ const hostSet = SwcUtils.getHelperAndHostSet(win, this);
27
+ let resolvedSelector;
28
+ let resolvedElement = null;
29
+ if (typeof selectorOrTarget === "function") {
30
+ const result = selectorOrTarget(this, hostSet);
31
+ if (result instanceof win.Node || result instanceof win.Element) {
32
+ resolvedElement = result instanceof win.HTMLElement ? result : null;
33
+ } else if (result instanceof win.NodeList || Array.isArray(result)) {
34
+ resolvedElement = result.length > 0 && result[0] instanceof win.HTMLElement ? result[0] : null;
35
+ }
36
+ } else {
37
+ resolvedSelector = selectorOrTarget;
38
+ const r = optionsOrPropertyKey?.root || "auto";
39
+ const applyRoot = (t) => {
40
+ if (!t || !(t instanceof HTMLElement))
41
+ return t;
42
+ if (r === "auto")
43
+ return t.shadowRoot || t;
44
+ if (r === "shadow")
45
+ return t.shadowRoot;
46
+ if (r === "light")
47
+ return t;
48
+ if (r === "all")
49
+ return t.shadowRoot || t;
50
+ return t;
51
+ };
52
+ if (resolvedSelector === "$this")
53
+ resolvedElement = applyRoot(this);
54
+ else if (resolvedSelector === "$host")
55
+ resolvedElement = applyRoot(hostSet.$host);
56
+ else if (resolvedSelector === "$parentHost")
57
+ resolvedElement = applyRoot(hostSet.$parentHost);
58
+ else if (resolvedSelector === "$appHost")
59
+ resolvedElement = applyRoot(hostSet.$appHost);
60
+ else if (resolvedSelector === "$firstHost")
61
+ resolvedElement = applyRoot(hostSet.$firstHost);
62
+ else if (resolvedSelector === "$lastHost")
63
+ resolvedElement = applyRoot(hostSet.$lastHost);
64
+ else if (resolvedSelector === "$firstAppHost")
65
+ resolvedElement = applyRoot(hostSet.$firstAppHost);
66
+ else if (resolvedSelector === "$lastAppHost")
67
+ resolvedElement = applyRoot(hostSet.$lastAppHost);
68
+ else if (resolvedSelector === "$window")
69
+ return win;
70
+ else if (resolvedSelector === "$document")
71
+ return win.document;
72
+ else {
73
+ if (r === "shadow")
74
+ resolvedElement = this.shadowRoot ? this.shadowRoot.querySelector(resolvedSelector) : null;
75
+ else if (r === "light")
76
+ resolvedElement = this.querySelector(resolvedSelector);
77
+ else if (r === "all") {
78
+ const shadowMatch = this.shadowRoot ? this.shadowRoot.querySelector(resolvedSelector) : null;
79
+ resolvedElement = shadowMatch || this.querySelector(resolvedSelector);
80
+ } else
81
+ resolvedElement = (this.shadowRoot || this).querySelector(resolvedSelector);
82
+ }
83
+ }
84
+ if (resolvedElement instanceof win.HTMLElement && optionsOrPropertyKey?.filter) {
85
+ const shouldInclude = optionsOrPropertyKey.filter(resolvedElement, { currentThis: this, helper: hostSet });
86
+ if (!shouldInclude) {
87
+ return null;
88
+ }
69
89
  }
70
- return (this.shadowRoot || this).querySelector(selector);
90
+ return resolvedElement;
71
91
  },
72
92
  set(nv) {
73
93
  ensureInit(this);
74
94
  if (nv === null || nv === void 0) {
75
- const selector = selectorOrTarget;
76
- if (selector.startsWith("$") && selector !== "$this")
95
+ const config = getElementConfig(this);
96
+ const win = config?.window || window;
97
+ const hostSet = SwcUtils.getHelperAndHostSet(win, this);
98
+ if (typeof selectorOrTarget === "function") {
99
+ const result = selectorOrTarget(this, hostSet);
100
+ if (result instanceof win.Element) {
101
+ result.remove();
102
+ } else if (result instanceof win.NodeList || Array.isArray(result)) {
103
+ const el = result.length > 0 ? result[0] : null;
104
+ if (el instanceof win.Element) {
105
+ el.remove();
106
+ }
107
+ }
108
+ return;
109
+ }
110
+ const resolvedSelector = selectorOrTarget;
111
+ if (resolvedSelector.startsWith("$") && resolvedSelector !== "$this")
77
112
  return;
78
113
  const r = optionsOrPropertyKey?.root || "auto";
79
114
  const targets = [];
80
115
  if (r === "shadow") {
81
- if (this.shadowRoot?.querySelector(selector))
82
- targets.push(this.shadowRoot.querySelector(selector));
116
+ if (this.shadowRoot?.querySelector(resolvedSelector))
117
+ targets.push(this.shadowRoot.querySelector(resolvedSelector));
83
118
  } else if (r === "light") {
84
- if (this.querySelector(selector))
85
- targets.push(this.querySelector(selector));
119
+ if (this.querySelector(resolvedSelector))
120
+ targets.push(this.querySelector(resolvedSelector));
86
121
  } else if (r === "all") {
87
- if (this.shadowRoot?.querySelector(selector))
88
- targets.push(this.shadowRoot.querySelector(selector));
89
- if (this.querySelector(selector))
90
- targets.push(this.querySelector(selector));
122
+ if (this.shadowRoot?.querySelector(resolvedSelector))
123
+ targets.push(this.shadowRoot.querySelector(resolvedSelector));
124
+ if (this.querySelector(resolvedSelector))
125
+ targets.push(this.querySelector(resolvedSelector));
91
126
  } else {
92
- const el = (this.shadowRoot || this).querySelector(selector);
127
+ const el = (this.shadowRoot || this).querySelector(resolvedSelector);
93
128
  if (el)
94
129
  targets.push(el);
95
130
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/query.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { getElementConfig, ensureInit } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SpecialSelector, SwcQueryOptions, HelperHostSet } from '../types';\n\nexport interface QueryMetadata {\n propertyKey: string | symbol;\n selector: string;\n options: SwcQueryOptions ;\n}\n\nexport const QUERY_METADATA_KEY = Symbol.for('simple-web-component:query');\n\nexport function query(target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor): PropertyDescriptor | void;\nexport function query(selector: string, options?: SwcQueryOptions): PropertyDecorator;\nexport function query(options?: SwcQueryOptions): PropertyDecorator;\n/**\n * @query decorator to inject a single element into a class property.\n */\nexport function query(selectorOrTarget?: string | Object, optionsOrPropertyKey?: SwcQueryOptions | string | symbol, descriptor?: PropertyDescriptor): any {\n // Bare decorator: @query\n if (descriptor !== undefined && (typeof optionsOrPropertyKey === 'string' || typeof optionsOrPropertyKey === 'symbol')) {\n throw new Error(`@query decorator cannot be used on methods. (Method: ${String(optionsOrPropertyKey)})`);\n }\n // With selector\n if (typeof selectorOrTarget === 'string') {\n return (targetObj: Object, propertyKey: string | symbol, descriptor?: never): void => {\n if (descriptor !== undefined) {\n throw new Error(`@query decorator cannot be used on methods. (Method: ${String(propertyKey)})`);\n }\n\n const constructor = targetObj.constructor;\n let queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_METADATA_KEY, queries, constructor);\n }\n queries.push({ propertyKey, selector: selectorOrTarget, options: optionsOrPropertyKey as SwcQueryOptions || {} });\n\n Object.defineProperty(targetObj, propertyKey, {\n get(this: HTMLElement) {\n ensureInit(this);\n const selector = selectorOrTarget;\n\n const r = (optionsOrPropertyKey as SwcQueryOptions)?.root || 'auto';\n const applyRoot = (t: any) => {\n if (!t || !(t instanceof HTMLElement)) return t;\n if (r === 'auto') return t.shadowRoot || t;\n if (r === 'shadow') return t.shadowRoot;\n if (r === 'light') return t;\n if (r === 'all') return t.shadowRoot || t; \n return t;\n };\n\n // --- Special Selectors: HostSet ---\n const hostSet = SwcUtils.getHostSet(this);\n if (selector === '$this') return applyRoot(this);\n if (selector === '$host') return applyRoot(hostSet.$host);\n if (selector === '$parentHost') return applyRoot(hostSet.$parentHost);\n if (selector === '$appHost') return applyRoot(hostSet.$appHost);\n if (selector === '$firstHost') return applyRoot(hostSet.$firstHost);\n if (selector === '$lastHost') return applyRoot(hostSet.$lastHost);\n if (selector === '$firstAppHost') return applyRoot(hostSet.$firstAppHost);\n if (selector === '$lastAppHost') return applyRoot(hostSet.$lastAppHost);\n\n // --- Special Selectors: Env ---\n const config = getElementConfig(this);\n const win = config?.window || window;\n if (selector === '$window') return win;\n if (selector === '$document') return win.document;\n\n // --- Standard Selectors ---\n if (r === 'shadow') return this.shadowRoot ? this.shadowRoot.querySelector(selector) : null;\n if (r === 'light') return this.querySelector(selector);\n if (r === 'all') {\n const shadowMatch = this.shadowRoot ? this.shadowRoot.querySelector(selector) : null;\n return shadowMatch || this.querySelector(selector);\n }\n return (this.shadowRoot || this).querySelector(selector);\n },\n set(this: HTMLElement, nv: any) {\n ensureInit(this);\n if (nv === null || nv === undefined) {\n const selector = selectorOrTarget;\n if (selector.startsWith('$') && selector !== '$this') return;\n\n const r = (optionsOrPropertyKey as SwcQueryOptions)?.root || 'auto';\n const targets: Element[] = [];\n\n if (r === 'shadow') {\n if (this.shadowRoot?.querySelector(selector)) targets.push(this.shadowRoot.querySelector(selector)!);\n } else if (r === 'light') {\n if (this.querySelector(selector)) targets.push(this.querySelector(selector)!);\n } else if (r === 'all') {\n if (this.shadowRoot?.querySelector(selector)) targets.push(this.shadowRoot.querySelector(selector)!);\n if (this.querySelector(selector)) targets.push(this.querySelector(selector)!);\n } else {\n const el = (this.shadowRoot || this).querySelector(selector);\n if (el) targets.push(el);\n }\n\n targets.forEach(t => t.remove());\n }\n },\n enumerable: true,\n configurable: true\n });\n };\n }\n // Without selector (defaults to $this)\n return query('$this', selectorOrTarget as SwcQueryOptions);\n}\n\nexport const getQueryMetadata = (target: any): QueryMetadata[] => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor) ?? [];\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { getElementConfig, ensureInit } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SwcQueryOptions, HelperHostSet } from '../types';\n\nexport interface QueryOptions extends SwcQueryOptions {\n /**\n * Filter function to determine whether to include the element.\n * If it returns false, the element is skipped.\n */\n filter?: (target: HTMLElement, meta: { currentThis: any, helper: HelperHostSet }) => boolean;\n}\n\nexport interface QueryMetadata {\n propertyKey: string | symbol;\n selector: string | ((currentThis: any, helper: HelperHostSet) => Node | NodeList | Element | Element[] | null);\n options: QueryOptions ;\n}\n\nexport const QUERY_METADATA_KEY = Symbol.for('simple-web-component:query');\n\nexport function query(target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor): PropertyDescriptor | void;\nexport function query(selector: string | ((currentThis: any, helper: HelperHostSet) => Node | NodeList | Element | Element[] | null), options?: QueryOptions): PropertyDecorator;\nexport function query(options?: QueryOptions): PropertyDecorator;\n/**\n * @query decorator to inject a single element into a class property.\n * \n * Supports both string selectors and function-based selectors:\n * - String selector: @query('#my-element')\n * - Function selector: @query((currentThis, helper) => currentThis.shadowRoot?.querySelector('.item'))\n * \n * Supports filtering:\n * - @query('#my-element', { filter: (target, meta) => target.hasAttribute('active') })\n */\nexport function query(selectorOrTarget?: string | ((currentThis: any, helper: HelperHostSet) => Node | NodeList | Element | Element[] | null) | Object, optionsOrPropertyKey?: QueryOptions | string | symbol, descriptor?: PropertyDescriptor): any {\n // Bare decorator: @query\n if (descriptor !== undefined && (typeof optionsOrPropertyKey === 'string' || typeof optionsOrPropertyKey === 'symbol')) {\n throw new Error(`@query decorator cannot be used on methods. (Method: ${String(optionsOrPropertyKey)})`);\n }\n // With selector\n if (typeof selectorOrTarget === 'string' || typeof selectorOrTarget === 'function') {\n return (targetObj: Object, propertyKey: string | symbol, descriptor?: never): void => {\n if (descriptor !== undefined) {\n throw new Error(`@query decorator cannot be used on methods. (Method: ${String(propertyKey)})`);\n }\n\n const constructor = targetObj.constructor;\n let queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_METADATA_KEY, queries, constructor);\n }\n queries.push({ propertyKey, selector: selectorOrTarget as any, options: optionsOrPropertyKey as QueryOptions || {} });\n\n Object.defineProperty(targetObj, propertyKey, {\n get(this: HTMLElement) {\n ensureInit(this);\n const config = getElementConfig(this);\n const win = config?.window || window;\n const hostSet = SwcUtils.getHelperAndHostSet(win, this);\n \n // Resolve selector - can be string or function\n let resolvedSelector: string;\n let resolvedElement: HTMLElement | null = null;\n \n if (typeof selectorOrTarget === 'function') {\n const result = (selectorOrTarget as any)(this, hostSet);\n // If function returns a Node/Element, return it directly\n if (result instanceof win.Node || result instanceof win.Element) {\n resolvedElement = result instanceof win.HTMLElement ? (result as HTMLElement) : null;\n }\n // If function returns NodeList or Element[], return first element\n else if (result instanceof win.NodeList || Array.isArray(result)) {\n resolvedElement = result.length > 0 && result[0] instanceof win.HTMLElement ? (result[0] as HTMLElement) : null;\n }\n } else {\n resolvedSelector = selectorOrTarget;\n\n const r = (optionsOrPropertyKey as QueryOptions)?.root || 'auto';\n const applyRoot = (t: any) => {\n if (!t || !(t instanceof HTMLElement)) return t;\n if (r === 'auto') return t.shadowRoot || t;\n if (r === 'shadow') return t.shadowRoot;\n if (r === 'light') return t;\n if (r === 'all') return t.shadowRoot || t; \n return t;\n };\n\n // --- Special Selectors: HostSet ---\n if (resolvedSelector === '$this') resolvedElement = applyRoot(this);\n else if (resolvedSelector === '$host') resolvedElement = applyRoot(hostSet.$host);\n else if (resolvedSelector === '$parentHost') resolvedElement = applyRoot(hostSet.$parentHost);\n else if (resolvedSelector === '$appHost') resolvedElement = applyRoot(hostSet.$appHost);\n else if (resolvedSelector === '$firstHost') resolvedElement = applyRoot(hostSet.$firstHost);\n else if (resolvedSelector === '$lastHost') resolvedElement = applyRoot(hostSet.$lastHost);\n else if (resolvedSelector === '$firstAppHost') resolvedElement = applyRoot(hostSet.$firstAppHost);\n else if (resolvedSelector === '$lastAppHost') resolvedElement = applyRoot(hostSet.$lastAppHost);\n // --- Special Selectors: Env ---\n else if (resolvedSelector === '$window') return win;\n else if (resolvedSelector === '$document') return win.document;\n // --- Standard Selectors ---\n else {\n if (r === 'shadow') resolvedElement = this.shadowRoot ? (this.shadowRoot.querySelector(resolvedSelector) as HTMLElement | null) : null;\n else if (r === 'light') resolvedElement = this.querySelector(resolvedSelector) as HTMLElement | null;\n else if (r === 'all') {\n const shadowMatch = this.shadowRoot ? (this.shadowRoot.querySelector(resolvedSelector) as HTMLElement | null) : null;\n resolvedElement = shadowMatch || (this.querySelector(resolvedSelector) as HTMLElement | null);\n }\n else resolvedElement = ((this.shadowRoot || this).querySelector(resolvedSelector) as HTMLElement | null);\n }\n }\n\n // Apply filter if provided\n if (resolvedElement instanceof win.HTMLElement && (optionsOrPropertyKey as QueryOptions)?.filter) {\n const shouldInclude = (optionsOrPropertyKey as QueryOptions).filter!(resolvedElement, { currentThis: this, helper: hostSet });\n if (!shouldInclude) {\n return null;\n }\n }\n\n return resolvedElement;\n },\n set(this: HTMLElement, nv: any) {\n ensureInit(this);\n if (nv === null || nv === undefined) {\n const config = getElementConfig(this);\n const win = config?.window || window;\n const hostSet = SwcUtils.getHelperAndHostSet(win, this);\n \n // Resolve selector - can be string or function\n if (typeof selectorOrTarget === 'function') {\n // Get the element from function and remove it\n const result = (selectorOrTarget as any)(this, hostSet);\n if (result instanceof win.Element) {\n (result as Element).remove();\n } else if (result instanceof win.NodeList || Array.isArray(result)) {\n const el = result.length > 0 ? result[0] : null;\n if (el instanceof win.Element) {\n (el as Element).remove();\n }\n }\n return;\n }\n \n const resolvedSelector = selectorOrTarget;\n \n if (resolvedSelector.startsWith('$') && resolvedSelector !== '$this') return;\n\n const r = (optionsOrPropertyKey as QueryOptions)?.root || 'auto';\n const targets: Element[] = [];\n\n if (r === 'shadow') {\n if (this.shadowRoot?.querySelector(resolvedSelector)) targets.push(this.shadowRoot.querySelector(resolvedSelector)!);\n } else if (r === 'light') {\n if (this.querySelector(resolvedSelector)) targets.push(this.querySelector(resolvedSelector)!);\n } else if (r === 'all') {\n if (this.shadowRoot?.querySelector(resolvedSelector)) targets.push(this.shadowRoot.querySelector(resolvedSelector)!);\n if (this.querySelector(resolvedSelector)) targets.push(this.querySelector(resolvedSelector)!);\n } else {\n const el = (this.shadowRoot || this).querySelector(resolvedSelector);\n if (el) targets.push(el);\n }\n\n targets.forEach(t => t.remove());\n }\n },\n enumerable: true,\n configurable: true\n });\n };\n }\n // Without selector (defaults to $this)\n return query('$this', selectorOrTarget as SwcQueryOptions);\n}\n\nexport const getQueryMetadata = (target: any): QueryMetadata[] => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_METADATA_KEY, constructor) ?? [];\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["descriptor"]
7
7
  }
@@ -6,7 +6,7 @@ function queryAll(selectorOrTarget, optionsOrPropertyKey, descriptor) {
6
6
  if (descriptor !== void 0 && (typeof optionsOrPropertyKey === "string" || typeof optionsOrPropertyKey === "symbol")) {
7
7
  throw new Error(`@queryAll decorator cannot be used on methods. (Method: ${String(optionsOrPropertyKey)})`);
8
8
  }
9
- if (typeof selectorOrTarget === "string") {
9
+ if (typeof selectorOrTarget === "string" || typeof selectorOrTarget === "function") {
10
10
  return (targetObj, propertyKey, descriptor2) => {
11
11
  if (descriptor2 !== void 0) {
12
12
  throw new Error(`@queryAll decorator cannot be used on methods. (Method: ${String(propertyKey)})`);
@@ -21,86 +21,124 @@ function queryAll(selectorOrTarget, optionsOrPropertyKey, descriptor) {
21
21
  Object.defineProperty(targetObj, propertyKey, {
22
22
  get() {
23
23
  ensureInit(this);
24
- const selector = selectorOrTarget;
25
- const r = optionsOrPropertyKey?.root || "auto";
26
- const applyRoot = (t) => {
27
- if (!t)
28
- return [];
29
- const items = Array.isArray(t) ? t : [t];
30
- const results = [];
31
- items.forEach((it) => {
32
- if (!(it instanceof HTMLElement)) {
33
- results.push(it);
34
- return;
35
- }
36
- if (r === "auto")
37
- results.push(it.shadowRoot || it);
38
- else {
39
- if (r === "light" || r === "all")
40
- results.push(it);
41
- if ((r === "shadow" || r === "all") && it.shadowRoot)
42
- results.push(it.shadowRoot);
43
- }
44
- });
45
- return results;
46
- };
47
- const hostSet = SwcUtils.getHostSet(this);
48
- if (selector === "$hosts")
49
- return applyRoot(hostSet.$hosts);
50
- if (selector === "$appHosts")
51
- return applyRoot(hostSet.$appHosts);
52
- if (selector === "$host")
53
- return applyRoot(hostSet.$host);
54
- if (selector === "$parentHost")
55
- return applyRoot(hostSet.$parentHost);
56
- if (selector === "$appHost")
57
- return applyRoot(hostSet.$appHost);
58
- if (selector === "$firstHost")
59
- return applyRoot(hostSet.$firstHost);
60
- if (selector === "$lastHost")
61
- return applyRoot(hostSet.$lastHost);
62
- if (selector === "$firstAppHost")
63
- return applyRoot(hostSet.$firstAppHost);
64
- if (selector === "$lastAppHost")
65
- return applyRoot(hostSet.$lastAppHost);
66
24
  const config = getElementConfig(this);
67
25
  const win = config?.window || window;
68
- if (selector === "$window")
69
- return [win];
70
- if (selector === "$document")
71
- return [win.document];
72
- if (selector === "$this")
73
- return applyRoot(this);
74
- if (r === "shadow")
75
- return this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(selector)) : [];
76
- if (r === "light")
77
- return Array.from(this.querySelectorAll(selector));
78
- if (r === "all") {
79
- const sNodes = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(selector)) : [];
80
- const lNodes = Array.from(this.querySelectorAll(selector));
81
- return [...sNodes, ...lNodes];
26
+ const hostSet = SwcUtils.getHelperAndHostSet(win, this);
27
+ let resolvedSelector;
28
+ let resolvedElements = [];
29
+ if (typeof selectorOrTarget === "function") {
30
+ const result = selectorOrTarget(this, hostSet);
31
+ if (result instanceof win.NodeList) {
32
+ resolvedElements = Array.from(result).filter((el) => el instanceof win.HTMLElement);
33
+ } else if (Array.isArray(result)) {
34
+ resolvedElements = result.filter((el) => el instanceof win.HTMLElement);
35
+ }
36
+ } else {
37
+ resolvedSelector = selectorOrTarget;
38
+ const r = optionsOrPropertyKey?.root || "auto";
39
+ const applyRoot = (t) => {
40
+ if (!t)
41
+ return [];
42
+ const items = Array.isArray(t) ? t : [t];
43
+ const results = [];
44
+ items.forEach((it) => {
45
+ if (!(it instanceof HTMLElement)) {
46
+ results.push(it);
47
+ return;
48
+ }
49
+ if (r === "auto")
50
+ results.push(it.shadowRoot || it);
51
+ else {
52
+ if (r === "light" || r === "all")
53
+ results.push(it);
54
+ if ((r === "shadow" || r === "all") && it.shadowRoot)
55
+ results.push(it.shadowRoot);
56
+ }
57
+ });
58
+ return results;
59
+ };
60
+ if (resolvedSelector === "$hosts")
61
+ resolvedElements = applyRoot(hostSet.$hosts).filter((el) => el instanceof HTMLElement);
62
+ else if (resolvedSelector === "$appHosts")
63
+ resolvedElements = applyRoot(hostSet.$appHosts).filter((el) => el instanceof HTMLElement);
64
+ else if (resolvedSelector === "$host")
65
+ resolvedElements = applyRoot(hostSet.$host).filter((el) => el instanceof HTMLElement);
66
+ else if (resolvedSelector === "$parentHost")
67
+ resolvedElements = applyRoot(hostSet.$parentHost).filter((el) => el instanceof HTMLElement);
68
+ else if (resolvedSelector === "$appHost")
69
+ resolvedElements = applyRoot(hostSet.$appHost).filter((el) => el instanceof HTMLElement);
70
+ else if (resolvedSelector === "$firstHost")
71
+ resolvedElements = applyRoot(hostSet.$firstHost).filter((el) => el instanceof HTMLElement);
72
+ else if (resolvedSelector === "$lastHost")
73
+ resolvedElements = applyRoot(hostSet.$lastHost).filter((el) => el instanceof HTMLElement);
74
+ else if (resolvedSelector === "$firstAppHost")
75
+ resolvedElements = applyRoot(hostSet.$firstAppHost).filter((el) => el instanceof HTMLElement);
76
+ else if (resolvedSelector === "$lastAppHost")
77
+ resolvedElements = applyRoot(hostSet.$lastAppHost).filter((el) => el instanceof HTMLElement);
78
+ else if (resolvedSelector === "$window")
79
+ return [win];
80
+ else if (resolvedSelector === "$document")
81
+ return [win.document];
82
+ else if (resolvedSelector === "$this")
83
+ resolvedElements = applyRoot(this).filter((el) => el instanceof HTMLElement);
84
+ else {
85
+ if (r === "shadow")
86
+ resolvedElements = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(resolvedSelector)) : [];
87
+ else if (r === "light")
88
+ resolvedElements = Array.from(this.querySelectorAll(resolvedSelector));
89
+ else if (r === "all") {
90
+ const sNodes = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(resolvedSelector)) : [];
91
+ const lNodes = Array.from(this.querySelectorAll(resolvedSelector));
92
+ resolvedElements = [...sNodes, ...lNodes];
93
+ } else
94
+ resolvedElements = Array.from((this.shadowRoot || this).querySelectorAll(resolvedSelector));
95
+ }
96
+ }
97
+ if (optionsOrPropertyKey?.filter) {
98
+ resolvedElements = resolvedElements.filter((el) => {
99
+ if (!(el instanceof win.HTMLElement))
100
+ return true;
101
+ return optionsOrPropertyKey.filter(el, { currentThis: this, helper: hostSet });
102
+ });
82
103
  }
83
- const root = this.shadowRoot || this;
84
- return Array.from(root.querySelectorAll(selector));
104
+ return resolvedElements;
85
105
  },
86
106
  set(nv) {
87
107
  ensureInit(this);
88
108
  if (nv === null || nv === void 0 || Array.isArray(nv) && nv.length === 0) {
89
- const selector = selectorOrTarget;
90
- if (selector.startsWith("$") && selector !== "$this")
109
+ const config = getElementConfig(this);
110
+ const win = config?.window || window;
111
+ const hostSet = SwcUtils.getHelperAndHostSet(win, this);
112
+ if (typeof selectorOrTarget === "function") {
113
+ const result = selectorOrTarget(this, hostSet);
114
+ if (result instanceof win.NodeList) {
115
+ Array.from(result).forEach((el) => {
116
+ if (el instanceof win.Element)
117
+ el.remove();
118
+ });
119
+ } else if (Array.isArray(result)) {
120
+ result.forEach((el) => {
121
+ if (el instanceof win.Element)
122
+ el.remove();
123
+ });
124
+ }
125
+ return;
126
+ }
127
+ const resolvedSelector = selectorOrTarget;
128
+ if (resolvedSelector.startsWith("$") && resolvedSelector !== "$this")
91
129
  return;
92
130
  const r = optionsOrPropertyKey?.root || "auto";
93
131
  let targets = [];
94
132
  if (r === "shadow")
95
- targets = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(selector)) : [];
133
+ targets = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(resolvedSelector)) : [];
96
134
  else if (r === "light")
97
- targets = Array.from(this.querySelectorAll(selector));
135
+ targets = Array.from(this.querySelectorAll(resolvedSelector));
98
136
  else if (r === "all") {
99
- const sNodes = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(selector)) : [];
100
- const lNodes = Array.from(this.querySelectorAll(selector));
137
+ const sNodes = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(resolvedSelector)) : [];
138
+ const lNodes = Array.from(this.querySelectorAll(resolvedSelector));
101
139
  targets = [...sNodes, ...lNodes];
102
140
  } else {
103
- targets = Array.from((this.shadowRoot || this).querySelectorAll(selector));
141
+ targets = Array.from((this.shadowRoot || this).querySelectorAll(resolvedSelector));
104
142
  }
105
143
  targets.forEach((t) => t.remove());
106
144
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/queryAll.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { getElementConfig, ensureInit } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SpecialSelector, SwcQueryOptions, HelperHostSet } from '../types';\n\nexport interface QueryAllMetadata {\n propertyKey: string | symbol;\n selector: string;\n options: SwcQueryOptions;\n}\n\nexport const QUERY_ALL_METADATA_KEY = Symbol.for('simple-web-component:query-all');\n\nexport function queryAll(target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor): PropertyDescriptor | void;\nexport function queryAll(selector: string, options?: SwcQueryOptions): PropertyDecorator;\nexport function queryAll(options?: SwcQueryOptions): PropertyDecorator;\n/**\n * @queryAll decorator to inject a list of elements into a class property.\n */\nexport function queryAll(selectorOrTarget?: string | Object, optionsOrPropertyKey?: SwcQueryOptions | string | symbol, descriptor?: PropertyDescriptor): any {\n // Bare decorator: @queryAll\n if (descriptor !== undefined && (typeof optionsOrPropertyKey === 'string' || typeof optionsOrPropertyKey === 'symbol')) {\n throw new Error(`@queryAll decorator cannot be used on methods. (Method: ${String(optionsOrPropertyKey)})`);\n }\n // With selector\n if (typeof selectorOrTarget === 'string') {\n return (targetObj: Object, propertyKey: string | symbol, descriptor?: never): void => {\n if (descriptor !== undefined) {\n throw new Error(`@queryAll decorator cannot be used on methods. (Method: ${String(propertyKey)})`);\n }\n\n const constructor = targetObj.constructor;\n let queries = ReflectUtils.getMetadata<QueryAllMetadata[]>(QUERY_ALL_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_ALL_METADATA_KEY, queries, constructor);\n }\n queries.push({ propertyKey, selector: selectorOrTarget, options: optionsOrPropertyKey as SwcQueryOptions || {} });\n\n Object.defineProperty(targetObj, propertyKey, {\n get(this: HTMLElement) {\n ensureInit(this);\n const selector = selectorOrTarget;\n\n const r = (optionsOrPropertyKey as SwcQueryOptions)?.root || 'auto';\n const applyRoot = (t: any): any[] => {\n if (!t) return [];\n const items = Array.isArray(t) ? t : [t];\n const results: any[] = [];\n items.forEach(it => {\n if (!(it instanceof HTMLElement)) {\n results.push(it);\n return;\n }\n if (r === 'auto') results.push(it.shadowRoot || it);\n else {\n if (r === 'light' || r === 'all') results.push(it);\n if ((r === 'shadow' || r === 'all') && it.shadowRoot) results.push(it.shadowRoot);\n }\n });\n return results;\n };\n\n // --- Special Selectors: HostSet ---\n const hostSet = SwcUtils.getHostSet(this);\n if (selector === '$hosts') return applyRoot(hostSet.$hosts);\n if (selector === '$appHosts') return applyRoot(hostSet.$appHosts);\n if (selector === '$host') return applyRoot(hostSet.$host);\n if (selector === '$parentHost') return applyRoot(hostSet.$parentHost);\n if (selector === '$appHost') return applyRoot(hostSet.$appHost);\n if (selector === '$firstHost') return applyRoot(hostSet.$firstHost);\n if (selector === '$lastHost') return applyRoot(hostSet.$lastHost);\n if (selector === '$firstAppHost') return applyRoot(hostSet.$firstAppHost);\n if (selector === '$lastAppHost') return applyRoot(hostSet.$lastAppHost);\n\n // --- Special Selectors: Env ---\n const config = getElementConfig(this);\n const win = config?.window || window;\n if (selector === '$window') return [win];\n if (selector === '$document') return [win.document];\n if (selector === '$this') return applyRoot(this);\n\n // --- Standard Selectors ---\n if (r === 'shadow') return this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(selector)) : [];\n if (r === 'light') return Array.from(this.querySelectorAll(selector));\n if (r === 'all') {\n const sNodes = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(selector)) : [];\n const lNodes = Array.from(this.querySelectorAll(selector));\n return [...sNodes, ...lNodes];\n }\n const root = this.shadowRoot || this;\n return Array.from(root.querySelectorAll(selector));\n },\n set(this: HTMLElement, nv: any) {\n ensureInit(this);\n if (nv === null || nv === undefined || (Array.isArray(nv) && nv.length === 0)) {\n const selector = selectorOrTarget;\n if (selector.startsWith('$') && selector !== '$this') return;\n\n const r = (optionsOrPropertyKey as SwcQueryOptions)?.root || 'auto';\n let targets: (Element | Node)[] = [];\n if (r === 'shadow') targets = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(selector)) : [];\n else if (r === 'light') targets = Array.from(this.querySelectorAll(selector));\n else if (r === 'all') {\n const sNodes = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(selector)) : [];\n const lNodes = Array.from(this.querySelectorAll(selector));\n targets = [...sNodes, ...lNodes];\n } else {\n targets = Array.from((this.shadowRoot || this).querySelectorAll(selector));\n }\n targets.forEach(t => (t as Element).remove());\n }\n },\n enumerable: true,\n configurable: true\n });\n };\n }\n // Without selector (defaults to $this)\n return queryAll('$this', selectorOrTarget as SwcQueryOptions);\n}\n\nexport const getQueryAllMetadata = (target: any): QueryAllMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { getElementConfig, ensureInit } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SwcQueryOptions, HelperHostSet } from '../types';\n\nexport interface QueryAllOptions extends SwcQueryOptions {\n /**\n * Filter function to determine whether to include the element.\n * If it returns false, the element is skipped.\n */\n filter?: (target: HTMLElement, meta: { currentThis: any, helper: HelperHostSet }) => boolean;\n}\n\nexport interface QueryAllMetadata {\n propertyKey: string | symbol;\n selector: string | ((currentThis: any, helper: HelperHostSet) => NodeList | Element | Element[] | null);\n options: QueryAllOptions;\n}\n\nexport const QUERY_ALL_METADATA_KEY = Symbol.for('simple-web-component:query-all');\n\nexport function queryAll(target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor): PropertyDescriptor | void;\nexport function queryAll(selector: string | ((currentThis: any, helper: HelperHostSet) => NodeList | Element | Element[] | null), options?: QueryAllOptions): PropertyDecorator;\nexport function queryAll(options?: QueryAllOptions): PropertyDecorator;\n/**\n * @queryAll decorator to inject a list of elements into a class property.\n * \n * Supports both string selectors and function-based selectors:\n * - String selector: @queryAll('.item')\n * - Function selector: @queryAll((currentThis, helper) => currentThis.shadowRoot?.querySelectorAll('.item'))\n * \n * Supports filtering:\n * - @queryAll('.item', { filter: (target, meta) => target.hasAttribute('active') })\n */\nexport function queryAll(selectorOrTarget?: string | ((currentThis: any, helper: HelperHostSet) => NodeList | Element | Element[] | null) | Object, optionsOrPropertyKey?: QueryAllOptions | string | symbol, descriptor?: PropertyDescriptor): any {\n // Bare decorator: @queryAll\n if (descriptor !== undefined && (typeof optionsOrPropertyKey === 'string' || typeof optionsOrPropertyKey === 'symbol')) {\n throw new Error(`@queryAll decorator cannot be used on methods. (Method: ${String(optionsOrPropertyKey)})`);\n }\n // With selector\n if (typeof selectorOrTarget === 'string' || typeof selectorOrTarget === 'function') {\n return (targetObj: Object, propertyKey: string | symbol, descriptor?: never): void => {\n if (descriptor !== undefined) {\n throw new Error(`@queryAll decorator cannot be used on methods. (Method: ${String(propertyKey)})`);\n }\n\n const constructor = targetObj.constructor;\n let queries = ReflectUtils.getMetadata<QueryAllMetadata[]>(QUERY_ALL_METADATA_KEY, constructor);\n if (!queries) {\n queries = [];\n ReflectUtils.defineMetadata(QUERY_ALL_METADATA_KEY, queries, constructor);\n }\n queries.push({ propertyKey, selector: selectorOrTarget as any, options: optionsOrPropertyKey as QueryAllOptions || {} });\n\n Object.defineProperty(targetObj, propertyKey, {\n get(this: HTMLElement) {\n ensureInit(this);\n const config = getElementConfig(this);\n const win = config?.window || window;\n const hostSet = SwcUtils.getHelperAndHostSet(win, this);\n \n // Resolve selector - can be string or function\n let resolvedSelector: string;\n let resolvedElements: HTMLElement[] = [];\n \n if (typeof selectorOrTarget === 'function') {\n const result = (selectorOrTarget as any)(this, hostSet);\n // If function returns NodeList or Element[], convert to array\n if (result instanceof win.NodeList) {\n resolvedElements = Array.from(result).filter(el => el instanceof win.HTMLElement) as HTMLElement[];\n } else if (Array.isArray(result)) {\n resolvedElements = result.filter(el => el instanceof win.HTMLElement) as HTMLElement[];\n }\n } else {\n resolvedSelector = selectorOrTarget;\n\n const r = (optionsOrPropertyKey as QueryAllOptions)?.root || 'auto';\n const applyRoot = (t: any): any[] => {\n if (!t) return [];\n const items = Array.isArray(t) ? t : [t];\n const results: any[] = [];\n items.forEach(it => {\n if (!(it instanceof HTMLElement)) {\n results.push(it);\n return;\n }\n if (r === 'auto') results.push(it.shadowRoot || it);\n else {\n if (r === 'light' || r === 'all') results.push(it);\n if ((r === 'shadow' || r === 'all') && it.shadowRoot) results.push(it.shadowRoot);\n }\n });\n return results;\n };\n\n // --- Special Selectors: HostSet ---\n if (resolvedSelector === '$hosts') resolvedElements = applyRoot(hostSet.$hosts).filter(el => el instanceof HTMLElement);\n else if (resolvedSelector === '$appHosts') resolvedElements = applyRoot(hostSet.$appHosts).filter(el => el instanceof HTMLElement);\n else if (resolvedSelector === '$host') resolvedElements = applyRoot(hostSet.$host).filter(el => el instanceof HTMLElement);\n else if (resolvedSelector === '$parentHost') resolvedElements = applyRoot(hostSet.$parentHost).filter(el => el instanceof HTMLElement);\n else if (resolvedSelector === '$appHost') resolvedElements = applyRoot(hostSet.$appHost).filter(el => el instanceof HTMLElement);\n else if (resolvedSelector === '$firstHost') resolvedElements = applyRoot(hostSet.$firstHost).filter(el => el instanceof HTMLElement);\n else if (resolvedSelector === '$lastHost') resolvedElements = applyRoot(hostSet.$lastHost).filter(el => el instanceof HTMLElement);\n else if (resolvedSelector === '$firstAppHost') resolvedElements = applyRoot(hostSet.$firstAppHost).filter(el => el instanceof HTMLElement);\n else if (resolvedSelector === '$lastAppHost') resolvedElements = applyRoot(hostSet.$lastAppHost).filter(el => el instanceof HTMLElement);\n // --- Special Selectors: Env ---\n else if (resolvedSelector === '$window') return [win];\n else if (resolvedSelector === '$document') return [win.document];\n else if (resolvedSelector === '$this') resolvedElements = applyRoot(this).filter(el => el instanceof HTMLElement);\n // --- Standard Selectors ---\n else {\n if (r === 'shadow') resolvedElements = this.shadowRoot ? (Array.from(this.shadowRoot.querySelectorAll(resolvedSelector)) as HTMLElement[]) : [];\n else if (r === 'light') resolvedElements = Array.from(this.querySelectorAll(resolvedSelector)) as HTMLElement[];\n else if (r === 'all') {\n const sNodes = this.shadowRoot ? (Array.from(this.shadowRoot.querySelectorAll(resolvedSelector)) as HTMLElement[]) : [];\n const lNodes = Array.from(this.querySelectorAll(resolvedSelector)) as HTMLElement[];\n resolvedElements = [...sNodes, ...lNodes];\n }\n else resolvedElements = (Array.from((this.shadowRoot || this).querySelectorAll(resolvedSelector)) as HTMLElement[]);\n }\n }\n\n // Apply filter if provided\n if ((optionsOrPropertyKey as QueryAllOptions)?.filter) {\n resolvedElements = resolvedElements.filter(el => {\n if (!(el instanceof win.HTMLElement)) return true;\n return (optionsOrPropertyKey as QueryAllOptions).filter!(el, { currentThis: this, helper: hostSet });\n });\n }\n\n return resolvedElements;\n },\n set(this: HTMLElement, nv: any) {\n ensureInit(this);\n if (nv === null || nv === undefined || (Array.isArray(nv) && nv.length === 0)) {\n const config = getElementConfig(this);\n const win = config?.window || window;\n const hostSet = SwcUtils.getHelperAndHostSet(win, this);\n \n // Resolve selector - can be string or function\n if (typeof selectorOrTarget === 'function') {\n // Get elements from function and remove them\n const result = (selectorOrTarget as any)(this, hostSet);\n if (result instanceof win.NodeList) {\n Array.from(result).forEach(el => {\n if (el instanceof win.Element) (el as Element).remove();\n });\n } else if (Array.isArray(result)) {\n result.forEach(el => {\n if (el instanceof win.Element) (el as Element).remove();\n });\n }\n return;\n }\n \n const resolvedSelector = selectorOrTarget;\n \n if (resolvedSelector.startsWith('$') && resolvedSelector !== '$this') return;\n\n const r = (optionsOrPropertyKey as SwcQueryOptions)?.root || 'auto';\n let targets: (Element | Node)[] = [];\n if (r === 'shadow') targets = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(resolvedSelector)) : [];\n else if (r === 'light') targets = Array.from(this.querySelectorAll(resolvedSelector));\n else if (r === 'all') {\n const sNodes = this.shadowRoot ? Array.from(this.shadowRoot.querySelectorAll(resolvedSelector)) : [];\n const lNodes = Array.from(this.querySelectorAll(resolvedSelector));\n targets = [...sNodes, ...lNodes];\n } else {\n targets = Array.from((this.shadowRoot || this).querySelectorAll(resolvedSelector));\n }\n targets.forEach(t => (t as Element).remove());\n }\n },\n enumerable: true,\n configurable: true\n });\n };\n }\n // Without selector (defaults to $this)\n return queryAll('$this', selectorOrTarget as SwcQueryOptions);\n}\n\nexport const getQueryAllMetadata = (target: any): QueryAllMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getMetadata(QUERY_ALL_METADATA_KEY, constructor);\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["descriptor"]
7
7
  }