@dooboostore/dom-render 1.0.110 → 1.0.112

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 (234) hide show
  1. package/README.MD +1 -2
  2. package/dist/cjs/DomRenderProxy.js +89 -48
  3. package/dist/cjs/DomRenderProxy.js.map +2 -2
  4. package/dist/cjs/components/ComponentBase.js +47 -1
  5. package/dist/cjs/components/ComponentBase.js.map +2 -2
  6. package/dist/cjs/components/a/A.js +22 -0
  7. package/dist/cjs/components/a/A.js.map +2 -2
  8. package/dist/cjs/components/appender/Appender.js +21 -4
  9. package/dist/cjs/components/appender/Appender.js.map +2 -2
  10. package/dist/cjs/components/details/Details.js +5 -0
  11. package/dist/cjs/components/details/Details.js.map +2 -2
  12. package/dist/cjs/components/forOf/ForOf.js +2 -2
  13. package/dist/cjs/components/forOf/ForOf.js.map +1 -1
  14. package/dist/cjs/components/if/If.js +1 -1
  15. package/dist/cjs/components/if/If.js.map +2 -2
  16. package/dist/cjs/components/index.js +3 -1
  17. package/dist/cjs/components/index.js.map +3 -3
  18. package/dist/cjs/components/router/RouterOutlet.js +41 -10
  19. package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
  20. package/dist/cjs/components/select/Select.js +39 -1
  21. package/dist/cjs/components/select/Select.js.map +2 -2
  22. package/dist/cjs/components/this/This.js +33 -5
  23. package/dist/cjs/components/this/This.js.map +2 -2
  24. package/dist/cjs/decorators/DomRenderNoProxy.js +3 -9
  25. package/dist/cjs/decorators/DomRenderNoProxy.js.map +2 -2
  26. package/dist/cjs/events/EventManager.js +103 -37
  27. package/dist/cjs/events/EventManager.js.map +2 -2
  28. package/dist/cjs/lifecycle/OnChangeAttrRender.js.map +1 -1
  29. package/dist/cjs/lifecycle/OnChildRawSetRendered.js +26 -0
  30. package/dist/cjs/lifecycle/OnChildRawSetRendered.js.map +7 -0
  31. package/dist/cjs/lifecycle/OnRawSetRendered.js.map +2 -2
  32. package/dist/cjs/operators/Appender.js +8 -1
  33. package/dist/cjs/operators/Appender.js.map +2 -2
  34. package/dist/cjs/operators/Dr.js +2 -2
  35. package/dist/cjs/operators/Dr.js.map +2 -2
  36. package/dist/cjs/operators/DrAppender.js +2 -2
  37. package/dist/cjs/operators/DrAppender.js.map +2 -2
  38. package/dist/cjs/operators/DrFor.js +2 -2
  39. package/dist/cjs/operators/DrFor.js.map +2 -2
  40. package/dist/cjs/operators/DrForOf.js +34 -6
  41. package/dist/cjs/operators/DrForOf.js.map +2 -2
  42. package/dist/cjs/operators/DrForm.js +6 -6
  43. package/dist/cjs/operators/DrForm.js.map +2 -2
  44. package/dist/cjs/operators/DrInnerHTML.js +2 -2
  45. package/dist/cjs/operators/DrInnerHTML.js.map +2 -2
  46. package/dist/cjs/operators/DrRepeat.js +2 -2
  47. package/dist/cjs/operators/DrRepeat.js.map +2 -2
  48. package/dist/cjs/operators/DrStripElement.js +2 -2
  49. package/dist/cjs/operators/DrStripElement.js.map +2 -2
  50. package/dist/cjs/operators/DrTargetElement.js +14 -5
  51. package/dist/cjs/operators/DrTargetElement.js.map +2 -2
  52. package/dist/cjs/operators/DrTargetElementIsElement.js +2 -2
  53. package/dist/cjs/operators/DrTargetElementIsElement.js.map +2 -2
  54. package/dist/cjs/operators/DrThis.js +2 -2
  55. package/dist/cjs/operators/DrThis.js.map +2 -2
  56. package/dist/cjs/operators/DrThisProperty.js +2 -1
  57. package/dist/cjs/operators/DrThisProperty.js.map +2 -2
  58. package/dist/cjs/rawsets/RawSet.js +87 -160
  59. package/dist/cjs/rawsets/RawSet.js.map +2 -2
  60. package/dist/cjs/routers/HashRouter.js +3 -0
  61. package/dist/cjs/routers/HashRouter.js.map +2 -2
  62. package/dist/cjs/routers/PathRouter.js +3 -0
  63. package/dist/cjs/routers/PathRouter.js.map +2 -2
  64. package/dist/cjs/routers/Router.js +25 -21
  65. package/dist/cjs/routers/Router.js.map +2 -2
  66. package/dist/esm/DomRenderProxy.js +89 -48
  67. package/dist/esm/DomRenderProxy.js.map +2 -2
  68. package/dist/esm/components/ComponentBase.js +47 -1
  69. package/dist/esm/components/ComponentBase.js.map +2 -2
  70. package/dist/esm/components/a/A.js +22 -0
  71. package/dist/esm/components/a/A.js.map +2 -2
  72. package/dist/esm/components/appender/Appender.js +22 -5
  73. package/dist/esm/components/appender/Appender.js.map +2 -2
  74. package/dist/esm/components/details/Details.js +5 -0
  75. package/dist/esm/components/details/Details.js.map +2 -2
  76. package/dist/esm/components/forOf/ForOf.js +2 -2
  77. package/dist/esm/components/forOf/ForOf.js.map +1 -1
  78. package/dist/esm/components/if/If.js +1 -1
  79. package/dist/esm/components/if/If.js.map +2 -2
  80. package/dist/esm/components/index.js +3 -1
  81. package/dist/esm/components/index.js.map +2 -2
  82. package/dist/esm/components/router/RouterOutlet.js +41 -10
  83. package/dist/esm/components/router/RouterOutlet.js.map +2 -2
  84. package/dist/esm/components/select/Select.js +39 -1
  85. package/dist/esm/components/select/Select.js.map +2 -2
  86. package/dist/esm/components/this/This.js +33 -5
  87. package/dist/esm/components/this/This.js.map +2 -2
  88. package/dist/esm/decorators/DomRenderNoProxy.js +3 -9
  89. package/dist/esm/decorators/DomRenderNoProxy.js.map +2 -2
  90. package/dist/esm/events/EventManager.js +103 -37
  91. package/dist/esm/events/EventManager.js.map +2 -2
  92. package/dist/esm/lifecycle/OnChangeAttrRender.js.map +1 -1
  93. package/dist/esm/lifecycle/OnChildRawSetRendered.js +7 -0
  94. package/dist/esm/lifecycle/OnChildRawSetRendered.js.map +7 -0
  95. package/dist/esm/lifecycle/OnRawSetRendered.js.map +2 -2
  96. package/dist/esm/operators/Appender.js +8 -1
  97. package/dist/esm/operators/Appender.js.map +2 -2
  98. package/dist/esm/operators/Dr.js +2 -2
  99. package/dist/esm/operators/Dr.js.map +2 -2
  100. package/dist/esm/operators/DrAppender.js +2 -2
  101. package/dist/esm/operators/DrAppender.js.map +2 -2
  102. package/dist/esm/operators/DrFor.js +2 -2
  103. package/dist/esm/operators/DrFor.js.map +2 -2
  104. package/dist/esm/operators/DrForOf.js +34 -6
  105. package/dist/esm/operators/DrForOf.js.map +2 -2
  106. package/dist/esm/operators/DrForm.js +6 -6
  107. package/dist/esm/operators/DrForm.js.map +2 -2
  108. package/dist/esm/operators/DrInnerHTML.js +2 -2
  109. package/dist/esm/operators/DrInnerHTML.js.map +2 -2
  110. package/dist/esm/operators/DrRepeat.js +2 -2
  111. package/dist/esm/operators/DrRepeat.js.map +2 -2
  112. package/dist/esm/operators/DrStripElement.js +2 -2
  113. package/dist/esm/operators/DrStripElement.js.map +2 -2
  114. package/dist/esm/operators/DrTargetElement.js +14 -5
  115. package/dist/esm/operators/DrTargetElement.js.map +2 -2
  116. package/dist/esm/operators/DrTargetElementIsElement.js +2 -2
  117. package/dist/esm/operators/DrTargetElementIsElement.js.map +2 -2
  118. package/dist/esm/operators/DrThis.js +2 -2
  119. package/dist/esm/operators/DrThis.js.map +2 -2
  120. package/dist/esm/operators/DrThisProperty.js +2 -1
  121. package/dist/esm/operators/DrThisProperty.js.map +2 -2
  122. package/dist/esm/rawsets/RawSet.js +87 -160
  123. package/dist/esm/rawsets/RawSet.js.map +2 -2
  124. package/dist/esm/routers/HashRouter.js +3 -0
  125. package/dist/esm/routers/HashRouter.js.map +2 -2
  126. package/dist/esm/routers/PathRouter.js +3 -0
  127. package/dist/esm/routers/PathRouter.js.map +2 -2
  128. package/dist/esm/routers/Router.js +25 -21
  129. package/dist/esm/routers/Router.js.map +2 -2
  130. package/dist/esm-bundle/dooboostore-dom-render.esm.js +830 -1533
  131. package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
  132. package/dist/types/DomRenderProxy.d.ts.map +1 -1
  133. package/dist/types/components/ComponentBase.d.ts +12 -1
  134. package/dist/types/components/ComponentBase.d.ts.map +1 -1
  135. package/dist/types/components/a/A.d.ts +6 -0
  136. package/dist/types/components/a/A.d.ts.map +1 -1
  137. package/dist/types/components/appender/Appender.d.ts +1 -0
  138. package/dist/types/components/appender/Appender.d.ts.map +1 -1
  139. package/dist/types/components/details/Details.d.ts +2 -0
  140. package/dist/types/components/details/Details.d.ts.map +1 -1
  141. package/dist/types/components/forOf/ForOf.d.ts +1 -1
  142. package/dist/types/components/forOf/ForOf.d.ts.map +1 -1
  143. package/dist/types/components/if/If.d.ts.map +1 -1
  144. package/dist/types/components/index.d.ts +1 -0
  145. package/dist/types/components/index.d.ts.map +1 -1
  146. package/dist/types/components/router/RouterOutlet.d.ts +6 -3
  147. package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
  148. package/dist/types/components/select/Select.d.ts +5 -3
  149. package/dist/types/components/select/Select.d.ts.map +1 -1
  150. package/dist/types/components/this/This.d.ts +5 -1
  151. package/dist/types/components/this/This.d.ts.map +1 -1
  152. package/dist/types/decorators/DomRenderNoProxy.d.ts.map +1 -1
  153. package/dist/types/events/EventManager.d.ts +1 -0
  154. package/dist/types/events/EventManager.d.ts.map +1 -1
  155. package/dist/types/lifecycle/OnChangeAttrRender.d.ts +1 -1
  156. package/dist/types/lifecycle/OnChangeAttrRender.d.ts.map +1 -1
  157. package/dist/types/lifecycle/OnChildRawSetRendered.d.ts +9 -0
  158. package/dist/types/lifecycle/OnChildRawSetRendered.d.ts.map +1 -0
  159. package/dist/types/lifecycle/OnRawSetRendered.d.ts +2 -0
  160. package/dist/types/lifecycle/OnRawSetRendered.d.ts.map +1 -1
  161. package/dist/types/operators/Appender.d.ts +1 -0
  162. package/dist/types/operators/Appender.d.ts.map +1 -1
  163. package/dist/types/operators/Dr.d.ts.map +1 -1
  164. package/dist/types/operators/DrAppender.d.ts.map +1 -1
  165. package/dist/types/operators/DrFor.d.ts.map +1 -1
  166. package/dist/types/operators/DrForOf.d.ts.map +1 -1
  167. package/dist/types/operators/DrForm.d.ts.map +1 -1
  168. package/dist/types/operators/DrInnerHTML.d.ts.map +1 -1
  169. package/dist/types/operators/DrRepeat.d.ts.map +1 -1
  170. package/dist/types/operators/DrStripElement.d.ts.map +1 -1
  171. package/dist/types/operators/DrTargetElement.d.ts.map +1 -1
  172. package/dist/types/operators/DrThisProperty.d.ts.map +1 -1
  173. package/dist/types/rawsets/RawSet.d.ts +4 -1
  174. package/dist/types/rawsets/RawSet.d.ts.map +1 -1
  175. package/dist/types/routers/HashRouter.d.ts +1 -0
  176. package/dist/types/routers/HashRouter.d.ts.map +1 -1
  177. package/dist/types/routers/PathRouter.d.ts +1 -0
  178. package/dist/types/routers/PathRouter.d.ts.map +1 -1
  179. package/dist/types/routers/Router.d.ts +3 -0
  180. package/dist/types/routers/Router.d.ts.map +1 -1
  181. package/dist/umd-bundle/dooboostore-dom-render.umd.js +830 -1533
  182. package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
  183. package/package.json +4 -4
  184. package/src/DomRenderProxy.ts +169 -75
  185. package/src/DomRenderProxy.ts_cache_back +1031 -0
  186. package/src/components/ComponentBase.ts +61 -5
  187. package/src/components/a/A.ts +25 -0
  188. package/src/components/appender/Appender.ts +3 -3
  189. package/src/components/details/Details.ts +7 -0
  190. package/src/components/forOf/ForOf.ts +2 -2
  191. package/src/components/if/If.ts +3 -2
  192. package/src/components/index.ts +3 -0
  193. package/src/components/router/RouterOutlet.ts +60 -22
  194. package/src/components/select/Select.ts +69 -30
  195. package/src/components/this/This.ts +41 -6
  196. package/src/decorators/DomRenderNoProxy.ts +17 -14
  197. package/src/events/EventManager.ts +180 -77
  198. package/src/lifecycle/OnChangeAttrRender.ts +1 -1
  199. package/src/lifecycle/OnChildRawSetRendered.ts +13 -0
  200. package/src/lifecycle/OnRawSetRendered.ts +3 -1
  201. package/src/operators/Appender.ts +8 -1
  202. package/src/operators/Dr.ts +2 -1
  203. package/src/operators/DrAppender.ts +2 -1
  204. package/src/operators/DrFor.ts +2 -1
  205. package/src/operators/DrForOf.ts +36 -6
  206. package/src/operators/DrForm.ts +6 -5
  207. package/src/operators/DrInnerHTML.ts +2 -1
  208. package/src/operators/DrRepeat.ts +2 -1
  209. package/src/operators/DrStripElement.ts +2 -1
  210. package/src/operators/DrTargetElement.ts +17 -5
  211. package/src/operators/DrTargetElementIsElement.ts +2 -2
  212. package/src/operators/DrThis.ts +2 -2
  213. package/src/operators/DrThisProperty.ts +2 -1
  214. package/src/rawsets/RawSet.ts +161 -237
  215. package/src/routers/HashRouter.ts +4 -0
  216. package/src/routers/PathRouter.ts +5 -0
  217. package/src/routers/Router.ts +64 -47
  218. package/src/node_modules/.bin/acorn +0 -17
  219. package/src/node_modules/.bin/browserslist +0 -17
  220. package/src/node_modules/.bin/eslint +0 -17
  221. package/src/node_modules/.bin/sbf +0 -17
  222. package/src/node_modules/.bin/ts-node +0 -17
  223. package/src/node_modules/.bin/ts-node-cwd +0 -17
  224. package/src/node_modules/.bin/ts-node-dev +0 -17
  225. package/src/node_modules/.bin/ts-node-esm +0 -17
  226. package/src/node_modules/.bin/ts-node-script +0 -17
  227. package/src/node_modules/.bin/ts-node-transpile-only +0 -17
  228. package/src/node_modules/.bin/ts-script +0 -17
  229. package/src/node_modules/.bin/tsc +0 -17
  230. package/src/node_modules/.bin/tsnd +0 -17
  231. package/src/node_modules/.bin/tsserver +0 -17
  232. package/src/node_modules/.bin/webpack +0 -17
  233. package/src/node_modules/.bin/webpack-cli +0 -17
  234. package/src/node_modules/.bin/webpack-dev-server +0 -17
