@dooboostore/simple-web-component 1.0.38 → 1.0.40

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 (91) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +88 -871
  3. package/dist/cjs/SwcAppEngine.js.map +2 -2
  4. package/dist/cjs/decorators/applyAttribute.js +194 -111
  5. package/dist/cjs/decorators/applyAttribute.js.map +2 -2
  6. package/dist/cjs/decorators/applyNode.js +82 -80
  7. package/dist/cjs/decorators/applyNode.js.map +2 -2
  8. package/dist/cjs/decorators/applyProperty.js +213 -0
  9. package/dist/cjs/decorators/applyProperty.js.map +7 -0
  10. package/dist/cjs/decorators/applySlot.js +93 -82
  11. package/dist/cjs/decorators/applySlot.js.map +3 -3
  12. package/dist/cjs/decorators/changedAttributeThis.js.map +1 -1
  13. package/dist/cjs/decorators/elementDefine.js +14 -34
  14. package/dist/cjs/decorators/elementDefine.js.map +2 -2
  15. package/dist/cjs/decorators/index.js +2 -2
  16. package/dist/cjs/decorators/index.js.map +2 -2
  17. package/dist/cjs/decorators/lifecycles.js +4 -4
  18. package/dist/cjs/decorators/lifecycles.js.map +2 -2
  19. package/dist/cjs/decorators/state.js +0 -1
  20. package/dist/cjs/decorators/state.js.map +2 -2
  21. package/dist/cjs/elements/SwcApp.js.map +2 -2
  22. package/dist/cjs/types/index.js.map +1 -1
  23. package/dist/esm/SwcAppEngine.js.map +2 -2
  24. package/dist/esm/decorators/applyAttribute.js +196 -113
  25. package/dist/esm/decorators/applyAttribute.js.map +2 -2
  26. package/dist/esm/decorators/applyNode.js +82 -80
  27. package/dist/esm/decorators/applyNode.js.map +2 -2
  28. package/dist/esm/decorators/applyProperty.js +194 -0
  29. package/dist/esm/decorators/applyProperty.js.map +7 -0
  30. package/dist/esm/decorators/applySlot.js +93 -82
  31. package/dist/esm/decorators/applySlot.js.map +3 -3
  32. package/dist/esm/decorators/changedAttributeThis.js.map +1 -1
  33. package/dist/esm/decorators/elementDefine.js +14 -34
  34. package/dist/esm/decorators/elementDefine.js.map +2 -2
  35. package/dist/esm/decorators/index.js +2 -2
  36. package/dist/esm/decorators/index.js.map +1 -1
  37. package/dist/esm/decorators/lifecycles.js +4 -4
  38. package/dist/esm/decorators/lifecycles.js.map +2 -2
  39. package/dist/esm/decorators/state.js +0 -1
  40. package/dist/esm/decorators/state.js.map +2 -2
  41. package/dist/esm/elements/SwcApp.js.map +2 -2
  42. package/dist/esm/types/index.js.map +1 -1
  43. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +525 -513
  44. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  45. package/dist/types/SwcAppEngine.d.ts.map +1 -1
  46. package/dist/types/decorators/applyAttribute.d.ts +56 -15
  47. package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
  48. package/dist/types/decorators/applyNode.d.ts +28 -24
  49. package/dist/types/decorators/applyNode.d.ts.map +1 -1
  50. package/dist/types/decorators/applyProperty.d.ts +61 -0
  51. package/dist/types/decorators/applyProperty.d.ts.map +1 -0
  52. package/dist/types/decorators/applySlot.d.ts +17 -15
  53. package/dist/types/decorators/applySlot.d.ts.map +1 -1
  54. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  55. package/dist/types/decorators/index.d.ts +2 -2
  56. package/dist/types/decorators/index.d.ts.map +1 -1
  57. package/dist/types/decorators/lifecycles.d.ts +4 -4
  58. package/dist/types/decorators/lifecycles.d.ts.map +1 -1
  59. package/dist/types/decorators/state.d.ts.map +1 -1
  60. package/dist/types/elements/SwcApp.d.ts.map +1 -1
  61. package/dist/types/types/index.d.ts +1 -6
  62. package/dist/types/types/index.d.ts.map +1 -1
  63. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +525 -513
  64. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  65. package/package.json +1 -1
  66. package/src/SwcAppEngine.ts +1 -0
  67. package/src/decorators/applyAttribute.ts +311 -126
  68. package/src/decorators/applyNode.ts +108 -105
  69. package/src/decorators/applyProperty.ts +302 -0
  70. package/src/decorators/applySlot.ts +112 -94
  71. package/src/decorators/changedAttributeThis.ts +1 -1
  72. package/src/decorators/elementDefine.ts +44 -33
  73. package/src/decorators/index.ts +2 -3
  74. package/src/decorators/lifecycles.ts +6 -6
  75. package/src/decorators/state.ts +0 -1
  76. package/src/elements/SwcApp.ts +0 -1
  77. package/src/types/index.ts +7 -7
  78. package/dist/cjs/decorators/attribute.js +0 -187
  79. package/dist/cjs/decorators/attribute.js.map +0 -7
  80. package/dist/cjs/decorators/setProperty.js +0 -109
  81. package/dist/cjs/decorators/setProperty.js.map +0 -7
  82. package/dist/esm/decorators/attribute.js +0 -168
  83. package/dist/esm/decorators/attribute.js.map +0 -7
  84. package/dist/esm/decorators/setProperty.js +0 -90
  85. package/dist/esm/decorators/setProperty.js.map +0 -7
  86. package/dist/types/decorators/attribute.d.ts +0 -31
  87. package/dist/types/decorators/attribute.d.ts.map +0 -1
  88. package/dist/types/decorators/setProperty.d.ts +0 -17
  89. package/dist/types/decorators/setProperty.d.ts.map +0 -1
  90. package/src/decorators/attribute.ts +0 -223
  91. package/src/decorators/setProperty.ts +0 -112
@@ -18,22 +18,26 @@ 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
+ afterBeginLightNodeThis: () => afterBeginLightNodeThis,
22
+ afterBeginNodeThis: () => afterBeginNodeThis,
21
23
  applyNode: () => applyNode,
22
- applyNodeInnerHtml: () => applyNodeInnerHtml,
23
- applyNodeInnerText: () => applyNodeInnerText,
24
- applyNodeReplaceChildren: () => applyNodeReplaceChildren,
25
24
  applyNodeThis: () => applyNodeThis,
