@dooboostore/simple-web-component 1.0.0 → 1.0.1

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 (86) hide show
  1. package/README.md +67 -70
  2. package/dist/cjs/decorators/addEventListener.js +42 -0
  3. package/dist/cjs/decorators/addEventListener.js.map +7 -0
  4. package/dist/cjs/decorators/attributeChanged.js +24 -4
  5. package/dist/cjs/decorators/attributeChanged.js.map +2 -2
  6. package/dist/cjs/decorators/{element.js → elementDefind.js} +91 -13
  7. package/dist/cjs/decorators/elementDefind.js.map +7 -0
  8. package/dist/cjs/decorators/query.js +53 -0
  9. package/dist/cjs/decorators/query.js.map +7 -0
  10. package/dist/cjs/decorators/queryAll.js +53 -0
  11. package/dist/cjs/decorators/queryAll.js.map +7 -0
  12. package/dist/cjs/elements/SwcChoose.js +117 -0
  13. package/dist/cjs/elements/SwcChoose.js.map +7 -0
  14. package/dist/cjs/elements/SwcForOf.js +196 -0
  15. package/dist/cjs/elements/SwcForOf.js.map +7 -0
  16. package/dist/cjs/elements/SwcIf.js +135 -0
  17. package/dist/cjs/elements/SwcIf.js.map +7 -0
  18. package/dist/cjs/elements/SwcOther.js +56 -0
  19. package/dist/cjs/elements/SwcOther.js.map +7 -0
  20. package/dist/cjs/elements/SwcWhen.js +56 -0
  21. package/dist/cjs/elements/SwcWhen.js.map +7 -0
  22. package/dist/cjs/index.js +9 -1
  23. package/dist/cjs/index.js.map +2 -2
  24. package/dist/esm/decorators/addEventListener.js +23 -0
  25. package/dist/esm/decorators/addEventListener.js.map +7 -0
  26. package/dist/esm/decorators/attributeChanged.js +24 -4
  27. package/dist/esm/decorators/attributeChanged.js.map +2 -2
  28. package/dist/esm/decorators/{element.js → elementDefind.js} +89 -11
  29. package/dist/esm/decorators/elementDefind.js.map +7 -0
  30. package/dist/esm/decorators/query.js +34 -0
  31. package/dist/esm/decorators/query.js.map +7 -0
  32. package/dist/esm/decorators/queryAll.js +34 -0
  33. package/dist/esm/decorators/queryAll.js.map +7 -0
  34. package/dist/esm/elements/SwcChoose.js +98 -0
  35. package/dist/esm/elements/SwcChoose.js.map +7 -0
  36. package/dist/esm/elements/SwcForOf.js +177 -0
  37. package/dist/esm/elements/SwcForOf.js.map +7 -0
  38. package/dist/esm/elements/SwcIf.js +116 -0
  39. package/dist/esm/elements/SwcIf.js.map +7 -0
  40. package/dist/esm/elements/SwcOther.js +37 -0
  41. package/dist/esm/elements/SwcOther.js.map +7 -0
  42. package/dist/esm/elements/SwcWhen.js +37 -0
  43. package/dist/esm/elements/SwcWhen.js.map +7 -0
  44. package/dist/esm/index.js +9 -1
  45. package/dist/esm/index.js.map +2 -2
  46. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +649 -14
  47. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  48. package/dist/types/decorators/addEventListener.d.ts +16 -0
  49. package/dist/types/decorators/addEventListener.d.ts.map +1 -0
  50. package/dist/types/decorators/attributeChanged.d.ts +3 -1
  51. package/dist/types/decorators/attributeChanged.d.ts.map +1 -1
  52. package/dist/types/decorators/{element.d.ts → elementDefind.d.ts} +2 -2
  53. package/dist/types/decorators/elementDefind.d.ts.map +1 -0
  54. package/dist/types/decorators/query.d.ts +13 -0
  55. package/dist/types/decorators/query.d.ts.map +1 -0
  56. package/dist/types/decorators/queryAll.d.ts +13 -0
  57. package/dist/types/decorators/queryAll.d.ts.map +1 -0
  58. package/dist/types/elements/SwcChoose.d.ts +12 -0
  59. package/dist/types/elements/SwcChoose.d.ts.map +1 -0
  60. package/dist/types/elements/SwcForOf.d.ts +16 -0
  61. package/dist/types/elements/SwcForOf.d.ts.map +1 -0
  62. package/dist/types/elements/SwcIf.d.ts +14 -0
  63. package/dist/types/elements/SwcIf.d.ts.map +1 -0
  64. package/dist/types/elements/SwcOther.d.ts +5 -0
  65. package/dist/types/elements/SwcOther.d.ts.map +1 -0
  66. package/dist/types/elements/SwcWhen.d.ts +5 -0
  67. package/dist/types/elements/SwcWhen.d.ts.map +1 -0
  68. package/dist/types/index.d.ts +9 -1
  69. package/dist/types/index.d.ts.map +1 -1
  70. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +649 -14
  71. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  72. package/package.json +1 -1
  73. package/src/decorators/addEventListener.ts +35 -0
  74. package/src/decorators/attributeChanged.ts +29 -6
  75. package/src/decorators/{element.ts → elementDefind.ts} +121 -11
  76. package/src/decorators/query.ts +46 -0
  77. package/src/decorators/queryAll.ts +46 -0
  78. package/src/elements/SwcChoose.ts +83 -0
  79. package/src/elements/SwcForOf.ts +170 -0
  80. package/src/elements/SwcIf.ts +111 -0
  81. package/src/elements/SwcOther.ts +14 -0
  82. package/src/elements/SwcWhen.ts +14 -0
  83. package/src/index.ts +10 -2
  84. package/dist/cjs/decorators/element.js.map +0 -7
  85. package/dist/esm/decorators/element.js.map +0 -7
  86. package/dist/types/decorators/element.d.ts.map +0 -1