@@ -119,10 +119,49 @@ const _RawSet = class _RawSet {
119
119
  });
120
120
  return usingTriggerVariables;
121
121
  }
122
- // 중요 render 처리 부분
123
- // public async render(obj: any, config: DomRenderConfig): Promise<RawSet[]> {
124
- // }
125
122
  async render(obj, config) {
123
+ if (this.dataSet.fragment.childNodes.length === 1 && this.dataSet.fragment.childNodes[0].nodeType === Node.TEXT_NODE) {
124
+ const textContent = this.dataSet.fragment.childNodes[0].textContent;
125
+ if (textContent) {
126
+ const runText = _RawSet.expressionGroups(textContent)[0][1];
127
+ const __render = {
128
+ rawSet: this,
129
+ scripts: EventManager.setBindProperty(config?.scripts, obj),
130
+ router: config?.router,
131
+ range: Range.range,
132
+ element: this.dataSet.fragment.childNodes[0],
133
+ attribute: {},
134
+ rootObject: obj,
135
+ scriptUtils: ObjectUtils.Script,
136
+ nearThis: this.findNearThis(obj),
137
+ parentThis: this.findParentThis(obj),
138
+ bindScript: ` /** render **/
139
+ const ${EventManager.SCRIPTS_VARNAME} = this.__render.scripts;
140
+ const ${EventManager.RAWSET_VARNAME} = this.__render.rawSet;
141
+ const ${EventManager.ELEMENT_VARNAME} = this.__render.element;
142
+ const ${EventManager.ATTRIBUTE_VARNAME} = this.__render.attribute;
143
+ const ${EventManager.RANGE_VARNAME} = this.__render.range;
144
+ const ${EventManager.ROUTER_VARNAME} = this.__render.router;
145
+ const ${EventManager.NEAR_THIS_VARNAME} = this.__render.nearThis;
146
+ const ${EventManager.PARENT_THIS_VARNAME} = this.__render.parentThis;
147
+ const ${EventManager.SCRIPT_UTILS_VARNAME} = this.__render.scriptUtils;
148
+ const ${EventManager.ROOT_OBJECT_VARNAME} = this.__render.rootObject;
149
+ `
150
+ };
151
+ try {
152
+ const newValue = ObjectUtils.Script.evaluateReturn({
153
+ bodyScript: __render.bindScript,
154
+ returnScript: runText
155
+ }, Object.assign(obj, { __render }));
156
+ const newValueStr = String(newValue);
157
+ if (this.lastRenderedValue === newValueStr) {
158
+ return { raws: [], executedOperators: [] };
159
+ }
160
+ this.lastRenderedValue = newValueStr;
161
+ } catch (e) {
162
+ }
163
+ }
164
+ }
126
165
  const genNode = config.window.document.importNode(this.dataSet.fragment, true);
127
166
  const raws = [];
128
167
  const onAttrInitCallBacks = [];
@@ -165,18 +204,15 @@ const _RawSet = class _RawSet {
165
204
  const runText = _RawSet.expressionGroups(textContent)[0][1];
166
205
  let newNode;
167
206
  if (textContent?.startsWith("#")) {
168
- const r = ObjectUtils.Script.evaluate(
169
- `${__render.bindScript} return ${runText}`,
207
+ const r = ObjectUtils.Script.evaluateReturn(
208
+ { bodyScript: __render.bindScript, returnScript: runText },
170
209
  Object.assign(obj, { __render })
171
210
  );
172
211
  const template = config.window.document.createElement("template");
173
212
  template.innerHTML = r;
174
213
  newNode = template.content;
175
214
  } else {
176
- const r = ObjectUtils.Script.evaluate(
177
- `${__render.bindScript} return ${runText}`,
178
- Object.assign(obj, { __render })
179
- );
215
+ const r = ObjectUtils.Script.evaluateReturn({ bodyScript: __render.bindScript, returnScript: runText }, Object.assign(obj, { __render }));
180
216
  newNode = config.window.document.createTextNode(r);
181
217
  }
182
218
  cNode.parentNode?.replaceChild(newNode, cNode);
@@ -215,140 +251,23 @@ const _RawSet = class _RawSet {
215
251
  };
216
252
  drAttrs.push(drAttr);
217
253
  const operators = [
218
- new DrPre(
219
- this,
220
- __render,
221
- { raws, fag },
222
- { element, attrName: _RawSet.DR_PRE_NAME, attr: drAttr.drPre, attrs: drAttr },
223
- { config, obj, operatorAround: config.operatorAround?.drPre },
224
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
225
- ),
226
- new Dr(
227
- this,
228
- __render,
229
- { raws, fag },
230
- { element, attrName: _RawSet.DR_NAME, attr: drAttr.dr, attrs: drAttr },
231
- { config, obj, operatorAround: config.operatorAround?.dr },
232
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
233
- ),
254
+ new DrPre(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_PRE_NAME, attr: drAttr.drPre, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drPre }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
255
+ new Dr(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_NAME, attr: drAttr.dr, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.dr }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
234
256
  // new Dr(this, __render, {raws, fag}, {element, attrName: EventManager.onRenderedInitAttrName, attr: drAttr.dr, attrs: drAttr}, {config, obj, operatorAround: config.operatorAround?.dr}, {onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks}),
235
- new DrIf(
236
- this,
237
- __render,
238
- { raws, fag },
239
- { element, attrName: _RawSet.DR_IF_NAME, attr: drAttr.drIf, attrs: drAttr },
240
- { config, obj, operatorAround: config.operatorAround?.drIf },
241
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
242
- ),
243
- new DrStripElement(
244
- this,
245
- __render,
246
- { raws, fag },
247
- { element, attrName: _RawSet.DR_STRIP_NAME, attr: drAttr.drStripElement, attrs: drAttr },
248
- { config, obj, operatorAround: config.operatorAround?.drThis },
249
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
250
- ),
251
- new DrThis(
252
- this,
253
- __render,
254
- { raws, fag },
255
- { element, attrName: _RawSet.DR_THIS_NAME, attr: drAttr.drThis, attrs: drAttr },
256
- { config, obj, operatorAround: config.operatorAround?.drThis },
257
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
258
- ),
259
- new DrForm(
260
- this,
261
- __render,
262
- { raws, fag },
263
- { element, attrName: _RawSet.DR_FOR_NAME, attr: drAttr.drForm, attrs: drAttr },
264
- { config, obj, operatorAround: config.operatorAround?.drForm },
265
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
266
- ),
267
- new DrInnerText(
268
- this,
269
- __render,
270
- { raws, fag },
271
- { element, attrName: _RawSet.DR_INNERTEXT_NAME, attr: drAttr.drInnerText, attrs: drAttr },
272
- { config, obj, operatorAround: config.operatorAround?.drInnerText },
273
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
274
- ),
275
- new DrInnerHTML(
276
- this,
277
- __render,
278
- { raws, fag },
279
- { element, attrName: _RawSet.DR_INNERHTML_NAME, attr: drAttr.drInnerHTML, attrs: drAttr },
280
- { config, obj, operatorAround: config.operatorAround?.drInnerHTML },
281
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
282
- ),
283
- new DrFor(
284
- this,
285
- __render,
286
- { raws, fag },
287
- { element, attrName: _RawSet.DR_FOR_NAME, attr: drAttr.drFor, attrs: drAttr },
288
- { config, obj, operatorAround: config.operatorAround?.drFor },
289
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
290
- ),
291
- new DrForOf(
292
- this,
293
- __render,
294
- { raws, fag },
295
- { element, attrName: _RawSet.DR_FOR_OF_NAME, attr: drAttr.drForOf, attrs: drAttr },
296
- { config, obj, operatorAround: config.operatorAround?.drForOf },
297
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
298
- ),
299
- new DrThisProperty(
300
- this,
301
- __render,
302
- { raws, fag },
303
- { element, attrName: _RawSet.DR_THIS_PROPERTY_NAME, attr: drAttr.drThisProperty, attrs: drAttr },
304
- { config, obj, operatorAround: config.operatorAround?.drThisProperty },
305
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
306
- ),
307
- new DrAppender(
308
- this,
309
- __render,
310
- { raws, fag },
311
- { element, attrName: _RawSet.DR_APPENDER_NAME, attr: drAttr.drAppender, attrs: drAttr },
312
- { config, obj, operatorAround: config.operatorAround?.drAppender },
313
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
314
- ),
315
- new DrRepeat(
316
- this,
317
- __render,
318
- { raws, fag },
319
- { element, attrName: _RawSet.DR_REPEAT_NAME, attr: drAttr.drRepeat, attrs: drAttr },
320
- { config, obj, operatorAround: config.operatorAround?.drRepeat },
321
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
322
- ),
323
- new DrTargetElementIsElement(
324
- this,
325
- __render,
326
- { raws, fag },
327
- {
328
- element,
329
- attrName: _RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME,
330
- attr: drAttr.drReplaceTargetElementIs,
331
- attrs: drAttr
332
- },
333
- { config, obj },
334
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
335
- ),
336
- new DrTargetElement(
337
- this,
338
- __render,
339
- { raws, fag },
340
- { element, attrs: drAttr },
341
- { config, obj },
342
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
343
- ),
344
- new DrTargetAttr(
345
- this,
346
- __render,
347
- { raws, fag },
348
- { element, attrs: drAttr },
349
- { config, obj },
350
- { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }
351
- )
257
+ new DrIf(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_IF_NAME, attr: drAttr.drIf, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drIf }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
258
+ new DrStripElement(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_STRIP_NAME, attr: drAttr.drStripElement, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drThis }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
259
+ new DrThis(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_THIS_NAME, attr: drAttr.drThis, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drThis }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
260
+ new DrForm(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_FOR_NAME, attr: drAttr.drForm, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drForm }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
261
+ new DrInnerText(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_INNERTEXT_NAME, attr: drAttr.drInnerText, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drInnerText }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
262
+ new DrInnerHTML(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_INNERHTML_NAME, attr: drAttr.drInnerHTML, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drInnerHTML }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
263
+ new DrFor(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_FOR_NAME, attr: drAttr.drFor, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drFor }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
264
+ new DrForOf(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_FOR_OF_NAME, attr: drAttr.drForOf, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drForOf }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
265
+ new DrThisProperty(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_THIS_PROPERTY_NAME, attr: drAttr.drThisProperty, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drThisProperty }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
266
+ new DrAppender(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_APPENDER_NAME, attr: drAttr.drAppender, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drAppender }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
267
+ new DrRepeat(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_REPEAT_NAME, attr: drAttr.drRepeat, attrs: drAttr }, { config, obj, operatorAround: config.operatorAround?.drRepeat }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
268
+ new DrTargetElementIsElement(this, __render, { raws, fag }, { element, attrName: _RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME, attr: drAttr.drReplaceTargetElementIs, attrs: drAttr }, { config, obj }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
269
+ new DrTargetElement(this, __render, { raws, fag }, { element, attrs: drAttr }, { config, obj }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks }),
270
+ new DrTargetAttr(this, __render, { raws, fag }, { element, attrs: drAttr }, { config, obj }, { onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks })
352
271
  ];
353
272
  for (const operator of operators) {
354
273
  const state = await operator.start();
@@ -411,6 +330,7 @@ const _RawSet = class _RawSet {
411
330
  }
412
331
  });
413
332
  }
333
+ console.groupEnd();
414
334
  return { raws, executedOperators };
415
335
  }
