@dooboostore/simple-web-component 1.0.1 → 1.0.3

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 (69) hide show
  1. package/README.md +28 -33
  2. package/dist/cjs/decorators/{elementDefind.js → elementDefine.js} +6 -6
  3. package/dist/cjs/decorators/{elementDefind.js.map → elementDefine.js.map} +2 -2
  4. package/dist/cjs/decorators/query.js.map +1 -1
  5. package/dist/cjs/decorators/queryAll.js.map +1 -1
  6. package/dist/cjs/elements/SwcChoose.js +1 -1
  7. package/dist/cjs/elements/SwcChoose.js.map +1 -1
  8. package/dist/cjs/elements/SwcForOf.js +7 -77
  9. package/dist/cjs/elements/SwcForOf.js.map +2 -2
  10. package/dist/cjs/elements/SwcHTMLElementBase.js +102 -0
  11. package/dist/cjs/elements/SwcHTMLElementBase.js.map +7 -0
  12. package/dist/cjs/elements/SwcIf.js +6 -14
  13. package/dist/cjs/elements/SwcIf.js.map +2 -2
  14. package/dist/cjs/elements/SwcObject.js +115 -0
  15. package/dist/cjs/elements/SwcObject.js.map +7 -0
  16. package/dist/cjs/elements/SwcOther.js +1 -1
  17. package/dist/cjs/elements/SwcOther.js.map +1 -1
  18. package/dist/cjs/elements/SwcWhen.js +1 -1
  19. package/dist/cjs/elements/SwcWhen.js.map +1 -1
  20. package/dist/cjs/index.js +3 -1
  21. package/dist/cjs/index.js.map +2 -2
  22. package/dist/esm/decorators/{elementDefind.js → elementDefine.js} +3 -3
  23. package/dist/esm/decorators/{elementDefind.js.map → elementDefine.js.map} +2 -2
  24. package/dist/esm/decorators/query.js.map +1 -1
  25. package/dist/esm/decorators/queryAll.js.map +1 -1
  26. package/dist/esm/elements/SwcChoose.js +2 -2
  27. package/dist/esm/elements/SwcChoose.js.map +1 -1
  28. package/dist/esm/elements/SwcForOf.js +8 -78
  29. package/dist/esm/elements/SwcForOf.js.map +2 -2
  30. package/dist/esm/elements/SwcHTMLElementBase.js +83 -0
  31. package/dist/esm/elements/SwcHTMLElementBase.js.map +7 -0
  32. package/dist/esm/elements/SwcIf.js +7 -15
  33. package/dist/esm/elements/SwcIf.js.map +2 -2
  34. package/dist/esm/elements/SwcObject.js +96 -0
  35. package/dist/esm/elements/SwcObject.js.map +7 -0
  36. package/dist/esm/elements/SwcOther.js +2 -2
  37. package/dist/esm/elements/SwcOther.js.map +1 -1
  38. package/dist/esm/elements/SwcWhen.js +2 -2
  39. package/dist/esm/elements/SwcWhen.js.map +1 -1
  40. package/dist/esm/index.js +3 -1
  41. package/dist/esm/index.js.map +2 -2
  42. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +192 -97
  43. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  44. package/dist/types/decorators/{elementDefind.d.ts → elementDefine.d.ts} +2 -2
  45. package/dist/types/decorators/{elementDefind.d.ts.map → elementDefine.d.ts.map} +1 -1
  46. package/dist/types/elements/SwcForOf.d.ts +2 -4
  47. package/dist/types/elements/SwcForOf.d.ts.map +1 -1
  48. package/dist/types/elements/SwcHTMLElementBase.d.ts +14 -0
  49. package/dist/types/elements/SwcHTMLElementBase.d.ts.map +1 -0
  50. package/dist/types/elements/SwcIf.d.ts +2 -2
  51. package/dist/types/elements/SwcIf.d.ts.map +1 -1
  52. package/dist/types/elements/SwcObject.d.ts +14 -0
  53. package/dist/types/elements/SwcObject.d.ts.map +1 -0
  54. package/dist/types/index.d.ts +3 -1
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +192 -97
  57. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  58. package/package.json +1 -1
  59. package/src/decorators/{elementDefind.ts → elementDefine.ts} +1 -1
  60. package/src/decorators/query.ts +1 -1
  61. package/src/decorators/queryAll.ts +1 -1
  62. package/src/elements/SwcChoose.ts +2 -2
  63. package/src/elements/SwcForOf.ts +12 -87
  64. package/src/elements/SwcHTMLElementBase.ts +93 -0
  65. package/src/elements/SwcIf.ts +8 -27
  66. package/src/elements/SwcObject.ts +78 -0
  67. package/src/elements/SwcOther.ts +2 -2
  68. package/src/elements/SwcWhen.ts +2 -2
  69. package/src/index.ts +3 -1
