@dooboostore/simple-web-component 1.0.16 → 1.0.18

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 (130) hide show
  1. package/README.md +109 -48
  2. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  3. package/dist/cjs/decorators/appendChild.js +48 -0
  4. package/dist/cjs/decorators/appendChild.js.map +7 -0
  5. package/dist/cjs/decorators/elementDefine.js +216 -67
  6. package/dist/cjs/decorators/elementDefine.js.map +3 -3
  7. package/dist/cjs/decorators/index.js +2 -1
  8. package/dist/cjs/decorators/index.js.map +2 -2
  9. package/dist/cjs/decorators/{innerHtml.js → onConnectedInnerHtml.js} +8 -8
  10. package/dist/cjs/decorators/onConnectedInnerHtml.js.map +7 -0
  11. package/dist/cjs/decorators/query.js +38 -0
  12. package/dist/cjs/decorators/query.js.map +2 -2
  13. package/dist/cjs/decorators/queryAll.js +32 -0
  14. package/dist/cjs/decorators/queryAll.js.map +2 -2
  15. package/dist/cjs/decorators/replaceChildren.js +53 -0
  16. package/dist/cjs/decorators/replaceChildren.js.map +7 -0
  17. package/dist/cjs/elements/SwcAppEngine.js +2 -1
  18. package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
  19. package/dist/cjs/elements/SwcAsync.js +188 -0
  20. package/dist/cjs/elements/SwcAsync.js.map +7 -0
  21. package/dist/cjs/elements/SwcChoose.js +155 -0
  22. package/dist/cjs/elements/SwcChoose.js.map +7 -0
  23. package/dist/cjs/elements/SwcIf.js +167 -0
  24. package/dist/cjs/elements/SwcIf.js.map +7 -0
  25. package/dist/cjs/elements/SwcLoop.js +246 -0
  26. package/dist/cjs/elements/SwcLoop.js.map +7 -0
  27. package/dist/cjs/elements/SwcSubTemplates.js +65 -0
  28. package/dist/cjs/elements/SwcSubTemplates.js.map +7 -0
  29. package/dist/cjs/elements/index.js +7 -0
  30. package/dist/cjs/elements/index.js.map +2 -2
  31. package/dist/cjs/index.js +12 -2
  32. package/dist/cjs/index.js.map +2 -2
  33. package/dist/cjs/types.js.map +1 -1
  34. package/dist/cjs/utils/Utils.js +74 -37
  35. package/dist/cjs/utils/Utils.js.map +3 -3
  36. package/dist/esm/decorators/addEventListener.js.map +2 -2
  37. package/dist/esm/decorators/appendChild.js +29 -0
  38. package/dist/esm/decorators/appendChild.js.map +7 -0
  39. package/dist/esm/decorators/elementDefine.js +216 -67
  40. package/dist/esm/decorators/elementDefine.js.map +3 -3
  41. package/dist/esm/decorators/index.js +2 -1
  42. package/dist/esm/decorators/index.js.map +2 -2
  43. package/dist/esm/decorators/{innerHtml.js → onConnectedInnerHtml.js} +5 -5
  44. package/dist/esm/decorators/onConnectedInnerHtml.js.map +7 -0
  45. package/dist/esm/decorators/query.js +38 -0
  46. package/dist/esm/decorators/query.js.map +2 -2
  47. package/dist/esm/decorators/queryAll.js +32 -0
  48. package/dist/esm/decorators/queryAll.js.map +2 -2
  49. package/dist/esm/decorators/replaceChildren.js +34 -0
  50. package/dist/esm/decorators/replaceChildren.js.map +7 -0
  51. package/dist/esm/elements/SwcAppEngine.js +2 -1
  52. package/dist/esm/elements/SwcAppEngine.js.map +2 -2
  53. package/dist/esm/elements/SwcAsync.js +169 -0
  54. package/dist/esm/elements/SwcAsync.js.map +7 -0
  55. package/dist/esm/elements/SwcChoose.js +136 -0
  56. package/dist/esm/elements/SwcChoose.js.map +7 -0
  57. package/dist/esm/elements/SwcIf.js +148 -0
  58. package/dist/esm/elements/SwcIf.js.map +7 -0
  59. package/dist/esm/elements/SwcLoop.js +227 -0
  60. package/dist/esm/elements/SwcLoop.js.map +7 -0
  61. package/dist/esm/elements/SwcSubTemplates.js +46 -0
  62. package/dist/esm/elements/SwcSubTemplates.js.map +7 -0
  63. package/dist/esm/elements/index.js +7 -0
  64. package/dist/esm/elements/index.js.map +2 -2
  65. package/dist/esm/index.js +8 -2
  66. package/dist/esm/index.js.map +2 -2
  67. package/dist/esm/types.js.map +1 -1
  68. package/dist/esm/utils/Utils.js +74 -37
  69. package/dist/esm/utils/Utils.js.map +3 -3
  70. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +1226 -149
  71. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  72. package/dist/types/decorators/addEventListener.d.ts +1 -0
  73. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  74. package/dist/types/decorators/appendChild.d.ts +17 -0
  75. package/dist/types/decorators/appendChild.d.ts.map +1 -0
  76. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  77. package/dist/types/decorators/index.d.ts +2 -1
  78. package/dist/types/decorators/index.d.ts.map +1 -1
  79. package/dist/types/decorators/onConnectedInnerHtml.d.ts +15 -0
  80. package/dist/types/decorators/onConnectedInnerHtml.d.ts.map +1 -0
  81. package/dist/types/decorators/query.d.ts +0 -2
  82. package/dist/types/decorators/query.d.ts.map +1 -1
  83. package/dist/types/decorators/queryAll.d.ts +0 -2
  84. package/dist/types/decorators/queryAll.d.ts.map +1 -1
  85. package/dist/types/decorators/replaceChildren.d.ts +9 -0
  86. package/dist/types/decorators/replaceChildren.d.ts.map +1 -0
  87. package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
  88. package/dist/types/elements/SwcAsync.d.ts +16 -0
  89. package/dist/types/elements/SwcAsync.d.ts.map +1 -0
  90. package/dist/types/elements/SwcChoose.d.ts +13 -0
  91. package/dist/types/elements/SwcChoose.d.ts.map +1 -0
  92. package/dist/types/elements/SwcIf.d.ts +15 -0
  93. package/dist/types/elements/SwcIf.d.ts.map +1 -0
  94. package/dist/types/elements/SwcLoop.d.ts +20 -0
  95. package/dist/types/elements/SwcLoop.d.ts.map +1 -0
  96. package/dist/types/elements/SwcSubTemplates.d.ts +13 -0
  97. package/dist/types/elements/SwcSubTemplates.d.ts.map +1 -0
  98. package/dist/types/elements/index.d.ts +7 -0
  99. package/dist/types/elements/index.d.ts.map +1 -1
  100. package/dist/types/index.d.ts +5 -2
  101. package/dist/types/index.d.ts.map +1 -1
  102. package/dist/types/types.d.ts +8 -0
  103. package/dist/types/types.d.ts.map +1 -1
  104. package/dist/types/utils/Utils.d.ts +16 -10
  105. package/dist/types/utils/Utils.d.ts.map +1 -1
  106. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +1226 -149
  107. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  108. package/package.json +10 -3
  109. package/src/decorators/addEventListener.ts +1 -0
  110. package/src/decorators/appendChild.ts +42 -0
  111. package/src/decorators/elementDefine.ts +225 -71
  112. package/src/decorators/index.ts +2 -1
  113. package/src/decorators/{innerHtml.ts → onConnectedInnerHtml.ts} +7 -6
  114. package/src/decorators/query.ts +32 -2
  115. package/src/decorators/queryAll.ts +32 -2
  116. package/src/decorators/replaceChildren.ts +35 -0
  117. package/src/elements/SwcAppEngine.ts +2 -1
  118. package/src/elements/SwcAsync.ts +163 -0
  119. package/src/elements/SwcChoose.ts +127 -0
  120. package/src/elements/SwcIf.ts +134 -0
  121. package/src/elements/SwcLoop.ts +215 -0
  122. package/src/elements/SwcSubTemplates.ts +19 -0
  123. package/src/elements/index.ts +8 -3
  124. package/src/index.ts +5 -2
  125. package/src/types.ts +9 -1
  126. package/src/utils/Utils.ts +86 -36
  127. package/dist/cjs/decorators/innerHtml.js.map +0 -7
  128. package/dist/esm/decorators/innerHtml.js.map +0 -7
  129. package/dist/types/decorators/innerHtml.d.ts +0 -12
  130. package/dist/types/decorators/innerHtml.d.ts.map +0 -1