416
336
  // 중요 스타일 적용 부분
@@ -529,7 +449,7 @@ const _RawSet = class _RawSet {
529
449
  }
530
450
  if (element2.hasAttribute(EventManager.attrAttrName)) {
531
451
  const script = element2.getAttribute(EventManager.attrAttrName) ?? "";
532
- const keyValuePairs = Array.from(script.matchAll(/(\w+):\s*([^,}]+)/g)).map((match) => ({
452
+ const keyValuePairs = Array.from(script.matchAll(/['"]?([\w-_]+)['"]?:\s*([^,}]+)/g)).map((match) => ({
533
453
  key: match[1],
534
454
  value: match[2]
535
455
  }));
@@ -539,20 +459,22 @@ const _RawSet = class _RawSet {
539
459
  }
540
460
  const targetElementIs = element2.getAttribute(_RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME);
541
461
  const targetElementNames = config.targetElements?.map((it) => it.name.toLowerCase()) ?? [];
462
+ targetElementNames.push(..._RawSet.DR_ELEMENTS);
542
463
  const isElement = targetElementNames.includes(element2.tagName.toLowerCase()) || targetElementNames.includes(targetElementIs?.toLowerCase());
543
464
  const targetAttrNames = (config.targetAttrs?.map((it) => it.name) ?? []).concat([..._RawSet.DR_ATTRIBUTES]);
544
465
  const normalAttrs = /* @__PURE__ */ new Map();
545
466
  const linkVariables = /* @__PURE__ */ new Map();
546
467
  const linkNames = EventManager.linkAttrs.map((it) => it.name);
547
468
  const isAttr = element2.getAttributeNames().filter((it) => !EventManager.noDetectAttr.includes(it)).filter((it) => {
548
- const value = element2.getAttribute(it);
469
+ const value = element2.getAttribute(it)?.trim();
549
470
  if (value && linkNames.includes(it)) {
550
471
  linkVariables.set(it, value);
551
472
  } else if (value && _RawSet.isExpression(value)) {
552
473
  const variablePaths = _RawSet.expressionGroups(value).map((it2) => ({
553
- origin: it2[0],
554
- inner: it2[1]
474
+ origin: it2[0].trim(),
475
+ inner: it2[1].trim()
555
476
  }));
477
+ const isStringTemplate = variablePaths.length > 1 || variablePaths[0] && variablePaths[0].origin !== value;
556
478
  let targetScript = value;
557
479
  variablePaths.forEach((it2) => {
558
480
  let r3 = it2.inner.replace(/#[^#]*#/g, "({})");
@@ -565,7 +487,7 @@ const _RawSet = class _RawSet {
565
487
  } else {
566
488
  element2.setAttribute(it, cval);
567
489
  }
568
- normalAttrs.set(it, { originalAttrValue: value, variablePaths });
490
+ normalAttrs.set(it, { originalAttrValue: value, variablePaths, isStringTemplate });
569
491
  }
570
492
  const isTargetAttr = targetAttrNames.includes(it.toLowerCase());
571
493
  return isTargetAttr;
@@ -636,7 +558,8 @@ const _RawSet = class _RawSet {
636
558
  lasterIndex = regexArr.index + it.content.length;
637
559
  }
638
560
  template.content.append(config.window.document.createTextNode(text.substring(lasterIndex, text.length)));
639
- currentNode2?.parentNode?.replaceChild(template.content, currentNode2);
561
+ const p = currentNode2?.parentNode;
562
+ p?.replaceChild(template.content, currentNode2);
640
563
  } else if (currentNode2.nodeType === Node2.ELEMENT_NODE) {
641
564
  const uuid = `${RandomUtils.alphabet(40)}`;
642
565
  const element2 = currentNode2;
@@ -645,6 +568,7 @@ const _RawSet = class _RawSet {
645
568
  const startEndPoint = _RawSet.createStartEndPoint({ node: element2, id: uuid, type: elementType }, config);
646
569
  const targetElementIs = element2.getAttribute(_RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME);
647
570
  const targetElementNames = config.targetElements?.map((it) => it.name.toLowerCase()) ?? [];
571
+ targetElementNames.push(..._RawSet.DR_ELEMENTS);
648
572
  const isElement = targetElementNames.includes(element2.tagName.toLowerCase()) || targetElementNames.includes(targetElementIs?.toLowerCase());
649
573
  const targetAttrNames = (config.targetAttrs?.map((it) => it.name) ?? []).concat(_RawSet.DR_ATTRIBUTES);
650
574
  const isAttr = element2.getAttributeNames().filter((it) => targetAttrNames.includes(it.toLowerCase())).length > 0;
@@ -1007,9 +931,11 @@ const _RawSet = class _RawSet {
1007
931
  if (templateReplacements.length > 0) {
1008
932
  targetElement.innerHTML = StringUtils.replaceSequentially(targetElement.innerHTML, templateReplacements);
1009
933
  }
934
+ const componentName = targetElement.getAttribute(_RawSet.DR_VARIABLE_NAME_OPTIONNAME) ?? "component";
1010
935
  const optionThisName = targetElement.getAttribute(_RawSet.DR_THIS_NAME_OPTIONNAME);
1011
936
  targetElement.getAttributeNames().forEach((it) => targetElement.setAttribute(it, targetElement.getAttribute(it).replace(/#this#/g, drThis)));
1012
937
  const thisRandom = this.drThisEncoding(targetElement, drThis, { asIs: /@this@/g });
938
+ targetElement.innerHTML = targetElement.innerHTML.replaceAll(`#${componentName}#`, drThis);
1013
939
  if (optionThisName) {
1014
940
  targetElement.innerHTML = targetElement.innerHTML.replaceAll(`@${optionThisName}@`, drThis);
1015
941
  }
@@ -1183,7 +1109,8 @@ const _RawSet = class _RawSet {
1183
1109
  );
1184
1110
  if (data && innerHTMLThisRandom) {
1185
1111
  const template2 = config.window.document.createElement("template");
1186
- template2.innerHTML = ElementUtils.toInnerHTML(data, { document: config.window.document }).replace(RegExp(innerHTMLThisRandom, "g"), "this.");
1112
+ let s = ElementUtils.toInnerHTML(data, { document: config.window.document });
1113
+ template2.innerHTML = s.replace(RegExp(innerHTMLThisRandom, "g"), "this.");
1187
1114
  ;
1188
1115
  data = template2.content;
1189
1116
  }
@@ -1223,22 +1150,17 @@ const _RawSet = class _RawSet {
1223
1150
  new Map(JSON.parse(normalAttribute)).forEach((v, k) => {
1224
1151
  const variablePaths = v.variablePaths;
1225
1152
  let targetScript = v.originalAttrValue.trim();
1226
- let checktargetScript = v.originalAttrValue.trim();
1227
- variablePaths.forEach((it) => {
1228
- checktargetScript = targetScript.replaceAll(it.origin, "");
1229
- });
1230
- let isScriptValue = checktargetScript.length === 0 && variablePaths.length === 1;
1231
- if (isScriptValue) {
1232
- let r = ObjectUtils.Path.toOptionalChainPath(variablePaths[0].inner);
1233
- targetScript = targetScript.replaceAll(variablePaths[0].origin, r);
1234
- } else {
1153
+ if (v.isStringTemplate) {
1235
1154
  variablePaths.forEach((it) => {
1236
1155
  let r = ObjectUtils.Path.toOptionalChainPath(it.inner);
1237
1156
  targetScript = targetScript.replaceAll(it.origin, `\${${r}}`);
1238
1157
  });
1158
+ } else {
1159
+ let r = ObjectUtils.Path.toOptionalChainPath(variablePaths[0].inner);
1160
+ targetScript = targetScript.replaceAll(variablePaths[0].origin, r);
1239
1161
  }
1240
1162
  const cval = ObjectUtils.Script.evaluateReturn(
1241
- { bodyScript: config.script, returnScript: isScriptValue ? targetScript : "`" + targetScript + "`" },
1163
+ { bodyScript: config.script, returnScript: v.isStringTemplate ? "`" + targetScript + "`" : targetScript },
1242
1164
  Object.assign(config.obj, config.renderData ? { __render: config.renderData } : void 0)
1243
1165
  );
1244
1166
  attribute[k] = cval;
@@ -1262,6 +1184,8 @@ _RawSet.DR_INNERTEXT_NAME = "dr-inner-text";
1262
1184
  _RawSet.DR_DETECT_NAME = "dr-detect";
1263
1185
  _RawSet.DR_STRIP_NAME = "dr-strip";
1264
1186
  _RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME = "dr-replace-target-element-is";
1187
+ // elementName
1188
+ _RawSet.DR_TARGET_ELEMENT_ELEMENTNAME = "dr-target-element";
1265
1189
  // 감지처리되는 옵션
1266
1190
  _RawSet.DR_DETECT_IF_OPTIONNAME = "dr-detect-option-if";
1267
1191
  _RawSet.DR_DETECT_FILTER_OPTIONNAME = "dr-detect-option-filter";
@@ -1328,6 +1252,9 @@ _RawSet.DR_TAGS = [];
1328
1252
  // public static readonly DR_REPLACE_ACTION_ATTRIBUTES = [
1329
1253
  // RawSet.DR_REPLACE_TARGET_ELEMENT_IS_NAME
1330
1254
  // ]
1255
+ _RawSet.DR_ELEMENTS = [
1256
+ _RawSet.DR_TARGET_ELEMENT_ELEMENTNAME
1257
+ ];
1331
1258
  _RawSet.DR_ATTRIBUTES = [
1332
1259
  _RawSet.DR_NAME,
1333
1260
  _RawSet.DR_APPENDER_NAME,
@@ -1341,7 +1268,7 @@ _RawSet.DR_ATTRIBUTES = [
1341
1268
  _RawSet.DR_INNERHTML_NAME,
1342
1269
  _RawSet.DR_INNERTEXT_NAME,
1343
1270
  _RawSet.DR_REPEAT_NAME,
1344
- _RawSet.DR_DETECT_NAME,
1271
+ // RawSet.DR_DETECT_NAME, // TODO: DrDetect 오퍼레이터 구현 필요
1345
1272
  _RawSet.DR_STRIP_NAME
1346
1273
  ];
1347
1274
  let RawSet = _RawSet;