26
- applyNodeThisAfterBegin: () => applyNodeThisAfterBegin,
27
- applyNodeThisAfterBeginLightDom: () => applyNodeThisAfterBeginLightDom,
28
- applyNodeThisBeforeEnd: () => applyNodeThisBeforeEnd,
29
- applyNodeThisBeforeEndLightDom: () => applyNodeThisBeforeEndLightDom,
30
- applyNodeThisBeforeEndShadow: () => applyNodeThisBeforeEndShadow,
31
- applyNodeThisReplaceChildren: () => applyNodeThisReplaceChildren,
32
- applyNodeThisReplaceChildrenLightDom: () => applyNodeThisReplaceChildrenLightDom,
33
- applyThisInnerHtmlNode: () => applyThisInnerHtmlNode,
34
- applyThisInnerHtmlNodeLightDom: () => applyThisInnerHtmlNodeLightDom,
35
- applyThisReplaceChildrenNodeLightDom: () => applyThisReplaceChildrenNodeLightDom,
36
- findAllApplyNodeMetadata: () => findAllApplyNodeMetadata
25
+ beforeEndLightNodeThis: () => beforeEndLightNodeThis,
26
+ beforeEndNodeThis: () => beforeEndNodeThis,
27
+ beforeEndShadowNodeThis: () => beforeEndShadowNodeThis,
28
+ findAllApplyNodeMetadata: () => findAllApplyNodeMetadata,
29
+ innerHtmlLightNode: () => innerHtmlLightNode,
30
+ innerHtmlLightNodeThis: () => innerHtmlLightNodeThis,
31
+ innerHtmlNode: () => innerHtmlNode,
32
+ innerHtmlNodeThis: () => innerHtmlNodeThis,
33
+ innerHtmlShadowNode: () => innerHtmlShadowNode,
34
+ innerTextLightNode: () => innerTextLightNode,
35
+ innerTextNode: () => innerTextNode,
36
+ innerTextNodeThis: () => innerTextNodeThis,
37
+ innerTextShadowNode: () => innerTextShadowNode,
38
+ replaceChildrenLightNodeThis: () => replaceChildrenLightNodeThis,
39
+ replaceChildrenNode: () => replaceChildrenNode,
40
+ replaceChildrenNodeThis: () => replaceChildrenNodeThis
37
41
  });
38
42
  module.exports = __toCommonJS(applyNode_exports);
39
43
  var import_core = require("@dooboostore/core");
@@ -42,56 +46,42 @@ var import_Utils = require("../utils/Utils");
42
46
  var import_state = require("./state");
43
47
  var import_core_web = require("@dooboostore/core-web");
44
48
  const APPLY_NODE_METADATA_KEY = Symbol.for("simple-web-component:apply-node");