@@ -0,0 +1,227 @@
1
+ var __decorate = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = function(k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { elementDefine } from "../decorators/elementDefine.js";
11
+ import { changedAttribute } from "../decorators/changedAttribute.js";
12
+ import { SwcUtils } from "../utils/Utils.js";
13
+ import { FunctionUtils } from "@dooboostore/core/function/FunctionUtils";
14
+ let SwcLoop = class SwcLoop2 extends HTMLTemplateElement {
15
+ constructor() {
16
+ super(...arguments);
17
+ this._value = [];
18
+ this._nodes = [];
19
+ this._defaultNodes = [];
20
+ }
21
+ get value() {
22
+ return this._value;
23
+ }
24
+ set value(nv) {
25
+ this._value = Array.isArray(nv) ? [...nv] : [];
26
+ this.render();
27
+ }
28
+ getNodes(index) {
29
+ return this._nodes[index] || null;
30
+ }
31
+ _getTarget() {
32
+ const script = this.getAttribute("on-get-portal");
33
+ if (!script)
34
+ return null;
35
+ try {
36
+ const res = FunctionUtils.executeReturn({
37
+ script,
38
+ context: this,
39
+ args: SwcUtils.getHelperAndHostSet(window, this)
40
+ });
41
+ if (typeof res === "string")
42
+ return document.querySelector(res);
43
+ if (res instanceof Node)
44
+ return res;
45
+ } catch (e) {
46
+ console.error("[SwcLoop] Portal target error:", e);
47
+ }
48
+ return null;
49
+ }
50
+ append(...items) {
51
+ if (!items.length || !this.parentElement)
52
+ return;
53
+ if (this._defaultNodes.length > 0)
54
+ this._cleanupDefault();
55
+ const fragment = document.createDocumentFragment();
56
+ const startIndex = this._value.length;
57
+ items.forEach((item, i) => {
58
+ const index = startIndex + i;
59
+ const nodes = this._createItemNodes(item, index);
60
+ if (nodes) {
61
+ this._nodes.push(nodes);
62
+ nodes.forEach((n) => fragment.appendChild(n));
63
+ this._value.push(item);
64
+ } else {
65
+ this._nodes.push(null);
66
+ this._value.push(null);
67
+ }
68
+ });
69
+ const target = this._getTarget();
70
+ if (target) {
71
+ target.appendChild(fragment);
72
+ } else {
73
+ const lastValidIdx = this._nodes.length - items.length - 1;
74
+ let refNode = this;
75
+ for (let i = lastValidIdx; i >= 0; i--) {
76
+ const group = this._nodes[i];
77
+ if (group && group.length > 0) {
78
+ refNode = group[group.length - 1];
79
+ break;
80
+ }
81
+ }
82
+ this.parentElement.insertBefore(fragment, refNode.nextSibling);
83
+ }
84
+ }
85
+ remove(index) {
86
+ const targetIdx = index !== void 0 ? index : this._nodes.length - 1;
87
+ if (targetIdx < 0 || targetIdx >= this._nodes.length)
88
+ return;
89
+ const nodes = this._nodes[targetIdx];
90
+ if (nodes) {
91
+ nodes.forEach((n) => {
92
+ if (n.parentElement)
93
+ n.parentElement.removeChild(n);
94
+ });
95
+ this._nodes[targetIdx] = null;
96
+ this._value[targetIdx] = null;
97
+ }
98
+ const activeRows = this._value.filter((v) => v !== null);
99
+ if (activeRows.length === 0) {
100
+ this.render();
101
+ }
102
+ }
103
+ _createItemNodes(item, index) {
104
+ const clone = this.content.cloneNode(true);
105
+ Array.from(clone.querySelectorAll('template[is="swc-default"]')).forEach((t) => t.remove());
106
+ const nodes = Array.from(clone.childNodes);
107
+ const elements = nodes.filter((n) => n.nodeType === 1);
108
+ const groupCtx = {
109
+ $index: index,
110
+ $item: item,
111
+ $nodes: nodes,
112
+ $elements: elements,
113
+ $firstNode: nodes[0],
114
+ $lastNode: nodes[nodes.length - 1],
115
+ $firstElement: elements[0],
116
+ $lastElement: elements[elements.length - 1],
117
+ $isFirst: index === 0,
118
+ $isLast: index === this._value.length - 1,
119
+ $isEven: index % 2 === 0,
120
+ $isOdd: index % 2 !== 0,
121
+ $count: this._value.length
122
+ };
123
+ this._executeCallback("on-clone-nodes", groupCtx);
124
+ nodes.forEach((node, nodeIndex) => {
125
+ if (node instanceof HTMLElement)
126
+ node.__swc_host = this;
127
+ this._executeCallback("on-clone-node", { ...groupCtx, $node: node, $nodeIndex: nodeIndex, $isElement: node.nodeType === 1 });
128
+ });
129
+ return nodes;
130
+ }
131
+ _executeCallback(attrName, extraArgs) {
132
+ const script = this.getAttribute(attrName);
133
+ if (!script)
134
+ return;
135
+ const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);
136
+ try {
137
+ FunctionUtils.execute({ script, context: this, args: { ...helperHostSet, ...extraArgs } });
138
+ } catch (e) {
139
+ console.error(`[SwcLoop] Error in ${attrName}:`, e);
140
+ }
141
+ }
142
+ refreshValue(newValue) {
143
+ const script = newValue !== void 0 ? newValue : this.getAttribute("on-get-value");
144
+ if (!script) {
145
+ this.value = [];
146
+ return;
147
+ }
148
+ const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);
149
+ try {
150
+ const res = FunctionUtils.executeReturn({ script, context: this, args: helperHostSet });
151
+ if (Array.isArray(res)) {
152
+ this.value = res;
153
+ }
154
+ } catch (e) {
155
+ console.error("[SwcLoop] Failed to get value from on-get-value script:", e);
156
+ this.value = [];
157
+ }
158
+ }
159
+ render() {
160
+ this._cleanup();
161
+ if (!this.parentElement)
162
+ return;
163
+ const activeRows = this._value.filter((v) => v !== null);
164
+ const target = this._getTarget();
165
+ if (activeRows.length === 0) {
166
+ const t = this.content.querySelector('template[is="swc-default"]');
167
+ if (t) {
168
+ const clone = t.content.cloneNode(true);
169
+ this._defaultNodes = Array.from(clone.childNodes);
170
+ this._defaultNodes.forEach((n) => {
171
+ if (n instanceof HTMLElement)
172
+ n.__swc_host = this;
173
+ });
174
+ if (target)
175
+ target.appendChild(clone);
176
+ else
177
+ this.parentElement.insertBefore(clone, this.nextSibling);
178
+ }
179
+ return;
180
+ }
181
+ const fragment = document.createDocumentFragment();
182
+ this._value.forEach((item, index) => {
183
+ if (item === null) {
184
+ this._nodes.push(null);
185
+ return;
186
+ }
187
+ const nodes = this._createItemNodes(item, index);
188
+ this._nodes.push(nodes);
189
+ nodes.forEach((n) => fragment.appendChild(n));
190
+ });
191
+ if (target)
192
+ target.appendChild(fragment);
193
+ else
194
+ this.parentElement.insertBefore(fragment, this.nextSibling);
195
+ }
196
+ _cleanup() {
197
+ this._nodes.forEach((group) => {
198
+ if (group)
199
+ group.forEach((node) => node.parentElement?.removeChild(node));
200
+ });
201
+ this._nodes = [];
202
+ this._cleanupDefault();
203
+ }
204
+ _cleanupDefault() {
205
+ this._defaultNodes.forEach((n) => n.parentElement?.removeChild(n));
206
+ this._defaultNodes = [];
207
+ }
208
+ connectedCallback() {
209
+ this.refreshValue();
210
+ }
211
+ disconnectedCallback() {
212
+ this._cleanup();
213
+ }
214
+ };
215
+ __decorate([
216
+ changedAttribute("on-get-value"),
217
+ __metadata("design:type", Function),
218
+ __metadata("design:paramtypes", [String]),
219
+ __metadata("design:returntype", void 0)
220
+ ], SwcLoop.prototype, "refreshValue", null);
221
+ SwcLoop = __decorate([
222
+ elementDefine({ name: "swc-loop", extends: "template" })
223
+ ], SwcLoop);
224
+ export {
225
+ SwcLoop
226
+ };
227
+ //# sourceMappingURL=SwcLoop.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/elements/SwcLoop.ts"],
4
+ "sourcesContent": ["import { elementDefine } from '../decorators/elementDefine';\nimport { changedAttribute } from '../decorators/changedAttribute';\nimport { SwcUtils } from '../utils/Utils';\nimport { FunctionUtils } from '@dooboostore/core/function/FunctionUtils';\n\n@elementDefine({ name: 'swc-loop', extends: 'template' })\nexport class SwcLoop extends HTMLTemplateElement {\n private _value: any[] = [];\n private _nodes: (Node[] | null)[] = [];\n private _defaultNodes: Node[] = [];\n\n get value(): any[] {\n return this._value;\n }\n\n set value(nv: any[]) {\n this._value = Array.isArray(nv) ? [...nv] : [];\n this.render();\n }\n\n getNodes(index: number): Node[] | null {\n return this._nodes[index] || null;\n }\n\n private _getTarget(): Element | DocumentFragment | null {\n const script = this.getAttribute('on-get-portal');\n if (!script) return null;\n try {\n const res = FunctionUtils.executeReturn({\n script,\n context: this,\n args: SwcUtils.getHelperAndHostSet(window, this)\n });\n if (typeof res === 'string') return document.querySelector(res);\n if (res instanceof Node) return res as any;\n } catch (e) {\n console.error('[SwcLoop] Portal target error:', e);\n }\n return null;\n }\n\n append(...items: any[]) {\n if (!items.length || !this.parentElement) return;\n if (this._defaultNodes.length > 0) this._cleanupDefault();\n\n const fragment = document.createDocumentFragment();\n const startIndex = this._value.length;\n\n items.forEach((item, i) => {\n const index = startIndex + i;\n const nodes = this._createItemNodes(item, index);\n if (nodes) {\n this._nodes.push(nodes);\n nodes.forEach(n => fragment.appendChild(n));\n this._value.push(item);\n } else {\n this._nodes.push(null);\n this._value.push(null);\n }\n });\n\n const target = this._getTarget();\n if (target) {\n target.appendChild(fragment);\n } else {\n const lastValidIdx = this._nodes.length - items.length - 1;\n let refNode: Node = this;\n for (let i = lastValidIdx; i >= 0; i--) {\n const group = this._nodes[i];\n if (group && group.length > 0) {\n refNode = group[group.length - 1];\n break;\n }\n }\n this.parentElement.insertBefore(fragment, refNode.nextSibling);\n }\n }\n\n remove(index?: number) {\n const targetIdx = index !== undefined ? index : this._nodes.length - 1;\n if (targetIdx < 0 || targetIdx >= this._nodes.length) return;\n\n const nodes = this._nodes[targetIdx];\n if (nodes) {\n nodes.forEach(n => {\n if (n.parentElement) n.parentElement.removeChild(n);\n });\n this._nodes[targetIdx] = null;\n this._value[targetIdx] = null;\n }\n\n const activeRows = this._value.filter(v => v !== null);\n if (activeRows.length === 0) {\n this.render();\n }\n }\n\n private _createItemNodes(item: any, index: number): Node[] {\n const clone = this.content.cloneNode(true) as DocumentFragment;\n Array.from(clone.querySelectorAll('template[is=\"swc-default\"]')).forEach(t => t.remove());\n\n const nodes = Array.from(clone.childNodes);\n const elements = nodes.filter(n => n.nodeType === 1) as HTMLElement[];\n\n const groupCtx = {\n $index: index,\n $item: item,\n $nodes: nodes,\n $elements: elements,\n $firstNode: nodes[0],\n $lastNode: nodes[nodes.length - 1],\n $firstElement: elements[0],\n $lastElement: elements[elements.length - 1],\n $isFirst: index === 0,\n $isLast: index === this._value.length - 1,\n $isEven: index % 2 === 0,\n $isOdd: index % 2 !== 0,\n $count: this._value.length\n };\n\n this._executeCallback('on-clone-nodes', groupCtx);\n nodes.forEach((node, nodeIndex) => {\n if (node instanceof HTMLElement) (node as any).__swc_host = this;\n this._executeCallback('on-clone-node', { ...groupCtx, $node: node, $nodeIndex: nodeIndex, $isElement: node.nodeType === 1 });\n });\n\n return nodes;\n }\n\n private _executeCallback(attrName: string, extraArgs: Record<string, any>) {\n const script = this.getAttribute(attrName);\n if (!script) return;\n const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);\n try {\n FunctionUtils.execute({ script, context: this, args: { ...helperHostSet, ...extraArgs } });\n } catch (e) {\n console.error(`[SwcLoop] Error in ${attrName}:`, e);\n }\n }\n\n @changedAttribute('on-get-value')\n private refreshValue(newValue?: string | null) {\n const script = newValue !== undefined ? newValue : this.getAttribute('on-get-value');\n if (!script) {\n this.value = [];\n return;\n }\n const helperHostSet = SwcUtils.getHelperAndHostSet(window, this);\n try {\n const res = FunctionUtils.executeReturn({ script, context: this, args: helperHostSet });\n if (Array.isArray(res)) {\n this.value = res;\n }\n } catch (e) {\n console.error('[SwcLoop] Failed to get value from on-get-value script:', e);\n this.value = [];\n }\n }\n\n render() {\n this._cleanup();\n if (!this.parentElement) return;\n\n const activeRows = this._value.filter(v => v !== null);\n const target = this._getTarget();\n\n if (activeRows.length === 0) {\n const t = this.content.querySelector('template[is=\"swc-default\"]') as HTMLTemplateElement;\n if (t) {\n const clone = t.content.cloneNode(true) as DocumentFragment;\n this._defaultNodes = Array.from(clone.childNodes);\n this._defaultNodes.forEach(n => {\n if (n instanceof HTMLElement) (n as any).__swc_host = this;\n });\n if (target) target.appendChild(clone);\n else this.parentElement.insertBefore(clone, this.nextSibling);\n }\n return;\n }\n\n const fragment = document.createDocumentFragment();\n this._value.forEach((item, index) => {\n if (item === null) {\n this._nodes.push(null);\n return;\n }\n const nodes = this._createItemNodes(item, index);\n this._nodes.push(nodes);\n nodes.forEach(n => fragment.appendChild(n));\n });\n\n if (target) target.appendChild(fragment);\n else this.parentElement.insertBefore(fragment, this.nextSibling);\n }\n\n private _cleanup() {\n this._nodes.forEach(group => {\n if (group) group.forEach(node => node.parentElement?.removeChild(node));\n });\n this._nodes = [];\n this._cleanupDefault();\n }\n\n private _cleanupDefault() {\n this._defaultNodes.forEach(n => n.parentElement?.removeChild(n));\n this._defaultNodes = [];\n }\n\n connectedCallback() {\n this.refreshValue();\n }\n disconnectedCallback() {\n this._cleanup();\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SwcLoop"]
7
+ }
@@ -0,0 +1,46 @@
1
+ var __decorate = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { elementDefine } from "../decorators/elementDefine.js";
8
+ let SwcLoading = class SwcLoading2 extends HTMLTemplateElement {
9
+ };
10
+ SwcLoading = __decorate([
11
+ elementDefine({ name: "swc-loading", extends: "template" })
12
+ ], SwcLoading);
13
+ let SwcError = class SwcError2 extends HTMLTemplateElement {
14
+ };
15
+ SwcError = __decorate([
16
+ elementDefine({ name: "swc-error", extends: "template" })
17
+ ], SwcError);
18
+ let SwcSuccess = class SwcSuccess2 extends HTMLTemplateElement {
19
+ };
20
+ SwcSuccess = __decorate([
21
+ elementDefine({ name: "swc-success", extends: "template" })
22
+ ], SwcSuccess);
23
+ let SwcWhen = class SwcWhen2 extends HTMLTemplateElement {
24
+ };
25
+ SwcWhen = __decorate([
26
+ elementDefine({ name: "swc-when", extends: "template" })
27
+ ], SwcWhen);
28
+ let SwcOtherwise = class SwcOtherwise2 extends HTMLTemplateElement {
29
+ };
30
+ SwcOtherwise = __decorate([
31
+ elementDefine({ name: "swc-otherwise", extends: "template" })
32
+ ], SwcOtherwise);
33
+ let SwcDefault = class SwcDefault2 extends HTMLTemplateElement {
34
+ };
35
+ SwcDefault = __decorate([
36
+ elementDefine({ name: "swc-default", extends: "template" })
37
+ ], SwcDefault);
38
+ export {
39
+ SwcDefault,
40
+ SwcError,
41
+ SwcLoading,
42
+ SwcOtherwise,
43
+ SwcSuccess,
44
+ SwcWhen
45
+ };
46
+ //# sourceMappingURL=SwcSubTemplates.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/elements/SwcSubTemplates.ts"],
4
+ "sourcesContent": ["import { elementDefine } from '../decorators/elementDefine';\n\n@elementDefine({ name: 'swc-loading', extends: 'template' })\nexport class SwcLoading extends HTMLTemplateElement {}\n\n@elementDefine({ name: 'swc-error', extends: 'template' })\nexport class SwcError extends HTMLTemplateElement {}\n\n@elementDefine({ name: 'swc-success', extends: 'template' })\nexport class SwcSuccess extends HTMLTemplateElement {}\n\n@elementDefine({ name: 'swc-when', extends: 'template' })\nexport class SwcWhen extends HTMLTemplateElement {}\n\n@elementDefine({ name: 'swc-otherwise', extends: 'template' })\nexport class SwcOtherwise extends HTMLTemplateElement {}\n\n@elementDefine({ name: 'swc-default', extends: 'template' })\nexport class SwcDefault extends HTMLTemplateElement {}\n"],
5
+ "mappings": ";;;;;;AAAA,SAAS,qBAAqB;AAGvB,IAAM,aAAN,MAAMA,oBAAmB,oBAAmB;;AAAtC,aAAU,WAAA;EADtB,cAAc,EAAE,MAAM,eAAe,SAAS,WAAU,CAAE;GAC9C,UAAU;AAGhB,IAAM,WAAN,MAAMC,kBAAiB,oBAAmB;;AAApC,WAAQ,WAAA;EADpB,cAAc,EAAE,MAAM,aAAa,SAAS,WAAU,CAAE;GAC5C,QAAQ;AAGd,IAAM,aAAN,MAAMC,oBAAmB,oBAAmB;;AAAtC,aAAU,WAAA;EADtB,cAAc,EAAE,MAAM,eAAe,SAAS,WAAU,CAAE;GAC9C,UAAU;AAGhB,IAAM,UAAN,MAAMC,iBAAgB,oBAAmB;;AAAnC,UAAO,WAAA;EADnB,cAAc,EAAE,MAAM,YAAY,SAAS,WAAU,CAAE;GAC3C,OAAO;AAGb,IAAM,eAAN,MAAMC,sBAAqB,oBAAmB;;AAAxC,eAAY,WAAA;EADxB,cAAc,EAAE,MAAM,iBAAiB,SAAS,WAAU,CAAE;GAChD,YAAY;AAGlB,IAAM,aAAN,MAAMC,oBAAmB,oBAAmB;;AAAtC,aAAU,WAAA;EADtB,cAAc,EAAE,MAAM,eAAe,SAAS,WAAU,CAAE;GAC9C,UAAU;",
6
+ "names": ["SwcLoading", "SwcError", "SwcSuccess", "SwcWhen", "SwcOtherwise", "SwcDefault"]
7
+ }
@@ -1,2 +1,9 @@
1
1
  export * from "./is/index.js";
