@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.
- package/README.md +28 -33
- package/dist/cjs/decorators/{elementDefind.js → elementDefine.js} +6 -6
- package/dist/cjs/decorators/{elementDefind.js.map → elementDefine.js.map} +2 -2
- package/dist/cjs/decorators/query.js.map +1 -1
- package/dist/cjs/decorators/queryAll.js.map +1 -1
- package/dist/cjs/elements/SwcChoose.js +1 -1
- package/dist/cjs/elements/SwcChoose.js.map +1 -1
- package/dist/cjs/elements/SwcForOf.js +7 -77
- package/dist/cjs/elements/SwcForOf.js.map +2 -2
- package/dist/cjs/elements/SwcHTMLElementBase.js +102 -0
- package/dist/cjs/elements/SwcHTMLElementBase.js.map +7 -0
- package/dist/cjs/elements/SwcIf.js +6 -14
- package/dist/cjs/elements/SwcIf.js.map +2 -2
- package/dist/cjs/elements/SwcObject.js +115 -0
- package/dist/cjs/elements/SwcObject.js.map +7 -0
- package/dist/cjs/elements/SwcOther.js +1 -1
- package/dist/cjs/elements/SwcOther.js.map +1 -1
- package/dist/cjs/elements/SwcWhen.js +1 -1
- package/dist/cjs/elements/SwcWhen.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/esm/decorators/{elementDefind.js → elementDefine.js} +3 -3
- package/dist/esm/decorators/{elementDefind.js.map → elementDefine.js.map} +2 -2
- package/dist/esm/decorators/query.js.map +1 -1
- package/dist/esm/decorators/queryAll.js.map +1 -1
- package/dist/esm/elements/SwcChoose.js +2 -2
- package/dist/esm/elements/SwcChoose.js.map +1 -1
- package/dist/esm/elements/SwcForOf.js +8 -78
- package/dist/esm/elements/SwcForOf.js.map +2 -2
- package/dist/esm/elements/SwcHTMLElementBase.js +83 -0
- package/dist/esm/elements/SwcHTMLElementBase.js.map +7 -0
- package/dist/esm/elements/SwcIf.js +7 -15
- package/dist/esm/elements/SwcIf.js.map +2 -2
- package/dist/esm/elements/SwcObject.js +96 -0
- package/dist/esm/elements/SwcObject.js.map +7 -0
- package/dist/esm/elements/SwcOther.js +2 -2
- package/dist/esm/elements/SwcOther.js.map +1 -1
- package/dist/esm/elements/SwcWhen.js +2 -2
- package/dist/esm/elements/SwcWhen.js.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +192 -97
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/decorators/{elementDefind.d.ts → elementDefine.d.ts} +2 -2
- package/dist/types/decorators/{elementDefind.d.ts.map → elementDefine.d.ts.map} +1 -1
- package/dist/types/elements/SwcForOf.d.ts +2 -4
- package/dist/types/elements/SwcForOf.d.ts.map +1 -1
- package/dist/types/elements/SwcHTMLElementBase.d.ts +14 -0
- package/dist/types/elements/SwcHTMLElementBase.d.ts.map +1 -0
- package/dist/types/elements/SwcIf.d.ts +2 -2
- package/dist/types/elements/SwcIf.d.ts.map +1 -1
- package/dist/types/elements/SwcObject.d.ts +14 -0
- package/dist/types/elements/SwcObject.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +192 -97
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +1 -1
- package/src/decorators/{elementDefind.ts → elementDefine.ts} +1 -1
- package/src/decorators/query.ts +1 -1
- package/src/decorators/queryAll.ts +1 -1
- package/src/elements/SwcChoose.ts +2 -2
- package/src/elements/SwcForOf.ts +12 -87
- package/src/elements/SwcHTMLElementBase.ts +93 -0
- package/src/elements/SwcIf.ts +8 -27
- package/src/elements/SwcObject.ts +78 -0
- package/src/elements/SwcOther.ts +2 -2
- package/src/elements/SwcWhen.ts +2 -2
- package/src/index.ts +3 -1
|
@@ -183,7 +183,7 @@ var getAddEventListenerMetadata = (target) => {
|
|
|
183
183
|
return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);
|
|
184
184
|
};
|
|
185
185
|
|
|
186
|
-
// src/decorators/
|
|
186
|
+
// src/decorators/elementDefine.ts
|
|
187
187
|
var ELEMENT_CONFIG_KEY = Symbol("simple-web-component:element-config");
|
|
188
188
|
var BUILT_IN_TAG_MAP = /* @__PURE__ */ new Map();
|
|
189
189
|
var registerTag = (className, tagName) => {
|
|
@@ -249,7 +249,7 @@ var registerTag = (className, tagName) => {
|
|
|
249
249
|
["HTMLVideoElement", "video"],
|
|
250
250
|
["HTMLHeadingElement", "h1"]
|
|
251
251
|
].forEach(([cls, tag]) => registerTag(cls, tag));
|
|
252
|
-
var
|
|
252
|
+
var elementDefine = (inConfig) => (constructor) => {
|
|
253
253
|
const config = typeof inConfig === "string" ? { tagName: inConfig } : inConfig;
|
|
254
254
|
let extendsTagName = config.extends;
|
|
255
255
|
if (!extendsTagName) {
|
|
@@ -414,6 +414,87 @@ var getElementConfig = (target) => {
|
|
|
414
414
|
return ReflectUtils.getMetadata(ELEMENT_CONFIG_KEY, constructor);
|
|
415
415
|
};
|
|
416
416
|
|
|
417
|
+
// src/elements/SwcHTMLElementBase.ts
|
|
418
|
+
var SwcHTMLElementBase = class extends HTMLElement {
|
|
419
|
+
constructor() {
|
|
420
|
+
super();
|
|
421
|
+
this._masterTplNodes = [];
|
|
422
|
+
this._asKey = "value";
|
|
423
|
+
this._asIndexKey = "index";
|
|
424
|
+
}
|
|
425
|
+
initCore() {
|
|
426
|
+
this._asKey = this.getAttribute("as") || "value";
|
|
427
|
+
this._asIndexKey = this.getAttribute("as-index") || "index";
|
|
428
|
+
const tplSlot = this.shadowRoot?.getElementById("tpl-slot");
|
|
429
|
+
if (tplSlot) {
|
|
430
|
+
this._masterTplNodes = tplSlot.assignedNodes().map((n) => n.cloneNode(true));
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
getValueByPath(obj, path) {
|
|
434
|
+
if (path === this._asKey) return obj;
|
|
435
|
+
if (path.startsWith(`${this._asKey}.`)) {
|
|
436
|
+
return path.split(".").slice(1).reduce((acc, part) => acc && acc[part], obj);
|
|
437
|
+
}
|
|
438
|
+
return void 0;
|
|
439
|
+
}
|
|
440
|
+
applyData(node, data, index) {
|
|
441
|
+
const context = {};
|
|
442
|
+
if (index !== void 0) {
|
|
443
|
+
context[this._asIndexKey] = index.toString();
|
|
444
|
+
}
|
|
445
|
+
const walk = (n) => {
|
|
446
|
+
if (n.nodeType === Node.TEXT_NODE) {
|
|
447
|
+
if (!n._original) n._original = n.textContent;
|
|
448
|
+
let text = n._original;
|
|
449
|
+
text = text.replace(/{{(.*?)}}/g, (match, path) => {
|
|
450
|
+
path = path.trim();
|
|
451
|
+
if (context[path] !== void 0) return context[path];
|
|
452
|
+
const val = this.getValueByPath(data, path);
|
|
453
|
+
return val !== void 0 ? val : match;
|
|
454
|
+
});
|
|
455
|
+
if (n.textContent !== text) n.textContent = text;
|
|
456
|
+
} else if (n.nodeType === Node.ELEMENT_NODE) {
|
|
457
|
+
const el = n;
|
|
458
|
+
Array.from(el.attributes).forEach((a) => {
|
|
459
|
+
if (!a._original) a._original = a.value;
|
|
460
|
+
let val = a._original;
|
|
461
|
+
val = val.replace(/{{(.*?)}}/g, (match, path) => {
|
|
462
|
+
path = path.trim();
|
|
463
|
+
if (context[path] !== void 0) return context[path];
|
|
464
|
+
const v = this.getValueByPath(data, path);
|
|
465
|
+
return v !== void 0 ? v : match;
|
|
466
|
+
});
|
|
467
|
+
if (a.value !== val) a.value = val;
|
|
468
|
+
});
|
|
469
|
+
el.childNodes.forEach(walk);
|
|
470
|
+
}
|
|
471
|
+
};
|
|
472
|
+
walk(node);
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* 객체/배열의 변경을 감지하는 Proxy 생성 유틸리티
|
|
476
|
+
*/
|
|
477
|
+
createReactiveProxy(target, onChange, onIndexChange) {
|
|
478
|
+
return new Proxy(target, {
|
|
479
|
+
set: (t, prop, val) => {
|
|
480
|
+
const isIndex = !isNaN(Number(prop));
|
|
481
|
+
t[prop] = val;
|
|
482
|
+
if (isIndex && onIndexChange) {
|
|
483
|
+
onIndexChange(Number(prop), val);
|
|
484
|
+
} else {
|
|
485
|
+
onChange();
|
|
486
|
+
}
|
|
487
|
+
return true;
|
|
488
|
+
},
|
|
489
|
+
deleteProperty: (t, prop) => {
|
|
490
|
+
delete t[prop];
|
|
491
|
+
onChange();
|
|
492
|
+
return true;
|
|
493
|
+
}
|
|
494
|
+
});
|
|
495
|
+
}
|
|
496
|
+
};
|
|
497
|
+
|
|
417
498
|
// src/elements/SwcForOf.ts
|
|
418
499
|
var __decorate = function(decorators, target, key, desc) {
|
|
419
500
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -424,55 +505,28 @@ var __decorate = function(decorators, target, key, desc) {
|
|
|
424
505
|
var __metadata = function(k, v) {
|
|
425
506
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
426
507
|
};
|
|
427
|
-
var SwcForOf = class SwcForOf2 extends
|
|
508
|
+
var SwcForOf = class SwcForOf2 extends SwcHTMLElementBase {
|
|
428
509
|
constructor() {
|
|
429
510
|
super();
|
|
430
511
|
this._value = [];
|
|
431
|
-
this._masterTplNodes = [];
|
|
432
512
|
}
|
|
433
513
|
set value(val) {
|
|
434
514
|
if (!Array.isArray(val))
|
|
435
515
|
val = [];
|
|
436
|
-
this._value = this.
|
|
516
|
+
this._value = this.createReactiveProxy(val, () => this.renderAll(), (idx, v) => this.updateSingleRow(idx, v));
|
|
437
517
|
this.renderAll();
|
|
438
518
|
}
|
|
439
519
|
get value() {
|
|
440
520
|
return this._value;
|
|
441
521
|
}
|
|
442
|
-
createProxy(arr) {
|
|
443
|
-
return new Proxy(arr, {
|
|
444
|
-
set: (target, prop, val) => {
|
|
445
|
-
const isIndex = !isNaN(Number(prop));
|
|
446
|
-
target[prop] = val;
|
|
447
|
-
if (isIndex) {
|
|
448
|
-
this.updateSingleRow(Number(prop), val);
|
|
449
|
-
} else if (prop === "length" && val < target.length) {
|
|
450
|
-
this.renderAll();
|
|
451
|
-
}
|
|
452
|
-
return true;
|
|
453
|
-
},
|
|
454
|
-
deleteProperty: (target, prop) => {
|
|
455
|
-
const res = delete target[prop];
|
|
456
|
-
this.renderAll();
|
|
457
|
-
return res;
|
|
458
|
-
}
|
|
459
|
-
});
|
|
460
|
-
}
|
|
461
522
|
styles() {
|
|
462
|
-
return
|
|
463
|
-
:host { display: contents; }
|
|
464
|
-
`;
|
|
523
|
+
return `:host { display: contents; }`;
|
|
465
524
|
}
|
|
466
525
|
renderTemplate() {
|
|
467
|
-
return
|
|
468
|
-
<slot id="tpl-slot" style="display:none;"></slot>
|
|
469
|
-
`;
|
|
526
|
+
return `<slot id="tpl-slot" style="display:none;"></slot>`;
|
|
470
527
|
}
|
|
471
528
|
connectedCallback() {
|
|
472
|
-
|
|
473
|
-
if (tplSlot) {
|
|
474
|
-
this._masterTplNodes = tplSlot.assignedNodes().map((n) => n.cloneNode(true));
|
|
475
|
-
}
|
|
529
|
+
this.initCore();
|
|
476
530
|
this.renderAll();
|
|
477
531
|
}
|
|
478
532
|
updateSingleRow(index, newValue) {
|
|
@@ -483,50 +537,6 @@ var SwcForOf = class SwcForOf2 extends HTMLElement {
|
|
|
483
537
|
this.renderRow(newValue, index);
|
|
484
538
|
}
|
|
485
539
|
}
|
|
486
|
-
applyData(node, data, index) {
|
|
487
|
-
const getValueByPath = (obj, path) => {
|
|
488
|
-
if (path === "value")
|
|
489
|
-
return obj;
|
|
490
|
-
if (path.startsWith("value.")) {
|
|
491
|
-
return path.split(".").slice(1).reduce((acc, part) => acc && acc[part], obj);
|
|
492
|
-
}
|
|
493
|
-
return void 0;
|
|
494
|
-
};
|
|
495
|
-
const walk = (n) => {
|
|
496
|
-
if (n.nodeType === Node.TEXT_NODE) {
|
|
497
|
-
if (!n._original)
|
|
498
|
-
n._original = n.textContent;
|
|
499
|
-
let text = n._original;
|
|
500
|
-
text = text.replace(/{{(.*?)}}/g, (match, path) => {
|
|
501
|
-
path = path.trim();
|
|
502
|
-
if (path === "index")
|
|
503
|
-
return index.toString();
|
|
504
|
-
const val = getValueByPath(data, path);
|
|
505
|
-
return val !== void 0 ? val : match;
|
|
506
|
-
});
|
|
507
|
-
if (n.textContent !== text)
|
|
508
|
-
n.textContent = text;
|
|
509
|
-
} else if (n.nodeType === Node.ELEMENT_NODE) {
|
|
510
|
-
const el = n;
|
|
511
|
-
Array.from(el.attributes).forEach((a) => {
|
|
512
|
-
if (!a._original)
|
|
513
|
-
a._original = a.value;
|
|
514
|
-
let val = a._original;
|
|
515
|
-
val = val.replace(/{{(.*?)}}/g, (match, path) => {
|
|
516
|
-
path = path.trim();
|
|
517
|
-
if (path === "index")
|
|
518
|
-
return index.toString();
|
|
519
|
-
const v = getValueByPath(data, path);
|
|
520
|
-
return v !== void 0 ? v : match;
|
|
521
|
-
});
|
|
522
|
-
if (a.value !== val)
|
|
523
|
-
a.value = val;
|
|
524
|
-
});
|
|
525
|
-
el.childNodes.forEach(walk);
|
|
526
|
-
}
|
|
527
|
-
};
|
|
528
|
-
walk(node);
|
|
529
|
-
}
|
|
530
540
|
renderRow(item, index) {
|
|
531
541
|
if (!this.shadowRoot || this._masterTplNodes.length === 0)
|
|
532
542
|
return;
|
|
@@ -584,7 +594,7 @@ __decorate([
|
|
|
584
594
|
__metadata("design:returntype", void 0)
|
|
585
595
|
], SwcForOf.prototype, "renderTemplate", null);
|
|
586
596
|
SwcForOf = __decorate([
|
|
587
|
-
|
|
597
|
+
elementDefine({ tagName: "swc-for-of", useShadow: true }),
|
|
588
598
|
__metadata("design:paramtypes", [])
|
|
589
599
|
], SwcForOf);
|
|
590
600
|
|
|
@@ -598,11 +608,10 @@ var __decorate2 = function(decorators, target, key, desc) {
|
|
|
598
608
|
var __metadata2 = function(k, v) {
|
|
599
609
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
600
610
|
};
|
|
601
|
-
var SwcIf = class SwcIf2 extends
|
|
611
|
+
var SwcIf = class SwcIf2 extends SwcHTMLElementBase {
|
|
602
612
|
constructor() {
|
|
603
613
|
super();
|
|
604
614
|
this._value = false;
|
|
605
|
-
this._masterTplNodes = [];
|
|
606
615
|
this._observer = null;
|
|
607
616
|
}
|
|
608
617
|
set value(val) {
|
|
@@ -613,20 +622,13 @@ var SwcIf = class SwcIf2 extends HTMLElement {
|
|
|
613
622
|
return this._value;
|
|
614
623
|
}
|
|
615
624
|
styles() {
|
|
616
|
-
return
|
|
617
|
-
:host { display: contents; }
|
|
618
|
-
`;
|
|
625
|
+
return `:host { display: contents; }`;
|
|
619
626
|
}
|
|
620
627
|
renderTemplate() {
|
|
621
|
-
return
|
|
622
|
-
<slot id="tpl-slot" style="display:none;"></slot>
|
|
623
|
-
`;
|
|
628
|
+
return `<slot id="tpl-slot" style="display:none;"></slot>`;
|
|
624
629
|
}
|
|
625
630
|
connectedCallback() {
|
|
626
|
-
|
|
627
|
-
if (tplSlot) {
|
|
628
|
-
this._masterTplNodes = tplSlot.assignedNodes().map((n) => n.cloneNode(true));
|
|
629
|
-
}
|
|
631
|
+
this.initCore();
|
|
630
632
|
this._observer = new MutationObserver(() => this.render());
|
|
631
633
|
this._observer.observe(this, { attributes: true });
|
|
632
634
|
this.render();
|
|
@@ -669,7 +671,6 @@ var SwcIf = class SwcIf2 extends HTMLElement {
|
|
|
669
671
|
const clone = tplNode.cloneNode(true);
|
|
670
672
|
if (clone.nodeType === Node.ELEMENT_NODE) {
|
|
671
673
|
clone.setAttribute("slot", "if-content");
|
|
672
|
-
clone.style.display = "";
|
|
673
674
|
} else if (clone.nodeType === Node.TEXT_NODE) {
|
|
674
675
|
if (clone.textContent?.trim().length === 0)
|
|
675
676
|
return;
|
|
@@ -697,7 +698,7 @@ __decorate2([
|
|
|
697
698
|
__metadata2("design:returntype", void 0)
|
|
698
699
|
], SwcIf.prototype, "renderTemplate", null);
|
|
699
700
|
SwcIf = __decorate2([
|
|
700
|
-
|
|
701
|
+
elementDefine({ tagName: "swc-if", useShadow: true }),
|
|
701
702
|
__metadata2("design:paramtypes", [])
|
|
702
703
|
], SwcIf);
|
|
703
704
|
|
|
@@ -793,7 +794,7 @@ __decorate3([
|
|
|
793
794
|
__metadata3("design:returntype", void 0)
|
|
794
795
|
], SwcChoose.prototype, "render", null);
|
|
795
796
|
SwcChoose = __decorate3([
|
|
796
|
-
|
|
797
|
+
elementDefine({ tagName: "swc-choose", useShadow: true })
|
|
797
798
|
], SwcChoose);
|
|
798
799
|
|
|
799
800
|
// src/elements/SwcWhen.ts
|
|
@@ -827,7 +828,7 @@ __decorate4([
|
|
|
827
828
|
__metadata4("design:returntype", void 0)
|
|
828
829
|
], SwcWhen.prototype, "render", null);
|
|
829
830
|
SwcWhen = __decorate4([
|
|
830
|
-
|
|
831
|
+
elementDefine({ tagName: "swc-when", useShadow: true })
|
|
831
832
|
], SwcWhen);
|
|
832
833
|
|
|
833
834
|
// src/elements/SwcOther.ts
|
|
@@ -861,8 +862,100 @@ __decorate5([
|
|
|
861
862
|
__metadata5("design:returntype", void 0)
|
|
862
863
|
], SwcOther.prototype, "render", null);
|
|
863
864
|
SwcOther = __decorate5([
|
|
864
|
-
|
|
865
|
+
elementDefine({ tagName: "swc-other", useShadow: true })
|
|
865
866
|
], SwcOther);
|
|
867
|
+
|
|
868
|
+
// src/elements/SwcObject.ts
|
|
869
|
+
var __decorate6 = function(decorators, target, key, desc) {
|
|
870
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
871
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
872
|
+
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;
|
|
873
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
874
|
+
};
|
|
875
|
+
var __metadata6 = function(k, v) {
|
|
876
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
877
|
+
};
|
|
878
|
+
var SwcObject = class SwcObject2 extends SwcHTMLElementBase {
|
|
879
|
+
constructor() {
|
|
880
|
+
super();
|
|
881
|
+
this._value = {};
|
|
882
|
+
this._renderedNodes = [];
|
|
883
|
+
}
|
|
884
|
+
set value(val) {
|
|
885
|
+
if (typeof val !== "object" || val === null)
|
|
886
|
+
val = {};
|
|
887
|
+
this._value = this.createReactiveProxy(val, () => this.updateUI());
|
|
888
|
+
this.render();
|
|
889
|
+
}
|
|
890
|
+
get value() {
|
|
891
|
+
return this._value;
|
|
892
|
+
}
|
|
893
|
+
styles() {
|
|
894
|
+
return `:host { display: contents; }`;
|
|
895
|
+
}
|
|
896
|
+
renderTemplate() {
|
|
897
|
+
return `<slot id="tpl-slot" style="display:none;"></slot>`;
|
|
898
|
+
}
|
|
899
|
+
connectedCallback() {
|
|
900
|
+
this.initCore();
|
|
901
|
+
this.render();
|
|
902
|
+
}
|
|
903
|
+
updateUI() {
|
|
904
|
+
this._renderedNodes.forEach((node) => {
|
|
905
|
+
this.applyData(node, this._value);
|
|
906
|
+
});
|
|
907
|
+
}
|
|
908
|
+
render() {
|
|
909
|
+
if (!this.shadowRoot || this._masterTplNodes.length === 0)
|
|
910
|
+
return;
|
|
911
|
+
this._renderedNodes.forEach((n) => {
|
|
912
|
+
if (n.parentElement === this)
|
|
913
|
+
this.removeChild(n);
|
|
914
|
+
});
|
|
915
|
+
this._renderedNodes = [];
|
|
916
|
+
let slot = this.shadowRoot.querySelector('slot[name="obj-content"]');
|
|
917
|
+
if (!slot) {
|
|
918
|
+
slot = document.createElement("slot");
|
|
919
|
+
slot.name = "obj-content";
|
|
920
|
+
this.shadowRoot.appendChild(slot);
|
|
921
|
+
}
|
|
922
|
+
this._masterTplNodes.forEach((tplNode) => {
|
|
923
|
+
const clone = tplNode.cloneNode(true);
|
|
924
|
+
if (clone.nodeType === Node.ELEMENT_NODE) {
|
|
925
|
+
clone.setAttribute("slot", "obj-content");
|
|
926
|
+
} else if (clone.nodeType === Node.TEXT_NODE) {
|
|
927
|
+
if (clone.textContent?.trim().length === 0)
|
|
928
|
+
return;
|
|
929
|
+
const span = document.createElement("span");
|
|
930
|
+
span.setAttribute("slot", "obj-content");
|
|
931
|
+
span.appendChild(clone);
|
|
932
|
+
this.appendChild(span);
|
|
933
|
+
this._renderedNodes.push(span);
|
|
934
|
+
this.applyData(span, this._value);
|
|
935
|
+
return;
|
|
936
|
+
}
|
|
937
|
+
this.appendChild(clone);
|
|
938
|
+
this._renderedNodes.push(clone);
|
|
939
|
+
this.applyData(clone, this._value);
|
|
940
|
+
});
|
|
941
|
+
}
|
|
942
|
+
};
|
|
943
|
+
__decorate6([
|
|
944
|
+
style,
|
|
945
|
+
__metadata6("design:type", Function),
|
|
946
|
+
__metadata6("design:paramtypes", []),
|
|
947
|
+
__metadata6("design:returntype", void 0)
|
|
948
|
+
], SwcObject.prototype, "styles", null);
|
|
949
|
+
__decorate6([
|
|
950
|
+
template,
|
|
951
|
+
__metadata6("design:type", Function),
|
|
952
|
+
__metadata6("design:paramtypes", []),
|
|
953
|
+
__metadata6("design:returntype", void 0)
|
|
954
|
+
], SwcObject.prototype, "renderTemplate", null);
|
|
955
|
+
SwcObject = __decorate6([
|
|
956
|
+
elementDefine({ tagName: "swc-object", useShadow: true }),
|
|
957
|
+
__metadata6("design:paramtypes", [])
|
|
958
|
+
], SwcObject);
|
|
866
959
|
export {
|
|
867
960
|
ADD_EVENT_LISTENER_METADATA_KEY,
|
|
868
961
|
ATTRIBUTE_CHANGED_METADATA_KEY,
|
|
@@ -873,13 +966,15 @@ export {
|
|
|
873
966
|
STYLE_METHOD_KEY,
|
|
874
967
|
SwcChoose,
|
|
875
968
|
SwcForOf,
|
|
969
|
+
SwcHTMLElementBase,
|
|
876
970
|
SwcIf,
|
|
971
|
+
SwcObject,
|
|
877
972
|
SwcOther,
|
|
878
973
|
SwcWhen,
|
|
879
974
|
TEMPLATE_METHOD_KEY,
|
|
880
975
|
addEventListener,
|
|
881
976
|
attributeChanged,
|
|
882
|
-
|
|
977
|
+
elementDefine,
|
|
883
978
|
getAddEventListenerMetadata,
|
|
884
979
|
getAttributeChangedMap,
|
|
885
980
|
getElementConfig,
|