@dooboostore/simple-web-component 1.0.48 → 1.0.50

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 (192) hide show
  1. package/README.md +189 -19
  2. package/dist/cjs/config/config.js +1 -1
  3. package/dist/cjs/config/config.js.map +2 -2
  4. package/dist/cjs/decorators/addEventListener.js +2373 -30
  5. package/dist/cjs/decorators/addEventListener.js.map +3 -3
  6. package/dist/cjs/decorators/applyAttribute.js +31 -0
  7. package/dist/cjs/decorators/applyAttribute.js.map +2 -2
  8. package/dist/cjs/decorators/applyClass.js +55 -18
  9. package/dist/cjs/decorators/applyClass.js.map +3 -3
  10. package/dist/cjs/decorators/applyNode.js +73 -1
  11. package/dist/cjs/decorators/applyNode.js.map +3 -3
  12. package/dist/cjs/decorators/applyProperty.js +107 -3
  13. package/dist/cjs/decorators/applyProperty.js.map +2 -2
  14. package/dist/cjs/decorators/applySlot.js +6 -5
  15. package/dist/cjs/decorators/applySlot.js.map +2 -2
  16. package/dist/cjs/decorators/applyStyle.js +42 -5
  17. package/dist/cjs/decorators/applyStyle.js.map +2 -2
  18. package/dist/cjs/decorators/changedAttribute.js +61 -13
  19. package/dist/cjs/decorators/changedAttribute.js.map +2 -2
  20. package/dist/cjs/decorators/elementDefine.js +254 -439
  21. package/dist/cjs/decorators/elementDefine.js.map +3 -3
  22. package/dist/cjs/decorators/emitCustomEvent.js +55 -0
  23. package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
  24. package/dist/cjs/decorators/eventMedia.js +84 -0
  25. package/dist/cjs/decorators/eventMedia.js.map +7 -0
  26. package/dist/cjs/decorators/index.js +6 -1
  27. package/dist/cjs/decorators/index.js.map +2 -2
  28. package/dist/cjs/decorators/intersectionObserver.js +200 -0
  29. package/dist/cjs/decorators/intersectionObserver.js.map +7 -0
  30. package/dist/cjs/decorators/mutationObserver.js +186 -55
  31. package/dist/cjs/decorators/mutationObserver.js.map +3 -3
  32. package/dist/cjs/decorators/parameter.js +73 -0
  33. package/dist/cjs/decorators/parameter.js.map +7 -0
  34. package/dist/cjs/decorators/query.js +117 -102
  35. package/dist/cjs/decorators/query.js.map +2 -2
  36. package/dist/cjs/decorators/requestAnimationFrame.js +124 -0
  37. package/dist/cjs/decorators/requestAnimationFrame.js.map +7 -0
  38. package/dist/cjs/decorators/resizeObserver.js +133 -55
  39. package/dist/cjs/decorators/resizeObserver.js.map +2 -2
  40. package/dist/cjs/decorators/setInterval.js +114 -0
  41. package/dist/cjs/decorators/setInterval.js.map +7 -0
  42. package/dist/cjs/decorators/setTimeout.js +117 -0
  43. package/dist/cjs/decorators/setTimeout.js.map +7 -0
  44. package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js +9 -0
  45. package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js.map +2 -2
  46. package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js +9 -0
  47. package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
  48. package/dist/cjs/elements/SwcAppMixin.js +19 -3
  49. package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
  50. package/dist/cjs/types/index.js.map +1 -1
  51. package/dist/cjs/types/window.d.js.map +1 -1
  52. package/dist/esm/config/config.js +1 -1
  53. package/dist/esm/config/config.js.map +2 -2
  54. package/dist/esm/decorators/addEventListener.js +2374 -30
  55. package/dist/esm/decorators/addEventListener.js.map +3 -3
  56. package/dist/esm/decorators/applyAttribute.js +31 -0
  57. package/dist/esm/decorators/applyAttribute.js.map +2 -2
  58. package/dist/esm/decorators/applyClass.js +55 -18
  59. package/dist/esm/decorators/applyClass.js.map +3 -3
  60. package/dist/esm/decorators/applyNode.js +73 -1
  61. package/dist/esm/decorators/applyNode.js.map +3 -3
  62. package/dist/esm/decorators/applyProperty.js +107 -3
  63. package/dist/esm/decorators/applyProperty.js.map +2 -2
  64. package/dist/esm/decorators/applySlot.js +6 -5
  65. package/dist/esm/decorators/applySlot.js.map +2 -2
  66. package/dist/esm/decorators/applyStyle.js +42 -5
  67. package/dist/esm/decorators/applyStyle.js.map +2 -2
  68. package/dist/esm/decorators/changedAttribute.js +62 -13
  69. package/dist/esm/decorators/changedAttribute.js.map +2 -2
  70. package/dist/esm/decorators/elementDefine.js +261 -446
  71. package/dist/esm/decorators/elementDefine.js.map +3 -3
  72. package/dist/esm/decorators/emitCustomEvent.js +55 -0
  73. package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
  74. package/dist/esm/decorators/eventMedia.js +66 -0
  75. package/dist/esm/decorators/eventMedia.js.map +7 -0
  76. package/dist/esm/decorators/index.js +6 -1
  77. package/dist/esm/decorators/index.js.map +2 -2
  78. package/dist/esm/decorators/intersectionObserver.js +182 -0
  79. package/dist/esm/decorators/intersectionObserver.js.map +7 -0
  80. package/dist/esm/decorators/mutationObserver.js +187 -55
  81. package/dist/esm/decorators/mutationObserver.js.map +3 -3
  82. package/dist/esm/decorators/parameter.js +54 -0
  83. package/dist/esm/decorators/parameter.js.map +7 -0
  84. package/dist/esm/decorators/query.js +117 -102
  85. package/dist/esm/decorators/query.js.map +2 -2
  86. package/dist/esm/decorators/requestAnimationFrame.js +105 -0
  87. package/dist/esm/decorators/requestAnimationFrame.js.map +7 -0
  88. package/dist/esm/decorators/resizeObserver.js +134 -55
  89. package/dist/esm/decorators/resizeObserver.js.map +2 -2
  90. package/dist/esm/decorators/setInterval.js +95 -0
  91. package/dist/esm/decorators/setInterval.js.map +7 -0
  92. package/dist/esm/decorators/setTimeout.js +98 -0
  93. package/dist/esm/decorators/setTimeout.js.map +7 -0
  94. package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js +9 -0
  95. package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js.map +2 -2
  96. package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js +9 -0
  97. package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +2 -2
  98. package/dist/esm/elements/SwcAppMixin.js +20 -4
  99. package/dist/esm/elements/SwcAppMixin.js.map +2 -2
  100. package/dist/esm/types/index.js.map +1 -1
  101. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +4961 -1628
  102. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  103. package/dist/types/config/config.d.ts.map +1 -1
  104. package/dist/types/decorators/addEventListener.d.ts +1046 -33
  105. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  106. package/dist/types/decorators/applyAttribute.d.ts +24 -34
  107. package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
  108. package/dist/types/decorators/applyClass.d.ts +36 -34
  109. package/dist/types/decorators/applyClass.d.ts.map +1 -1
  110. package/dist/types/decorators/applyNode.d.ts +32 -20
  111. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  112. package/dist/types/decorators/applyProperty.d.ts +61 -34
  113. package/dist/types/decorators/applyProperty.d.ts.map +1 -1
  114. package/dist/types/decorators/applySlot.d.ts.map +1 -1
  115. package/dist/types/decorators/applyStyle.d.ts +27 -12
  116. package/dist/types/decorators/applyStyle.d.ts.map +1 -1
  117. package/dist/types/decorators/changedAttribute.d.ts +12 -3
  118. package/dist/types/decorators/changedAttribute.d.ts.map +1 -1
  119. package/dist/types/decorators/elementDefine.d.ts +0 -14
  120. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  121. package/dist/types/decorators/emitCustomEvent.d.ts +28 -4
  122. package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
  123. package/dist/types/decorators/eventMedia.d.ts +25 -0
  124. package/dist/types/decorators/eventMedia.d.ts.map +1 -0
  125. package/dist/types/decorators/index.d.ts +6 -1
  126. package/dist/types/decorators/index.d.ts.map +1 -1
  127. package/dist/types/decorators/intersectionObserver.d.ts +58 -0
  128. package/dist/types/decorators/intersectionObserver.d.ts.map +1 -0
  129. package/dist/types/decorators/mutationObserver.d.ts +44 -25
  130. package/dist/types/decorators/mutationObserver.d.ts.map +1 -1
  131. package/dist/types/decorators/parameter.d.ts +35 -0
  132. package/dist/types/decorators/parameter.d.ts.map +1 -0
  133. package/dist/types/decorators/query.d.ts +57 -14
  134. package/dist/types/decorators/query.d.ts.map +1 -1
  135. package/dist/types/decorators/requestAnimationFrame.d.ts +47 -0
  136. package/dist/types/decorators/requestAnimationFrame.d.ts.map +1 -0
  137. package/dist/types/decorators/resizeObserver.d.ts +43 -23
  138. package/dist/types/decorators/resizeObserver.d.ts.map +1 -1
  139. package/dist/types/decorators/setInterval.d.ts +41 -0
  140. package/dist/types/decorators/setInterval.d.ts.map +1 -0
  141. package/dist/types/decorators/setTimeout.d.ts +41 -0
  142. package/dist/types/decorators/setTimeout.d.ts.map +1 -0
  143. package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts +7 -1
  144. package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts.map +1 -1
  145. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts +6 -0
  146. package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts.map +1 -1
  147. package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
  148. package/dist/types/types/index.d.ts +104 -0
  149. package/dist/types/types/index.d.ts.map +1 -1
  150. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +4961 -1628
  151. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  152. package/package.json +7 -5
  153. package/src/config/config.ts +1 -1
  154. package/src/decorators/addEventListener.ts +1446 -34
  155. package/src/decorators/applyAttribute.ts +60 -36
  156. package/src/decorators/applyClass.ts +86 -26
  157. package/src/decorators/applyNode.ts +124 -36
  158. package/src/decorators/applyProperty.ts +172 -40
  159. package/src/decorators/applySlot.ts +6 -5
  160. package/src/decorators/applyStyle.ts +74 -17
  161. package/src/decorators/changedAttribute.ts +76 -15
  162. package/src/decorators/elementDefine.ts +310 -582
  163. package/src/decorators/emitCustomEvent.ts +73 -5
  164. package/src/decorators/eventMedia.ts +78 -0
  165. package/src/decorators/index.ts +6 -1
  166. package/src/decorators/intersectionObserver.ts +275 -0
  167. package/src/decorators/mutationObserver.ts +282 -89
  168. package/src/decorators/parameter.ts +81 -0
  169. package/src/decorators/query.ts +168 -126
  170. package/src/decorators/requestAnimationFrame.ts +158 -0
  171. package/src/decorators/resizeObserver.ts +211 -89
  172. package/src/decorators/setInterval.ts +136 -0
  173. package/src/decorators/setTimeout.ts +139 -0
  174. package/src/decorators/subscribeSwcAppMessageWhileConnected.ts +17 -0
  175. package/src/decorators/subscribeSwcAppRouteChangeWhileConnected.ts +19 -0
  176. package/src/elements/SwcAppMixin.ts +20 -5
  177. package/src/types/index.ts +141 -0
  178. package/src/types/window.d.ts +2 -18
  179. package/dist/cjs/decorators/queryAll.js +0 -181
  180. package/dist/cjs/decorators/queryAll.js.map +0 -7
  181. package/dist/cjs/examples/RxJSOperatorsExample.js +0 -285
  182. package/dist/cjs/examples/RxJSOperatorsExample.js.map +0 -7
  183. package/dist/esm/decorators/queryAll.js +0 -162
  184. package/dist/esm/decorators/queryAll.js.map +0 -7
  185. package/dist/esm/examples/RxJSOperatorsExample.js +0 -266
  186. package/dist/esm/examples/RxJSOperatorsExample.js.map +0 -7
  187. package/dist/types/decorators/queryAll.d.ts +0 -22
  188. package/dist/types/decorators/queryAll.d.ts.map +0 -1
  189. package/dist/types/examples/RxJSOperatorsExample.d.ts +0 -94
  190. package/dist/types/examples/RxJSOperatorsExample.d.ts.map +0 -1
  191. package/src/decorators/queryAll.ts +0 -186
  192. package/src/examples/RxJSOperatorsExample.ts +0 -279