2
+ export * from "./SwcSubTemplates.js";
3
+ export * from "./SwcLoop.js";
4
+ export * from "./SwcIf.js";
5
+ export * from "./SwcChoose.js";
6
+ export * from "./SwcAsync.js";
7
+ export * from "./SwcApp.js";
8
+ export * from "./SwcAppEngine.js";
2
9
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/index.ts"],
4
- "sourcesContent": ["// import {SwcHTMLElement} from \"./SwcHTMLElement\";\n\nexport * from './is'"],
5
- "mappings": "AAEA,cAAc;",
4
+ "sourcesContent": ["export * from './is';\nexport * from './SwcSubTemplates';\nexport * from './SwcLoop';\nexport * from './SwcIf';\nexport * from './SwcChoose';\nexport * from './SwcAsync';\nexport * from './SwcApp';\nexport * from './SwcAppEngine';\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
6
  "names": []
7
7
  }
package/dist/esm/index.js CHANGED
@@ -2,13 +2,19 @@ import "reflect-metadata";
2
2
  export * from "./decorators/elementDefine.js";
3
3
  export * from "./decorators/setAttribute.js";
4
4
  export * from "./decorators/changedAttribute.js";
5
- export * from "./decorators/innerHtml.js";
5
+ export * from "./decorators/onConnectedInnerHtml.js";
6
+ import { onConnectedInnerHtml } from "./decorators/onConnectedInnerHtml.js";
7
+ export * from "./decorators/replaceChildren.js";
8
+ export * from "./decorators/appendChild.js";
6
9
  export * from "./decorators/emitCustomEvent.js";