45
- const normalizeNodes = (res, doc) => {
46
- const items = Array.isArray(res) ? res : [res];
47
- return items.map((it) => {
48
- if (it instanceof Node) return it;
49
- return doc.createTextNode(it !== void 0 && it !== null ? String(it) : "");
50
- });
51
- };
52
49
  const applyToDom = (currentThis, targetEl, res, pos, win, host) => {
53
50
  if (!targetEl) return;
54
51
  const doc = win.document;
55
52
  const hostSet = import_Utils.SwcUtils.getHelperAndHostSet(win, currentThis);
56
53
  const id = currentThis._swcId;
57
- try {
58
- if (typeof res === "string") {
59
- const processed = import_Utils.SwcUtils.projectProcessHtml(id, res, doc);
60
- if (processed !== void 0) res = processed;
61
- } else if (res) {
62
- import_Utils.SwcUtils.projectProcessHtml(id, res, doc);
63
- }
64
- } catch (e) {
65
- }
66
- if (pos === "innerHtml") {
67
- targetEl.innerHTML = res !== void 0 && res !== null ? String(res) : "";
68
- return;
54
+ const nodes = [];
55
+ if (typeof res === "string" && pos === "innerHtml") {
56
+ const t = win.document.createElement("template");
57
+ t.innerHTML = res;
58
+ nodes.push(...Array.from(t.content.childNodes));
59
+ } else if (typeof res === "string" && pos === "innerText") {
60
+ nodes.push(win.document.createTextNode(res));
69
61
  }
70
- if (pos === "innerText") {
71
- if (targetEl.innerText !== void 0) {
72
- targetEl.innerText = res !== void 0 && res !== null ? String(res) : "";
73
- }
74
- return;
75
- }
76
- const stateContext = { ...hostSet };
77
- (0, import_state.findAllStateMetadata)(currentThis).forEach((it) => {
78
- stateContext[it.name] = currentThis[it.propertyKey];
79
- });
80
- new import_core_web.ElementApply(currentThis, { id: currentThis._swcId }).apply({ target: "noInitialized", context: stateContext, bind: currentThis });
62
+ import_Utils.SwcUtils.projectProcessHtml(id, nodes, doc);
81
63
  const isShadowRoot = targetEl instanceof win.ShadowRoot;
82
- const nodes = normalizeNodes(res, doc);
83
64
  if (pos === "replace") {
84
65
  if (!isShadowRoot) targetEl.replaceWith(...nodes);
66
+ } else if (pos === "innerHtml") {
67
+ targetEl.replaceChildren(...nodes);
68
+ } else if (pos === "innerText") {
69
+ targetEl.replaceChildren(...nodes);
85
70
  } else if (pos === "replaceChildren") {
86
71
  targetEl.replaceChildren(...nodes);
87
72
  } else {
88
73
  if (pos === "beforeEnd") {
89
- console.log("tarbbbbbbbbbbbbbb");
90
74
  targetEl.append(...nodes);
91
75
  } else if (pos === "afterBegin") targetEl.prepend(...nodes);
92
76
  else if (pos === "beforeBegin" && !isShadowRoot) targetEl.before(...nodes);
93
77
  else if (pos === "afterEnd" && !isShadowRoot) targetEl.after(...nodes);
94
78
  }
79
+ const stateContext = { ...hostSet };
80
+ (0, import_state.findAllStateMetadata)(currentThis).forEach((it) => {
81
+ stateContext[it.name] = currentThis[it.propertyKey];
82
+ });
83
+ new import_core_web.ElementApply(targetEl, { id }).apply({ target: "noInitialized", context: stateContext, bind: currentThis });
84
+ return nodes;
95
85
  };
96
86
  function applyNode(selector, options = { position: "replaceChildren" }) {
97
87
  return (targetObj, propertyKey, descriptor) => {
@@ -128,7 +118,6 @@ function applyNode(selector, options = { position: "replaceChildren" }) {
128
118
  const targetRoot = applyRoot(this);
129
119
  return targetRoot ? targetRoot.querySelector(selector) : null;
130
120
  };
131
- console.log("fffffffffff");
132
121
  const targetEl = getTarget();
133
122
  const res = original.apply(this, args);
134
123
  const runApply = (target, val) => {
@@ -138,13 +127,14 @@ function applyNode(selector, options = { position: "replaceChildren" }) {
138
127
  applyToDom(this, target, processedVal, pos, currentWin);
139
128
  }
140
129
  };
130
+ const fallbackNodes = [];
131
+ if (targetEl && options.fallback) {
132
+ const loadingRes = options.fallback.call(this, hostSet);
133
+ fallbackNodes.push(...applyToDom(this, targetEl, loadingRes, options.position || "beforeEnd", currentWin));
134
+ }
141
135
  if (res instanceof Promise) {
142
- if (targetEl && options.fallback) {
143
- const loadingRes = options.fallback.call(this, hostSet);
144
- applyToDom(this, targetEl, loadingRes, options.position || "beforeEnd", currentWin);
145
- }
146
136
  return res.then((finalRes) => {
147
- console.log("amnkj");
137
+ fallbackNodes.forEach((it) => it.remove());
148
138
  if (finalRes !== void 0 && targetEl) runApply(targetEl, finalRes);
149
139
  return finalRes;
150
140
  });
@@ -155,89 +145,101 @@ function applyNode(selector, options = { position: "replaceChildren" }) {
155
145
  };
156
146
  };
157
147
  }
158
- const findAllApplyNodeMetadata = (target) => {
159
- const result = /* @__PURE__ */ new Map();
160
- const maps = import_core.ReflectUtils.findAllMetadata(APPLY_NODE_METADATA_KEY, target);
161
- maps.forEach((map) => {
162
- if (map instanceof Map) {
163
- map.forEach((v, k) => result.set(k, v));
164
- }
165
- });
166
- return result;
167
- };
168
148
  function applyNodeThis(targetOrOptions, propertyKey, descriptor) {
169
149
  const option = { position: "replaceChildren" };
170
150
  if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
171
151
  const opt = targetOrOptions || {};
172
152
  return applyNode("$this", { ...option, ...opt });
173
153
  }
174
- function applyNodeThisReplaceChildren(targetOrOptions, propertyKey, descriptor) {
154
+ function replaceChildrenNodeThis(targetOrOptions, propertyKey, descriptor) {
175
155
  const option = { position: "replaceChildren" };
176
156
  if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
177
157
  const opt = targetOrOptions || {};
178
158
  return applyNode("$this", { ...opt, ...option });
179
159
  }
180
- function applyNodeThisReplaceChildrenLightDom(targetOrOptions, propertyKey, descriptor) {
181
- const options = { position: "replaceChildren", root: "light" };
182
- if (propertyKey !== void 0) return applyNode("$this", options)(targetOrOptions, propertyKey, descriptor);
183
- const opt = targetOrOptions || {};
184
- return applyNode("$this", { ...opt, ...options });
185
- }
186
- function applyNodeThisBeforeEnd(targetOrOptions, propertyKey, descriptor) {
160
+ function beforeEndNodeThis(targetOrOptions, propertyKey, descriptor) {
187
161
  const options = { position: "beforeEnd" };
188
162
  if (propertyKey !== void 0) return applyNode("$this", options)(targetOrOptions, propertyKey, descriptor);
189
163
  const opt = targetOrOptions || {};
190
164
  return applyNode("$this", { ...opt, ...options });
191
165
  }
192
- function applyNodeThisBeforeEndLightDom(targetOrOptions, propertyKey, descriptor) {
166
+ function beforeEndLightNodeThis(targetOrOptions, propertyKey, descriptor) {
193
167
  const option = { position: "beforeEnd", root: "light" };
194
168
  if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
195
169
  const opt = targetOrOptions || {};
196
170
  return applyNode("$this", { ...opt, ...option });
197
171
  }
198
- function applyNodeThisBeforeEndShadow(targetOrOptions, propertyKey, descriptor) {
172
+ function beforeEndShadowNodeThis(targetOrOptions, propertyKey, descriptor) {
199
173
  const option = { position: "beforeEnd", root: "shadow" };
200
174
  if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
201
175
  const opt = targetOrOptions || {};
202
176
  return applyNode("$this", { ...opt, ...option });
203
177
  }
204
- function applyNodeThisAfterBegin(targetOrOptions, propertyKey, descriptor) {
178
+ function afterBeginNodeThis(targetOrOptions, propertyKey, descriptor) {
205
179
  const option = { position: "afterBegin" };
206
180
  if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
207
181
  const opt = targetOrOptions || {};
208
182
  return applyNode("$this", { ...opt, ...option });
209
183
  }
210
- function applyNodeThisAfterBeginLightDom(targetOrOptions, propertyKey, descriptor) {
184
+ function afterBeginLightNodeThis(targetOrOptions, propertyKey, descriptor) {
211
185
  const option = { position: "afterBegin", root: "light" };
212
186
  if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
213
187
  const opt = targetOrOptions || {};
214
188
  return applyNode("$this", { ...opt, ...option });
215
189
  }
216
- function applyThisInnerHtmlNode(targetOrOptions, propertyKey, descriptor) {
190
+ function innerHtmlNodeThis(targetOrOptions, propertyKey, descriptor) {
217
191
  const option = { position: "innerHtml" };
218
192
  if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
219
193
  const opt = targetOrOptions || {};
220
194
  return applyNode("$this", { ...opt, ...option });
221
195
  }
222
- function applyThisInnerHtmlNodeLightDom(targetOrOptions, propertyKey, descriptor) {
196
+ function innerTextNodeThis(targetOrOptions, propertyKey, descriptor) {
197
+ const option = { position: "innerText" };
198
+ if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
199
+ const opt = targetOrOptions || {};
200
+ return applyNode("$this", { ...opt, ...option });
201
+ }
202
+ function innerHtmlLightNodeThis(targetOrOptions, propertyKey, descriptor) {
223
203
  const option = { position: "innerHtml", root: "light" };
224
204
  if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
225
205
  const opt = targetOrOptions || {};
226
206
  return applyNode("$this", { ...opt, ...option });
227
207
  }
228
- function applyThisReplaceChildrenNodeLightDom(targetOrOptions, propertyKey, descriptor) {
208
+ function replaceChildrenLightNodeThis(targetOrOptions, propertyKey, descriptor) {
229
209
  const option = { position: "replaceChildren", root: "light" };
230
210
  if (propertyKey !== void 0) return applyNode("$this", option)(targetOrOptions, propertyKey, descriptor);
231
211
  const opt = targetOrOptions || {};
232
212
  return applyNode("$this", { ...opt, ...option });
233
213
  }
234
- function applyNodeReplaceChildren(selector, options = {}) {
214
+ function replaceChildrenNode(selector, options = {}) {
235
215
  return applyNode(selector, { ...options, position: "replaceChildren" });
236
216
  }
237
- function applyNodeInnerHtml(selector, options = {}) {
217
+ function innerHtmlNode(selector, options = {}) {
238
218
  return applyNode(selector, { ...options, position: "innerHtml" });
239
219
  }
240
- function applyNodeInnerText(selector, options = {}) {
220
+ function innerHtmlLightNode(selector, options = {}) {
221
+ return applyNode(selector, { ...options, position: "innerHtml", root: "light" });
222
+ }
223
+ function innerHtmlShadowNode(selector, options = {}) {
224
+ return applyNode(selector, { ...options, position: "innerHtml", root: "shadow" });
225
+ }
226
+ function innerTextNode(selector, options = {}) {
241
227
  return applyNode(selector, { ...options, position: "innerText" });
242
228
  }
229
+ function innerTextLightNode(selector, options = {}) {
230
+ return applyNode(selector, { ...options, position: "innerText", root: "light" });
231
+ }
232
+ function innerTextShadowNode(selector, options = {}) {
233
+ return applyNode(selector, { ...options, position: "innerText", root: "shadow" });
234
+ }
235
+ const findAllApplyNodeMetadata = (target) => {
236
+ const result = /* @__PURE__ */ new Map();
237
+ const maps = import_core.ReflectUtils.findAllMetadata(APPLY_NODE_METADATA_KEY, target);
238
+ maps.forEach((map) => {
239
+ if (map instanceof Map) {
240
+ map.forEach((v, k) => result.set(k, v));
241
+ }
242
+ });
243
+ return result;
244
+ };
243
245
  //# sourceMappingURL=applyNode.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/applyNode.ts"],
4
- "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit, getElementConfig } from './elementDefine';\nimport {SpecialSelector, SwcQueryOptions, HelperHostSet, SwcRootType} from '../types';\nimport { SwcUtils} from \"../utils/Utils\";\nimport {findAllStateMetadata} from \"./state\";\nimport {ElementApply} from \"@dooboostore/core-web\";\n/*\n<!-- beforebegin -->\n<p> <-- it's me\n <!-- afterbegin -->\n foo\n <!-- beforeend -->\n</p>\n<!-- afterend -->\n */\nexport type ApplyNodePosition = 'beforeBegin' | 'afterBegin' | 'beforeEnd' | 'afterEnd' | 'replace' | 'replaceChildren' | 'innerHtml' | 'innerText' | 'remove';\n\nexport interface ApplyNodeOptions {\n position?: ApplyNodePosition;\n root?: SwcRootType;\n /**\n * Filter function to determine whether to perform DOM operation.\n * If it returns false, the operation is skipped.\n */\n filter?: (target: HTMLElement | ShadowRoot, newValue: any, meta: { currentThis: any, helper: HelperHostSet }) => boolean;\n /**\n * Optional loading content to display while an async method is executing.\n */\n fallback?: (helper: HelperHostSet) => any;\n}\n\nexport interface ApplyNodeMetadata {\n propertyKey: string | symbol;\n selector: string;\n options: ApplyNodeOptions;\n}\n\nexport const APPLY_NODE_METADATA_KEY = Symbol.for('simple-web-component:apply-node');\n\nconst normalizeNodes = (res: any, doc: Document): Node[] => {\n const items = Array.isArray(res) ? res : [res];\n return items.map(it => {\n if (it instanceof Node) return it;\n return doc.createTextNode(it !== undefined && it !== null ? String(it) : '');\n });\n};\n\nconst applyToDom = (currentThis: any, targetEl: HTMLElement, res: any, pos: ApplyNodePosition, win: Window, host?: any) => {\n if (!targetEl) return;\n\n // console.log('------------',currentThis.tagName, res)\n const doc = win.document;\n const hostSet = SwcUtils.getHelperAndHostSet(win, currentThis);\n const id = currentThis._swcId;\n // Allow processHtml to run here so all DOM insertions go through a single\n // processing point. processHtml may mutate Node[] in-place or return a\n // transformed string result for text processing.\n try {\n if (typeof res === 'string') {\n const processed = SwcUtils.projectProcessHtml(id, res as string, doc);\n if (processed !== undefined) res = processed;\n } else if (res) {\n SwcUtils.projectProcessHtml(id, res, doc);\n }\n } catch (e) {\n // swallow and proceed with original res\n }\n\n if (pos === 'innerHtml') {\n targetEl.innerHTML = res !== undefined && res !== null ? String(res) : '';\n return;\n }\n\n if (pos === 'innerText') {\n if (targetEl.innerText !== undefined) {\n targetEl.innerText = res !== undefined && res !== null ? String(res) : '';\n }\n return;\n }\n\n const stateContext: any = {...hostSet};\n findAllStateMetadata(currentThis).forEach(it => {\n stateContext[it.name] = currentThis[it.propertyKey]\n })\n new ElementApply(currentThis, {id: currentThis._swcId}).apply({target: 'noInitialized', context: stateContext, bind: currentThis});\n\n\n const isShadowRoot = targetEl instanceof win.ShadowRoot;\n const nodes = normalizeNodes(res, doc);\n if (pos === 'replace') {\n if (!isShadowRoot) targetEl.replaceWith(...nodes);\n } else if (pos === 'replaceChildren') {\n targetEl.replaceChildren(...nodes);\n } else {\n if (pos === 'beforeEnd') {\n console.log('tarbbbbbbbbbbbbbb')\n targetEl.append(...nodes)\n }\n else if (pos === 'afterBegin') targetEl.prepend(...nodes);\n else if (pos === 'beforeBegin' && !isShadowRoot) targetEl.before(...nodes);\n else if (pos === 'afterEnd' && !isShadowRoot) targetEl.after(...nodes);\n }\n};\n\n/**\n * @applyNode decorator to surgically add/replace nodes to a target element.\n */\nexport function applyNode(selector: string, options: ApplyNodeOptions = {position: 'replaceChildren'}): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = targetObj.constructor;\n let metaList = ReflectUtils.getOwnMetadata(APPLY_NODE_METADATA_KEY, constructor) as Map<string | symbol, ApplyNodeMetadata>;\n if (!metaList) {\n metaList = new Map<string | symbol, ApplyNodeMetadata>();\n ReflectUtils.defineMetadata(APPLY_NODE_METADATA_KEY, metaList, constructor);\n }\n metaList.set(propertyKey, {propertyKey, selector, options});\n\n const original = descriptor.value;\n descriptor.value = function (...args: any[]) {\n ensureInit(this);\n\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as Window);\n const currentDoc = currentWin.document;\n const hostSet = SwcUtils.getHelperAndHostSet(currentWin, this);\n\n const getTarget = () => {\n const r = options.root || 'auto';\n const applyRoot = (t: any) => {\n if (!t) 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 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\n const targetRoot = applyRoot(this);\n return targetRoot ? targetRoot.querySelector(selector) : null;\n };\n\n\n console.log('fffffffffff')\n const targetEl = getTarget();\n const res = original.apply(this, args);\n\n const runApply = (target: any, val: any) => {\n const pos = options.position || 'beforeEnd';\n // Delegate HTML/node processing to applyToDom which centralizes\n // processing. runApply should not call processHtml itself to avoid\n // duplicate processing.\n const processedVal = val;\n\n // \uC0AC\uC6A9\uC790\uAC00 filter\uB97C \uBA85\uC2DC\uD558\uBA74 \uADF8 \uC870\uAC74\uC73C\uB85C, \uC544\uB2C8\uBA74 \uD56D\uC0C1 \uC801\uC6A9\n if (!options.filter || options.filter(target, processedVal, {currentThis: this, helper: hostSet})) {\n applyToDom(this, target, processedVal, pos, currentWin);\n }\n };\n\n if (res instanceof Promise) {\n // \uBE44\uB3D9\uAE30\uC77C \uB54C\uB9CC \uB85C\uB529 \uD45C\uC2DC\n if (targetEl && options.fallback) {\n const loadingRes = options.fallback.call(this, hostSet);\n // applyToDom expects a Window as the 4th argument\n applyToDom(this, targetEl, loadingRes, options.position || 'beforeEnd', currentWin);\n }\n\n return res.then(finalRes => {\n console.log('amnkj')\n if (finalRes !== undefined && targetEl) runApply(targetEl, finalRes);\n return finalRes;\n });\n } else {\n if (res !== undefined && targetEl) runApply(targetEl, res);\n return res;\n }\n };\n };\n}\n\nexport const findAllApplyNodeMetadata = (target: any): Map<string | symbol, ApplyNodeMetadata> => {\n const result = new Map<string | symbol, ApplyNodeMetadata>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, ApplyNodeMetadata>>(APPLY_NODE_METADATA_KEY, target);\n maps.forEach(map => {\n if (map instanceof Map) {\n map.forEach((v, k) => result.set(k, v));\n }\n });\n return result;\n};\n\nexport function applyNodeThis(options: ApplyNodeOptions): MethodDecorator;\nexport function applyNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'replaceChildren'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...option, ...opt});\n}\n\nexport function applyNodeThisReplaceChildren(options: Omit<ApplyNodeOptions, 'position'>): MethodDecorator;\nexport function applyNodeThisReplaceChildren(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyNodeThisReplaceChildren(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'replaceChildren'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function applyNodeThisReplaceChildrenLightDom(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function applyNodeThisReplaceChildrenLightDom(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyNodeThisReplaceChildrenLightDom(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const options: ApplyNodeOptions = {position: 'replaceChildren', root: 'light'};\n if (propertyKey !== undefined) return applyNode('$this', options)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...options});\n}\n\nexport function applyNodeThisBeforeEnd(options: Omit<ApplyNodeOptions, 'position'>): MethodDecorator;\nexport function applyNodeThisBeforeEnd(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyNodeThisBeforeEnd(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const options: ApplyNodeOptions = {position: 'beforeEnd'};\n if (propertyKey !== undefined) return applyNode('$this', options)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...options});\n}\n\nexport function applyNodeThisBeforeEndLightDom(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function applyNodeThisBeforeEndLightDom(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyNodeThisBeforeEndLightDom(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'beforeEnd', root: 'light'}\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\nexport function applyNodeThisBeforeEndShadow(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function applyNodeThisBeforeEndShadow(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyNodeThisBeforeEndShadow(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'beforeEnd', root: 'shadow'}\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function applyNodeThisAfterBegin(options: Omit<ApplyNodeOptions, 'position'>): MethodDecorator;\nexport function applyNodeThisAfterBegin(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyNodeThisAfterBegin(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'afterBegin'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function applyNodeThisAfterBeginLightDom(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function applyNodeThisAfterBeginLightDom(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyNodeThisAfterBeginLightDom(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'afterBegin', root: 'light'}\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function applyThisInnerHtmlNode(options: Omit<ApplyNodeOptions, 'position'>): MethodDecorator;\nexport function applyThisInnerHtmlNode(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyThisInnerHtmlNode(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'innerHtml'}\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function applyThisInnerHtmlNodeLightDom(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function applyThisInnerHtmlNodeLightDom(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyThisInnerHtmlNodeLightDom(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'innerHtml', root: 'light'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function applyThisReplaceChildrenNodeLightDom(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function applyThisReplaceChildrenNodeLightDom(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyThisReplaceChildrenNodeLightDom(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'replaceChildren', root: 'light'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function applyNodeReplaceChildren(selector: string, options: Omit<ApplyNodeOptions, 'position'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'replaceChildren'});\n}\n\nexport function applyNodeInnerHtml(selector: string, options: Omit<ApplyNodeOptions, 'position'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'innerHtml'});\n}\n\n// export function applyNodeInnerHtmlLightDom(selector: string, options: Omit<ApplyNodeOptions, 'position' | 'root'> = {}): MethodDecorator {\n// return applyNode(selector, {...options, position: 'innerHtml', root: 'light'});\n// }\n\nexport function applyNodeInnerText(selector: string, options: Omit<ApplyNodeOptions, 'position'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'innerText'});\n}\n\n// export function applyNodeInnerTextLightDom(selector: string, options: Omit<ApplyNodeOptions, 'position' | 'root'> = {}): MethodDecorator {\n// return applyNode(selector, {...options, position: 'innerText', root: 'light'});\n// }\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { ensureInit, getElementConfig } from './elementDefine';\nimport {SpecialSelector, SwcQueryOptions, HelperHostSet, SwcRootType} from '../types';\nimport { SwcUtils} from \"../utils/Utils\";\nimport {findAllStateMetadata} from \"./state\";\nimport {ElementApply} from \"@dooboostore/core-web\";\n/*\n<!-- beforebegin -->\n<p> <-- it's me\n <!-- afterbegin -->\n foo\n <!-- beforeend -->\n</p>\n<!-- afterend -->\n */\nexport type ApplyNodePosition = 'beforeBegin' | 'afterBegin' | 'beforeEnd' | 'afterEnd' | 'replace' | 'replaceChildren' | 'innerHtml' | 'innerText' | 'remove';\n\nexport interface ApplyNodeOptions {\n position?: ApplyNodePosition;\n root?: SwcRootType;\n /**\n * Filter function to determine whether to perform DOM operation.\n * If it returns false, the operation is skipped.\n */\n filter?: (target: HTMLElement | ShadowRoot, newValue: any, meta: { currentThis: any, helper: HelperHostSet }) => boolean;\n /**\n * Optional loading content to display while an async method is executing.\n */\n fallback?: (helper: HelperHostSet) => any;\n}\n\nexport interface ApplyNodeMetadata {\n propertyKey: string | symbol;\n selector: string;\n options: ApplyNodeOptions;\n}\n\nexport const APPLY_NODE_METADATA_KEY = Symbol.for('simple-web-component:apply-node');\n\n// const normalizeNodes = (res: any, doc: Document): Node[] => {\n// const items = Array.isArray(res) ? res : [res];\n// return items.map(it => {\n// if (it instanceof Node) return it;\n// return doc.createTextNode(it !== undefined && it !== null ? String(it) : '');\n// });\n// };\n\nconst applyToDom = (currentThis: any, targetEl: HTMLElement, res: Node | string, pos: ApplyNodePosition, win: Window, host?: any) => {\n if (!targetEl) return;\n const doc = win.document;\n const hostSet = SwcUtils.getHelperAndHostSet(win, currentThis);\n const id = currentThis._swcId;\n\n\n const nodes: Node[] = [];\n\n if (typeof res === 'string' && pos === 'innerHtml') {\n const t = win.document.createElement('template');\n t.innerHTML = res;\n nodes.push(...Array.from(t.content.childNodes));\n } else if (typeof res === 'string' && pos === 'innerText') {\n nodes.push(win.document.createTextNode(res));\n }\n\n SwcUtils.projectProcessHtml(id, nodes, doc);\n\n\n\n const isShadowRoot = targetEl instanceof win.ShadowRoot;\n // const nodes = normalizeNodes(res, doc);\n if (pos === 'replace') {\n if (!isShadowRoot) targetEl.replaceWith(...nodes);\n } else if (pos === 'innerHtml') {\n targetEl.replaceChildren(...nodes);\n } else if (pos === 'innerText') {\n targetEl.replaceChildren(...nodes);\n } else if (pos === 'replaceChildren') {\n targetEl.replaceChildren(...nodes);\n } else {\n if (pos === 'beforeEnd') {\n targetEl.append(...nodes)\n }\n else if (pos === 'afterBegin') targetEl.prepend(...nodes);\n else if (pos === 'beforeBegin' && !isShadowRoot) targetEl.before(...nodes);\n else if (pos === 'afterEnd' && !isShadowRoot) targetEl.after(...nodes);\n }\n\n const stateContext: any = {...hostSet};\n findAllStateMetadata(currentThis).forEach(it => {\n stateContext[it.name] = currentThis[it.propertyKey]\n })\n new ElementApply(targetEl, {id: id}).apply({target: 'noInitialized', context: stateContext, bind: currentThis});\n return nodes;\n};\n\n/**\n * @applyNode decorator to surgically add/replace nodes to a target element.\n */\nexport function applyNode(selector: string, options: ApplyNodeOptions = {position: 'replaceChildren'}): MethodDecorator {\n return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const constructor = targetObj.constructor;\n let metaList = ReflectUtils.getOwnMetadata(APPLY_NODE_METADATA_KEY, constructor) as Map<string | symbol, ApplyNodeMetadata>;\n if (!metaList) {\n metaList = new Map<string | symbol, ApplyNodeMetadata>();\n ReflectUtils.defineMetadata(APPLY_NODE_METADATA_KEY, metaList, constructor);\n }\n metaList.set(propertyKey, {propertyKey, selector, options});\n\n const original = descriptor.value;\n descriptor.value = function (...args: any[]) {\n ensureInit(this);\n\n const conf = getElementConfig(this);\n const currentWin = (this as any)._resolveWindow?.(conf) || ((typeof window !== 'undefined' ? window : undefined) as Window);\n const currentDoc = currentWin.document;\n const hostSet = SwcUtils.getHelperAndHostSet(currentWin, this);\n\n const getTarget = () => {\n const r = options.root || 'auto';\n const applyRoot = (t: any) => {\n if (!t) 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 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\n const targetRoot = applyRoot(this);\n return targetRoot ? targetRoot.querySelector(selector) : null;\n };\n\n const targetEl = getTarget();\n const res = original.apply(this, args);\n\n const runApply = (target: any, val: any) => {\n const pos = options.position || 'beforeEnd';\n // Delegate HTML/node processing to applyToDom which centralizes\n // processing. runApply should not call processHtml itself to avoid\n // duplicate processing.\n const processedVal = val;\n\n // \uC0AC\uC6A9\uC790\uAC00 filter\uB97C \uBA85\uC2DC\uD558\uBA74 \uADF8 \uC870\uAC74\uC73C\uB85C, \uC544\uB2C8\uBA74 \uD56D\uC0C1 \uC801\uC6A9\n if (!options.filter || options.filter(target, processedVal, {currentThis: this, helper: hostSet})) {\n applyToDom(this, target, processedVal, pos, currentWin);\n }\n };\n\n\n const fallbackNodes: Node[] = [];\n if (targetEl && options.fallback) {\n const loadingRes = options.fallback.call(this, hostSet);\n // applyToDom expects a Window as the 4th argument\n fallbackNodes.push(...applyToDom(this, targetEl, loadingRes, options.position || 'beforeEnd', currentWin));\n }\n\n if (res instanceof Promise) {\n return res.then(finalRes => {\n fallbackNodes.forEach((it: any)=>it.remove());\n if (finalRes !== undefined && targetEl) runApply(targetEl, finalRes);\n return finalRes;\n });\n } else {\n if (res !== undefined && targetEl) runApply(targetEl, res);\n return res;\n }\n };\n };\n}\n\nexport function applyNodeThis(options: ApplyNodeOptions): MethodDecorator;\nexport function applyNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function applyNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'replaceChildren'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...option, ...opt});\n}\n\nexport function replaceChildrenNodeThis(options: Omit<ApplyNodeOptions, 'position'>): MethodDecorator;\nexport function replaceChildrenNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function replaceChildrenNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'replaceChildren'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\n\n\nexport function beforeEndNodeThis(options: Omit<ApplyNodeOptions, 'position'>): MethodDecorator;\nexport function beforeEndNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function beforeEndNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const options: ApplyNodeOptions = {position: 'beforeEnd'};\n if (propertyKey !== undefined) return applyNode('$this', options)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...options});\n}\n\nexport function beforeEndLightNodeThis(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function beforeEndLightNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function beforeEndLightNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'beforeEnd', root: 'light'}\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function beforeEndShadowNodeThis(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function beforeEndShadowNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function beforeEndShadowNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'beforeEnd', root: 'shadow'}\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function afterBeginNodeThis(options: Omit<ApplyNodeOptions, 'position'>): MethodDecorator;\nexport function afterBeginNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function afterBeginNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'afterBegin'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function afterBeginLightNodeThis(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function afterBeginLightNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function afterBeginLightNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'afterBegin', root: 'light'}\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function innerHtmlNodeThis(options: Omit<ApplyNodeOptions, 'position'>): MethodDecorator;\nexport function innerHtmlNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function innerHtmlNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'innerHtml'}\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function innerTextNodeThis(options: Omit<ApplyNodeOptions, 'position'>): MethodDecorator;\nexport function innerTextNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function innerTextNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'innerText'}\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function innerHtmlLightNodeThis(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function innerHtmlLightNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function innerHtmlLightNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'innerHtml', root: 'light'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function replaceChildrenLightNodeThis(options: Omit<ApplyNodeOptions, 'position' | 'root'>): MethodDecorator;\nexport function replaceChildrenLightNodeThis(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function replaceChildrenLightNodeThis(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n const option: ApplyNodeOptions = {position: 'replaceChildren', root: 'light'};\n if (propertyKey !== undefined) return applyNode('$this', option)(targetOrOptions, propertyKey, descriptor);\n const opt = targetOrOptions || {};\n return applyNode('$this', {...opt, ...option});\n}\n\nexport function replaceChildrenNode(selector: string, options: Omit<ApplyNodeOptions, 'position'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'replaceChildren'});\n}\n\nexport function innerHtmlNode(selector: string, options: Omit<ApplyNodeOptions, 'position'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'innerHtml'});\n}\n\nexport function innerHtmlLightNode(selector: string, options: Omit<ApplyNodeOptions, 'position' | 'root'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'innerHtml', root: 'light'});\n}\n\nexport function innerHtmlShadowNode(selector: string, options: Omit<ApplyNodeOptions, 'position' | 'root'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'innerHtml', root: 'shadow'});\n}\n\nexport function innerTextNode(selector: string, options: Omit<ApplyNodeOptions, 'position'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'innerText'});\n}\n\nexport function innerTextLightNode(selector: string, options: Omit<ApplyNodeOptions, 'position' | 'root'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'innerText', root: 'light'});\n}\n\nexport function innerTextShadowNode(selector: string, options: Omit<ApplyNodeOptions, 'position' | 'root'> = {}): MethodDecorator {\n return applyNode(selector, {...options, position: 'innerText', root: 'shadow'});\n}\n\n\n\nexport const findAllApplyNodeMetadata = (target: any): Map<string | symbol, ApplyNodeMetadata> => {\n const result = new Map<string | symbol, ApplyNodeMetadata>();\n const maps = ReflectUtils.findAllMetadata<Map<string | symbol, ApplyNodeMetadata>>(APPLY_NODE_METADATA_KEY, target);\n maps.forEach(map => {\n if (map instanceof Map) {\n map.forEach((v, k) => result.set(k, v));\n }\n });\n return result;\n};"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,213 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var applyProperty_exports = {};
19
+ __export(applyProperty_exports, {
20
+ PROPERTY_METADATA_KEY: () => PROPERTY_METADATA_KEY,
21
+ applyProperty: () => applyProperty,
22
+ default: () => applyProperty_default,
23
+ findAllPropertyApplyMetadata: () => findAllPropertyApplyMetadata,
24
+ findAllPropertyMetadata: () => findAllPropertyMetadata,
25
+ property: () => property,
26
+ propertyThis: () => propertyThis,
27
+ resolvePropertyTargets: () => resolvePropertyTargets,
28
+ setProperty: () => setProperty,
29
+ setPropertyThis: () => setPropertyThis
30
+ });
31
+ module.exports = __toCommonJS(applyProperty_exports);
32
+ var import_core = require("@dooboostore/core");
33
+ var import_elementDefine = require("./elementDefine");
34
+ var import_Utils = require("../utils/Utils");
35
+ const PROPERTY_METADATA_KEY = Symbol.for("simple-web-component:property");
36
+ const resolvePropertyTargets = (inst, selector, options) => {
37
+ const conf = (0, import_elementDefine.getElementConfig)(inst);
38
+ const currentWin = conf.window;
39
+ const r = options.root || "auto";
40
+ const results = [];
41
+ const applyRoot = (target) => {
42
+ if (!target) return;
43
+ if (r === "auto") {
44
+ results.push(target);
45
+ } else {
46
+ if (r === "light" || r === "all") results.push(target);
47
+ if ((r === "shadow" || r === "all") && target.shadowRoot) results.push(target.shadowRoot);
48
+ }
49
+ };
50
+ if (selector === "$this" || !selector) {
51
+ applyRoot(inst);
52
+ } else if (selector === "$window") {
53
+ results.push(currentWin);
54
+ } else if (selector === "$document") {
55
+ results.push(currentWin.document);
56
+ } else {
57
+ const hostSet = import_Utils.SwcUtils.getHostSet(inst);
58
+ if (selector === "$host") applyRoot(hostSet.$host);
59
+ else if (selector === "$parentHost") applyRoot(hostSet.$parentHost);
60
+ else if (selector === "$appHost") applyRoot(hostSet.$appHost);
61
+ else if (selector === "$firstHost") applyRoot(hostSet.$firstHost);
62
+ else if (selector === "$lastHost") applyRoot(hostSet.$lastHost);
63
+ else if (selector === "$firstAppHost") applyRoot(hostSet.$firstAppHost);
64
+ else if (selector === "$lastAppHost") applyRoot(hostSet.$lastAppHost);
65
+ else if (selector === "$hosts") hostSet.$hosts.forEach(applyRoot);
66
+ else if (selector === "$appHosts") hostSet.$appHosts.forEach(applyRoot);
67
+ else {
68
+ if (r === "shadow") {
69
+ const found = inst.shadowRoot?.querySelectorAll(selector);
70
+ if (found) results.push(...found);
71
+ } else if (r === "light") {
72
+ const found = inst.querySelectorAll(selector);
73
+ if (found) results.push(...found);
74
+ } else if (r === "all") {
75
+ const sMatch = inst.shadowRoot?.querySelectorAll(selector);
76
+ const lMatch = inst.querySelectorAll(selector);
77
+ if (sMatch) results.push(...sMatch);
78
+ if (lMatch) results.push(...lMatch);
79
+ } else {
80
+ const found = (inst.shadowRoot || inst).querySelectorAll(selector);
81
+ if (found) results.push(...found);
82
+ }
83
+ }
84
+ }
85
+ return results;
86
+ };
87
+ function applyProperty(selector, targetPropertyKeyOrOptions, options) {
88
+ return (target, propertyKey, descriptor) => {
89
+ const constructor = target.constructor;
90
+ const metaType = descriptor && typeof descriptor.value === "function" ? "method" : "property";
91
+ let finalOptions = {};
92
+ let targetPropertyKey;
93
+ if (typeof targetPropertyKeyOrOptions === "string" || typeof targetPropertyKeyOrOptions === "symbol") {
94
+ targetPropertyKey = targetPropertyKeyOrOptions;
95
+ finalOptions = options || {};
96
+ } else if (targetPropertyKeyOrOptions) {
97
+ finalOptions = targetPropertyKeyOrOptions;
98
+ targetPropertyKey = finalOptions.name || propertyKey;
99
+ } else {
100
+ targetPropertyKey = propertyKey;
101
+ }
102
+ let metaList = import_core.ReflectUtils.getOwnMetadata(PROPERTY_METADATA_KEY, constructor);
103
+ if (!metaList) {
104
+ metaList = [];
105
+ import_core.ReflectUtils.defineMetadata(PROPERTY_METADATA_KEY, metaList, constructor);
106
+ }
107
+ metaList.push({
108
+ propertyKey,
109
+ selector,
110
+ targetPropertyKey,
111
+ options: finalOptions,
112
+ type: metaType
113
+ });
114
+ const applyValueToTargets = (inst, resolvedValue) => {
115
+ if (resolvedValue === void 0) return resolvedValue;
116
+ const targetEls = resolvePropertyTargets(inst, selector, finalOptions);
117
+ const conf = (0, import_elementDefine.getElementConfig)(inst);
118
+ const currentWin = conf.window;
119
+ const hostSet = import_Utils.SwcUtils.getHelperAndHostSet(currentWin, inst);
120
+ targetEls.forEach((targetEl) => {
121
+ if (finalOptions.filter && !finalOptions.filter(targetEl, resolvedValue, { currentThis: inst, helper: hostSet })) {
122
+ return;
123
+ }
124
+ const resolvedRes = typeof resolvedValue === "function" ? resolvedValue(targetEl, hostSet) : resolvedValue;
125
+ targetEl[targetPropertyKey] = resolvedRes;
126
+ });
127
+ return resolvedValue;
128
+ };
129
+ if (descriptor && typeof descriptor.value === "function") {
130
+ const original = descriptor.value;
131
+ descriptor.value = function(...args) {
132
+ (0, import_elementDefine.ensureInit)(this);
133
+ const res = original.apply(this, args);
134
+ if (res instanceof Promise) {
135
+ return res.then((v) => {
136
+ applyValueToTargets(this, v);
137
+ return v;
138
+ });
139
+ } else {
140
+ applyValueToTargets(this, res);
141
+ return res;
142
+ }
143
+ };
144
+ return;
145
+ }
146
+ Object.defineProperty(target, propertyKey, {
147
+ configurable: true,
148
+ enumerable: true,
149
+ get() {
150
+ (0, import_elementDefine.ensureInit)(this);
151
+ const targetEls = resolvePropertyTargets(this, selector, finalOptions);
152
+ const conf = (0, import_elementDefine.getElementConfig)(this);
153
+ const currentWin = conf.window;
154
+ const hostSet = import_Utils.SwcUtils.getHelperAndHostSet(currentWin, this);
155
+ const filtered = targetEls.filter((el) => {
156
+ if (finalOptions.filter && !finalOptions.filter(el, el[targetPropertyKey], { currentThis: this, helper: hostSet })) {
157
+ return false;
158
+ }
159
+ return true;
160
+ });
161
+ const values = filtered.map((el) => el[targetPropertyKey]);
162
+ return values.length === 1 ? values[0] : values;
163
+ },
164
+ set(value) {
165
+ (0, import_elementDefine.ensureInit)(this);
166
+ applyValueToTargets(this, value);
167
+ }
168
+ });
169
+ };
170
+ }
171
+ function property(selector, targetPropertyKeyOrOptions, options) {
172
+ return applyProperty(selector, targetPropertyKeyOrOptions, options);
173
+ }
174
+ function propertyThis(targetOrOptions, propertyKeyOrOptions, descriptor) {
175
+ if (typeof targetOrOptions === "object" && targetOrOptions !== null && !Array.isArray(targetOrOptions) && (typeof propertyKeyOrOptions === "string" || typeof propertyKeyOrOptions === "symbol")) {
176
+ return applyProperty("$this", void 0, {})(targetOrOptions, propertyKeyOrOptions, descriptor);
177
+ }
178
+ if (typeof targetOrOptions === "string" || typeof targetOrOptions === "symbol") {
179
+ return applyProperty("$this", targetOrOptions, propertyKeyOrOptions);
180
+ } else if (targetOrOptions && typeof targetOrOptions === "object") {
181
+ return applyProperty("$this", void 0, targetOrOptions);
182
+ } else {
183
+ return applyProperty("$this", void 0, {});
184
+ }
185
+ }
186
+ function setProperty(selector, targetPropertyKeyOrOptions, options) {
187
+ return applyProperty(selector, targetPropertyKeyOrOptions, options);
188
+ }
189
+ function setPropertyThis(targetOrOptions, propertyKeyOrOptions, descriptor) {
190
+ if (typeof targetOrOptions === "object" && targetOrOptions !== null && !Array.isArray(targetOrOptions) && (typeof propertyKeyOrOptions === "string" || typeof propertyKeyOrOptions === "symbol")) {
191
+ return applyProperty("$this", void 0, {})(targetOrOptions, propertyKeyOrOptions, descriptor);
192
+ }
193
+ if (typeof targetOrOptions === "string" || typeof targetOrOptions === "symbol") {
194
+ return applyProperty("$this", targetOrOptions, propertyKeyOrOptions);
195
+ } else if (targetOrOptions && typeof targetOrOptions === "object") {
196
+ return applyProperty("$this", void 0, targetOrOptions);
197
+ } else {
198
+ return applyProperty("$this", void 0, {});
199
+ }
200
+ }
201
+ const findAllPropertyMetadata = (target) => {
202
+ const actualTarget = target instanceof Function ? target : target.constructor;
203
+ return import_core.ReflectUtils.findAllMetadata(PROPERTY_METADATA_KEY, actualTarget).flat();
204
+ };
205
+ const findAllPropertyApplyMetadata = (target) => {
206
+ const result = /* @__PURE__ */ new Map();
207
+ findAllPropertyMetadata(target).forEach((meta) => {
208
+ result.set(meta.propertyKey, meta);
209
+ });
210
+ return result;
211
+ };
212
+ var applyProperty_default = applyProperty;
213
+ //# sourceMappingURL=applyProperty.js.map