@@ -20,6 +20,12 @@ __export(applyClass_exports, {
20
20
  CLASS_METADATA_KEY: () => CLASS_METADATA_KEY,
21
21
  addClass: () => addClass,
22
22
  applyClass: () => applyClass,
23
+ cls: () => cls,
24
+ clsAll: () => clsAll,
25
+ clsAppHost: () => clsAppHost,
26
+ clsLight: () => clsLight,
27
+ clsShadow: () => clsShadow,
28
+ clsThis: () => clsThis,
23
29
  findAllClassMetadata: () => findAllClassMetadata,
24
30
  removeClass: () => removeClass,
25
31
  setClass: () => setClass,
@@ -47,6 +53,9 @@ const resolveSelector = (selector, inst, win) => {
47
53
  if (result === null) {
48
54
  return [];
49
55
  }
56
+ if (result instanceof win.Node) {
57
+ return [];
58
+ }
50
59
  return result;
51
60
  }
52
61
  return selector;
@@ -128,7 +137,7 @@ function createClassDecorator(action) {
128
137
  if (classMap && typeof classMap === "string") {
129
138
  classes = resolvedRes ? classMap : "";
130
139
  } else if (typeof resolvedRes === "object" && resolvedRes !== null && !Array.isArray(resolvedRes)) {
131
- classes = Object.entries(resolvedRes).filter(([_, force]) => typeof force === "function" ? force(targetEl, hostSet) : !!force).map(([cls]) => cls).join(" ");
140
+ classes = Object.entries(resolvedRes).filter(([_, force]) => typeof force === "function" ? force(targetEl, hostSet) : !!force).map(([cls2]) => cls2).join(" ");
132
141
  } else {
133
142
  classes = Array.isArray(resolvedRes) ? resolvedRes.join(" ") : String(resolvedRes);
134
143
  }
@@ -137,9 +146,9 @@ function createClassDecorator(action) {
137
146
  if (classMap && typeof classMap === "string") {
138
147
  targetEl.classList.toggle(classMap, !!resolvedRes);
139
148
  } else if (typeof resolvedRes === "object" && resolvedRes !== null && !Array.isArray(resolvedRes)) {
140
- Object.entries(resolvedRes).forEach(([cls, force]) => {
149
+ Object.entries(resolvedRes).forEach(([cls2, force]) => {
141
150
  const isActive = typeof force === "function" ? force(targetEl, hostSet) : !!force;
142
- targetEl.classList.toggle(cls, isActive);
151
+ targetEl.classList.toggle(cls2, isActive);
143
152
  });
144
153
  } else {
145
154
  const classes = Array.isArray(resolvedRes) ? resolvedRes.map(String) : [String(resolvedRes)];
@@ -151,11 +160,11 @@ function createClassDecorator(action) {
151
160
  if (action === "add") targetEl.classList.add(classMap);
152
161
  else targetEl.classList.remove(classMap);
153
162
  } else if (typeof resolvedRes === "object" && resolvedRes !== null && !Array.isArray(resolvedRes)) {
154
- Object.entries(resolvedRes).forEach(([cls, force]) => {
163
+ Object.entries(resolvedRes).forEach(([cls2, force]) => {
155
164
  const shouldExecute = typeof force === "function" ? force(targetEl, hostSet) : !!force;
156
165
  if (shouldExecute) {
157
- if (action === "add") targetEl.classList.add(cls);
158
- else targetEl.classList.remove(cls);
166
+ if (action === "add") targetEl.classList.add(cls2);
167
+ else targetEl.classList.remove(cls2);
159
168
  }
160
169
  });
161
170
  } else {
@@ -179,10 +188,10 @@ function createClassDecorator(action) {
179
188
  };
180
189
  }
181
190
  function applyClass(selectorOrTarget, actionOrPropertyKey, optionsOrDescriptor) {
182
- if (optionsOrDescriptor !== void 0 && (typeof actionOrPropertyKey === "string" || typeof actionOrPropertyKey === "symbol")) {
191
+ if (optionsOrDescriptor !== void 0 && typeof selectorOrTarget !== "string" && typeof selectorOrTarget !== "function" && (typeof actionOrPropertyKey === "string" || typeof actionOrPropertyKey === "symbol")) {
183
192
  return createClassDecorator("update")("$this", {})(selectorOrTarget, actionOrPropertyKey, optionsOrDescriptor);
184
193
  }
185
- if (typeof selectorOrTarget === "string") {
194
+ if (typeof selectorOrTarget === "string" || typeof selectorOrTarget === "function") {
186
195
  const action2 = typeof actionOrPropertyKey === "string" ? actionOrPropertyKey : "update";
187
196
  const options2 = typeof actionOrPropertyKey === "object" ? actionOrPropertyKey : optionsOrDescriptor;
188
197
  return createClassDecorator(action2)(selectorOrTarget, options2);
@@ -192,50 +201,78 @@ function applyClass(selectorOrTarget, actionOrPropertyKey, optionsOrDescriptor)
192
201
  return createClassDecorator(action)("$this", options);
193
202
  }
194
203
  function setClass(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor) {
195
- if (optionsOrDescriptor !== void 0 && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
204
+ if (optionsOrDescriptor !== void 0 && typeof selectorOrTarget !== "string" && typeof selectorOrTarget !== "function" && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
196
205
  return createClassDecorator("set")("$this", {})(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
197
206
  }
198
- if (typeof selectorOrTarget === "string") {
207
+ if (typeof selectorOrTarget === "string" || typeof selectorOrTarget === "function") {
199
208
  return createClassDecorator("set")(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
200
209
  }
201
210
  return createClassDecorator("set")("$this", selectorOrTarget);
202
211
  }
203
212
  function updateClass(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor) {
204
- if (optionsOrDescriptor !== void 0 && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
213
+ if (optionsOrDescriptor !== void 0 && typeof selectorOrTarget !== "string" && typeof selectorOrTarget !== "function" && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
205
214
  return createClassDecorator("update")("$this", {})(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
206
215
  }
207
- if (typeof selectorOrTarget === "string") {
216
+ if (typeof selectorOrTarget === "string" || typeof selectorOrTarget === "function") {
208
217
  return createClassDecorator("update")(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
209
218
  }
210
219
  return createClassDecorator("update")("$this", selectorOrTarget);
211
220
  }
212
221
  function addClass(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor) {
213
- if (optionsOrDescriptor !== void 0 && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
222
+ if (optionsOrDescriptor !== void 0 && typeof selectorOrTarget !== "string" && typeof selectorOrTarget !== "function" && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
214
223
  return createClassDecorator("add")("$this", {})(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
215
224
  }
216
- if (typeof selectorOrTarget === "string") {
225
+ if (typeof selectorOrTarget === "string" || typeof selectorOrTarget === "function") {
217
226
  return createClassDecorator("add")(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
218
227
  }
219
228
  return createClassDecorator("add")("$this", selectorOrTarget);
220
229
  }
221
230
  function removeClass(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor) {
222
- if (optionsOrDescriptor !== void 0 && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
231
+ if (optionsOrDescriptor !== void 0 && typeof selectorOrTarget !== "string" && typeof selectorOrTarget !== "function" && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
223
232
  return createClassDecorator("remove")("$this", {})(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
224
233
  }
225
- if (typeof selectorOrTarget === "string") {
234
+ if (typeof selectorOrTarget === "string" || typeof selectorOrTarget === "function") {
226
235
  return createClassDecorator("remove")(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
227
236
  }
228
237
  return createClassDecorator("remove")("$this", selectorOrTarget);
229
238
  }
230
239
  function toggleClass(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor) {
231
- if (optionsOrDescriptor !== void 0 && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
240
+ if (optionsOrDescriptor !== void 0 && typeof selectorOrTarget !== "string" && typeof selectorOrTarget !== "function" && (typeof classMapOrOptionsOrPropertyKey === "string" || typeof classMapOrOptionsOrPropertyKey === "symbol")) {
232
241
  return createClassDecorator("toggle")("$this", {})(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
233
242
  }
234
- if (typeof selectorOrTarget === "string") {
243
+ if (typeof selectorOrTarget === "string" || typeof selectorOrTarget === "function") {
235
244
  return createClassDecorator("toggle")(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor);
236
245
  }
237
246
  return createClassDecorator("toggle")("$this", selectorOrTarget);
238
247
  }
248
+ const cls = applyClass;
249
+ function clsThis(actionOrTarget, optionsOrPropertyKey, descriptor) {
250
+ if ((typeof optionsOrPropertyKey === "string" || typeof optionsOrPropertyKey === "symbol") && descriptor !== void 0) {
251
+ return applyClass("$this", void 0, {})(actionOrTarget, optionsOrPropertyKey, descriptor);
252
+ }
253
+ return applyClass("$this", actionOrTarget, optionsOrPropertyKey);
254
+ }
255
+ function clsAppHost(actionOrTarget, optionsOrPropertyKey, descriptor) {
256
+ if ((typeof optionsOrPropertyKey === "string" || typeof optionsOrPropertyKey === "symbol") && descriptor !== void 0) {
257
+ return applyClass("$appHost", void 0, {})(actionOrTarget, optionsOrPropertyKey, descriptor);
258
+ }
259
+ return applyClass("$appHost", actionOrTarget, optionsOrPropertyKey);
260
+ }
261
+ function clsLight(selector, actionOrOptions, options) {
262
+ const action = typeof actionOrOptions === "string" ? actionOrOptions : void 0;
263
+ const opts = typeof actionOrOptions === "object" ? actionOrOptions : options;
264
+ return applyClass(selector, action, { ...opts ?? {}, root: "light" });
265
+ }
266
+ function clsShadow(selector, actionOrOptions, options) {
267
+ const action = typeof actionOrOptions === "string" ? actionOrOptions : void 0;
268
+ const opts = typeof actionOrOptions === "object" ? actionOrOptions : options;
269
+ return applyClass(selector, action, { ...opts ?? {}, root: "shadow" });
270
+ }
271
+ function clsAll(selector, actionOrOptions, options) {
272
+ const action = typeof actionOrOptions === "string" ? actionOrOptions : void 0;
273
+ const opts = typeof actionOrOptions === "object" ? actionOrOptions : options;
274
+ return applyClass(selector, action, { ...opts ?? {}, root: "all" });
275
+ }
239
276
  const findAllClassMetadata = (target) => {
240
277
  const result = /* @__PURE__ */ new Map();
241
278
  const maps = import_core.ReflectUtils.findAllMetadata(CLASS_METADATA_KEY, target);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/applyClass.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SpecialSelector, SwcQueryOptions, HelperHostSet } from '../types';\n\nexport const CLASS_METADATA_KEY = Symbol.for('simple-web-component:class');\n\nexport type ClassAction = 'set' | 'update' | 'add' | 'remove' | 'toggle';\n\n/**\n * Resolve selector to string or elements\n * Handles function-based selectors and returns elements if applicable\n */\nconst resolveSelector = (selector: ClassSelector, inst: any, win: Window): string | HTMLElement[] => {\n if (typeof selector === 'function') {\n const hostSet = SwcUtils.getHelperAndHostSet(win, inst);\n const result = selector(inst, hostSet);\n \n if (result instanceof win.Element) {\n return [result as HTMLElement];\n }\n if (result instanceof win.NodeList) {\n return Array.from(result) as HTMLElement[];\n }\n if (Array.isArray(result)) {\n return result as HTMLElement[];\n }\n if (result === null) {\n return [];\n }\n return result as string;\n }\n return selector as string;\n};\n\n/**\n * Get target elements from selector\n */\nconst getTargetElements = (selector: ClassSelector, inst: any, win: Window, root: string): HTMLElement[] => {\n const resolved = resolveSelector(selector, inst, win);\n \n if (Array.isArray(resolved)) {\n return resolved;\n }\n\n const stringSelector = resolved as string;\n const targetEls: HTMLElement[] = [];\n const host = inst as unknown as HTMLElement;\n const hostSet = SwcUtils.getHelperAndHostSet(win, inst);\n\n const applyRoot = (t: any) => {\n if (!t || !(t instanceof win.HTMLElement)) return;\n targetEls.push(t);\n };\n\n if (stringSelector === '$this' || !stringSelector) applyRoot(host);\n else if (stringSelector === '$host') applyRoot(hostSet.$host);\n else if (stringSelector === '$parentHost') applyRoot(hostSet.$parentHost);\n else if (stringSelector === '$appHost') applyRoot(hostSet.$appHost);\n else if (stringSelector === '$firstHost') applyRoot(hostSet.$firstHost);\n else if (stringSelector === '$lastHost') applyRoot(hostSet.$lastHost);\n else if (stringSelector === '$firstAppHost') applyRoot(hostSet.$firstAppHost);\n else if (stringSelector === '$lastAppHost') applyRoot(hostSet.$lastAppHost);\n else if (stringSelector === '$hosts') hostSet.$hosts.forEach(applyRoot);\n else if (stringSelector === '$appHosts') hostSet.$appHosts.forEach(applyRoot);\n else {\n const targetRoot = root === 'auto' ? (host.shadowRoot || host) : (root === 'shadow' ? host.shadowRoot : host);\n if (targetRoot) {\n const found = targetRoot.querySelectorAll(stringSelector);\n if (found) targetEls.push(...(Array.from(found) as HTMLElement[]));\n }\n }\n\n return targetEls;\n};\n\nexport interface ClassApplyOptions extends SwcQueryOptions {\n filter?: (target: HTMLElement, value: any, meta: {currentThis: any, helper: HelperHostSet}) => boolean;\n /**\n * Custom key to extract value from return object.\n * If not provided, uses CLASS_METADATA_KEY by default.\n * Useful when multiple @applyClass decorators are on the same method.\n */\n valueKey?: symbol | string;\n}\n\nexport type ClassSelector = string | ((currentThis: any, helper: HelperHostSet) => NodeList | Element | Element[] | null);\n\nexport interface ClassApplyMetadata {\n propertyKey: string | symbol;\n selector: ClassSelector;\n action: ClassAction;\n options: ClassApplyOptions;\n}\n\nfunction createClassDecorator(action: ClassAction) {\n return (selector: ClassSelector, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}): MethodDecorator => {\n return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = target.constructor;\n let metaList = ReflectUtils.getOwnMetadata(CLASS_METADATA_KEY, constructor) as Map<string | symbol, ClassApplyMetadata>;\n if (!metaList) {\n metaList = new Map<string | symbol, ClassApplyMetadata>();\n ReflectUtils.defineMetadata(CLASS_METADATA_KEY, metaList, constructor);\n }\n\n let classMap: any = undefined;\n let finalOptions = options;\n\n if (typeof classMapOrOptions === 'string' || (typeof classMapOrOptions === 'object' && classMapOrOptions !== null && !('root' in classMapOrOptions))) {\n classMap = classMapOrOptions;\n } else if (typeof classMapOrOptions === 'object' && classMapOrOptions !== null && 'root' in classMapOrOptions) {\n finalOptions = classMapOrOptions as ClassApplyOptions;\n }\n\n metaList.set(propertyKey, { propertyKey, selector, action, options: finalOptions });\n\n const original = descriptor.value;\n descriptor.value = function (...args: any[]) {\n ensureInit(this);\n const res = (original as any).apply(this, args);\n\n /**\n * Extract value for this decorator from method return value\n * \n * If return value is an object with this decorator's key,\n * use that value. Otherwise use the entire return value.\n * \n * Uses valueKey from options if provided, otherwise uses CLASS_METADATA_KEY.\n */\n const extractValue = (v: any) => {\n const keyToUse = finalOptions.valueKey ?? CLASS_METADATA_KEY;\n if (v && typeof v === 'object' && keyToUse in v) {\n return v[keyToUse];\n }\n return v;\n };\n\n const handleResult = (resolvedValue: any) => {\n if (resolvedValue !== undefined) {\n const win = (this as any).ownerDocument?.defaultView || window;\n const host = this as unknown as HTMLElement;\n const hostSet = { ...SwcUtils.getHelperAndHostSet(win, host), $this: this };\n const r = finalOptions.root || 'auto';\n const targetEls = getTargetElements(selector, this, win, r);\n\n targetEls.forEach(targetEl => {\n if (finalOptions.filter && !finalOptions.filter(targetEl, resolvedValue, {currentThis: this, helper: hostSet})) {\n return;\n }\n const resolvedRes = typeof resolvedValue === 'function' ? (resolvedValue as any)(targetEl, hostSet) : resolvedValue;\n\n if (action === 'set') {\n let classes = '';\n if (classMap && typeof classMap === 'string') {\n classes = resolvedRes ? classMap : '';\n } else if (typeof resolvedRes === 'object' && resolvedRes !== null && !Array.isArray(resolvedRes)) {\n classes = Object.entries(resolvedRes as any)\n .filter(([_, force]) => typeof force === 'function' ? force(targetEl, hostSet) : !!force)\n .map(([cls]) => cls)\n .join(' ');\n } else {\n classes = Array.isArray(resolvedRes) ? (resolvedRes as any[]).join(' ') : String(resolvedRes);\n }\n targetEl.className = classes;\n } else if (action === 'update' || action === 'toggle') {\n if (classMap && typeof classMap === 'string') {\n targetEl.classList.toggle(classMap, !!resolvedRes);\n } else if (typeof resolvedRes === 'object' && resolvedRes !== null && !Array.isArray(resolvedRes)) {\n Object.entries(resolvedRes as any).forEach(([cls, force]) => {\n const isActive = typeof force === 'function' ? force(targetEl, hostSet) : !!force;\n targetEl.classList.toggle(cls, isActive);\n });\n } else {\n const classes = Array.isArray(resolvedRes) ? (resolvedRes as any[]).map(String) : [String(resolvedRes)];\n if (action === 'update') targetEl.classList.add(...classes);\n else classes.forEach(c => targetEl.classList.toggle(c));\n }\n } else if (action === 'add' || action === 'remove') {\n if (classMap && typeof classMap === 'string' && !!resolvedRes) {\n if (action === 'add') targetEl.classList.add(classMap);\n else targetEl.classList.remove(classMap);\n } else if (typeof resolvedRes === 'object' && resolvedRes !== null && !Array.isArray(resolvedRes)) {\n Object.entries(resolvedRes as any).forEach(([cls, force]) => {\n const shouldExecute = typeof force === 'function' ? force(targetEl, hostSet) : !!force;\n if (shouldExecute) {\n if (action === 'add') targetEl.classList.add(cls);\n else targetEl.classList.remove(cls);\n }\n });\n } else {\n const classes = Array.isArray(resolvedRes) ? (resolvedRes as any[]).map(String) : [String(resolvedRes)];\n if (action === 'add') targetEl.classList.add(...classes);\n else targetEl.classList.remove(...classes);\n }\n }\n });\n }\n return resolvedValue;\n };\n\n if (res instanceof Promise) {\n return res.then((v: any) => handleResult(extractValue(v)));\n } else {\n return handleResult(extractValue(res));\n }\n };\n return descriptor;\n };\n };\n}\n\nexport function applyClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function applyClass(selector: ClassSelector, action?: ClassAction, options?: ClassApplyOptions): MethodDecorator;\nexport function applyClass(selectorOrTarget?: any, actionOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @applyClass\n if (optionsOrDescriptor !== undefined && (typeof actionOrPropertyKey === 'string' || typeof actionOrPropertyKey === 'symbol')) {\n return createClassDecorator('update')('$this', {})(selectorOrTarget as Object, actionOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string') {\n const action = (typeof actionOrPropertyKey === 'string' ? actionOrPropertyKey : 'update') as ClassAction;\n const options = (typeof actionOrPropertyKey === 'object' ? actionOrPropertyKey : optionsOrDescriptor) as ClassApplyOptions | undefined;\n return createClassDecorator(action)(selectorOrTarget, options);\n }\n // Without selector (defaults to $this)\n const action = (typeof selectorOrTarget === 'string' ? selectorOrTarget : 'update') as ClassAction;\n const options = (typeof selectorOrTarget === 'object' ? selectorOrTarget : actionOrPropertyKey) as ClassApplyOptions | undefined;\n return createClassDecorator(action)('$this', options);\n}\n\nexport function setClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function setClass(selector: ClassSelector, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options?: ClassApplyOptions): MethodDecorator;\nexport function setClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @setClass\n if (optionsOrDescriptor !== undefined && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('set')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string') {\n return createClassDecorator('set')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('set')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\nexport function updateClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function updateClass(selector: ClassSelector, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options?: ClassApplyOptions): MethodDecorator;\nexport function updateClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @updateClass\n if (optionsOrDescriptor !== undefined && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('update')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string') {\n return createClassDecorator('update')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('update')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\nexport function addClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function addClass(selector: ClassSelector, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options?: ClassApplyOptions): MethodDecorator;\nexport function addClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @addClass\n if (optionsOrDescriptor !== undefined && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('add')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string') {\n return createClassDecorator('add')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('add')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\nexport function removeClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function removeClass(selector: ClassSelector, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options?: ClassApplyOptions): MethodDecorator;\nexport function removeClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @removeClass\n if (optionsOrDescriptor !== undefined && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('remove')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string') {\n return createClassDecorator('remove')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('remove')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\nexport function toggleClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function toggleClass(selector: ClassSelector, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options?: ClassApplyOptions): MethodDecorator;\nexport function toggleClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @toggleClass\n if (optionsOrDescriptor !== undefined && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('toggle')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string') {\n return createClassDecorator('toggle')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('toggle')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\nexport const findAllClassMetadata = (target: any): Map<string | symbol, ClassApplyMetadata> => {\n const result = new Map<string | symbol, ClassApplyMetadata>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, ClassApplyMetadata>>(CLASS_METADATA_KEY, target);\n maps.forEach(map => {\n if (map instanceof Map) {\n map.forEach((v, k) => result.set(k, v));\n }\n });\n return result;\n};\n"],
5
- "mappings": "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",
6
- "names": ["action", "options"]
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit } from './elementDefine';\nimport { SwcUtils } from '../utils/Utils';\nimport { SpecialSelector, SwcQueryOptions, SwcFnSelector, SwcSelector, HelperHostSet } from '../types';\n\nexport const CLASS_METADATA_KEY = Symbol.for('simple-web-component:class');\n\nexport type ClassAction = 'set' | 'update' | 'add' | 'remove' | 'toggle';\n\n/**\n * Resolve selector to string or elements\n * Handles function-based selectors and returns elements if applicable\n */\nconst resolveSelector = (selector: ClassSelector, inst: any, win: Window): string | HTMLElement[] => {\n if (typeof selector === 'function') {\n const hostSet = SwcUtils.getHelperAndHostSet(win, inst);\n const result = selector(inst, hostSet);\n \n if (result instanceof win.Element) {\n return [result as HTMLElement];\n }\n if (result instanceof win.NodeList) {\n return Array.from(result) as HTMLElement[];\n }\n if (Array.isArray(result)) {\n return result as HTMLElement[];\n }\n if (result === null) {\n return [];\n }\n if (result instanceof win.Node) {\n return [];\n }\n return result as string;\n }\n return selector as string;\n};\n\n/**\n * Get target elements from selector\n */\nconst getTargetElements = (selector: ClassSelector, inst: any, win: Window, root: string): HTMLElement[] => {\n const resolved = resolveSelector(selector, inst, win);\n \n if (Array.isArray(resolved)) {\n return resolved;\n }\n\n const stringSelector = resolved as string;\n const targetEls: HTMLElement[] = [];\n const host = inst as unknown as HTMLElement;\n const hostSet = SwcUtils.getHelperAndHostSet(win, inst);\n\n const applyRoot = (t: any) => {\n if (!t || !(t instanceof win.HTMLElement)) return;\n targetEls.push(t);\n };\n\n if (stringSelector === '$this' || !stringSelector) applyRoot(host);\n else if (stringSelector === '$host') applyRoot(hostSet.$host);\n else if (stringSelector === '$parentHost') applyRoot(hostSet.$parentHost);\n else if (stringSelector === '$appHost') applyRoot(hostSet.$appHost);\n else if (stringSelector === '$firstHost') applyRoot(hostSet.$firstHost);\n else if (stringSelector === '$lastHost') applyRoot(hostSet.$lastHost);\n else if (stringSelector === '$firstAppHost') applyRoot(hostSet.$firstAppHost);\n else if (stringSelector === '$lastAppHost') applyRoot(hostSet.$lastAppHost);\n else if (stringSelector === '$hosts') hostSet.$hosts.forEach(applyRoot);\n else if (stringSelector === '$appHosts') hostSet.$appHosts.forEach(applyRoot);\n else {\n const targetRoot = root === 'auto' ? (host.shadowRoot || host) : (root === 'shadow' ? host.shadowRoot : host);\n if (targetRoot) {\n const found = targetRoot.querySelectorAll(stringSelector);\n if (found) targetEls.push(...(Array.from(found) as HTMLElement[]));\n }\n }\n\n return targetEls;\n};\n\n// \uACF5\uD1B5 \uC635\uC158 \u2014 root \uC5C6\uC74C\nexport interface ClassBaseOptions {\n filter?: (target: HTMLElement, value: any, meta: {currentThis: any, helper: HelperHostSet}) => boolean;\n valueKey?: symbol | string;\n}\n\n// \uBB38\uC790\uC5F4 \uC140\uB809\uD130 \uC804\uC6A9 \u2014 root \uD5C8\uC6A9 (classMapOrOptions \uD310\uBCC4\uC744 \uC704\uD574 root \uD544\uC694)\nexport type ClassQueryOptions = ClassBaseOptions & SwcQueryOptions;\n// \uD568\uC218 \uC140\uB809\uD130 \uC804\uC6A9 \u2014 root \uAE08\uC9C0. \uB2E8, classMapOrOptions\uC758 options \uC790\uB9AC\uC5D0 \uC62C \uC218 \uC5C6\uC74C(root\uAC00 \uC5C6\uC5B4 classMap\uACFC \uD310\uBCC4 \uBD88\uAC00)\nexport type ClassNonQueryOptions = ClassBaseOptions;\nexport type ClassApplyOptions = ClassQueryOptions;\n\nexport type ClassFnSelector = SwcFnSelector;\nexport type ClassSelector = SwcSelector;\nexport type ClassMapType = { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean };\n\n// \uC140\uB809\uD130 \uC885\uB958\uC5D0 \uB530\uB77C \uC635\uC158 \uD0C0\uC785 \uBD84\uAE30\nexport type ClassOptionsOf<S extends ClassSelector> = S extends string ? ClassQueryOptions : ClassNonQueryOptions;\n\nexport interface ClassApplyMetadata {\n propertyKey: string | symbol;\n selector: ClassSelector;\n action: ClassAction;\n options: ClassApplyOptions;\n}\n\nfunction createClassDecorator(action: ClassAction) {\n return (selector: ClassSelector, classMapOrOptions?: string | { [className: string]: (el: HTMLElement, value: any, helper: HelperHostSet & { $this: any }) => boolean } | ClassApplyOptions, options: ClassApplyOptions = {}): MethodDecorator => {\n return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = target.constructor;\n let metaList = ReflectUtils.getOwnMetadata(CLASS_METADATA_KEY, constructor) as Map<string | symbol, ClassApplyMetadata>;\n if (!metaList) {\n metaList = new Map<string | symbol, ClassApplyMetadata>();\n ReflectUtils.defineMetadata(CLASS_METADATA_KEY, metaList, constructor);\n }\n\n let classMap: any = undefined;\n let finalOptions = options;\n\n if (typeof classMapOrOptions === 'string' || (typeof classMapOrOptions === 'object' && classMapOrOptions !== null && !('root' in classMapOrOptions))) {\n classMap = classMapOrOptions;\n } else if (typeof classMapOrOptions === 'object' && classMapOrOptions !== null && 'root' in classMapOrOptions) {\n finalOptions = classMapOrOptions as ClassApplyOptions;\n }\n\n metaList.set(propertyKey, { propertyKey, selector, action, options: finalOptions });\n\n const original = descriptor.value;\n descriptor.value = function (...args: any[]) {\n ensureInit(this);\n const res = (original as any).apply(this, args);\n\n /**\n * Extract value for this decorator from method return value\n * \n * If return value is an object with this decorator's key,\n * use that value. Otherwise use the entire return value.\n * \n * Uses valueKey from options if provided, otherwise uses CLASS_METADATA_KEY.\n */\n const extractValue = (v: any) => {\n const keyToUse = finalOptions.valueKey ?? CLASS_METADATA_KEY;\n if (v && typeof v === 'object' && keyToUse in v) {\n return v[keyToUse];\n }\n return v;\n };\n\n const handleResult = (resolvedValue: any) => {\n if (resolvedValue !== undefined) {\n const win = (this as any).ownerDocument?.defaultView || window;\n const host = this as unknown as HTMLElement;\n const hostSet = { ...SwcUtils.getHelperAndHostSet(win, host), $this: this };\n const r = finalOptions.root || 'auto';\n const targetEls = getTargetElements(selector, this, win, r);\n\n targetEls.forEach(targetEl => {\n if (finalOptions.filter && !finalOptions.filter(targetEl, resolvedValue, {currentThis: this, helper: hostSet})) {\n return;\n }\n const resolvedRes = typeof resolvedValue === 'function' ? (resolvedValue as any)(targetEl, hostSet) : resolvedValue;\n\n if (action === 'set') {\n let classes = '';\n if (classMap && typeof classMap === 'string') {\n classes = resolvedRes ? classMap : '';\n } else if (typeof resolvedRes === 'object' && resolvedRes !== null && !Array.isArray(resolvedRes)) {\n classes = Object.entries(resolvedRes as any)\n .filter(([_, force]) => typeof force === 'function' ? force(targetEl, hostSet) : !!force)\n .map(([cls]) => cls)\n .join(' ');\n } else {\n classes = Array.isArray(resolvedRes) ? (resolvedRes as any[]).join(' ') : String(resolvedRes);\n }\n targetEl.className = classes;\n } else if (action === 'update' || action === 'toggle') {\n if (classMap && typeof classMap === 'string') {\n targetEl.classList.toggle(classMap, !!resolvedRes);\n } else if (typeof resolvedRes === 'object' && resolvedRes !== null && !Array.isArray(resolvedRes)) {\n Object.entries(resolvedRes as any).forEach(([cls, force]) => {\n const isActive = typeof force === 'function' ? force(targetEl, hostSet) : !!force;\n targetEl.classList.toggle(cls, isActive);\n });\n } else {\n const classes = Array.isArray(resolvedRes) ? (resolvedRes as any[]).map(String) : [String(resolvedRes)];\n if (action === 'update') targetEl.classList.add(...classes);\n else classes.forEach(c => targetEl.classList.toggle(c));\n }\n } else if (action === 'add' || action === 'remove') {\n if (classMap && typeof classMap === 'string' && !!resolvedRes) {\n if (action === 'add') targetEl.classList.add(classMap);\n else targetEl.classList.remove(classMap);\n } else if (typeof resolvedRes === 'object' && resolvedRes !== null && !Array.isArray(resolvedRes)) {\n Object.entries(resolvedRes as any).forEach(([cls, force]) => {\n const shouldExecute = typeof force === 'function' ? force(targetEl, hostSet) : !!force;\n if (shouldExecute) {\n if (action === 'add') targetEl.classList.add(cls);\n else targetEl.classList.remove(cls);\n }\n });\n } else {\n const classes = Array.isArray(resolvedRes) ? (resolvedRes as any[]).map(String) : [String(resolvedRes)];\n if (action === 'add') targetEl.classList.add(...classes);\n else targetEl.classList.remove(...classes);\n }\n }\n });\n }\n return resolvedValue;\n };\n\n if (res instanceof Promise) {\n return res.then((v: any) => handleResult(extractValue(v)));\n } else {\n return handleResult(extractValue(res));\n }\n };\n return descriptor;\n };\n };\n}\n\nexport function applyClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function applyClass(selector: string, action?: ClassAction, options?: ClassQueryOptions): MethodDecorator;\nexport function applyClass(selector: ClassFnSelector, action?: ClassAction, options?: ClassNonQueryOptions): MethodDecorator;\nexport function applyClass(selectorOrTarget?: any, actionOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @applyClass\n if (optionsOrDescriptor !== undefined && typeof selectorOrTarget !== 'string' && typeof selectorOrTarget !== 'function' && (typeof actionOrPropertyKey === 'string' || typeof actionOrPropertyKey === 'symbol')) {\n return createClassDecorator('update')('$this', {})(selectorOrTarget as Object, actionOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string' || typeof selectorOrTarget === 'function') {\n const action = (typeof actionOrPropertyKey === 'string' ? actionOrPropertyKey : 'update') as ClassAction;\n const options = (typeof actionOrPropertyKey === 'object' ? actionOrPropertyKey : optionsOrDescriptor) as ClassApplyOptions | undefined;\n return createClassDecorator(action)(selectorOrTarget, options);\n }\n // Without selector (defaults to $this)\n const action = (typeof selectorOrTarget === 'string' ? selectorOrTarget : 'update') as ClassAction;\n const options = (typeof selectorOrTarget === 'object' ? selectorOrTarget : actionOrPropertyKey) as ClassApplyOptions | undefined;\n return createClassDecorator(action)('$this', options);\n}\n\nexport function setClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function setClass(selector: string, classMapOrOptions?: string | ClassMapType | ClassQueryOptions, options?: ClassQueryOptions): MethodDecorator;\nexport function setClass(selector: ClassFnSelector, classMap: string | ClassMapType): MethodDecorator;\nexport function setClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @setClass\n if (optionsOrDescriptor !== undefined && typeof selectorOrTarget !== 'string' && typeof selectorOrTarget !== 'function' && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('set')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string' || typeof selectorOrTarget === 'function') {\n return createClassDecorator('set')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('set')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\nexport function updateClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function updateClass(selector: string, classMapOrOptions?: string | ClassMapType | ClassQueryOptions, options?: ClassQueryOptions): MethodDecorator;\nexport function updateClass(selector: ClassFnSelector, classMap: string | ClassMapType): MethodDecorator;\nexport function updateClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @updateClass\n if (optionsOrDescriptor !== undefined && typeof selectorOrTarget !== 'string' && typeof selectorOrTarget !== 'function' && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('update')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string' || typeof selectorOrTarget === 'function') {\n return createClassDecorator('update')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('update')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\nexport function addClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function addClass(selector: string, classMapOrOptions?: string | ClassMapType | ClassQueryOptions, options?: ClassQueryOptions): MethodDecorator;\nexport function addClass(selector: ClassFnSelector, classMap: string | ClassMapType): MethodDecorator;\nexport function addClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @addClass\n if (optionsOrDescriptor !== undefined && typeof selectorOrTarget !== 'string' && typeof selectorOrTarget !== 'function' && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('add')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string' || typeof selectorOrTarget === 'function') {\n return createClassDecorator('add')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('add')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\nexport function removeClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function removeClass(selector: string, classMapOrOptions?: string | ClassMapType | ClassQueryOptions, options?: ClassQueryOptions): MethodDecorator;\nexport function removeClass(selector: ClassFnSelector, classMap: string | ClassMapType): MethodDecorator;\nexport function removeClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @removeClass\n if (optionsOrDescriptor !== undefined && typeof selectorOrTarget !== 'string' && typeof selectorOrTarget !== 'function' && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('remove')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string' || typeof selectorOrTarget === 'function') {\n return createClassDecorator('remove')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('remove')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\nexport function toggleClass(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function toggleClass(selector: string, classMapOrOptions?: string | ClassMapType | ClassQueryOptions, options?: ClassQueryOptions): MethodDecorator;\nexport function toggleClass(selector: ClassFnSelector, classMap: string | ClassMapType): MethodDecorator;\nexport function toggleClass(selectorOrTarget?: any, classMapOrOptionsOrPropertyKey?: any, optionsOrDescriptor?: any): any {\n // Bare decorator: @toggleClass\n if (optionsOrDescriptor !== undefined && typeof selectorOrTarget !== 'string' && typeof selectorOrTarget !== 'function' && (typeof classMapOrOptionsOrPropertyKey === 'string' || typeof classMapOrOptionsOrPropertyKey === 'symbol')) {\n return createClassDecorator('toggle')('$this', {})(selectorOrTarget as Object, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as PropertyDescriptor);\n }\n // With selector\n if (typeof selectorOrTarget === 'string' || typeof selectorOrTarget === 'function') {\n return createClassDecorator('toggle')(selectorOrTarget, classMapOrOptionsOrPropertyKey, optionsOrDescriptor as ClassApplyOptions);\n }\n // Without selector (defaults to $this)\n return createClassDecorator('toggle')('$this', selectorOrTarget as ClassApplyOptions);\n}\n\n// \u2500\u2500\u2500 Aliases \u2500\u2500\u2500\n// class\uB294 \uC608\uC57D\uC5B4\uB77C cls \uC0AC\uC6A9\nexport const cls = applyClass;\n\n// \u2500\u2500\u2500 \uD3B8\uC758 \uD5EC\uD37C (selector/root \uC0DD\uB7B5) \u2500\u2500\u2500\n\nexport function clsThis(action?: ClassAction, options?: ClassQueryOptions): MethodDecorator;\nexport function clsThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function clsThis(actionOrTarget?: ClassAction | Object, optionsOrPropertyKey?: ClassQueryOptions | string | symbol, descriptor?: PropertyDescriptor): any {\n if ((typeof optionsOrPropertyKey === 'string' || typeof optionsOrPropertyKey === 'symbol') && descriptor !== undefined) {\n return (applyClass('$this', undefined as any, {}) as any)(actionOrTarget, optionsOrPropertyKey, descriptor);\n }\n return applyClass('$this', actionOrTarget as any, optionsOrPropertyKey as ClassQueryOptions);\n}\nexport function clsAppHost(action?: ClassAction, options?: ClassQueryOptions): MethodDecorator;\nexport function clsAppHost(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\nexport function clsAppHost(actionOrTarget?: ClassAction | Object, optionsOrPropertyKey?: ClassQueryOptions | string | symbol, descriptor?: PropertyDescriptor): any {\n if ((typeof optionsOrPropertyKey === 'string' || typeof optionsOrPropertyKey === 'symbol') && descriptor !== undefined) {\n return (applyClass('$appHost', undefined as any, {}) as any)(actionOrTarget, optionsOrPropertyKey, descriptor);\n }\n return applyClass('$appHost', actionOrTarget as any, optionsOrPropertyKey as ClassQueryOptions);\n}\nexport function clsLight(selector: string, action?: ClassAction, options?: Omit<ClassQueryOptions, 'root'>): MethodDecorator;\nexport function clsLight(selector: string, options?: Omit<ClassQueryOptions, 'root'>): MethodDecorator;\nexport function clsLight(selector: string, actionOrOptions?: ClassAction | Omit<ClassQueryOptions, 'root'>, options?: Omit<ClassQueryOptions, 'root'>): MethodDecorator {\n const action = (typeof actionOrOptions === 'string' ? actionOrOptions : undefined) as ClassAction | undefined;\n const opts = (typeof actionOrOptions === 'object' ? actionOrOptions : options) as Omit<ClassQueryOptions, 'root'> | undefined;\n return applyClass(selector, action, {...opts ?? {}, root: 'light'});\n}\nexport function clsShadow(selector: string, action?: ClassAction, options?: Omit<ClassQueryOptions, 'root'>): MethodDecorator;\nexport function clsShadow(selector: string, options?: Omit<ClassQueryOptions, 'root'>): MethodDecorator;\nexport function clsShadow(selector: string, actionOrOptions?: ClassAction | Omit<ClassQueryOptions, 'root'>, options?: Omit<ClassQueryOptions, 'root'>): MethodDecorator {\n const action = (typeof actionOrOptions === 'string' ? actionOrOptions : undefined) as ClassAction | undefined;\n const opts = (typeof actionOrOptions === 'object' ? actionOrOptions : options) as Omit<ClassQueryOptions, 'root'> | undefined;\n return applyClass(selector, action, {...opts ?? {}, root: 'shadow'});\n}\nexport function clsAll(selector: string, action?: ClassAction, options?: Omit<ClassQueryOptions, 'root'>): MethodDecorator;\nexport function clsAll(selector: string, options?: Omit<ClassQueryOptions, 'root'>): MethodDecorator;\nexport function clsAll(selector: string, actionOrOptions?: ClassAction | Omit<ClassQueryOptions, 'root'>, options?: Omit<ClassQueryOptions, 'root'>): MethodDecorator {\n const action = (typeof actionOrOptions === 'string' ? actionOrOptions : undefined) as ClassAction | undefined;\n const opts = (typeof actionOrOptions === 'object' ? actionOrOptions : options) as Omit<ClassQueryOptions, 'root'> | undefined;\n return applyClass(selector, action, {...opts ?? {}, root: 'all'});\n}\n\nexport const findAllClassMetadata = (target: any): Map<string | symbol, ClassApplyMetadata> => {\n const result = new Map<string | symbol, ClassApplyMetadata>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, ClassApplyMetadata>>(CLASS_METADATA_KEY, target);\n maps.forEach(map => {\n if (map instanceof Map) {\n map.forEach((v, k) => result.set(k, v));\n }\n });\n return result;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["cls", "action", "options"]
7
7
  }
@@ -18,7 +18,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
18
18
  var applyNode_exports = {};
19
19
  __export(applyNode_exports, {
20
20
  APPLY_NODE_METADATA_KEY: () => APPLY_NODE_METADATA_KEY,
21
+ apply: () => apply,
22
+ applyAll: () => applyAll,
23
+ applyAppHost: () => applyAppHost,
24
+ applyIfChanged: () => applyIfChanged,
25
+ applyLight: () => applyLight,
21
26
  applyNode: () => applyNode,
27
+ applyShadow: () => applyShadow,
28
+ applyThis: () => applyThis,
22
29
  clearChildrenLight: () => clearChildrenLight,
23
30
  clearChildrenNode: () => clearChildrenNode,
24
31
  clearNode: () => clearNode,
@@ -34,8 +41,12 @@ __export(applyNode_exports, {
34
41
  insertBeforeEnd: () => insertBeforeEnd,
35
42
  insertBeforeEndLight: () => insertBeforeEndLight,
36
43
  insertBeforeEndShadow: () => insertBeforeEndShadow,
44
+ node: () => node,
37
45
  replaceChildren: () => replaceChildren,
38
- replaceChildrenLight: () => replaceChildrenLight
46
+ replaceChildrenLight: () => replaceChildrenLight,
47
+ skipIfEmpty: () => skipIfEmpty,
48
+ skipIfExists: () => skipIfExists,
49
+ skipIfSameTagPresent: () => skipIfSameTagPresent
39
50
  });
40
51
  module.exports = __toCommonJS(applyNode_exports);
41
52
  var import_core = require("@dooboostore/core");
@@ -331,6 +342,29 @@ function clearChildrenLight(selectorOrOptions, maybeOptions, descriptor) {
331
342
  }
332
343
  return applyNode({ ...selectorOrOptions, position: "clearChildren", root: "light" });
333
344
  }
345
+ const apply = applyNode;
346
+ const node = applyNode;
347
+ function applyThis(optionsOrTarget, propertyKey, descriptor) {
348
+ if ((typeof propertyKey === "string" || typeof propertyKey === "symbol") && descriptor !== void 0) {
349
+ return applyNode("$this", {})(optionsOrTarget, propertyKey, descriptor);
350
+ }
351
+ return applyNode("$this", optionsOrTarget);
352
+ }
353
+ function applyAppHost(optionsOrTarget, propertyKey, descriptor) {
354
+ if ((typeof propertyKey === "string" || typeof propertyKey === "symbol") && descriptor !== void 0) {
355
+ return applyNode("$appHost", {})(optionsOrTarget, propertyKey, descriptor);
356
+ }
357
+ return applyNode("$appHost", optionsOrTarget);
358
+ }
359
+ function applyLight(selector, options) {
360
+ return applyNode(selector, { ...options ?? {}, root: "light" });
361
+ }
362
+ function applyShadow(selector, options) {
363
+ return applyNode(selector, { ...options ?? {}, root: "shadow" });
364
+ }
365
+ function applyAll(selector, options) {
366
+ return applyNode(selector, { ...options ?? {}, root: "all" });
367
+ }
334
368
  const findAllApplyNodeMetadata = (target) => {
335
369
  const result = /* @__PURE__ */ new Map();
336
370
  const maps = import_core.ReflectUtils.findAllMetadata(APPLY_NODE_METADATA_KEY, target);
@@ -341,4 +375,42 @@ const findAllApplyNodeMetadata = (target) => {
341
375
  });
342
376
  return result;
343
377
  };
378
+ const filterScopeOf = (target) => {
379
+ if (target && typeof target.querySelector === "function") {
380
+ return target;
381
+ }
382
+ const host = target?.host;
383
+ return host && typeof host.querySelector === "function" ? host : null;
384
+ };
385
+ const tagNameOf = (node2) => {
386
+ const tag = node2?.tagName;
387
+ return typeof tag === "string" ? tag.toLowerCase() : null;
388
+ };
389
+ const skipIfSameTagPresent = (target, newValue) => {
390
+ const nodes = (Array.isArray(newValue) ? newValue : [newValue]).filter((n) => tagNameOf(n) !== null);
391
+ if (nodes.length === 0) return true;
392
+ const scope = filterScopeOf(target);
393
+ if (!scope) return true;
394
+ return !nodes.some((n) => scope.querySelector(tagNameOf(n)));
395
+ };
396
+ const skipIfExists = (selector) => (target) => {
397
+ const scope = filterScopeOf(target);
398
+ if (!scope) return true;
399
+ return !scope.querySelector(selector);
400
+ };
401
+ const skipIfEmpty = (_target, newValue) => {
402
+ if (newValue === null || newValue === void 0 || newValue === false) return false;
403
+ if (typeof newValue === "string") return newValue.trim().length > 0;
404
+ if (Array.isArray(newValue)) return newValue.length > 0;
405
+ return true;
406
+ };
407
+ const applyIfChanged = (target, newValue) => {
408
+ const textOf = (v) => {
409
+ if (typeof v === "string") return v;
410
+ if (Array.isArray(v)) return v.map(textOf).join("");
411
+ return typeof v?.textContent === "string" ? v.textContent : "";
412
+ };
413
+ const current = typeof target?.textContent === "string" ? target.textContent : "";
414
+ return current !== textOf(newValue);
415
+ };
344
416
  //# sourceMappingURL=applyNode.js.map