7
10
  export * from "./decorators/lifecycles.js";
8
11
  export * from "./decorators/query.js";
9
12
  export * from "./decorators/queryAll.js";
10
13
  export * from "./decorators/addEventListener.js";
11
14
  export * from "./types.js";
12
- export * from "./elements/is/index.js";
15
+ export * from "./elements/index.js";
13
16
  export * from "./utils/Utils.js";
17
+ export {
18
+ onConnectedInnerHtml as innerHtml
19
+ };
14
20
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import 'reflect-metadata';\n\n// Decorators\nexport * from './decorators/elementDefine';\nexport * from './decorators/setAttribute';\nexport * from './decorators/changedAttribute';\nexport * from './decorators/innerHtml';\nexport * from './decorators/emitCustomEvent';\nexport * from './decorators/lifecycles';\nexport * from './decorators/query';\nexport * from './decorators/queryAll';\nexport * from './decorators/addEventListener';\n\n// Types\nexport * from './types';\n\n// Apps (Customized Built-in Elements)\nexport * from './elements/is';\n\n// Utilities\nexport * from './utils/Utils';\n"],
5
- "mappings": "AAAA,OAAO;AAGP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AAGd,cAAc;AAGd,cAAc;",
4
+ "sourcesContent": ["import 'reflect-metadata';\n\n// Decorators\nexport * from './decorators/elementDefine';\nexport * from './decorators/setAttribute';\nexport * from './decorators/changedAttribute';\nexport * from './decorators/onConnectedInnerHtml';\nexport { onConnectedInnerHtml as innerHtml } from './decorators/onConnectedInnerHtml';\nexport * from './decorators/replaceChildren';\nexport * from './decorators/appendChild';\nexport * from './decorators/emitCustomEvent';\nexport * from './decorators/lifecycles';\nexport * from './decorators/query';\nexport * from './decorators/queryAll';\nexport * from './decorators/addEventListener';\n\n// Types\nexport * from './types';\n\n// Apps (Customized Built-in Elements)\nexport * from './elements';\n\n// Utilities\nexport * from './utils/Utils';\n"],
5
+ "mappings": "AAAA,OAAO;AAGP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAiC,4BAAiB;AAClD,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AAGd,cAAc;AAGd,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types.ts"],
4
- "sourcesContent": ["import { SimpleApplication } from '@dooboostore/simple-boot/SimpleApplication';\nimport { Router } from '@dooboostore/core-web/routers/Router';\n\nexport enum InjectSituationType {\n HOST_SET = 'SIMPLE_WEB_COMPONENT://HOSTSET',\n APP_HOST = 'SIMPLE_WEB_COMPONENT://APPHOST',\n APP_HOSTS = 'SIMPLE_WEB_COMPONENT://APPHOSTS',\n HOST = 'SIMPLE_WEB_COMPONENT://HOST',\n PARENT_HOST = 'SIMPLE_WEB_COMPONENT://PARENTHOST',\n HOSTS = 'SIMPLE_WEB_COMPONENT://HOSTS',\n FIRST_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTHOST',\n LAST_HOST = 'SIMPLE_WEB_COMPONENT://LASTHOST',\n FIRST_APP_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTAPPHOST',\n LAST_APP_HOST = 'SIMPLE_WEB_COMPONENT://LASTAPPHOST'\n}\n\nexport type HostSet = {\n $host: HTMLElement; // Current component itself\n $parentHost: HTMLElement | null; // Nearest parent SWC component\n $hosts: HTMLElement[]; // [self, parent, ..., top]\n $firstHost: HTMLElement | null; // Top-most SWC ancestor\n $lastHost: HTMLElement | null; // Same as $parentHost (for backward compatibility or clarity)\n $appHost: SwcAppInterface | null;\n $appHosts: SwcAppInterface[];\n $firstAppHost: SwcAppInterface | null;\n $lastAppHost: SwcAppInterface | null;\n};\n\nexport interface SwcAppInterface extends HTMLElement {\n simpleApplication?: SimpleApplication;\n router?: Router;\n routing(path: string): Promise<void>;\n}\n"],
4
+ "sourcesContent": ["import { SimpleApplication } from '@dooboostore/simple-boot/SimpleApplication';\nimport { Router } from '@dooboostore/core-web/routers/Router';\n\nexport enum InjectSituationType {\n HOST_SET = 'SIMPLE_WEB_COMPONENT://HOSTSET',\n APP_HOST = 'SIMPLE_WEB_COMPONENT://APPHOST',\n APP_HOSTS = 'SIMPLE_WEB_COMPONENT://APPHOSTS',\n HOST = 'SIMPLE_WEB_COMPONENT://HOST',\n PARENT_HOST = 'SIMPLE_WEB_COMPONENT://PARENTHOST',\n HOSTS = 'SIMPLE_WEB_COMPONENT://HOSTS',\n FIRST_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTHOST',\n LAST_HOST = 'SIMPLE_WEB_COMPONENT://LASTHOST',\n FIRST_APP_HOST = 'SIMPLE_WEB_COMPONENT://FIRSTAPPHOST',\n LAST_APP_HOST = 'SIMPLE_WEB_COMPONENT://LASTAPPHOST'\n}\nexport type HelperSet = {\n $d: Document;\n $w: Window;\n $q: (selector: string, root?: Element | Document | ShadowRoot) => HTMLElement | null;\n $qa: (selector: string, root?: Element | Document | ShadowRoot) => HTMLElement[];\n $qi: (selector: string, root?: Element | Document | ShadowRoot) => HTMLElement | null;\n}\nexport type HostSet = {\n $host: HTMLElement; // Current component itself\n $parentHost: HTMLElement | null; // Nearest parent SWC component\n $hosts: HTMLElement[]; // [self, parent, ..., top]\n $firstHost: HTMLElement | null; // Top-most SWC ancestor\n $lastHost: HTMLElement | null; // Same as $parentHost (for backward compatibility or clarity)\n $appHost: SwcAppInterface | null;\n $appHosts: SwcAppInterface[];\n $firstAppHost: SwcAppInterface | null;\n $lastAppHost: SwcAppInterface | null;\n};\n\nexport type HelperHostSet = HelperSet & HostSet;\n\nexport interface SwcAppInterface extends HTMLElement {\n simpleApplication?: SimpleApplication;\n router?: Router;\n routing(path: string): Promise<void>;\n}\n"],
5
5
  "mappings": "AAGO,IAAK,sBAAL,kBAAKA,yBAAL;AACL,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,eAAY;AACZ,EAAAA,qBAAA,UAAO;AACP,EAAAA,qBAAA,iBAAc;AACd,EAAAA,qBAAA,WAAQ;AACR,EAAAA,qBAAA,gBAAa;AACb,EAAAA,qBAAA,eAAY;AACZ,EAAAA,qBAAA,oBAAiB;AACjB,EAAAA,qBAAA,mBAAgB;AAVN,SAAAA;AAAA,GAAA;",
