@dooboostore/simple-web-component 1.0.47 → 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.
Files changed (132) hide show
  1. package/README.md +109 -11
  2. package/dist/cjs/decorators/addEventListener.js +45 -7
  3. package/dist/cjs/decorators/addEventListener.js.map +2 -2
  4. package/dist/cjs/decorators/elementDefine.js +225 -6
  5. package/dist/cjs/decorators/elementDefine.js.map +3 -3
  6. package/dist/cjs/decorators/index.js +2 -0
  7. package/dist/cjs/decorators/index.js.map +2 -2
  8. package/dist/cjs/decorators/mutationObserver.js +104 -0
  9. package/dist/cjs/decorators/mutationObserver.js.map +7 -0
  10. package/dist/cjs/decorators/query.js +13 -1
  11. package/dist/cjs/decorators/query.js.map +2 -2
  12. package/dist/cjs/decorators/resizeObserver.js +104 -0
  13. package/dist/cjs/decorators/resizeObserver.js.map +7 -0
  14. package/dist/cjs/examples/RxJSOperatorsExample.js +285 -0
  15. package/dist/cjs/examples/RxJSOperatorsExample.js.map +7 -0
  16. package/dist/esm/decorators/addEventListener.js +45 -7
  17. package/dist/esm/decorators/addEventListener.js.map +2 -2
  18. package/dist/esm/decorators/elementDefine.js +225 -6
  19. package/dist/esm/decorators/elementDefine.js.map +3 -3
  20. package/dist/esm/decorators/index.js +2 -0
  21. package/dist/esm/decorators/index.js.map +2 -2
  22. package/dist/esm/decorators/mutationObserver.js +85 -0
  23. package/dist/esm/decorators/mutationObserver.js.map +7 -0
  24. package/dist/esm/decorators/query.js +13 -1
  25. package/dist/esm/decorators/query.js.map +2 -2
  26. package/dist/esm/decorators/resizeObserver.js +85 -0
  27. package/dist/esm/decorators/resizeObserver.js.map +7 -0
  28. package/dist/esm/examples/RxJSOperatorsExample.js +266 -0
  29. package/dist/esm/examples/RxJSOperatorsExample.js.map +7 -0
  30. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +446 -13
  31. package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
  32. package/dist/types/decorators/addEventListener.d.ts +24 -5
  33. package/dist/types/decorators/addEventListener.d.ts.map +1 -1
  34. package/dist/types/decorators/elementDefine.d.ts +14 -0
  35. package/dist/types/decorators/elementDefine.d.ts.map +1 -1
  36. package/dist/types/decorators/index.d.ts +2 -0
  37. package/dist/types/decorators/index.d.ts.map +1 -1
  38. package/dist/types/decorators/mutationObserver.d.ts +36 -0
  39. package/dist/types/decorators/mutationObserver.d.ts.map +1 -0
  40. package/dist/types/decorators/query.d.ts +12 -0
  41. package/dist/types/decorators/query.d.ts.map +1 -1
  42. package/dist/types/decorators/resizeObserver.d.ts +37 -0
  43. package/dist/types/decorators/resizeObserver.d.ts.map +1 -0
  44. package/dist/types/examples/RxJSOperatorsExample.d.ts +94 -0
  45. package/dist/types/examples/RxJSOperatorsExample.d.ts.map +1 -0
  46. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +446 -13
  47. package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
  48. package/package.json +4 -4
  49. package/src/decorators/addEventListener.ts +52 -9
  50. package/src/decorators/elementDefine.ts +330 -47
  51. package/src/decorators/index.ts +2 -0
  52. package/src/decorators/mutationObserver.ts +128 -0
  53. package/src/decorators/query.ts +23 -0
  54. package/src/decorators/resizeObserver.ts +129 -0
  55. package/src/examples/RxJSOperatorsExample.ts +279 -0
  56. package/dist/cjs/elements/tt/SwcAppMixin.js +0 -1
  57. package/dist/cjs/elements/tt/SwcAppMixin.js.map +0 -7
  58. package/dist/cjs/elements/tt/SwcAsync.js +0 -1
  59. package/dist/cjs/elements/tt/SwcAsync.js.map +0 -7
  60. package/dist/cjs/elements/tt/SwcAsyncTemplate.js +0 -1
  61. package/dist/cjs/elements/tt/SwcAsyncTemplate.js.map +0 -7
  62. package/dist/cjs/elements/tt/SwcChoose.js +0 -1
  63. package/dist/cjs/elements/tt/SwcChoose.js.map +0 -7
  64. package/dist/cjs/elements/tt/SwcChooseTemplate.js +0 -1
  65. package/dist/cjs/elements/tt/SwcChooseTemplate.js.map +0 -7
  66. package/dist/cjs/elements/tt/SwcIf.js +0 -1
  67. package/dist/cjs/elements/tt/SwcIf.js.map +0 -7
  68. package/dist/cjs/elements/tt/SwcIfTemplate.js +0 -1
  69. package/dist/cjs/elements/tt/SwcIfTemplate.js.map +0 -7
  70. package/dist/cjs/elements/tt/SwcLoop.js +0 -1
  71. package/dist/cjs/elements/tt/SwcLoop.js.map +0 -7
  72. package/dist/cjs/elements/tt/SwcLoopTemplate.js +0 -1
  73. package/dist/cjs/elements/tt/SwcLoopTemplate.js.map +0 -7
  74. package/dist/cjs/elements/tt/SwcSubTemplates.js +0 -1
  75. package/dist/cjs/elements/tt/SwcSubTemplates.js.map +0 -7
  76. package/dist/cjs/elements/tt/register.js +0 -1
  77. package/dist/cjs/elements/tt/register.js.map +0 -7
  78. package/dist/esm/elements/tt/SwcAppMixin.js +0 -1
  79. package/dist/esm/elements/tt/SwcAppMixin.js.map +0 -7
  80. package/dist/esm/elements/tt/SwcAsync.js +0 -1
  81. package/dist/esm/elements/tt/SwcAsync.js.map +0 -7
  82. package/dist/esm/elements/tt/SwcAsyncTemplate.js +0 -1
  83. package/dist/esm/elements/tt/SwcAsyncTemplate.js.map +0 -7
  84. package/dist/esm/elements/tt/SwcChoose.js +0 -1
  85. package/dist/esm/elements/tt/SwcChoose.js.map +0 -7
  86. package/dist/esm/elements/tt/SwcChooseTemplate.js +0 -1
  87. package/dist/esm/elements/tt/SwcChooseTemplate.js.map +0 -7
  88. package/dist/esm/elements/tt/SwcIf.js +0 -1
  89. package/dist/esm/elements/tt/SwcIf.js.map +0 -7
  90. package/dist/esm/elements/tt/SwcIfTemplate.js +0 -1
  91. package/dist/esm/elements/tt/SwcIfTemplate.js.map +0 -7
  92. package/dist/esm/elements/tt/SwcLoop.js +0 -1
  93. package/dist/esm/elements/tt/SwcLoop.js.map +0 -7
  94. package/dist/esm/elements/tt/SwcLoopTemplate.js +0 -1
  95. package/dist/esm/elements/tt/SwcLoopTemplate.js.map +0 -7
  96. package/dist/esm/elements/tt/SwcSubTemplates.js +0 -1
  97. package/dist/esm/elements/tt/SwcSubTemplates.js.map +0 -7
  98. package/dist/esm/elements/tt/register.js +0 -1
  99. package/dist/esm/elements/tt/register.js.map +0 -7
  100. package/dist/types/elements/tt/SwcAppMixin.d.ts +0 -1
  101. package/dist/types/elements/tt/SwcAppMixin.d.ts.map +0 -1
  102. package/dist/types/elements/tt/SwcAsync.d.ts +0 -1
  103. package/dist/types/elements/tt/SwcAsync.d.ts.map +0 -1
  104. package/dist/types/elements/tt/SwcAsyncTemplate.d.ts +0 -1
  105. package/dist/types/elements/tt/SwcAsyncTemplate.d.ts.map +0 -1
  106. package/dist/types/elements/tt/SwcChoose.d.ts +0 -1
  107. package/dist/types/elements/tt/SwcChoose.d.ts.map +0 -1
  108. package/dist/types/elements/tt/SwcChooseTemplate.d.ts +0 -1
  109. package/dist/types/elements/tt/SwcChooseTemplate.d.ts.map +0 -1
  110. package/dist/types/elements/tt/SwcIf.d.ts +0 -1
  111. package/dist/types/elements/tt/SwcIf.d.ts.map +0 -1
  112. package/dist/types/elements/tt/SwcIfTemplate.d.ts +0 -1
  113. package/dist/types/elements/tt/SwcIfTemplate.d.ts.map +0 -1
  114. package/dist/types/elements/tt/SwcLoop.d.ts +0 -1
  115. package/dist/types/elements/tt/SwcLoop.d.ts.map +0 -1
  116. package/dist/types/elements/tt/SwcLoopTemplate.d.ts +0 -1
  117. package/dist/types/elements/tt/SwcLoopTemplate.d.ts.map +0 -1
  118. package/dist/types/elements/tt/SwcSubTemplates.d.ts +0 -1
  119. package/dist/types/elements/tt/SwcSubTemplates.d.ts.map +0 -1
  120. package/dist/types/elements/tt/register.d.ts +0 -1
  121. package/dist/types/elements/tt/register.d.ts.map +0 -1
  122. package/src/elements/tt/SwcAppMixin.ts +0 -13
  123. package/src/elements/tt/SwcAsync.ts +0 -139
  124. package/src/elements/tt/SwcAsyncTemplate.ts +0 -126
  125. package/src/elements/tt/SwcChoose.ts +0 -182
  126. package/src/elements/tt/SwcChooseTemplate.ts +0 -229
  127. package/src/elements/tt/SwcIf.ts +0 -145
  128. package/src/elements/tt/SwcIfTemplate.ts +0 -158
  129. package/src/elements/tt/SwcLoop.ts +0 -222
  130. package/src/elements/tt/SwcLoopTemplate.ts +0 -255
  131. package/src/elements/tt/SwcSubTemplates.ts +0 -6
  132. package/src/elements/tt/register.ts +0 -720
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcSubTemplates.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=register.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcAppMixin.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcAsync.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcAsyncTemplate.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcChoose.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcChooseTemplate.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcIf.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcIfTemplate.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcLoop.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcLoopTemplate.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=SwcSubTemplates.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=register.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -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
- // }