@@ -0,0 +1,117 @@
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 SwcChoose_exports = {};
19
+ __export(SwcChoose_exports, {
20
+ SwcChoose: () => SwcChoose
21
+ });
22
+ module.exports = __toCommonJS(SwcChoose_exports);
23
+ var import__ = require("../index");
24
+ var __decorate = function(decorators, target, key, desc) {
25
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27
+ 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;
28
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
29
+ };
30
+ var __metadata = function(k, v) {
31
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
32
+ };
33
+ let SwcChoose = class SwcChoose2 extends HTMLElement {
34
+ constructor() {
35
+ super(...arguments);
36
+ this._observer = null;
37
+ this._value = void 0;
38
+ }
39
+ set value(val) {
40
+ this._value = val;
41
+ this.evaluate();
42
+ }
43
+ get value() {
44
+ return this._value;
45
+ }
46
+ styles() {
47
+ return `:host { display: contents; }`;
48
+ }
49
+ render() {
50
+ return `<slot id="choose-slot"></slot>`;
51
+ }
52
+ connectedCallback() {
53
+ this._observer = new MutationObserver(() => this.evaluate());
54
+ this._observer.observe(this, { attributes: true, subtree: true, childList: true });
55
+ this.evaluate();
56
+ }
57
+ disconnectedCallback() {
58
+ this._observer?.disconnect();
59
+ }
60
+ evaluate() {
61
+ const whens = Array.from(this.querySelectorAll("swc-when"));
62
+ const other = this.querySelector("swc-other");
63
+ let matched = false;
64
+ const chooseValue = this.getAttribute("value") ?? this._value;
65
+ whens.forEach((when) => {
66
+ if (matched) {
67
+ when.style.display = "none";
68
+ return;
69
+ }
70
+ const testAttr = when.getAttribute("test");
71
+ if (testAttr === null)
72
+ return;
73
+ if (testAttr.includes("{{"))
74
+ return;
75
+ let isConditionMet = false;
76
+ if (chooseValue !== void 0 && chooseValue !== null) {
77
+ isConditionMet = String(chooseValue) === String(testAttr);
78
+ } else {
79
+ try {
80
+ if (testAttr === "true")
81
+ isConditionMet = true;
82
+ else if (testAttr === "false")
83
+ isConditionMet = false;
84
+ else
85
+ isConditionMet = !!new Function(`return ${testAttr}`)();
86
+ } catch (e) {
87
+ isConditionMet = false;
88
+ }
89
+ }
90
+ if (isConditionMet) {
91
+ when.style.display = "";
92
+ matched = true;
93
+ } else {
94
+ when.style.display = "none";
95
+ }
96
+ });
97
+ if (other) {
98
+ other.style.display = matched ? "none" : "";
99
+ }
100
+ }
101
+ };
102
+ __decorate([
103
+ import__.style,
104
+ __metadata("design:type", Function),
105
+ __metadata("design:paramtypes", []),
106
+ __metadata("design:returntype", void 0)
107
+ ], SwcChoose.prototype, "styles", null);
108
+ __decorate([
109
+ import__.template,
110
+ __metadata("design:type", Function),
111
+ __metadata("design:paramtypes", []),
112
+ __metadata("design:returntype", void 0)
113
+ ], SwcChoose.prototype, "render", null);
114
+ SwcChoose = __decorate([
115
+ (0, import__.elementDefind)({ tagName: "swc-choose", useShadow: true })
116
+ ], SwcChoose);
117
+ //# sourceMappingURL=SwcChoose.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/elements/SwcChoose.ts"],
4
+ "sourcesContent": ["import { elementDefind, template, style } from '../index';\n\n@elementDefind({ tagName: 'swc-choose', useShadow: true })\nexport class SwcChoose extends HTMLElement {\n private _observer: MutationObserver | null = null;\n private _value: any = undefined;\n\n set value(val: any) {\n this._value = val;\n this.evaluate();\n }\n\n get value() {\n return this._value;\n }\n\n @style\n styles() {\n return `:host { display: contents; }`;\n }\n\n @template\n render() {\n return `<slot id=\"choose-slot\"></slot>`;\n }\n\n connectedCallback() {\n this._observer = new MutationObserver(() => this.evaluate());\n this._observer.observe(this, { attributes: true, subtree: true, childList: true });\n this.evaluate();\n }\n\n disconnectedCallback() {\n this._observer?.disconnect();\n }\n\n private evaluate() {\n const whens = Array.from(this.querySelectorAll('swc-when'));\n const other = this.querySelector('swc-other');\n let matched = false;\n\n // 현재 choose에 설정된 value (문자열인 경우 \"null\", \"undefined\" 등 처리)\n const chooseValue = this.getAttribute('value') ?? this._value;\n\n whens.forEach(when => {\n if (matched) {\n (when as HTMLElement).style.display = 'none';\n return;\n }\n\n const testAttr = when.getAttribute('test');\n if (testAttr === null) return;\n if (testAttr.includes('{{')) return; // 아직 치환 전이면 스킵\n\n let isConditionMet = false;\n\n if (chooseValue !== undefined && chooseValue !== null) {\n // 1. 매칭 모드: choose의 value와 when의 test값이 같은지 비교\n isConditionMet = String(chooseValue) === String(testAttr);\n } else {\n // 2. 표현식 모드: testAttr 자체가 실행 가능한 코드인 경우\n try {\n if (testAttr === 'true') isConditionMet = true;\n else if (testAttr === 'false') isConditionMet = false;\n else isConditionMet = !!new Function(`return ${testAttr}`)();\n } catch (e) {\n isConditionMet = false;\n }\n }\n\n if (isConditionMet) {\n (when as HTMLElement).style.display = '';\n matched = true;\n } else {\n (when as HTMLElement).style.display = 'none';\n }\n });\n\n if (other) {\n (other as HTMLElement).style.display = matched ? 'none' : '';\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAA+C;;;;;;;;;;AAGxC,IAAM,YAAN,MAAMA,mBAAkB,YAAW;EAAnC,cAAA;;AACG,SAAA,YAAqC;AACrC,SAAA,SAAc;EA6ExB;EA3EE,IAAI,MAAM,KAAQ;AAChB,SAAK,SAAS;AACd,SAAK,SAAQ;EACf;EAEA,IAAI,QAAK;AACP,WAAO,KAAK;EACd;EAGA,SAAM;AACJ,WAAO;EACT;EAGA,SAAM;AACJ,WAAO;EACT;EAEA,oBAAiB;AACf,SAAK,YAAY,IAAI,iBAAiB,MAAM,KAAK,SAAQ,CAAE;AAC3D,SAAK,UAAU,QAAQ,MAAM,EAAE,YAAY,MAAM,SAAS,MAAM,WAAW,KAAI,CAAE;AACjF,SAAK,SAAQ;EACf;EAEA,uBAAoB;AAClB,SAAK,WAAW,WAAU;EAC5B;EAEQ,WAAQ;AACd,UAAM,QAAQ,MAAM,KAAK,KAAK,iBAAiB,UAAU,CAAC;AAC1D,UAAM,QAAQ,KAAK,cAAc,WAAW;AAC5C,QAAI,UAAU;AAGd,UAAM,cAAc,KAAK,aAAa,OAAO,KAAK,KAAK;AAEvD,UAAM,QAAQ,UAAO;AACnB,UAAI,SAAS;AACV,aAAqB,MAAM,UAAU;AACtC;MACF;AAEA,YAAM,WAAW,KAAK,aAAa,MAAM;AACzC,UAAI,aAAa;AAAM;AACvB,UAAI,SAAS,SAAS,IAAI;AAAG;AAE7B,UAAI,iBAAiB;AAErB,UAAI,gBAAgB,UAAa,gBAAgB,MAAM;AAErD,yBAAiB,OAAO,WAAW,MAAM,OAAO,QAAQ;MAC1D,OAAO;AAEL,YAAI;AACF,cAAI,aAAa;AAAQ,6BAAiB;mBACjC,aAAa;AAAS,6BAAiB;;AAC3C,6BAAiB,CAAC,CAAC,IAAI,SAAS,UAAU,QAAQ,EAAE,EAAC;QAC5D,SAAS,GAAG;AACV,2BAAiB;QACnB;MACF;AAEA,UAAI,gBAAgB;AACjB,aAAqB,MAAM,UAAU;AACtC,kBAAU;MACZ,OAAO;AACJ,aAAqB,MAAM,UAAU;MACxC;IACF,CAAC;AAED,QAAI,OAAO;AACR,YAAsB,MAAM,UAAU,UAAU,SAAS;IAC5D;EACF;;AAhEA,WAAA;EADC;;;;;AAMD,WAAA;EADC;;;;;AAlBU,YAAS,WAAA;MADrB,wBAAc,EAAE,SAAS,cAAc,WAAW,KAAI,CAAE;GAC5C,SAAS;",
6
+ "names": ["SwcChoose"]
7
+ }
@@ -0,0 +1,196 @@
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 SwcForOf_exports = {};
19
+ __export(SwcForOf_exports, {
20
+ SwcForOf: () => SwcForOf
21
+ });
22
+ module.exports = __toCommonJS(SwcForOf_exports);
23
+ var import__ = require("../index");
24
+ var __decorate = function(decorators, target, key, desc) {
25
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27
+ 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;
28
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
29
+ };
30
+ var __metadata = function(k, v) {
31
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
32
+ };
33
+ let SwcForOf = class SwcForOf2 extends HTMLElement {
34
+ constructor() {
35
+ super();
36
+ this._value = [];
37
+ this._masterTplNodes = [];
38
+ }
39
+ set value(val) {
40
+ if (!Array.isArray(val))
41
+ val = [];
42
+ this._value = this.createProxy(val);
43
+ this.renderAll();
44
+ }
45
+ get value() {
46
+ return this._value;
47
+ }
48
+ createProxy(arr) {
49
+ return new Proxy(arr, {
50
+ set: (target, prop, val) => {
51
+ const isIndex = !isNaN(Number(prop));
52
+ target[prop] = val;
53
+ if (isIndex) {
54
+ this.updateSingleRow(Number(prop), val);
55
+ } else if (prop === "length" && val < target.length) {
56
+ this.renderAll();
57
+ }
58
+ return true;
59
+ },
60
+ deleteProperty: (target, prop) => {
61
+ const res = delete target[prop];
62
+ this.renderAll();
63
+ return res;
64
+ }
65
+ });
66
+ }
67
+ styles() {
68
+ return `
69
+ :host { display: contents; }
70
+ `;
71
+ }
72
+ renderTemplate() {
73
+ return `
74
+ <slot id="tpl-slot" style="display:none;"></slot>
75
+ `;
76
+ }
77
+ connectedCallback() {
78
+ const tplSlot = this.shadowRoot?.getElementById("tpl-slot");
79
+ if (tplSlot) {
80
+ this._masterTplNodes = tplSlot.assignedNodes().map((n) => n.cloneNode(true));
81
+ }
82
+ this.renderAll();
83
+ }
84
+ updateSingleRow(index, newValue) {
85
+ const targets = this.querySelectorAll(`[slot="row-${index}"]`);
86
+ if (targets.length > 0) {
87
+ targets.forEach((target) => this.applyData(target, newValue, index));
88
+ } else {
89
+ this.renderRow(newValue, index);
90
+ }
91
+ }
92
+ applyData(node, data, index) {
93
+ const getValueByPath = (obj, path) => {
94
+ if (path === "value")
95
+ return obj;
96
+ if (path.startsWith("value.")) {
97
+ return path.split(".").slice(1).reduce((acc, part) => acc && acc[part], obj);
98
+ }
99
+ return void 0;
100
+ };
101
+ const walk = (n) => {
102
+ if (n.nodeType === Node.TEXT_NODE) {
103
+ if (!n._original)
104
+ n._original = n.textContent;
105
+ let text = n._original;
106
+ text = text.replace(/{{(.*?)}}/g, (match, path) => {
107
+ path = path.trim();
108
+ if (path === "index")
109
+ return index.toString();
110
+ const val = getValueByPath(data, path);
111
+ return val !== void 0 ? val : match;
112
+ });
113
+ if (n.textContent !== text)
114
+ n.textContent = text;
115
+ } else if (n.nodeType === Node.ELEMENT_NODE) {
116
+ const el = n;
117
+ Array.from(el.attributes).forEach((a) => {
118
+ if (!a._original)
119
+ a._original = a.value;
120
+ let val = a._original;
121
+ val = val.replace(/{{(.*?)}}/g, (match, path) => {
122
+ path = path.trim();
123
+ if (path === "index")
124
+ return index.toString();
125
+ const v = getValueByPath(data, path);
126
+ return v !== void 0 ? v : match;
127
+ });
128
+ if (a.value !== val)
129
+ a.value = val;
130
+ });
131
+ el.childNodes.forEach(walk);
132
+ }
133
+ };
134
+ walk(node);
135
+ }
136
+ renderRow(item, index) {
137
+ if (!this.shadowRoot || this._masterTplNodes.length === 0)
138
+ return;
139
+ const slotName = `row-${index}`;
140
+ if (!this.shadowRoot.querySelector(`slot[name="${slotName}"]`)) {
141
+ const slot = document.createElement("slot");
142
+ slot.name = slotName;
143
+ this.shadowRoot.appendChild(slot);
144
+ }
145
+ this._masterTplNodes.forEach((tplNode) => {
146
+ const clone = tplNode.cloneNode(true);
147
+ if (clone.nodeType === Node.ELEMENT_NODE) {
148
+ clone.setAttribute("slot", slotName);
149
+ clone.style.display = "";
150
+ } else if (clone.nodeType === Node.TEXT_NODE) {
151
+ if (clone.textContent?.trim().length === 0)
152
+ return;
153
+ const span = document.createElement("span");
154
+ span.setAttribute("slot", slotName);
155
+ span.appendChild(clone);
156
+ this.appendChild(span);
157
+ this.applyData(span, item, index);
158
+ return;
159
+ }
160
+ this.appendChild(clone);
161
+ this.applyData(clone, item, index);
162
+ });
163
+ }
164
+ renderAll() {
165
+ if (this._masterTplNodes.length === 0 || !this.shadowRoot)
166
+ return;
167
+ Array.from(this.children).forEach((c) => {
168
+ const slot = c.getAttribute("slot");
169
+ if (slot && slot.startsWith("row-")) {
170
+ c.remove();
171
+ }
172
+ });
173
+ Array.from(this.shadowRoot.querySelectorAll("slot")).forEach((s) => {
174
+ if (s.id !== "tpl-slot")
175
+ s.remove();
176
+ });
177
+ this._value.forEach((item, index) => this.renderRow(item, index));
178
+ }
179
+ };
180
+ __decorate([
181
+ import__.style,
182
+ __metadata("design:type", Function),
183
+ __metadata("design:paramtypes", []),
184
+ __metadata("design:returntype", void 0)
185
+ ], SwcForOf.prototype, "styles", null);
186
+ __decorate([
187
+ import__.template,
188
+ __metadata("design:type", Function),
189
+ __metadata("design:paramtypes", []),
190
+ __metadata("design:returntype", void 0)
191
+ ], SwcForOf.prototype, "renderTemplate", null);
192
+ SwcForOf = __decorate([
193
+ (0, import__.elementDefind)({ tagName: "swc-for-of", useShadow: true }),
194
+ __metadata("design:paramtypes", [])
195
+ ], SwcForOf);
196
+ //# sourceMappingURL=SwcForOf.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/elements/SwcForOf.ts"],
4
+ "sourcesContent": ["import { elementDefind, template, style } from '../index';\n\n@elementDefind({ tagName: 'swc-for-of', useShadow: true })\nexport class SwcForOf extends HTMLElement {\n private _value: any[] = [];\n private _masterTplNodes: Node[] = [];\n\n constructor() {\n super();\n }\n\n set value(val: any[]) {\n if (!Array.isArray(val)) val = [];\n this._value = this.createProxy(val);\n this.renderAll();\n }\n\n get value(): any[] {\n return this._value;\n }\n\n private createProxy(arr: any[]) {\n return new Proxy(arr, {\n set: (target, prop, val) => {\n const isIndex = !isNaN(Number(prop));\n target[prop as any] = val;\n\n if (isIndex) {\n this.updateSingleRow(Number(prop), val);\n } else if (prop === 'length' && val < target.length) {\n this.renderAll();\n }\n return true;\n },\n deleteProperty: (target, prop) => {\n const res = delete target[prop as any];\n this.renderAll();\n return res;\n }\n });\n }\n\n @style\n styles() {\n // display: contents를 통해 swc-for-of 태그 자체를 레이아웃에서 투명하게 만듭니다.\n return `\n :host { display: contents; }\n `;\n }\n\n @template\n renderTemplate() {\n // 감싸는 div 없이 tpl-slot만 둡니다.\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 this._masterTplNodes = tplSlot.assignedNodes().map(n => n.cloneNode(true));\n }\n this.renderAll();\n }\n\n public updateSingleRow(index: number, newValue: any) {\n const targets = this.querySelectorAll(`[slot=\"row-${index}\"]`);\n if (targets.length > 0) {\n targets.forEach(target => this.applyData(target, newValue, index));\n } else {\n this.renderRow(newValue, index);\n }\n }\n\n private applyData(node: Node, data: any, index: number) {\n const getValueByPath = (obj: any, path: string) => {\n if (path === 'value') return obj;\n if (path.startsWith('value.')) {\n return path\n .split('.')\n .slice(1)\n .reduce((acc, part) => acc && acc[part], obj);\n }\n return undefined;\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 (path === 'index') return index.toString();\n const val = 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 (path === 'index') return index.toString();\n const v = getValueByPath(data, path);\n return v !== undefined ? v : match;\n });\n if (a.value !== val) a.value = val;\n });\n\n // 중요: swc-choose 같은 커스텀 엘리먼트 내부의 자식들도 템플릿 치환이 필요함\n el.childNodes.forEach(walk);\n }\n };\n walk(node);\n }\n\n private renderRow(item: any, index: number) {\n if (!this.shadowRoot || this._masterTplNodes.length === 0) return;\n\n const slotName = `row-${index}`;\n // Shadow Root에 직접 슬롯 추가\n if (!this.shadowRoot.querySelector(`slot[name=\"${slotName}\"]`)) {\n const slot = document.createElement('slot');\n slot.name = slotName;\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', slotName);\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', slotName);\n span.appendChild(clone);\n this.appendChild(span);\n this.applyData(span, item, index);\n return;\n }\n this.appendChild(clone);\n this.applyData(clone, item, index);\n });\n }\n\n private renderAll() {\n if (this._masterTplNodes.length === 0 || !this.shadowRoot) return;\n\n // 기존 데이터 노드 삭제\n Array.from(this.children).forEach(c => {\n const slot = c.getAttribute('slot');\n if (slot && slot.startsWith('row-')) {\n c.remove();\n }\n });\n\n // Shadow Root의 기존 슬롯들 삭제 (tpl-slot 제외)\n Array.from(this.shadowRoot.querySelectorAll('slot')).forEach(s => {\n if (s.id !== 'tpl-slot') s.remove();\n });\n\n this._value.forEach((item, index) => this.renderRow(item, index));\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SwcForOf"]
7
+ }
@@ -0,0 +1,135 @@
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 SwcIf_exports = {};
19
+ __export(SwcIf_exports, {
20
+ SwcIf: () => SwcIf
21
+ });
22
+ module.exports = __toCommonJS(SwcIf_exports);
23
+ var import__ = require("../index");
24
+ var __decorate = function(decorators, target, key, desc) {
25
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27
+ 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;
28
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
29
+ };
30
+ var __metadata = function(k, v) {
31
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
32
+ };
33
+ let SwcIf = class SwcIf2 extends HTMLElement {
34
+ constructor() {
35
+ super();
36
+ this._value = false;
37
+ this._masterTplNodes = [];
38
+ this._observer = null;
39
+ }
40
+ set value(val) {
41
+ this._value = val;
42
+ this.render();
43
+ }
44
+ get value() {
45
+ return this._value;
46
+ }
47
+ styles() {
48
+ return `
49
+ :host { display: contents; }
50
+ `;
51
+ }
52
+ renderTemplate() {
53
+ return `
54
+ <slot id="tpl-slot" style="display:none;"></slot>
55
+ `;
56
+ }
57
+ connectedCallback() {
58
+ const tplSlot = this.shadowRoot?.getElementById("tpl-slot");
59
+ if (tplSlot) {
60
+ this._masterTplNodes = tplSlot.assignedNodes().map((n) => n.cloneNode(true));
61
+ }
62
+ this._observer = new MutationObserver(() => this.render());
63
+ this._observer.observe(this, { attributes: true });
64
+ this.render();
65
+ }
66
+ disconnectedCallback() {
67
+ this._observer?.disconnect();
68
+ }
69
+ render() {
70
+ if (!this.shadowRoot)
71
+ return;
72
+ const attrValue = this.getAttribute("value");
73
+ if (attrValue !== null && attrValue.includes("{{"))
74
+ return;
75
+ let displayValue = attrValue !== null ? attrValue : this._value;
76
+ let isTruthy = !!displayValue;
77
+ if (typeof displayValue === "string") {
78
+ if (displayValue === "false" || displayValue === "0" || displayValue === "")
79
+ isTruthy = false;
80
+ else {
81
+ try {
82
+ isTruthy = !!new Function(`return ${displayValue}`)();
83
+ } catch (e) {
84
+ isTruthy = true;
85
+ }
86
+ }
87
+ }
88
+ Array.from(this.children).forEach((c) => {
89
+ if (c.getAttribute("slot") === "if-content") {
90
+ c.remove();
91
+ }
92
+ });
93
+ const existingSlot = this.shadowRoot.querySelector('slot[name="if-content"]');
94
+ if (existingSlot)
95
+ existingSlot.remove();
96
+ if (isTruthy && this._masterTplNodes.length > 0) {
97
+ const contentSlot = document.createElement("slot");
98
+ contentSlot.name = "if-content";
99
+ this.shadowRoot.appendChild(contentSlot);
100
+ this._masterTplNodes.forEach((tplNode) => {
101
+ const clone = tplNode.cloneNode(true);
102
+ if (clone.nodeType === Node.ELEMENT_NODE) {
103
+ clone.setAttribute("slot", "if-content");
104
+ clone.style.display = "";
105
+ } else if (clone.nodeType === Node.TEXT_NODE) {
106
+ if (clone.textContent?.trim().length === 0)
107
+ return;
108
+ const span = document.createElement("span");
109
+ span.setAttribute("slot", "if-content");
110
+ span.appendChild(clone);
111
+ this.appendChild(span);
112
+ return;
113
+ }
114
+ this.appendChild(clone);
115
+ });
116
+ }
117
+ }
118
+ };
119
+ __decorate([
120
+ import__.style,
121
+ __metadata("design:type", Function),
122
+ __metadata("design:paramtypes", []),
123
+ __metadata("design:returntype", void 0)
124
+ ], SwcIf.prototype, "styles", null);
125
+ __decorate([
126
+ import__.template,
127
+ __metadata("design:type", Function),
128
+ __metadata("design:paramtypes", []),
129
+ __metadata("design:returntype", void 0)
130
+ ], SwcIf.prototype, "renderTemplate", null);
131
+ SwcIf = __decorate([
132
+ (0, import__.elementDefind)({ tagName: "swc-if", useShadow: true }),
133
+ __metadata("design:paramtypes", [])
134
+ ], SwcIf);
135
+ //# sourceMappingURL=SwcIf.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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,eAA+C;;;;;;;;;;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;MADjB,wBAAc,EAAE,SAAS,UAAU,WAAW,KAAI,CAAE;;GACxC,KAAK;",
6
+ "names": ["SwcIf"]
7
+ }
@@ -0,0 +1,56 @@
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 SwcOther_exports = {};
19
+ __export(SwcOther_exports, {
20
+ SwcOther: () => SwcOther
21
+ });
22
+ module.exports = __toCommonJS(SwcOther_exports);
23
+ var import__ = require("../index");
24
+ var __decorate = function(decorators, target, key, desc) {
25
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27
+ 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;
28
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
29
+ };
30
+ var __metadata = function(k, v) {
31
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
32
+ };
33
+ let SwcOther = class SwcOther2 extends HTMLElement {
34
+ styles() {
35
+ return `:host { display: contents; }`;
36
+ }
37
+ render() {
38
+ return `<slot></slot>`;
39
+ }
40
+ };
41
+ __decorate([
42
+ import__.style,
43
+ __metadata("design:type", Function),
44
+ __metadata("design:paramtypes", []),
45
+ __metadata("design:returntype", void 0)
46
+ ], SwcOther.prototype, "styles", null);
47
+ __decorate([
48
+ import__.template,
49
+ __metadata("design:type", Function),
50
+ __metadata("design:paramtypes", []),
51
+ __metadata("design:returntype", void 0)
52
+ ], SwcOther.prototype, "render", null);
53
+ SwcOther = __decorate([
54
+ (0, import__.elementDefind)({ tagName: "swc-other", useShadow: true })
55
+ ], SwcOther);
56
+ //# sourceMappingURL=SwcOther.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAA+C;;;;;;;;;;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;MADpB,wBAAc,EAAE,SAAS,aAAa,WAAW,KAAI,CAAE;GAC3C,QAAQ;",
6
+ "names": ["SwcOther"]
7
+ }
@@ -0,0 +1,56 @@
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 SwcWhen_exports = {};
19
+ __export(SwcWhen_exports, {
20
+ SwcWhen: () => SwcWhen
21
+ });
22
+ module.exports = __toCommonJS(SwcWhen_exports);
23
+ var import__ = require("../index");
24
+ var __decorate = function(decorators, target, key, desc) {
25
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27
+ 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;
28
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
29
+ };
30
+ var __metadata = function(k, v) {
31
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
32
+ };
33
+ let SwcWhen = class SwcWhen2 extends HTMLElement {
34
+ styles() {
35
+ return `:host { display: contents; }`;
36
+ }
37
+ render() {
38
+ return `<slot></slot>`;
39
+ }
40
+ };
41
+ __decorate([
42
+ import__.style,
43
+ __metadata("design:type", Function),
44
+ __metadata("design:paramtypes", []),
45
+ __metadata("design:returntype", void 0)
46
+ ], SwcWhen.prototype, "styles", null);
47
+ __decorate([
48
+ import__.template,
49
+ __metadata("design:type", Function),
50
+ __metadata("design:paramtypes", []),
51
+ __metadata("design:returntype", void 0)
52
+ ], SwcWhen.prototype, "render", null);
53
+ SwcWhen = __decorate([
54
+ (0, import__.elementDefind)({ tagName: "swc-when", useShadow: true })
55
+ ], SwcWhen);
56
+ //# sourceMappingURL=SwcWhen.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,eAA+C;;;;;;;;;;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;MADnB,wBAAc,EAAE,SAAS,YAAY,WAAW,KAAI,CAAE;GAC1C,OAAO;",
6
+ "names": ["SwcWhen"]
7
+ }
package/dist/cjs/index.js CHANGED
@@ -14,8 +14,16 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
15
  var src_exports = {};
16
16
  module.exports = __toCommonJS(src_exports);
17
- __reExport(src_exports, require("./decorators/element"), module.exports);
17
+ __reExport(src_exports, require("./decorators/elementDefind"), module.exports);
18
18
  __reExport(src_exports, require("./decorators/template"), module.exports);
19
19
  __reExport(src_exports, require("./decorators/style"), module.exports);
20
20
  __reExport(src_exports, require("./decorators/attributeChanged"), module.exports);
21
+ __reExport(src_exports, require("./decorators/query"), module.exports);
22
+ __reExport(src_exports, require("./decorators/queryAll"), module.exports);
23
+ __reExport(src_exports, require("./decorators/addEventListener"), module.exports);
24
+ __reExport(src_exports, require("./elements/SwcForOf"), module.exports);
25
+ __reExport(src_exports, require("./elements/SwcIf"), module.exports);
26
+ __reExport(src_exports, require("./elements/SwcChoose"), module.exports);
27
+ __reExport(src_exports, require("./elements/SwcWhen"), module.exports);
28
+ __reExport(src_exports, require("./elements/SwcOther"), module.exports);
21
29
  //# sourceMappingURL=index.js.map