@dooboostore/simple-web-component 1.0.46 → 1.0.48
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 +109 -11
- package/dist/cjs/bundle-entry.js +22 -0
- package/dist/cjs/bundle-entry.js.map +2 -2
- package/dist/cjs/decorators/addEventListener.js +45 -7
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/elementDefine.js +225 -6
- package/dist/cjs/decorators/elementDefine.js.map +3 -3
- package/dist/cjs/decorators/index.js +2 -0
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/mutationObserver.js +104 -0
- package/dist/cjs/decorators/mutationObserver.js.map +7 -0
- package/dist/cjs/decorators/query.js +13 -1
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/resizeObserver.js +104 -0
- package/dist/cjs/decorators/resizeObserver.js.map +7 -0
- package/dist/cjs/examples/RxJSOperatorsExample.js +285 -0
- package/dist/cjs/examples/RxJSOperatorsExample.js.map +7 -0
- package/dist/esm/bundle-entry.js +8 -0
- package/dist/esm/bundle-entry.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js +45 -7
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +225 -6
- package/dist/esm/decorators/elementDefine.js.map +3 -3
- package/dist/esm/decorators/index.js +2 -0
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/mutationObserver.js +85 -0
- package/dist/esm/decorators/mutationObserver.js.map +7 -0
- package/dist/esm/decorators/query.js +13 -1
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/resizeObserver.js +85 -0
- package/dist/esm/decorators/resizeObserver.js.map +7 -0
- package/dist/esm/examples/RxJSOperatorsExample.js +266 -0
- package/dist/esm/examples/RxJSOperatorsExample.js.map +7 -0
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +5869 -157
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/bundle-entry.d.ts +3 -0
- package/dist/types/bundle-entry.d.ts.map +1 -1
- package/dist/types/decorators/addEventListener.d.ts +24 -5
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/elementDefine.d.ts +14 -0
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +2 -0
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/mutationObserver.d.ts +36 -0
- package/dist/types/decorators/mutationObserver.d.ts.map +1 -0
- package/dist/types/decorators/query.d.ts +12 -0
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/resizeObserver.d.ts +37 -0
- package/dist/types/decorators/resizeObserver.d.ts.map +1 -0
- package/dist/types/examples/RxJSOperatorsExample.d.ts +94 -0
- package/dist/types/examples/RxJSOperatorsExample.d.ts.map +1 -0
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +5886 -178
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +7 -8
- package/src/bundle-entry.ts +8 -0
- package/src/decorators/addEventListener.ts +52 -9
- package/src/decorators/elementDefine.ts +330 -47
- package/src/decorators/index.ts +2 -0
- package/src/decorators/mutationObserver.ts +128 -0
- package/src/decorators/query.ts +23 -0
- package/src/decorators/resizeObserver.ts +129 -0
- package/src/examples/RxJSOperatorsExample.ts +279 -0
- package/dist/cjs/elements/tt/SwcAppMixin.js +0 -1
- package/dist/cjs/elements/tt/SwcAppMixin.js.map +0 -7
- package/dist/cjs/elements/tt/SwcAsync.js +0 -1
- package/dist/cjs/elements/tt/SwcAsync.js.map +0 -7
- package/dist/cjs/elements/tt/SwcAsyncTemplate.js +0 -1
- package/dist/cjs/elements/tt/SwcAsyncTemplate.js.map +0 -7
- package/dist/cjs/elements/tt/SwcChoose.js +0 -1
- package/dist/cjs/elements/tt/SwcChoose.js.map +0 -7
- package/dist/cjs/elements/tt/SwcChooseTemplate.js +0 -1
- package/dist/cjs/elements/tt/SwcChooseTemplate.js.map +0 -7
- package/dist/cjs/elements/tt/SwcIf.js +0 -1
- package/dist/cjs/elements/tt/SwcIf.js.map +0 -7
- package/dist/cjs/elements/tt/SwcIfTemplate.js +0 -1
- package/dist/cjs/elements/tt/SwcIfTemplate.js.map +0 -7
- package/dist/cjs/elements/tt/SwcLoop.js +0 -1
- package/dist/cjs/elements/tt/SwcLoop.js.map +0 -7
- package/dist/cjs/elements/tt/SwcLoopTemplate.js +0 -1
- package/dist/cjs/elements/tt/SwcLoopTemplate.js.map +0 -7
- package/dist/cjs/elements/tt/SwcSubTemplates.js +0 -1
- package/dist/cjs/elements/tt/SwcSubTemplates.js.map +0 -7
- package/dist/cjs/elements/tt/register.js +0 -1
- package/dist/cjs/elements/tt/register.js.map +0 -7
- package/dist/esm/elements/tt/SwcAppMixin.js +0 -1
- package/dist/esm/elements/tt/SwcAppMixin.js.map +0 -7
- package/dist/esm/elements/tt/SwcAsync.js +0 -1
- package/dist/esm/elements/tt/SwcAsync.js.map +0 -7
- package/dist/esm/elements/tt/SwcAsyncTemplate.js +0 -1
- package/dist/esm/elements/tt/SwcAsyncTemplate.js.map +0 -7
- package/dist/esm/elements/tt/SwcChoose.js +0 -1
- package/dist/esm/elements/tt/SwcChoose.js.map +0 -7
- package/dist/esm/elements/tt/SwcChooseTemplate.js +0 -1
- package/dist/esm/elements/tt/SwcChooseTemplate.js.map +0 -7
- package/dist/esm/elements/tt/SwcIf.js +0 -1
- package/dist/esm/elements/tt/SwcIf.js.map +0 -7
- package/dist/esm/elements/tt/SwcIfTemplate.js +0 -1
- package/dist/esm/elements/tt/SwcIfTemplate.js.map +0 -7
- package/dist/esm/elements/tt/SwcLoop.js +0 -1
- package/dist/esm/elements/tt/SwcLoop.js.map +0 -7
- package/dist/esm/elements/tt/SwcLoopTemplate.js +0 -1
- package/dist/esm/elements/tt/SwcLoopTemplate.js.map +0 -7
- package/dist/esm/elements/tt/SwcSubTemplates.js +0 -1
- package/dist/esm/elements/tt/SwcSubTemplates.js.map +0 -7
- package/dist/esm/elements/tt/register.js +0 -1
- package/dist/esm/elements/tt/register.js.map +0 -7
- package/dist/types/elements/tt/SwcAppMixin.d.ts +0 -1
- package/dist/types/elements/tt/SwcAppMixin.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcAsync.d.ts +0 -1
- package/dist/types/elements/tt/SwcAsync.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcAsyncTemplate.d.ts +0 -1
- package/dist/types/elements/tt/SwcAsyncTemplate.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcChoose.d.ts +0 -1
- package/dist/types/elements/tt/SwcChoose.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcChooseTemplate.d.ts +0 -1
- package/dist/types/elements/tt/SwcChooseTemplate.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcIf.d.ts +0 -1
- package/dist/types/elements/tt/SwcIf.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcIfTemplate.d.ts +0 -1
- package/dist/types/elements/tt/SwcIfTemplate.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcLoop.d.ts +0 -1
- package/dist/types/elements/tt/SwcLoop.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcLoopTemplate.d.ts +0 -1
- package/dist/types/elements/tt/SwcLoopTemplate.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcSubTemplates.d.ts +0 -1
- package/dist/types/elements/tt/SwcSubTemplates.d.ts.map +0 -1
- package/dist/types/elements/tt/register.d.ts +0 -1
- package/dist/types/elements/tt/register.d.ts.map +0 -1
- package/src/elements/tt/SwcAppMixin.ts +0 -13
- package/src/elements/tt/SwcAsync.ts +0 -139
- package/src/elements/tt/SwcAsyncTemplate.ts +0 -126
- package/src/elements/tt/SwcChoose.ts +0 -182
- package/src/elements/tt/SwcChooseTemplate.ts +0 -229
- package/src/elements/tt/SwcIf.ts +0 -145
- package/src/elements/tt/SwcIfTemplate.ts +0 -158
- package/src/elements/tt/SwcLoop.ts +0 -222
- package/src/elements/tt/SwcLoopTemplate.ts +0 -255
- package/src/elements/tt/SwcSubTemplates.ts +0 -6
- package/src/elements/tt/register.ts +0 -720
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcSubTemplates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=register.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcAppMixin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcAsync.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcAsyncTemplate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcChoose.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcChooseTemplate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcIf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcIfTemplate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcLoop.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcLoopTemplate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcSubTemplates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=register.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcAppMixin.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcAppMixin.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcAppMixin.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcAsync.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcAsync.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcAsync.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcAsyncTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcAsyncTemplate.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcAsyncTemplate.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcChoose.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcChoose.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcChoose.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcChooseTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcChooseTemplate.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcChooseTemplate.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcIf.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcIf.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcIf.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcIfTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcIfTemplate.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcIfTemplate.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcLoop.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcLoop.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcLoop.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcLoopTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcLoopTemplate.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcLoopTemplate.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=SwcSubTemplates.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwcSubTemplates.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/SwcSubTemplates.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../src/elements/tt/register.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// import {SwcAppEngine, SwcAttributeConfigType, SwcConfigType} from '../../SwcAppEngine';
|
|
2
|
-
// import {SwcAppInterface, SwcAppMessage} from '../../types';
|
|
3
|
-
// import {SwcUtils} from '../../utils/Utils';
|
|
4
|
-
// import {debounceTimeIntervalLock, FunctionUtils, Subscription} from '@dooboostore/core';
|
|
5
|
-
// import {RouterEventType} from '@dooboostore/core-web';
|
|
6
|
-
// import {getSubscribeSwcAppRouteChangeWhileConnectedMetadata} from '../../decorators/subscribeSwcAppRouteChangeWhileConnected';
|
|
7
|
-
// import {getSubscribeSwcAppMessageWhileConnectedMetadata} from '../../decorators/subscribeSwcAppMessageWhileConnected';
|
|
8
|
-
// import {findAllLifecycleMetadata, ON_CONNECTED_COMPLETED_SWC_APP_METADATA_KEY, ON_CONNECTED_INNER_HTML_METADATA_KEY, ON_CONNECTED_SWC_APP_METADATA_KEY} from "../../decorators";
|
|
9
|
-
//
|
|
10
|
-
// export function SwcAppMixin<T extends { new(...args: any[]): HTMLElement }>(Base: T) {
|
|
11
|
-
// //@ts-ignore
|
|
12
|
-
// return
|
|
13
|
-
// }
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
// import {SwcUtils} from '../../utils/Utils';
|
|
2
|
-
// import {ActionExpression, FunctionUtils} from '@dooboostore/core';
|
|
3
|
-
// import {ConvertUtils} from '@dooboostore/core-web';
|
|
4
|
-
// import {elementDefine} from "../../decorators";
|
|
5
|
-
//
|
|
6
|
-
// export default async (w: Window) => {
|
|
7
|
-
// const tagName = 'swc-async';
|
|
8
|
-
// const existing = w.customElements.get(tagName);
|
|
9
|
-
// if (existing) return existing;
|
|
10
|
-
//
|
|
11
|
-
// @elementDefine(tagName, { window: w })
|
|
12
|
-
// class SwcAsync extends w.HTMLElement {
|
|
13
|
-
// private _value: any;
|
|
14
|
-
// private _replaceWrapStart: string | null = null;
|
|
15
|
-
// private _replaceWrapEnd: string | null = null;
|
|
16
|
-
// private _nodes: Node[] = [];
|
|
17
|
-
// resultValue?: any;
|
|
18
|
-
//
|
|
19
|
-
// static get observedAttributes() {
|
|
20
|
-
// return ['value', 'replace-wrap-start', 'replace-wrap-end'];
|
|
21
|
-
// }
|
|
22
|
-
//
|
|
23
|
-
// get value(): boolean {
|
|
24
|
-
// return this._value;
|
|
25
|
-
// }
|
|
26
|
-
//
|
|
27
|
-
// set value(nv: any) {
|
|
28
|
-
// this.executeAsync(nv);
|
|
29
|
-
// }
|
|
30
|
-
//
|
|
31
|
-
// connectedCallback() {
|
|
32
|
-
// if (this.hasAttribute('value')) {
|
|
33
|
-
// this.executeAsync(this._value);
|
|
34
|
-
// }
|
|
35
|
-
// }
|
|
36
|
-
//
|
|
37
|
-
// attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {
|
|
38
|
-
// switch (name) {
|
|
39
|
-
// case 'value':
|
|
40
|
-
// this._value = newValue;
|
|
41
|
-
// this.executeAsync(this._value);
|
|
42
|
-
// break;
|
|
43
|
-
// case 'replace-wrap-start':
|
|
44
|
-
// this._replaceWrapStart = newValue;
|
|
45
|
-
// break;
|
|
46
|
-
// case 'replace-wrap-end':
|
|
47
|
-
// this._replaceWrapEnd = newValue;
|
|
48
|
-
// break;
|
|
49
|
-
// }
|
|
50
|
-
// }
|
|
51
|
-
//
|
|
52
|
-
// private executeAsync(result: any = this._value) {
|
|
53
|
-
// if (result === undefined || result === null) {
|
|
54
|
-
// this.refresh('default');
|
|
55
|
-
// return;
|
|
56
|
-
// }
|
|
57
|
-
// if (result instanceof Promise) {
|
|
58
|
-
// this.refresh('loading');
|
|
59
|
-
// result
|
|
60
|
-
// .then(v => {
|
|
61
|
-
// this.resultValue = v;
|
|
62
|
-
// this.refresh('success');
|
|
63
|
-
// })
|
|
64
|
-
// .catch(e => {
|
|
65
|
-
// console.error('[SWC-ASYNC] Promise rejected:', e);
|
|
66
|
-
// this.resultValue = e;
|
|
67
|
-
// this.refresh('error');
|
|
68
|
-
// });
|
|
69
|
-
// } else {
|
|
70
|
-
// this.resultValue = result;
|
|
71
|
-
// this.refresh('success');
|
|
72
|
-
// }
|
|
73
|
-
// }
|
|
74
|
-
//
|
|
75
|
-
// private replaceExpressions(html: string, groupArgs: any, context: any, wrap: { start: string, end: string }): string {
|
|
76
|
-
// let config: any = undefined;
|
|
77
|
-
// if (wrap) {
|
|
78
|
-
// config = {
|
|
79
|
-
// expression: {
|
|
80
|
-
// replace: {start: `${wrap.start}`, end: `${wrap.end}`},
|
|
81
|
-
// callReturn: {start: `${wrap.start}=`, end: `${wrap.end}`},
|
|
82
|
-
// call: {start: `${wrap.start}@`, end: `${wrap.end}`}
|
|
83
|
-
// }
|
|
84
|
-
// };
|
|
85
|
-
// }
|
|
86
|
-
// const ae = new ActionExpression(html, config);
|
|
87
|
-
// const win = this.ownerDocument?.defaultView || window;
|
|
88
|
-
// for (const expr of ae.getExpressions('replace')) {
|
|
89
|
-
// try {
|
|
90
|
-
// const value = FunctionUtils.executeReturn({
|
|
91
|
-
// script: ConvertUtils.decodeHtmlEntity(expr.script, win.document),
|
|
92
|
-
// context,
|
|
93
|
-
// args: groupArgs
|
|
94
|
-
// });
|
|
95
|
-
// ae.replace(expr, String(value));
|
|
96
|
-
// } catch (e) {
|
|
97
|
-
// console.error(`[SWC] Failed to execute ${expr.original}:`, e);
|
|
98
|
-
// }
|
|
99
|
-
// }
|
|
100
|
-
// return ae.getUnprocessedTemplate();
|
|
101
|
-
// }
|
|
102
|
-
//
|
|
103
|
-
// refresh(state: string = 'default') {
|
|
104
|
-
// this.cleanup();
|
|
105
|
-
// const portal = SwcUtils.getParentContainer(this);
|
|
106
|
-
// if (!portal) return;
|
|
107
|
-
// const win = this.ownerDocument?.defaultView || window;
|
|
108
|
-
// const helperSet = SwcUtils.getHelperAndHostSet(win, this);
|
|
109
|
-
// // HTMLElement에서는 children에서 template[is=swc-...] 찾기
|
|
110
|
-
// const t = Array.from(this.children).find(
|
|
111
|
-
// (el): el is HTMLTemplateElement => el.tagName === 'TEMPLATE' && el.getAttribute('is') === `swc-${state}`
|
|
112
|
-
// );
|
|
113
|
-
// if (t) {
|
|
114
|
-
// let htmlString = t.innerHTML;
|
|
115
|
-
// const groupArgs = {...helperSet, $value: this._value, $state: state, $templateHost: this};
|
|
116
|
-
// htmlString = this.replaceExpressions(htmlString, groupArgs, this, {start: this._replaceWrapStart ?? '{#{', end: this._replaceWrapEnd ?? '}#}'});
|
|
117
|
-
// const temp = this.ownerDocument?.createElement('template') || document.createElement('template');
|
|
118
|
-
// temp.innerHTML = htmlString;
|
|
119
|
-
// const content = temp.content;
|
|
120
|
-
// this._nodes = Array.from(content.childNodes);
|
|
121
|
-
// this._nodes.forEach((node: any) => {
|
|
122
|
-
// if (node instanceof HTMLElement) (node as any).__template_swc_host = this;
|
|
123
|
-
// });
|
|
124
|
-
// portal.insertBefore(content, this.nextSibling);
|
|
125
|
-
// }
|
|
126
|
-
// }
|
|
127
|
-
//
|
|
128
|
-
// private cleanup() {
|
|
129
|
-
// this._nodes.forEach(n => n.parentElement?.removeChild(n));
|
|
130
|
-
// this._nodes = [];
|
|
131
|
-
// }
|
|
132
|
-
//
|
|
133
|
-
// disconnectedCallback() {
|
|
134
|
-
// this.cleanup();
|
|
135
|
-
// }
|
|
136
|
-
// }
|
|
137
|
-
//
|
|
138
|
-
// return w.customElements.whenDefined(tagName);
|
|
139
|
-
// }
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
// import { changedAttributeThis } from '../../decorators/changedAttributeThis';
|
|
2
|
-
// import { SwcUtils } from '../../utils/Utils';
|
|
3
|
-
// import { FunctionUtils, ActionExpression } from '@dooboostore/core';
|
|
4
|
-
// import { ConvertUtils } from '@dooboostore/core-web';
|
|
5
|
-
// import { attributeThis } from '../../decorators';
|
|
6
|
-
//
|
|
7
|
-
// export class SwcAsyncTemplate extends HTMLTemplateElement {
|
|
8
|
-
// @attributeThis('value')
|
|
9
|
-
// _value: any;
|
|
10
|
-
// @attributeThis('replace-wrap-start')
|
|
11
|
-
// _replaceWrapStart: string | null;
|
|
12
|
-
// @attributeThis('replace-wrap-end')
|
|
13
|
-
// _replaceWrapEnd: string | null; resultValue?: any;
|
|
14
|
-
//
|
|
15
|
-
// get value(): boolean {
|
|
16
|
-
// return this._value;
|
|
17
|
-
// }
|
|
18
|
-
//
|
|
19
|
-
// set value(nv: any) {
|
|
20
|
-
// this.executeAsync(nv);
|
|
21
|
-
// }
|
|
22
|
-
//
|
|
23
|
-
// private _nodes: Node[] = [];
|
|
24
|
-
//
|
|
25
|
-
// @changedAttributeThis('value')
|
|
26
|
-
// private setValue(valueAttr?: string | null) {
|
|
27
|
-
// this.executeAsync(this._value);
|
|
28
|
-
// }
|
|
29
|
-
//
|
|
30
|
-
// // @changedAttributeThis('replace-wrap')
|
|
31
|
-
// // private setReplaceWrap() {
|
|
32
|
-
// // this.executeAsync(this._value);
|
|
33
|
-
// // }
|
|
34
|
-
//
|
|
35
|
-
// private executeAsync(result: any = this._value) {
|
|
36
|
-
// if (result === undefined || result === null) {
|
|
37
|
-
// this.refresh('default');
|
|
38
|
-
// return;
|
|
39
|
-
// }
|
|
40
|
-
//
|
|
41
|
-
// if (result instanceof Promise) {
|
|
42
|
-
// this.refresh('loading');
|
|
43
|
-
// result
|
|
44
|
-
// .then(v => {
|
|
45
|
-
// this.resultValue = v;
|
|
46
|
-
// this.refresh('success');
|
|
47
|
-
// })
|
|
48
|
-
// .catch(e => {
|
|
49
|
-
// console.error('[SWC-ASYNC] Promise rejected:', e);
|
|
50
|
-
// this.resultValue = e;
|
|
51
|
-
// this.refresh('error');
|
|
52
|
-
// });
|
|
53
|
-
// } else {
|
|
54
|
-
// this.resultValue = result;
|
|
55
|
-
// this.refresh('success');
|
|
56
|
-
// }
|
|
57
|
-
// }
|
|
58
|
-
//
|
|
59
|
-
// private replaceExpressions(html: string, groupArgs: any, context: any, wrap: {start: string, end: string}): string {
|
|
60
|
-
// let config: any = undefined;
|
|
61
|
-
// if (wrap) {
|
|
62
|
-
// config = {
|
|
63
|
-
// expression: {
|
|
64
|
-
// replace: { start: `${wrap.start}`, end: `${wrap.end}` },
|
|
65
|
-
// callReturn: { start: `${wrap.start}=`, end: `${wrap.end}` },
|
|
66
|
-
// call: { start: `${wrap.start}@`, end: `${wrap.end}` }
|
|
67
|
-
// }
|
|
68
|
-
// };
|
|
69
|
-
// }
|
|
70
|
-
// const ae = new ActionExpression(html, config);
|
|
71
|
-
// const win = this.ownerDocument?.defaultView || window;
|
|
72
|
-
//
|
|
73
|
-
// // @ts-ignore
|
|
74
|
-
// for (const expr of ae.getExpressions('replace')) {
|
|
75
|
-
// try {
|
|
76
|
-
// const value = FunctionUtils.executeReturn({
|
|
77
|
-
// script: ConvertUtils.decodeHtmlEntity(expr.script, win.document),
|
|
78
|
-
// context,
|
|
79
|
-
// args: groupArgs
|
|
80
|
-
// });
|
|
81
|
-
// ae.replace(expr, String(value));
|
|
82
|
-
// } catch (e) {
|
|
83
|
-
// console.error(`[SWC] Failed to execute ${expr.original}:`, e);
|
|
84
|
-
// }
|
|
85
|
-
// }
|
|
86
|
-
// return ae.getUnprocessedTemplate();
|
|
87
|
-
// }
|
|
88
|
-
//
|
|
89
|
-
// refresh(state: string = 'default') {
|
|
90
|
-
// // console.log('rrrrrrrrrrrrrrrrr', state);
|
|
91
|
-
// this.cleanup();
|
|
92
|
-
// const portal = SwcUtils.getParentContainer(this);
|
|
93
|
-
// if (!portal) return;
|
|
94
|
-
//
|
|
95
|
-
// const win = this.ownerDocument?.defaultView || window;
|
|
96
|
-
// const helperSet = SwcUtils.getHelperAndHostSet(win, this);
|
|
97
|
-
//
|
|
98
|
-
// const t = this.content.querySelector(`template[is="swc-${state}"]`) as HTMLTemplateElement;
|
|
99
|
-
// if (t) {
|
|
100
|
-
// let htmlString = t.innerHTML;
|
|
101
|
-
// const groupArgs = { ...helperSet, $value: this._value, $state: state, $templateHost: this };
|
|
102
|
-
//
|
|
103
|
-
// htmlString = this.replaceExpressions(htmlString, groupArgs, this, {start:this._replaceWrapStart ?? '{#{', end: this._replaceWrapEnd ?? '}#}'});
|
|
104
|
-
//
|
|
105
|
-
// const temp = this.ownerDocument?.createElement('template') || document.createElement('template');
|
|
106
|
-
// temp.innerHTML = htmlString;
|
|
107
|
-
// const content = temp.content;
|
|
108
|
-
//
|
|
109
|
-
// this._nodes = Array.from(content.childNodes);
|
|
110
|
-
// this._nodes.forEach((node: any) => {
|
|
111
|
-
// if (node instanceof HTMLElement) (node as any).__template_swc_host = this;
|
|
112
|
-
// });
|
|
113
|
-
//
|
|
114
|
-
// portal.insertBefore(content, this.nextSibling);
|
|
115
|
-
// }
|
|
116
|
-
// }
|
|
117
|
-
//
|
|
118
|
-
// private cleanup() {
|
|
119
|
-
// this._nodes.forEach(n => n.parentElement?.removeChild(n));
|
|
120
|
-
// this._nodes = [];
|
|
121
|
-
// }
|
|
122
|
-
//
|
|
123
|
-
// disconnectedCallback() {
|
|
124
|
-
// this.cleanup();
|
|
125
|
-
// }
|
|
126
|
-
// }
|