6
6
  "names": ["InjectSituationType"]
7
7
  }
@@ -1,7 +1,26 @@
1
1
  import { getElementConfig } from "../decorators/elementDefine.js";
2
2
  const SWC_NOT_FOUND = Symbol("SWC_NOT_FOUND");
3
- class SwcUtils {
4
- static getValueByPath(obj, path, rootName) {
3
+ var SwcUtils;
4
+ ((SwcUtils2) => {
5
+ SwcUtils2.getHelperSet = (win) => {
6
+ const doc = win.document;
7
+ return {
8
+ $d: doc,
9
+ $w: win,
10
+ $q: (sel, root) => (root ?? doc).querySelector(sel),
11
+ $qa: (sel, root) => Array.from((root ?? doc).querySelectorAll(sel)),
12
+ $qi: (id, root) => (root ?? doc).getElementById(id)
13
+ };
14
+ };
15
+ SwcUtils2.getHelperAndHostSet = (win, el) => {
16
+ const helperSet = (0, SwcUtils2.getHelperSet)(win);
17
+ const hostSet = (0, SwcUtils2.getHostSet)(el);
18
+ return {
19
+ ...helperSet,
20
+ ...hostSet
21
+ };
22
+ };
23
+ SwcUtils2.getValueByPath = (obj, path, rootName) => {
5
24
  if (!obj || !path) return SWC_NOT_FOUND;
6
25
  const parts = path.split(".");
7
26
  let current = obj;
@@ -10,49 +29,66 @@ class SwcUtils {
10
29
  current = current[part];
11
30
  }
12
31
  return current;
13
- }
14
- static findNearestSwcHost(el) {
15
- let current = el instanceof Node && !(el instanceof HTMLElement) ? el.host : el;
16
- current = current?.parentElement || current?.getRootNode()?.host;
17
- while (current) {
32
+ };
33
+ SwcUtils2.findNearestSwcHost = (el) => {
34
+ if (el.__swc_host) return el.__swc_host;
35
+ let current = el.parentElement || el.getRootNode?.()?.host;
36
+ while (current && current !== document && current !== window) {
37
+ if (current.__swc_host) return current.__swc_host;
18
38
  if (getElementConfig(current)) return current;
19
- current = current.parentElement || current?.getRootNode()?.host;
39
+ current = current.parentElement || current.getRootNode?.()?.host;
20
40
  }
21
41
  return void 0;
22
- }
23
- /**
24
- * Returns all SWC ancestors (excluding self) in [root, ..., parent] order.
25
- */
26
- static findAllSwcHosts(el) {
42
+ };
43
+ SwcUtils2.findAllSwcHosts = (el) => {
27
44
  const hosts = [];
28
- let current = this.findNearestSwcHost(el);
45
+ let current = (0, SwcUtils2.findNearestSwcHost)(el);
29
46
  while (current) {
30
47
  hosts.push(current);
31
- current = this.findNearestSwcHost(current);
48
+ current = (0, SwcUtils2.findNearestSwcHost)(current);
32
49
  }
33
50
  return hosts.reverse();
34
- }
35
- static getHosts(el) {
36
- return [...this.findAllSwcHosts(el), el];
37
- }
38
- static getHost(el) {
39
- return el;
40
- }
41
- static getAppHosts(el) {
42
- const hosts = this.getHosts(el);
51
+ };
52
+ SwcUtils2.getHosts = (el) => {
53
+ const ancestors = (0, SwcUtils2.findAllSwcHosts)(el);
54
+ if (getElementConfig(el)) return [...ancestors, el];
55
+ return ancestors;
56
+ };
57
+ SwcUtils2.getHost = (el) => {
58
+ if (getElementConfig(el)) return el;
59
+ return (0, SwcUtils2.findNearestSwcHost)(el);
60
+ };
61
+ SwcUtils2.getAppHosts = (el) => {
62
+ const hosts = (0, SwcUtils2.getHosts)(el);
43
63
  return hosts.filter((host) => host.tagName.toLowerCase() === "swc-app" || host.getAttribute("is")?.startsWith("swc-app-"));
44
- }
45
- static getAppHost(el) {
46
- const appHosts = this.getAppHosts(el);
64
+ };
65
+ SwcUtils2.getAppHost = (el) => {
66
+ const appHosts = (0, SwcUtils2.getAppHosts)(el);
47
67
  const appHostsWithoutSelf = appHosts.filter((h) => h !== el);
48
68
  return appHostsWithoutSelf.length > 0 ? appHostsWithoutSelf[appHostsWithoutSelf.length - 1] : void 0;
49
- }
50
- static getHostSet(el) {
51
- const ancestors = this.findAllSwcHosts(el);
52
- const $host = el;
53
- const $hosts = [...ancestors, $host];
54
- const $parentHost = ancestors.length > 0 ? ancestors[ancestors.length - 1] : null;
55
- const $firstHost = ancestors.length > 0 ? ancestors[0] : null;
69
+ };
70
+ SwcUtils2.getHostSet = (el) => {
71
+ const isSwc = !!getElementConfig(el);
72
+ const ancestors = (0, SwcUtils2.findAllSwcHosts)(el);
73
+ let $host;
74
+ let $parentHost;
75
+ if (isSwc) {
76
+ $host = el;
77
+ $parentHost = ancestors.length > 0 ? ancestors[ancestors.length - 1] : null;
78
+ } else {
79
+ $host = ancestors.length > 0 ? ancestors[ancestors.length - 1] : el;
80
+ $parentHost = ancestors.length > 1 ? ancestors[ancestors.length - 2] : null;
81
+ }
82
+ const $hosts = isSwc ? [...ancestors, el] : ancestors;
83
+ const $firstHost = $hosts.length > 0 ? $hosts[0] : null;
84
+ const loopContext = {};
85
+ let curr = el;
86
+ while (curr && curr !== document.documentElement) {
87
+ if (curr.__swc_loop_context) {
88
+ Object.assign(loopContext, curr.__swc_loop_context);
89
+ }
90
+ curr = curr.parentElement || curr.getRootNode().host;
91
+ }
56
92
  const $appHosts = $hosts.filter((h) => h.tagName.toLowerCase() === "swc-app" || h.getAttribute("is")?.startsWith("swc-app-"));
57
93
  const $appHost = $appHosts.length > 0 ? $appHosts[$appHosts.length - 1] === el ? $appHosts.length > 1 ? $appHosts[$appHosts.length - 2] : null : $appHosts[$appHosts.length - 1] : null;
58
94
  const $firstAppHost = $appHosts.length > 0 ? $appHosts[0] : null;
@@ -65,10 +101,11 @@ class SwcUtils {
65
101
  $appHost,
66
102
  $appHosts,
67
103
  $firstAppHost,
68
- $lastAppHost: $appHost
104
+ $lastAppHost: $appHost,
105
+ ...loopContext
69
106
  };
70
- }
71
- }
107
+ };
108
+ })(SwcUtils || (SwcUtils = {}));
72
109
  export {
73
110
  SWC_NOT_FOUND,
74
111
  SwcUtils
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/Utils.ts"],
4
- "sourcesContent": ["import { SwcAppInterface, HostSet } from '../types';\nimport { getElementConfig } from '../decorators/elementDefine';\n\nexport const SWC_NOT_FOUND = Symbol('SWC_NOT_FOUND');\n\nexport class SwcUtils {\n static getValueByPath(obj: any, path: string, rootName: string) {\n if (!obj || !path) return SWC_NOT_FOUND;\n\n const parts = path.split('.');\n let current = obj;\n\n for (const part of parts) {\n if (current === null || current === undefined) return SWC_NOT_FOUND;\n current = current[part];\n }\n return current;\n }\n\n static findNearestSwcHost(el: HTMLElement | Node): HTMLElement | undefined {\n let current: any = el instanceof Node && !(el instanceof HTMLElement) ? (el as any).host : el;\n current = current?.parentElement || (current?.getRootNode() as any)?.host;\n\n while (current) {\n if (getElementConfig(current)) return current as HTMLElement;\n current = current.parentElement || (current?.getRootNode() as any)?.host;\n }\n return undefined;\n }\n\n /**\n * Returns all SWC ancestors (excluding self) in [root, ..., parent] order.\n */\n static findAllSwcHosts(el: HTMLElement | Node): HTMLElement[] {\n const hosts: HTMLElement[] = [];\n let current = this.findNearestSwcHost(el);\n while (current) {\n hosts.push(current);\n current = this.findNearestSwcHost(current);\n }\n return hosts.reverse();\n }\n\n static getHosts(el: HTMLElement): HTMLElement[] {\n return [...this.findAllSwcHosts(el), el];\n }\n\n static getHost(el: HTMLElement): HTMLElement | undefined {\n return el;\n }\n\n static getAppHosts(el: HTMLElement): SwcAppInterface[] {\n const hosts = this.getHosts(el);\n return hosts.filter(host => host.tagName.toLowerCase() === 'swc-app' || host.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];\n }\n\n static getAppHost(el: HTMLElement): SwcAppInterface | undefined {\n const appHosts = this.getAppHosts(el);\n const appHostsWithoutSelf = appHosts.filter(h => h !== el);\n // Nearest app host is the last one in [root, ..., parent]\n return appHostsWithoutSelf.length > 0 ? appHostsWithoutSelf[appHostsWithoutSelf.length - 1] : undefined;\n }\n\n static getHostSet(el: HTMLElement): HostSet {\n const ancestors = this.findAllSwcHosts(el); // [root, ..., parent]\n const $host = el;\n const $hosts = [...ancestors, $host]; // [root, ..., parent, self]\n const $parentHost = ancestors.length > 0 ? ancestors[ancestors.length - 1] : null;\n const $firstHost = ancestors.length > 0 ? ancestors[0] : null;\n\n const $appHosts = $hosts.filter(h => h.tagName.toLowerCase() === 'swc-app' || h.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];\n const $appHost = $appHosts.length > 0 ? ($appHosts[$appHosts.length - 1] === el ? ($appHosts.length > 1 ? $appHosts[$appHosts.length - 2] : null) : $appHosts[$appHosts.length - 1]) : null;\n const $firstAppHost = $appHosts.length > 0 ? $appHosts[0] : null;\n\n return {\n $host,\n $parentHost,\n $hosts,\n $firstHost,\n $lastHost: $parentHost,\n $appHost,\n $appHosts,\n $firstAppHost,\n $lastAppHost: $appHost\n };\n }\n}\n"],
5
- "mappings": "AACA,SAAS,wBAAwB;AAE1B,MAAM,gBAAgB,OAAO,eAAe;AAE5C,MAAM,SAAS;AAAA,EACpB,OAAO,eAAe,KAAU,MAAc,UAAkB;AAC9D,QAAI,CAAC,OAAO,CAAC,KAAM,QAAO;AAE1B,UAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,QAAI,UAAU;AAEd,eAAW,QAAQ,OAAO;AACxB,UAAI,YAAY,QAAQ,YAAY,OAAW,QAAO;AACtD,gBAAU,QAAQ,IAAI;AAAA,IACxB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,mBAAmB,IAAiD;AACzE,QAAI,UAAe,cAAc,QAAQ,EAAE,cAAc,eAAgB,GAAW,OAAO;AAC3F,cAAU,SAAS,iBAAkB,SAAS,YAAY,GAAW;AAErE,WAAO,SAAS;AACd,UAAI,iBAAiB,OAAO,EAAG,QAAO;AACtC,gBAAU,QAAQ,iBAAkB,SAAS,YAAY,GAAW;AAAA,IACtE;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,gBAAgB,IAAuC;AAC5D,UAAM,QAAuB,CAAC;AAC9B,QAAI,UAAU,KAAK,mBAAmB,EAAE;AACxC,WAAO,SAAS;AACd,YAAM,KAAK,OAAO;AAClB,gBAAU,KAAK,mBAAmB,OAAO;AAAA,IAC3C;AACA,WAAO,MAAM,QAAQ;AAAA,EACvB;AAAA,EAEA,OAAO,SAAS,IAAgC;AAC9C,WAAO,CAAC,GAAG,KAAK,gBAAgB,EAAE,GAAG,EAAE;AAAA,EACzC;AAAA,EAEA,OAAO,QAAQ,IAA0C;AACvD,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,YAAY,IAAoC;AACrD,UAAM,QAAQ,KAAK,SAAS,EAAE;AAC9B,WAAO,MAAM,OAAO,UAAQ,KAAK,QAAQ,YAAY,MAAM,aAAa,KAAK,aAAa,IAAI,GAAG,WAAW,UAAU,CAAC;AAAA,EACzH;AAAA,EAEA,OAAO,WAAW,IAA8C;AAC9D,UAAM,WAAW,KAAK,YAAY,EAAE;AACpC,UAAM,sBAAsB,SAAS,OAAO,OAAK,MAAM,EAAE;AAEzD,WAAO,oBAAoB,SAAS,IAAI,oBAAoB,oBAAoB,SAAS,CAAC,IAAI;AAAA,EAChG;AAAA,EAEA,OAAO,WAAW,IAA0B;AAC1C,UAAM,YAAY,KAAK,gBAAgB,EAAE;AACzC,UAAM,QAAQ;AACd,UAAM,SAAS,CAAC,GAAG,WAAW,KAAK;AACnC,UAAM,cAAc,UAAU,SAAS,IAAI,UAAU,UAAU,SAAS,CAAC,IAAI;AAC7E,UAAM,aAAa,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI;AAEzD,UAAM,YAAY,OAAO,OAAO,OAAK,EAAE,QAAQ,YAAY,MAAM,aAAa,EAAE,aAAa,IAAI,GAAG,WAAW,UAAU,CAAC;AAC1H,UAAM,WAAW,UAAU,SAAS,IAAK,UAAU,UAAU,SAAS,CAAC,MAAM,KAAM,UAAU,SAAS,IAAI,UAAU,UAAU,SAAS,CAAC,IAAI,OAAQ,UAAU,UAAU,SAAS,CAAC,IAAK;AACvL,UAAM,gBAAgB,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI;AAE5D,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,IAChB;AAAA,EACF;AACF;",
6
- "names": []
4
+ "sourcesContent": ["import { SwcAppInterface, HostSet, HelperSet, HelperHostSet } from '../types';\nimport { getElementConfig } from '../decorators/elementDefine';\n\nexport const SWC_NOT_FOUND = Symbol('SWC_NOT_FOUND');\n\nexport namespace SwcUtils {\n export const getHelperSet = (win: Window): HelperSet => {\n const doc: Document = win.document;\n return {\n $d: doc,\n $w: win,\n $q: (sel: string, root?: Element | Document | ShadowRoot) => (root ?? doc).querySelector(sel),\n $qa: (sel: string, root?: Element | Document | ShadowRoot) => Array.from((root ?? doc).querySelectorAll(sel)) as HTMLElement[],\n $qi: (id: string, root?: Document | ShadowRoot) => (root ?? doc).getElementById(id) as HTMLElement\n } as const;\n };\n\n export const getHelperAndHostSet = (win: Window, el: HTMLElement): HelperHostSet => {\n const helperSet = getHelperSet(win);\n const hostSet = getHostSet(el);\n return {\n ...helperSet,\n ...hostSet\n };\n };\n\n export const getValueByPath = (obj: any, path: string, rootName: string) => {\n if (!obj || !path) return SWC_NOT_FOUND;\n\n const parts = path.split('.');\n let current = obj;\n\n for (const part of parts) {\n if (current === null || current === undefined) return SWC_NOT_FOUND;\n current = current[part];\n }\n return current;\n };\n\n /**\n * Finds the nearest logical SWC host for an element.\n * Checks __swc_host property first, then climbs the DOM tree.\n */\n export const findNearestSwcHost = (el: HTMLElement | Node): HTMLElement | undefined => {\n if ((el as any).__swc_host) return (el as any).__swc_host;\n\n let current: any = el.parentElement || (el.getRootNode?.() as any)?.host;\n while (current && current !== document && current !== window) {\n if (current.__swc_host) return current.__swc_host;\n if (getElementConfig(current)) return current as HTMLElement;\n current = current.parentElement || (current.getRootNode?.() as any)?.host;\n }\n return undefined;\n };\n\n /**\n * Returns all SWC ancestors (excluding self) in [root, ..., parent] order.\n */\n export const findAllSwcHosts = (el: HTMLElement | Node): HTMLElement[] => {\n const hosts: HTMLElement[] = [];\n let current = findNearestSwcHost(el);\n while (current) {\n hosts.push(current);\n // To find the next ancestor, we must start searching from the PARENT of the found host\n current = findNearestSwcHost(current);\n }\n return hosts.reverse();\n };\n\n export const getHosts = (el: HTMLElement): HTMLElement[] => {\n const ancestors = findAllSwcHosts(el);\n if (getElementConfig(el)) return [...ancestors, el];\n return ancestors;\n };\n\n export const getHost = (el: HTMLElement): HTMLElement | undefined => {\n if (getElementConfig(el)) return el;\n return findNearestSwcHost(el);\n };\n\n export const getAppHosts = (el: HTMLElement): SwcAppInterface[] => {\n const hosts = getHosts(el);\n return hosts.filter(host => host.tagName.toLowerCase() === 'swc-app' || host.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];\n };\n\n export const getAppHost = (el: HTMLElement): SwcAppInterface | undefined => {\n const appHosts = getAppHosts(el);\n const appHostsWithoutSelf = appHosts.filter(h => h !== el);\n return appHostsWithoutSelf.length > 0 ? appHostsWithoutSelf[appHostsWithoutSelf.length - 1] : undefined;\n };\n\n export const getHostSet = (el: HTMLElement): HostSet => {\n const isSwc = !!getElementConfig(el);\n const ancestors = findAllSwcHosts(el); // [root, ..., parent]\n\n let $host: HTMLElement;\n let $parentHost: HTMLElement | null;\n\n if (isSwc) {\n $host = el;\n $parentHost = ancestors.length > 0 ? ancestors[ancestors.length - 1] : null;\n } else {\n $host = ancestors.length > 0 ? ancestors[ancestors.length - 1] : el;\n $parentHost = ancestors.length > 1 ? ancestors[ancestors.length - 2] : null;\n }\n\n const $hosts = isSwc ? [...ancestors, el] : ancestors;\n const $firstHost = $hosts.length > 0 ? $hosts[0] : null;\n\n // Collect loop contexts\n const loopContext: Record<string, any> = {};\n let curr: any = el;\n while (curr && curr !== document.documentElement) {\n if (curr.__swc_loop_context) {\n Object.assign(loopContext, curr.__swc_loop_context);\n }\n curr = curr.parentElement || (curr.getRootNode() as any).host;\n }\n\n const $appHosts = $hosts.filter(h => h.tagName.toLowerCase() === 'swc-app' || h.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];\n const $appHost = $appHosts.length > 0 ? ($appHosts[$appHosts.length - 1] === el ? ($appHosts.length > 1 ? $appHosts[$appHosts.length - 2] : null) : $appHosts[$appHosts.length - 1]) : null;\n const $firstAppHost = $appHosts.length > 0 ? $appHosts[0] : null;\n\n return {\n $host,\n $parentHost,\n $hosts,\n $firstHost,\n $lastHost: $parentHost,\n $appHost,\n $appHosts,\n $firstAppHost,\n $lastAppHost: $appHost,\n ...loopContext\n } as any;\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SwcUtils"]
7
7
  }