@@ -0,0 +1,83 @@
1
+ class SwcHTMLElementBase extends HTMLElement {
2
+ constructor() {
3
+ super();
4
+ this._masterTplNodes = [];
5
+ this._asKey = "value";
6
+ this._asIndexKey = "index";
7
+ }
8
+ initCore() {
9
+ this._asKey = this.getAttribute("as") || "value";
10
+ this._asIndexKey = this.getAttribute("as-index") || "index";
11
+ const tplSlot = this.shadowRoot?.getElementById("tpl-slot");
12
+ if (tplSlot) {
13
+ this._masterTplNodes = tplSlot.assignedNodes().map((n) => n.cloneNode(true));
14
+ }
15
+ }
16
+ getValueByPath(obj, path) {
17
+ if (path === this._asKey) return obj;
18
+ if (path.startsWith(`${this._asKey}.`)) {
19
+ return path.split(".").slice(1).reduce((acc, part) => acc && acc[part], obj);
20
+ }
21
+ return void 0;
22
+ }
23
+ applyData(node, data, index) {
24
+ const context = {};
25
+ if (index !== void 0) {
26
+ context[this._asIndexKey] = index.toString();
27
+ }
28
+ const walk = (n) => {
29
+ if (n.nodeType === Node.TEXT_NODE) {
30
+ if (!n._original) n._original = n.textContent;
31
+ let text = n._original;
32
+ text = text.replace(/{{(.*?)}}/g, (match, path) => {
33
+ path = path.trim();
34
+ if (context[path] !== void 0) return context[path];
35
+ const val = this.getValueByPath(data, path);
36
+ return val !== void 0 ? val : match;
37
+ });
38
+ if (n.textContent !== text) n.textContent = text;
39
+ } else if (n.nodeType === Node.ELEMENT_NODE) {
40
+ const el = n;
41
+ Array.from(el.attributes).forEach((a) => {
42
+ if (!a._original) a._original = a.value;
43
+ let val = a._original;
44
+ val = val.replace(/{{(.*?)}}/g, (match, path) => {
45
+ path = path.trim();
46
+ if (context[path] !== void 0) return context[path];
47
+ const v = this.getValueByPath(data, path);
48
+ return v !== void 0 ? v : match;
49
+ });
50
+ if (a.value !== val) a.value = val;
51
+ });
52
+ el.childNodes.forEach(walk);
53
+ }
54
+ };
55
+ walk(node);
56
+ }
57
+ /**
58
+ * 객체/배열의 변경을 감지하는 Proxy 생성 유틸리티
59
+ */
60
+ createReactiveProxy(target, onChange, onIndexChange) {
61
+ return new Proxy(target, {
62
+ set: (t, prop, val) => {
63
+ const isIndex = !isNaN(Number(prop));
64
+ t[prop] = val;
65
+ if (isIndex && onIndexChange) {
66
+ onIndexChange(Number(prop), val);
67
+ } else {
68
+ onChange();
69
+ }
70
+ return true;
71
+ },
72
+ deleteProperty: (t, prop) => {
73
+ delete t[prop];
74
+ onChange();
75
+ return true;
76
+ }
77
+ });
78
+ }
79
+ }
80
+ export {
81
+ SwcHTMLElementBase
82
+ };
83
+ //# sourceMappingURL=SwcHTMLElementBase.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/elements/SwcHTMLElementBase.ts"],
4
+ "sourcesContent": ["import { getTemplateMethod } from '../decorators/template';\nimport { getStyleMethod } from '../decorators/style';\n\nexport abstract class SwcHTMLElementBase extends HTMLElement {\n protected _masterTplNodes: Node[] = [];\n protected _asKey: string = 'value';\n protected _asIndexKey: string = 'index';\n\n constructor() {\n super();\n }\n\n protected initCore() {\n this._asKey = this.getAttribute('as') || 'value';\n this._asIndexKey = this.getAttribute('as-index') || 'index';\n const tplSlot = this.shadowRoot?.getElementById('tpl-slot') as HTMLSlotElement;\n if (tplSlot) {\n this._masterTplNodes = tplSlot.assignedNodes().map(n => n.cloneNode(true));\n }\n }\n\n protected getValueByPath(obj: any, path: string) {\n if (path === this._asKey) return obj;\n if (path.startsWith(`${this._asKey}.`)) {\n return path\n .split('.')\n .slice(1)\n .reduce((acc, part) => acc && acc[part], obj);\n }\n return undefined;\n }\n\n protected applyData(node: Node, data: any, index?: number) {\n const context: Record<string, any> = {};\n if (index !== undefined) {\n context[this._asIndexKey] = index.toString();\n }\n\n const walk = (n: Node) => {\n if (n.nodeType === Node.TEXT_NODE) {\n if (!(n as any)._original) (n as any)._original = n.textContent;\n let text = (n as any)._original;\n\n text = text.replace(/{{(.*?)}}/g, (match: string, path: string) => {\n path = path.trim();\n if (context[path] !== undefined) return context[path];\n const val = this.getValueByPath(data, path);\n return val !== undefined ? val : match;\n });\n if (n.textContent !== text) n.textContent = text;\n } else if (n.nodeType === Node.ELEMENT_NODE) {\n const el = n as Element;\n Array.from(el.attributes).forEach(a => {\n if (!(a as any)._original) (a as any)._original = a.value;\n let val = (a as any)._original;\n\n val = val.replace(/{{(.*?)}}/g, (match: string, path: string) => {\n path = path.trim();\n if (context[path] !== undefined) return context[path];\n const v = this.getValueByPath(data, path);\n return v !== undefined ? v : match;\n });\n if (a.value !== val) a.value = val;\n });\n el.childNodes.forEach(walk);\n }\n };\n walk(node);\n }\n\n /**\n * \uAC1D\uCCB4/\uBC30\uC5F4\uC758 \uBCC0\uACBD\uC744 \uAC10\uC9C0\uD558\uB294 Proxy \uC0DD\uC131 \uC720\uD2F8\uB9AC\uD2F0\n */\n protected createReactiveProxy(target: any, onChange: () => void, onIndexChange?: (index: number, val: any) => void) {\n return new Proxy(target, {\n set: (t, prop, val) => {\n const isIndex = !isNaN(Number(prop));\n t[prop] = val;\n if (isIndex && onIndexChange) {\n onIndexChange(Number(prop), val);\n } else {\n onChange();\n }\n return true;\n },\n deleteProperty: (t, prop) => {\n delete t[prop];\n onChange();\n return true;\n }\n });\n }\n}\n"],
5
+ "mappings": "AAGO,MAAe,2BAA2B,YAAY;AAAA,EAK3D,cAAc;AACZ,UAAM;AALR,SAAU,kBAA0B,CAAC;AACrC,SAAU,SAAiB;AAC3B,SAAU,cAAsB;AAAA,EAIhC;AAAA,EAEU,WAAW;AACnB,SAAK,SAAS,KAAK,aAAa,IAAI,KAAK;AACzC,SAAK,cAAc,KAAK,aAAa,UAAU,KAAK;AACpD,UAAM,UAAU,KAAK,YAAY,eAAe,UAAU;AAC1D,QAAI,SAAS;AACX,WAAK,kBAAkB,QAAQ,cAAc,EAAE,IAAI,OAAK,EAAE,UAAU,IAAI,CAAC;AAAA,IAC3E;AAAA,EACF;AAAA,EAEU,eAAe,KAAU,MAAc;AAC/C,QAAI,SAAS,KAAK,OAAQ,QAAO;AACjC,QAAI,KAAK,WAAW,GAAG,KAAK,MAAM,GAAG,GAAG;AACtC,aAAO,KACJ,MAAM,GAAG,EACT,MAAM,CAAC,EACP,OAAO,CAAC,KAAK,SAAS,OAAO,IAAI,IAAI,GAAG,GAAG;AAAA,IAChD;AACA,WAAO;AAAA,EACT;AAAA,EAEU,UAAU,MAAY,MAAW,OAAgB;AACzD,UAAM,UAA+B,CAAC;AACtC,QAAI,UAAU,QAAW;AACvB,cAAQ,KAAK,WAAW,IAAI,MAAM,SAAS;AAAA,IAC7C;AAEA,UAAM,OAAO,CAAC,MAAY;AACxB,UAAI,EAAE,aAAa,KAAK,WAAW;AACjC,YAAI,CAAE,EAAU,UAAW,CAAC,EAAU,YAAY,EAAE;AACpD,YAAI,OAAQ,EAAU;AAEtB,eAAO,KAAK,QAAQ,cAAc,CAAC,OAAe,SAAiB;AACjE,iBAAO,KAAK,KAAK;AACjB,cAAI,QAAQ,IAAI,MAAM,OAAW,QAAO,QAAQ,IAAI;AACpD,gBAAM,MAAM,KAAK,eAAe,MAAM,IAAI;AAC1C,iBAAO,QAAQ,SAAY,MAAM;AAAA,QACnC,CAAC;AACD,YAAI,EAAE,gBAAgB,KAAM,GAAE,cAAc;AAAA,MAC9C,WAAW,EAAE,aAAa,KAAK,cAAc;AAC3C,cAAM,KAAK;AACX,cAAM,KAAK,GAAG,UAAU,EAAE,QAAQ,OAAK;AACrC,cAAI,CAAE,EAAU,UAAW,CAAC,EAAU,YAAY,EAAE;AACpD,cAAI,MAAO,EAAU;AAErB,gBAAM,IAAI,QAAQ,cAAc,CAAC,OAAe,SAAiB;AAC/D,mBAAO,KAAK,KAAK;AACjB,gBAAI,QAAQ,IAAI,MAAM,OAAW,QAAO,QAAQ,IAAI;AACpD,kBAAM,IAAI,KAAK,eAAe,MAAM,IAAI;AACxC,mBAAO,MAAM,SAAY,IAAI;AAAA,UAC/B,CAAC;AACD,cAAI,EAAE,UAAU,IAAK,GAAE,QAAQ;AAAA,QACjC,CAAC;AACD,WAAG,WAAW,QAAQ,IAAI;AAAA,MAC5B;AAAA,IACF;AACA,SAAK,IAAI;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKU,oBAAoB,QAAa,UAAsB,eAAmD;AAClH,WAAO,IAAI,MAAM,QAAQ;AAAA,MACvB,KAAK,CAAC,GAAG,MAAM,QAAQ;AACrB,cAAM,UAAU,CAAC,MAAM,OAAO,IAAI,CAAC;AACnC,UAAE,IAAI,IAAI;AACV,YAAI,WAAW,eAAe;AAC5B,wBAAc,OAAO,IAAI,GAAG,GAAG;AAAA,QACjC,OAAO;AACL,mBAAS;AAAA,QACX;AACA,eAAO;AAAA,MACT;AAAA,MACA,gBAAgB,CAAC,GAAG,SAAS;AAC3B,eAAO,EAAE,IAAI;AACb,iBAAS;AACT,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
6
+ "names": []
7
+ }
@@ -7,12 +7,12 @@ var __decorate = function(decorators, target, key, desc) {
7
7
  var __metadata = function(k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { elementDefind, template, style } from "../index.js";
11
- let SwcIf = class SwcIf2 extends HTMLElement {
10
+ import { elementDefine, template, style } from "../index.js";
11
+ import { SwcHTMLElementBase } from "./SwcHTMLElementBase.js";
12
+ let SwcIf = class SwcIf2 extends SwcHTMLElementBase {
12
13
  constructor() {
13
14
  super();
14
15
  this._value = false;
15
- this._masterTplNodes = [];
16
16
  this._observer = null;
17
17
  }
18
18
  set value(val) {
@@ -23,20 +23,13 @@ let SwcIf = class SwcIf2 extends HTMLElement {
23
23
  return this._value;
24
24
  }
25
25
  styles() {
26
- return `
27
- :host { display: contents; }
28
- `;
26
+ return `:host { display: contents; }`;
29
27
  }
30
28
  renderTemplate() {
31
- return `
32
- <slot id="tpl-slot" style="display:none;"></slot>
33
- `;
29
+ return `<slot id="tpl-slot" style="display:none;"></slot>`;
34
30
  }
35
31
  connectedCallback() {
36
- const tplSlot = this.shadowRoot?.getElementById("tpl-slot");
37
- if (tplSlot) {
38
- this._masterTplNodes = tplSlot.assignedNodes().map((n) => n.cloneNode(true));
39
- }
32
+ this.initCore();
40
33
  this._observer = new MutationObserver(() => this.render());
41
34
  this._observer.observe(this, { attributes: true });
42
35
  this.render();
@@ -79,7 +72,6 @@ let SwcIf = class SwcIf2 extends HTMLElement {
79
72
  const clone = tplNode.cloneNode(true);
80
73
  if (clone.nodeType === Node.ELEMENT_NODE) {
81
74
  clone.setAttribute("slot", "if-content");
82
- clone.style.display = "";
83
75
  } else if (clone.nodeType === Node.TEXT_NODE) {
84
76
  if (clone.textContent?.trim().length === 0)
85
77
  return;
@@ -107,7 +99,7 @@ __decorate([
107
99
  __metadata("design:returntype", void 0)
108
100
  ], SwcIf.prototype, "renderTemplate", null);
109
101
  SwcIf = __decorate([
110
- elementDefind({ tagName: "swc-if", useShadow: true }),
102
+ elementDefine({ tagName: "swc-if", useShadow: true }),
111
103
  __metadata("design:paramtypes", [])
112
104
  ], SwcIf);
113
105
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcIf.ts"],
4
- "sourcesContent": ["import { elementDefind, template, style } from '../index';\n\n@elementDefind({ tagName: 'swc-if', useShadow: true })\nexport class SwcIf extends HTMLElement {\n private _value: any = false;\n private _masterTplNodes: Node[] = [];\n private _observer: MutationObserver | null = null;\n\n constructor() {\n super();\n }\n\n set value(val: any) {\n this._value = val;\n this.render();\n }\n\n get value(): any {\n return this._value;\n }\n\n @style\n styles() {\n return `\n :host { display: contents; }\n `;\n }\n\n @template\n renderTemplate() {\n return `\n <slot id=\"tpl-slot\" style=\"display:none;\"></slot>\n `;\n }\n\n connectedCallback() {\n const tplSlot = this.shadowRoot?.getElementById('tpl-slot') as HTMLSlotElement;\n if (tplSlot) {\n // 초기 자식들을 템플릿으로 보관\n this._masterTplNodes = tplSlot.assignedNodes().map(n => n.cloneNode(true));\n }\n\n this._observer = new MutationObserver(() => this.render());\n this._observer.observe(this, { attributes: true });\n\n this.render();\n }\n\n disconnectedCallback() {\n this._observer?.disconnect();\n }\n\n private render() {\n if (!this.shadowRoot) return;\n\n const attrValue = this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return; // 치환 전이면 대기\n\n // 로직 결정: attribute가 있으면 우선, 없으면 property 사용\n let displayValue = attrValue !== null ? attrValue : this._value;\n\n // \"false\", \"null\", \"undefined\" 문자열 처리 및 기본 truthy 체크\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n // 식인 경우 평가 시도 (예: \"10 > 5\")\n try {\n isTruthy = !!new Function(`return ${displayValue}`)();\n } catch (e) {\n // 단순 문자열이면 true로 간주\n isTruthy = true;\n }\n }\n }\n\n // 1. 기존에 렌더링된 노드들 삭제\n Array.from(this.children).forEach(c => {\n if (c.getAttribute('slot') === 'if-content') {\n c.remove();\n }\n });\n\n // 2. Shadow DOM의 컨텐츠 슬롯 삭제\n const existingSlot = this.shadowRoot.querySelector('slot[name=\"if-content\"]');\n if (existingSlot) existingSlot.remove();\n\n // 3. 조건이 참일 때만 노드들을 복제해서 삽입\n if (isTruthy && this._masterTplNodes.length > 0) {\n const contentSlot = document.createElement('slot');\n contentSlot.name = 'if-content';\n this.shadowRoot.appendChild(contentSlot);\n\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true);\n if (clone.nodeType === Node.ELEMENT_NODE) {\n (clone as HTMLElement).setAttribute('slot', 'if-content');\n (clone as HTMLElement).style.display = '';\n } else if (clone.nodeType === Node.TEXT_NODE) {\n if (clone.textContent?.trim().length === 0) return;\n const span = document.createElement('span');\n span.setAttribute('slot', 'if-content');\n span.appendChild(clone);\n this.appendChild(span);\n return;\n }\n this.appendChild(clone);\n });\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;AAAA,SAAS,eAAe,UAAU,aAAa;AAGxC,IAAM,QAAN,MAAMA,eAAc,YAAW;EAKpC,cAAA;AACE,UAAK;AALC,SAAA,SAAc;AACd,SAAA,kBAA0B,CAAA;AAC1B,SAAA,YAAqC;EAI7C;EAEA,IAAI,MAAM,KAAQ;AAChB,SAAK,SAAS;AACd,SAAK,OAAM;EACb;EAEA,IAAI,QAAK;AACP,WAAO,KAAK;EACd;EAGA,SAAM;AACJ,WAAO;;;EAGT;EAGA,iBAAc;AACZ,WAAO;;;EAGT;EAEA,oBAAiB;AACf,UAAM,UAAU,KAAK,YAAY,eAAe,UAAU;AAC1D,QAAI,SAAS;AAEX,WAAK,kBAAkB,QAAQ,cAAa,EAAG,IAAI,OAAK,EAAE,UAAU,IAAI,CAAC;IAC3E;AAEA,SAAK,YAAY,IAAI,iBAAiB,MAAM,KAAK,OAAM,CAAE;AACzD,SAAK,UAAU,QAAQ,MAAM,EAAE,YAAY,KAAI,CAAE;AAEjD,SAAK,OAAM;EACb;EAEA,uBAAoB;AAClB,SAAK,WAAW,WAAU;EAC5B;EAEQ,SAAM;AACZ,QAAI,CAAC,KAAK;AAAY;AAEtB,UAAM,YAAY,KAAK,aAAa,OAAO;AAC3C,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAGpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AAGzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AAEH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,UAAU,YAAY,EAAE,EAAC;QACrD,SAAS,GAAG;AAEV,qBAAW;QACb;MACF;IACF;AAGA,UAAM,KAAK,KAAK,QAAQ,EAAE,QAAQ,OAAI;AACpC,UAAI,EAAE,aAAa,MAAM,MAAM,cAAc;AAC3C,UAAE,OAAM;MACV;IACF,CAAC;AAGD,UAAM,eAAe,KAAK,WAAW,cAAc,yBAAyB;AAC5E,QAAI;AAAc,mBAAa,OAAM;AAGrC,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,YAAM,cAAc,SAAS,cAAc,MAAM;AACjD,kBAAY,OAAO;AACnB,WAAK,WAAW,YAAY,WAAW;AAEvC,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,YAAI,MAAM,aAAa,KAAK,cAAc;AACvC,gBAAsB,aAAa,QAAQ,YAAY;AACvD,gBAAsB,MAAM,UAAU;QACzC,WAAW,MAAM,aAAa,KAAK,WAAW;AAC5C,cAAI,MAAM,aAAa,KAAI,EAAG,WAAW;AAAG;AAC5C,gBAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,eAAK,aAAa,QAAQ,YAAY;AACtC,eAAK,YAAY,KAAK;AACtB,eAAK,YAAY,IAAI;AACrB;QACF;AACA,aAAK,YAAY,KAAK;MACxB,CAAC;IACH;EACF;;AAvFA,WAAA;EADC;;;;;AAQD,WAAA;EADC;;;;;AAzBU,QAAK,WAAA;EADjB,cAAc,EAAE,SAAS,UAAU,WAAW,KAAI,CAAE;;GACxC,KAAK;",
4
+ "sourcesContent": ["import { elementDefine, template, style } from '../index';\nimport { SwcHTMLElementBase } from './SwcHTMLElementBase';\n\n@elementDefine({ tagName: 'swc-if', useShadow: true })\nexport class SwcIf extends SwcHTMLElementBase {\n private _value: any = false;\n private _observer: MutationObserver | null = null;\n\n constructor() {\n super();\n }\n\n set value(val: any) {\n this._value = val;\n this.render();\n }\n\n get value(): any {\n return this._value;\n }\n\n @style\n styles() {\n return `:host { display: contents; }`;\n }\n\n @template\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n this._observer = new MutationObserver(() => this.render());\n this._observer.observe(this, { attributes: true });\n this.render();\n }\n\n disconnectedCallback() {\n this._observer?.disconnect();\n }\n\n private render() {\n if (!this.shadowRoot) return;\n\n const attrValue = this.getAttribute('value');\n if (attrValue !== null && attrValue.includes('{{')) return;\n\n let displayValue = attrValue !== null ? attrValue : this._value;\n let isTruthy = !!displayValue;\n if (typeof displayValue === 'string') {\n if (displayValue === 'false' || displayValue === '0' || displayValue === '') isTruthy = false;\n else {\n try {\n isTruthy = !!new Function(`return ${displayValue}`)();\n } catch (e) {\n isTruthy = true;\n }\n }\n }\n\n Array.from(this.children).forEach(c => {\n if (c.getAttribute('slot') === 'if-content') {\n c.remove();\n }\n });\n\n const existingSlot = this.shadowRoot.querySelector('slot[name=\"if-content\"]');\n if (existingSlot) existingSlot.remove();\n\n if (isTruthy && this._masterTplNodes.length > 0) {\n const contentSlot = document.createElement('slot');\n contentSlot.name = 'if-content';\n this.shadowRoot.appendChild(contentSlot);\n\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true);\n if (clone.nodeType === Node.ELEMENT_NODE) {\n (clone as HTMLElement).setAttribute('slot', 'if-content');\n } else if (clone.nodeType === Node.TEXT_NODE) {\n if (clone.textContent?.trim().length === 0) return;\n const span = document.createElement('span');\n span.setAttribute('slot', 'if-content');\n span.appendChild(clone);\n this.appendChild(span);\n return;\n }\n this.appendChild(clone);\n });\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;AAAA,SAAS,eAAe,UAAU,aAAa;AAC/C,SAAS,0BAA0B;AAG5B,IAAM,QAAN,MAAMA,eAAc,mBAAkB;EAI3C,cAAA;AACE,UAAK;AAJC,SAAA,SAAc;AACd,SAAA,YAAqC;EAI7C;EAEA,IAAI,MAAM,KAAQ;AAChB,SAAK,SAAS;AACd,SAAK,OAAM;EACb;EAEA,IAAI,QAAK;AACP,WAAO,KAAK;EACd;EAGA,SAAM;AACJ,WAAO;EACT;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,SAAK,YAAY,IAAI,iBAAiB,MAAM,KAAK,OAAM,CAAE;AACzD,SAAK,UAAU,QAAQ,MAAM,EAAE,YAAY,KAAI,CAAE;AACjD,SAAK,OAAM;EACb;EAEA,uBAAoB;AAClB,SAAK,WAAW,WAAU;EAC5B;EAEQ,SAAM;AACZ,QAAI,CAAC,KAAK;AAAY;AAEtB,UAAM,YAAY,KAAK,aAAa,OAAO;AAC3C,QAAI,cAAc,QAAQ,UAAU,SAAS,IAAI;AAAG;AAEpD,QAAI,eAAe,cAAc,OAAO,YAAY,KAAK;AACzD,QAAI,WAAW,CAAC,CAAC;AACjB,QAAI,OAAO,iBAAiB,UAAU;AACpC,UAAI,iBAAiB,WAAW,iBAAiB,OAAO,iBAAiB;AAAI,mBAAW;WACnF;AACH,YAAI;AACF,qBAAW,CAAC,CAAC,IAAI,SAAS,UAAU,YAAY,EAAE,EAAC;QACrD,SAAS,GAAG;AACV,qBAAW;QACb;MACF;IACF;AAEA,UAAM,KAAK,KAAK,QAAQ,EAAE,QAAQ,OAAI;AACpC,UAAI,EAAE,aAAa,MAAM,MAAM,cAAc;AAC3C,UAAE,OAAM;MACV;IACF,CAAC;AAED,UAAM,eAAe,KAAK,WAAW,cAAc,yBAAyB;AAC5E,QAAI;AAAc,mBAAa,OAAM;AAErC,QAAI,YAAY,KAAK,gBAAgB,SAAS,GAAG;AAC/C,YAAM,cAAc,SAAS,cAAc,MAAM;AACjD,kBAAY,OAAO;AACnB,WAAK,WAAW,YAAY,WAAW;AAEvC,WAAK,gBAAgB,QAAQ,aAAU;AACrC,cAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,YAAI,MAAM,aAAa,KAAK,cAAc;AACvC,gBAAsB,aAAa,QAAQ,YAAY;QAC1D,WAAW,MAAM,aAAa,KAAK,WAAW;AAC5C,cAAI,MAAM,aAAa,KAAI,EAAG,WAAW;AAAG;AAC5C,gBAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,eAAK,aAAa,QAAQ,YAAY;AACtC,eAAK,YAAY,KAAK;AACtB,eAAK,YAAY,IAAI;AACrB;QACF;AACA,aAAK,YAAY,KAAK;MACxB,CAAC;IACH;EACF;;AApEA,WAAA;EADC;;;;;AAMD,WAAA;EADC;;;;;AAtBU,QAAK,WAAA;EADjB,cAAc,EAAE,SAAS,UAAU,WAAW,KAAI,CAAE;;GACxC,KAAK;",
6
6
  "names": ["SwcIf"]
7
7
  }
@@ -0,0 +1,96 @@
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, template, style } from "../index.js";
11
+ import { SwcHTMLElementBase } from "./SwcHTMLElementBase.js";
12
+ let SwcObject = class SwcObject2 extends SwcHTMLElementBase {
13
+ constructor() {
14
+ super();
15
+ this._value = {};
16
+ this._renderedNodes = [];
17
+ }
18
+ set value(val) {
19
+ if (typeof val !== "object" || val === null)
20
+ val = {};
21
+ this._value = this.createReactiveProxy(val, () => this.updateUI());
22
+ this.render();
23
+ }
24
+ get value() {
25
+ return this._value;
26
+ }
27
+ styles() {
28
+ return `:host { display: contents; }`;
29
+ }
30
+ renderTemplate() {
31
+ return `<slot id="tpl-slot" style="display:none;"></slot>`;
32
+ }
33
+ connectedCallback() {
34
+ this.initCore();
35
+ this.render();
36
+ }
37
+ updateUI() {
38
+ this._renderedNodes.forEach((node) => {
39
+ this.applyData(node, this._value);
40
+ });
41
+ }
42
+ render() {
43
+ if (!this.shadowRoot || this._masterTplNodes.length === 0)
44
+ return;
45
+ this._renderedNodes.forEach((n) => {
46
+ if (n.parentElement === this)
47
+ this.removeChild(n);
48
+ });
49
+ this._renderedNodes = [];
50
+ let slot = this.shadowRoot.querySelector('slot[name="obj-content"]');
51
+ if (!slot) {
52
+ slot = document.createElement("slot");
53
+ slot.name = "obj-content";
54
+ this.shadowRoot.appendChild(slot);
55
+ }
56
+ this._masterTplNodes.forEach((tplNode) => {
57
+ const clone = tplNode.cloneNode(true);
58
+ if (clone.nodeType === Node.ELEMENT_NODE) {
59
+ clone.setAttribute("slot", "obj-content");
60
+ } else if (clone.nodeType === Node.TEXT_NODE) {
61
+ if (clone.textContent?.trim().length === 0)
62
+ return;
63
+ const span = document.createElement("span");
64
+ span.setAttribute("slot", "obj-content");
65
+ span.appendChild(clone);
66
+ this.appendChild(span);
67
+ this._renderedNodes.push(span);
68
+ this.applyData(span, this._value);
69
+ return;
70
+ }
71
+ this.appendChild(clone);
72
+ this._renderedNodes.push(clone);
73
+ this.applyData(clone, this._value);
74
+ });
75
+ }
76
+ };
77
+ __decorate([
78
+ style,
79
+ __metadata("design:type", Function),
80
+ __metadata("design:paramtypes", []),
81
+ __metadata("design:returntype", void 0)
82
+ ], SwcObject.prototype, "styles", null);
83
+ __decorate([
84
+ template,
85
+ __metadata("design:type", Function),
86
+ __metadata("design:paramtypes", []),
87
+ __metadata("design:returntype", void 0)
88
+ ], SwcObject.prototype, "renderTemplate", null);
89
+ SwcObject = __decorate([
90
+ elementDefine({ tagName: "swc-object", useShadow: true }),
91
+ __metadata("design:paramtypes", [])
92
+ ], SwcObject);
93
+ export {
94
+ SwcObject
95
+ };
96
+ //# sourceMappingURL=SwcObject.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/elements/SwcObject.ts"],
4
+ "sourcesContent": ["import { elementDefine, template, style } from '../index';\nimport { SwcHTMLElementBase } from './SwcHTMLElementBase';\n\n@elementDefine({ tagName: 'swc-object', useShadow: true })\nexport class SwcObject extends SwcHTMLElementBase {\n private _value: any = {};\n private _renderedNodes: Node[] = [];\n\n constructor() {\n super();\n }\n\n set value(val: any) {\n if (typeof val !== 'object' || val === null) val = {};\n this._value = this.createReactiveProxy(val, () => this.updateUI());\n this.render();\n }\n\n get value(): any {\n return this._value;\n }\n\n @style\n styles() {\n return `:host { display: contents; }`;\n }\n\n @template\n renderTemplate() {\n return `<slot id=\"tpl-slot\" style=\"display:none;\"></slot>`;\n }\n\n connectedCallback() {\n this.initCore();\n this.render();\n }\n\n private updateUI() {\n this._renderedNodes.forEach(node => {\n this.applyData(node, this._value);\n });\n }\n\n private render() {\n if (!this.shadowRoot || this._masterTplNodes.length === 0) return;\n\n this._renderedNodes.forEach(n => {\n if (n.parentElement === this) this.removeChild(n);\n });\n this._renderedNodes = [];\n\n let slot = this.shadowRoot.querySelector('slot[name=\"obj-content\"]');\n if (!slot) {\n slot = document.createElement('slot');\n (slot as HTMLSlotElement).name = 'obj-content';\n this.shadowRoot.appendChild(slot);\n }\n\n this._masterTplNodes.forEach(tplNode => {\n const clone = tplNode.cloneNode(true);\n if (clone.nodeType === Node.ELEMENT_NODE) {\n (clone as HTMLElement).setAttribute('slot', 'obj-content');\n } else if (clone.nodeType === Node.TEXT_NODE) {\n if (clone.textContent?.trim().length === 0) return;\n const span = document.createElement('span');\n span.setAttribute('slot', 'obj-content');\n span.appendChild(clone);\n this.appendChild(span);\n this._renderedNodes.push(span);\n this.applyData(span, this._value);\n return;\n }\n this.appendChild(clone);\n this._renderedNodes.push(clone);\n this.applyData(clone, this._value);\n });\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;AAAA,SAAS,eAAe,UAAU,aAAa;AAC/C,SAAS,0BAA0B;AAG5B,IAAM,YAAN,MAAMA,mBAAkB,mBAAkB;EAI/C,cAAA;AACE,UAAK;AAJC,SAAA,SAAc,CAAA;AACd,SAAA,iBAAyB,CAAA;EAIjC;EAEA,IAAI,MAAM,KAAQ;AAChB,QAAI,OAAO,QAAQ,YAAY,QAAQ;AAAM,YAAM,CAAA;AACnD,SAAK,SAAS,KAAK,oBAAoB,KAAK,MAAM,KAAK,SAAQ,CAAE;AACjE,SAAK,OAAM;EACb;EAEA,IAAI,QAAK;AACP,WAAO,KAAK;EACd;EAGA,SAAM;AACJ,WAAO;EACT;EAGA,iBAAc;AACZ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,SAAQ;AACb,SAAK,OAAM;EACb;EAEQ,WAAQ;AACd,SAAK,eAAe,QAAQ,UAAO;AACjC,WAAK,UAAU,MAAM,KAAK,MAAM;IAClC,CAAC;EACH;EAEQ,SAAM;AACZ,QAAI,CAAC,KAAK,cAAc,KAAK,gBAAgB,WAAW;AAAG;AAE3D,SAAK,eAAe,QAAQ,OAAI;AAC9B,UAAI,EAAE,kBAAkB;AAAM,aAAK,YAAY,CAAC;IAClD,CAAC;AACD,SAAK,iBAAiB,CAAA;AAEtB,QAAI,OAAO,KAAK,WAAW,cAAc,0BAA0B;AACnE,QAAI,CAAC,MAAM;AACT,aAAO,SAAS,cAAc,MAAM;AACnC,WAAyB,OAAO;AACjC,WAAK,WAAW,YAAY,IAAI;IAClC;AAEA,SAAK,gBAAgB,QAAQ,aAAU;AACrC,YAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,UAAI,MAAM,aAAa,KAAK,cAAc;AACvC,cAAsB,aAAa,QAAQ,aAAa;MAC3D,WAAW,MAAM,aAAa,KAAK,WAAW;AAC5C,YAAI,MAAM,aAAa,KAAI,EAAG,WAAW;AAAG;AAC5C,cAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,aAAK,aAAa,QAAQ,aAAa;AACvC,aAAK,YAAY,KAAK;AACtB,aAAK,YAAY,IAAI;AACrB,aAAK,eAAe,KAAK,IAAI;AAC7B,aAAK,UAAU,MAAM,KAAK,MAAM;AAChC;MACF;AACA,WAAK,YAAY,KAAK;AACtB,WAAK,eAAe,KAAK,KAAK;AAC9B,WAAK,UAAU,OAAO,KAAK,MAAM;IACnC,CAAC;EACH;;AArDA,WAAA;EADC;;;;;AAMD,WAAA;EADC;;;;;AAvBU,YAAS,WAAA;EADrB,cAAc,EAAE,SAAS,cAAc,WAAW,KAAI,CAAE;;GAC5C,SAAS;",
6
+ "names": ["SwcObject"]
7
+ }
@@ -7,7 +7,7 @@ var __decorate = function(decorators, target, key, desc) {
7
7
  var __metadata = function(k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { elementDefind, template, style } from "../index.js";
10
+ import { elementDefine, template, style } from "../index.js";
11
11
  let SwcOther = class SwcOther2 extends HTMLElement {
12
12
  styles() {
13
13
  return `:host { display: contents; }`;
@@ -29,7 +29,7 @@ __decorate([
29
29
  __metadata("design:returntype", void 0)
30
30
  ], SwcOther.prototype, "render", null);
31
31
  SwcOther = __decorate([
32
- elementDefind({ tagName: "swc-other", useShadow: true })
32
+ elementDefine({ tagName: "swc-other", useShadow: true })
33
33
  ], SwcOther);
34
34
  export {
35
35
  SwcOther
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcOther.ts"],
4
- "sourcesContent": ["import { elementDefind, template, style } from '../index';\n\n@elementDefind({ tagName: 'swc-other', useShadow: true })\nexport class SwcOther extends HTMLElement {\n @style\n styles() {\n return `:host { display: contents; }`;\n }\n\n @template\n render() {\n return `<slot></slot>`;\n }\n}\n"],
4
+ "sourcesContent": ["import { elementDefine, template, style } from '../index';\n\n@elementDefine({ tagName: 'swc-other', useShadow: true })\nexport class SwcOther extends HTMLElement {\n @style\n styles() {\n return `:host { display: contents; }`;\n }\n\n @template\n render() {\n return `<slot></slot>`;\n }\n}\n"],
5
5
  "mappings": ";;;;;;;;;AAAA,SAAS,eAAe,UAAU,aAAa;AAGxC,IAAM,WAAN,MAAMA,kBAAiB,YAAW;EAEvC,SAAM;AACJ,WAAO;EACT;EAGA,SAAM;AACJ,WAAO;EACT;;AAPA,WAAA;EADC;;;;;AAMD,WAAA;EADC;;;;;AANU,WAAQ,WAAA;EADpB,cAAc,EAAE,SAAS,aAAa,WAAW,KAAI,CAAE;GAC3C,QAAQ;",
6
6
  "names": ["SwcOther"]
7
7
  }
@@ -7,7 +7,7 @@ var __decorate = function(decorators, target, key, desc) {
7
7
  var __metadata = function(k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { elementDefind, template, style } from "../index.js";
10
+ import { elementDefine, template, style } from "../index.js";
11
11
  let SwcWhen = class SwcWhen2 extends HTMLElement {
12
12
  styles() {
13
13
  return `:host { display: contents; }`;
@@ -29,7 +29,7 @@ __decorate([
29
29
  __metadata("design:returntype", void 0)
30
30
  ], SwcWhen.prototype, "render", null);
31
31
  SwcWhen = __decorate([
32
- elementDefind({ tagName: "swc-when", useShadow: true })
32
+ elementDefine({ tagName: "swc-when", useShadow: true })
33
33
  ], SwcWhen);
34
34
  export {
35
35
  SwcWhen
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/SwcWhen.ts"],
4
- "sourcesContent": ["import { elementDefind, template, style } from '../index';\n\n@elementDefind({ tagName: 'swc-when', useShadow: true })\nexport class SwcWhen extends HTMLElement {\n @style\n styles() {\n return `:host { display: contents; }`;\n }\n\n @template\n render() {\n return `<slot></slot>`;\n }\n}\n"],
4
+ "sourcesContent": ["import { elementDefine, template, style } from '../index';\n\n@elementDefine({ tagName: 'swc-when', useShadow: true })\nexport class SwcWhen extends HTMLElement {\n @style\n styles() {\n return `:host { display: contents; }`;\n }\n\n @template\n render() {\n return `<slot></slot>`;\n }\n}\n"],
5
5
  "mappings": ";;;;;;;;;AAAA,SAAS,eAAe,UAAU,aAAa;AAGxC,IAAM,UAAN,MAAMA,iBAAgB,YAAW;EAEtC,SAAM;AACJ,WAAO;EACT;EAGA,SAAM;AACJ,WAAO;EACT;;AAPA,WAAA;EADC;;;;;AAMD,WAAA;EADC;;;;;AANU,UAAO,WAAA;EADnB,cAAc,EAAE,SAAS,YAAY,WAAW,KAAI,CAAE;GAC1C,OAAO;",
6
6
  "names": ["SwcWhen"]
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./decorators/elementDefind.js";
1
+ export * from "./decorators/elementDefine.js";
2
2
  export * from "./decorators/template.js";
3
3
  export * from "./decorators/style.js";
4
4
  export * from "./decorators/attributeChanged.js";
@@ -10,4 +10,6 @@ export * from "./elements/SwcIf.js";
10
10
  export * from "./elements/SwcChoose.js";
11
11
  export * from "./elements/SwcWhen.js";
12
12
  export * from "./elements/SwcOther.js";
13
+ export * from "./elements/SwcObject.js";
14
+ export * from "./elements/SwcHTMLElementBase.js";
13
15
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["export * from './decorators/elementDefind';\nexport * from './decorators/template';\nexport * from './decorators/style';\nexport * from './decorators/attributeChanged';\nexport * from './decorators/query';\nexport * from './decorators/queryAll';\nexport * from './decorators/addEventListener';\nexport * from './elements/SwcForOf';\nexport * from './elements/SwcIf';\nexport * from './elements/SwcChoose';\nexport * from './elements/SwcWhen';\nexport * from './elements/SwcOther';\n"],
5
- "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "sourcesContent": ["export * from './decorators/elementDefine';\nexport * from './decorators/template';\nexport * from './decorators/style';\nexport * from './decorators/attributeChanged';\nexport * from './decorators/query';\nexport * from './decorators/queryAll';\nexport * from './decorators/addEventListener';\nexport * from './elements/SwcForOf';\nexport * from './elements/SwcIf';\nexport * from './elements/SwcChoose';\nexport * from './elements/SwcWhen';\nexport * from './elements/SwcOther';\nexport * from './elements/SwcObject';\nexport * from './elements/SwcHTMLElementBase';\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
6
  "names": []
7
7
  }