@dooboostore/dom-render 1.0.112 → 1.0.113

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 (519) hide show
  1. package/README.MD +449 -15
  2. package/dist/cjs/DomRender.js +6 -6
  3. package/dist/cjs/DomRender.js.map +3 -3
  4. package/dist/cjs/DomRenderProxy.js +124 -101
  5. package/dist/cjs/DomRenderProxy.js.map +3 -3
  6. package/dist/cjs/bundle-entry.js +1 -3
  7. package/dist/cjs/bundle-entry.js.map +2 -2
  8. package/dist/cjs/components/ComponentBase.js +46 -34
  9. package/dist/cjs/components/ComponentBase.js.map +3 -3
  10. package/dist/cjs/components/ComponentSet.js.map +2 -2
  11. package/dist/cjs/components/details/Details.js +6 -6
  12. package/dist/cjs/components/details/Details.js.map +3 -3
  13. package/dist/cjs/components/input/Input.js +12 -14
  14. package/dist/cjs/components/input/Input.js.map +3 -3
  15. package/dist/cjs/components/promise/PromiseSwitch.js +4 -4
  16. package/dist/cjs/components/promise/PromiseSwitch.js.map +3 -3
  17. package/dist/cjs/components/router/Route.js.map +1 -1
  18. package/dist/cjs/components/router/RouterOutlet.js +3 -0
  19. package/dist/cjs/components/router/RouterOutlet.js.map +2 -2
  20. package/dist/cjs/components/select/Select.js +6 -6
  21. package/dist/cjs/components/select/Select.js.map +3 -3
  22. package/dist/cjs/components/this/This.js +3 -0
  23. package/dist/cjs/components/this/This.js.map +2 -2
  24. package/dist/cjs/configs/DomRenderConfig.js.map +1 -1
  25. package/dist/cjs/configs/TargetElement.js.map +1 -1
  26. package/dist/cjs/decorators/DomRenderNoProxy.js +5 -5
  27. package/dist/cjs/decorators/DomRenderNoProxy.js.map +3 -3
  28. package/dist/cjs/events/EventManager.js +153 -124
  29. package/dist/cjs/events/EventManager.js.map +3 -3
  30. package/dist/cjs/index.js +31 -1
  31. package/dist/cjs/index.js.map +2 -2
  32. package/dist/cjs/messenger/Messenger.js.map +1 -1
  33. package/dist/cjs/operators/Dr.js +2 -2
  34. package/dist/cjs/operators/Dr.js.map +2 -2
  35. package/dist/cjs/operators/DrAppender.js +98 -35
  36. package/dist/cjs/operators/DrAppender.js.map +2 -2
  37. package/dist/cjs/operators/DrFor.js +2 -2
  38. package/dist/cjs/operators/DrFor.js.map +2 -2
  39. package/dist/cjs/operators/DrForOf.js +98 -119
  40. package/dist/cjs/operators/DrForOf.js.map +2 -2
  41. package/dist/cjs/operators/DrForm.js +11 -11
  42. package/dist/cjs/operators/DrForm.js.map +3 -3
  43. package/dist/cjs/operators/DrIf.js +4 -4
  44. package/dist/cjs/operators/DrIf.js.map +2 -2
  45. package/dist/cjs/operators/DrInnerHTML.js +2 -2
  46. package/dist/cjs/operators/DrInnerHTML.js.map +2 -2
  47. package/dist/cjs/operators/DrInnerText.js +2 -2
  48. package/dist/cjs/operators/DrInnerText.js.map +2 -2
  49. package/dist/cjs/operators/DrRepeat.js +2 -2
  50. package/dist/cjs/operators/DrRepeat.js.map +2 -2
  51. package/dist/cjs/operators/DrStripElement.js +2 -2
  52. package/dist/cjs/operators/DrStripElement.js.map +2 -2
  53. package/dist/cjs/operators/DrTargetElement.js +5 -4
  54. package/dist/cjs/operators/DrTargetElement.js.map +2 -2
  55. package/dist/cjs/operators/DrTargetElementIsElement.js +5 -4
  56. package/dist/cjs/operators/DrTargetElementIsElement.js.map +2 -2
  57. package/dist/cjs/operators/DrThis.js +2 -2
  58. package/dist/cjs/operators/DrThis.js.map +2 -2
  59. package/dist/cjs/operators/DrThisProperty.js +4 -4
  60. package/dist/cjs/operators/DrThisProperty.js.map +2 -2
  61. package/dist/cjs/operators/OperatorExecuter.js +3 -3
  62. package/dist/cjs/operators/OperatorExecuter.js.map +2 -2
  63. package/dist/cjs/rawsets/Attrs.js.map +1 -1
  64. package/dist/cjs/rawsets/CreatorMetaData.js.map +1 -1
  65. package/dist/cjs/rawsets/RawSet.js +237 -214
  66. package/dist/cjs/rawsets/RawSet.js.map +3 -3
  67. package/dist/cjs/rawsets/Render.js.map +1 -1
  68. package/dist/cjs/rawsets/index.js +30 -0
  69. package/dist/cjs/rawsets/index.js.map +3 -3
  70. package/dist/esm/DomRender.js +3 -3
  71. package/dist/esm/DomRender.js.map +1 -1
  72. package/dist/esm/DomRenderProxy.js +110 -87
  73. package/dist/esm/DomRenderProxy.js.map +3 -3
  74. package/dist/esm/bundle-entry.js +1 -3
  75. package/dist/esm/bundle-entry.js.map +2 -2
  76. package/dist/esm/components/ComponentBase.js +21 -9
  77. package/dist/esm/components/ComponentBase.js.map +2 -2
  78. package/dist/esm/components/ComponentSet.js.map +2 -2
  79. package/dist/esm/components/details/Details.js +2 -2
  80. package/dist/esm/components/details/Details.js.map +1 -1
  81. package/dist/esm/components/input/Input.js +6 -8
  82. package/dist/esm/components/input/Input.js.map +2 -2
  83. package/dist/esm/components/promise/PromiseSwitch.js +2 -2
  84. package/dist/esm/components/promise/PromiseSwitch.js.map +1 -1
  85. package/dist/esm/components/router/Route.js.map +1 -1
  86. package/dist/esm/components/router/RouterOutlet.js +3 -0
  87. package/dist/esm/components/router/RouterOutlet.js.map +2 -2
  88. package/dist/esm/components/select/Select.js +3 -3
  89. package/dist/esm/components/select/Select.js.map +1 -1
  90. package/dist/esm/components/this/This.js +3 -0
  91. package/dist/esm/components/this/This.js.map +2 -2
  92. package/dist/esm/decorators/DomRenderNoProxy.js +2 -2
  93. package/dist/esm/decorators/DomRenderNoProxy.js.map +1 -1
  94. package/dist/esm/events/EventManager.js +120 -91
  95. package/dist/esm/events/EventManager.js.map +2 -2
  96. package/dist/esm/index.js +49 -1
  97. package/dist/esm/index.js.map +2 -2
  98. package/dist/esm/messenger/Messenger.js.map +1 -1
  99. package/dist/esm/operators/Dr.js +1 -1
  100. package/dist/esm/operators/Dr.js.map +2 -2
  101. package/dist/esm/operators/DrAppender.js +98 -35
  102. package/dist/esm/operators/DrAppender.js.map +2 -2
  103. package/dist/esm/operators/DrFor.js +1 -1
  104. package/dist/esm/operators/DrFor.js.map +2 -2
  105. package/dist/esm/operators/DrForOf.js +98 -119
  106. package/dist/esm/operators/DrForOf.js.map +2 -2
  107. package/dist/esm/operators/DrForm.js +3 -3
  108. package/dist/esm/operators/DrForm.js.map +2 -2
  109. package/dist/esm/operators/DrIf.js +1 -1
  110. package/dist/esm/operators/DrIf.js.map +2 -2
  111. package/dist/esm/operators/DrInnerHTML.js +1 -1
  112. package/dist/esm/operators/DrInnerHTML.js.map +2 -2
  113. package/dist/esm/operators/DrInnerText.js +1 -1
  114. package/dist/esm/operators/DrInnerText.js.map +2 -2
  115. package/dist/esm/operators/DrRepeat.js +1 -1
  116. package/dist/esm/operators/DrRepeat.js.map +2 -2
  117. package/dist/esm/operators/DrStripElement.js +1 -1
  118. package/dist/esm/operators/DrStripElement.js.map +2 -2
  119. package/dist/esm/operators/DrTargetElement.js +4 -3
  120. package/dist/esm/operators/DrTargetElement.js.map +2 -2
  121. package/dist/esm/operators/DrTargetElementIsElement.js +4 -3
  122. package/dist/esm/operators/DrTargetElementIsElement.js.map +2 -2
  123. package/dist/esm/operators/DrThis.js +1 -1
  124. package/dist/esm/operators/DrThis.js.map +1 -1
  125. package/dist/esm/operators/DrThisProperty.js +2 -2
  126. package/dist/esm/operators/DrThisProperty.js.map +1 -1
  127. package/dist/esm/operators/OperatorExecuter.js +1 -1
  128. package/dist/esm/operators/OperatorExecuter.js.map +1 -1
  129. package/dist/esm/rawsets/RawSet.js +195 -172
  130. package/dist/esm/rawsets/RawSet.js.map +2 -2
  131. package/dist/esm/rawsets/index.js +26 -0
  132. package/dist/esm/rawsets/index.js.map +3 -3
  133. package/dist/esm-bundle/dooboostore-dom-render.esm.js +11429 -8895
  134. package/dist/esm-bundle/dooboostore-dom-render.esm.js.map +4 -4
  135. package/dist/types/DomRender.d.ts +3 -3
  136. package/dist/types/DomRender.d.ts.map +1 -1
  137. package/dist/types/DomRenderProxy.d.ts +4 -0
  138. package/dist/types/DomRenderProxy.d.ts.map +1 -1
  139. package/dist/types/bundle-entry.d.ts +1 -3
  140. package/dist/types/bundle-entry.d.ts.map +1 -1
  141. package/dist/types/components/ComponentBase.d.ts +1 -1
  142. package/dist/types/components/ComponentBase.d.ts.map +1 -1
  143. package/dist/types/components/ComponentSet.d.ts +4 -4
  144. package/dist/types/components/ComponentSet.d.ts.map +1 -1
  145. package/dist/types/components/a/A.d.ts +1 -1
  146. package/dist/types/components/appender/Appender.d.ts +1 -1
  147. package/dist/types/components/checkbox/CheckBox.d.ts +3 -3
  148. package/dist/types/components/choose/Choose.d.ts +3 -3
  149. package/dist/types/components/details/Details.d.ts +4 -4
  150. package/dist/types/components/forOf/ForOf.d.ts +1 -1
  151. package/dist/types/components/if/If.d.ts +1 -1
  152. package/dist/types/components/index.d.ts +39 -39
  153. package/dist/types/components/index.d.ts.map +1 -1
  154. package/dist/types/components/input/Input.d.ts +1 -1
  155. package/dist/types/components/input/Input.d.ts.map +1 -1
  156. package/dist/types/components/promise/PromiseSwitch.d.ts +5 -5
  157. package/dist/types/components/radio/Radio.d.ts +3 -3
  158. package/dist/types/components/router/Route.d.ts +2 -2
  159. package/dist/types/components/router/RouterOutlet.d.ts +2 -1
  160. package/dist/types/components/router/RouterOutlet.d.ts.map +1 -1
  161. package/dist/types/components/select/Select.d.ts +10 -10
  162. package/dist/types/components/this/This.d.ts +2 -1
  163. package/dist/types/components/this/This.d.ts.map +1 -1
  164. package/dist/types/components/timer/Timer.d.ts +1 -1
  165. package/dist/types/configs/DomRenderConfig.d.ts +2 -2
  166. package/dist/types/configs/DomRenderConfig.d.ts.map +1 -1
  167. package/dist/types/configs/TargetElement.d.ts +3 -3
  168. package/dist/types/configs/TargetElement.d.ts.map +1 -1
  169. package/dist/types/events/EventManager.d.ts +4 -0
  170. package/dist/types/events/EventManager.d.ts.map +1 -1
  171. package/dist/types/index.d.ts +12 -0
  172. package/dist/types/index.d.ts.map +1 -1
  173. package/dist/types/messenger/Messenger.d.ts +1 -1
  174. package/dist/types/messenger/Messenger.d.ts.map +1 -1
  175. package/dist/types/operators/Dr.d.ts.map +1 -1
  176. package/dist/types/operators/DrAppender.d.ts.map +1 -1
  177. package/dist/types/operators/DrFor.d.ts.map +1 -1
  178. package/dist/types/operators/DrForOf.d.ts.map +1 -1
  179. package/dist/types/operators/DrForm.d.ts.map +1 -1
  180. package/dist/types/operators/DrIf.d.ts.map +1 -1
  181. package/dist/types/operators/DrInnerHTML.d.ts.map +1 -1
  182. package/dist/types/operators/DrInnerText.d.ts.map +1 -1
  183. package/dist/types/operators/DrRepeat.d.ts.map +1 -1
  184. package/dist/types/operators/DrStripElement.d.ts.map +1 -1
  185. package/dist/types/operators/DrTargetElementIsElement.d.ts.map +1 -1
  186. package/dist/types/rawsets/Attrs.d.ts +5 -0
  187. package/dist/types/rawsets/Attrs.d.ts.map +1 -1
  188. package/dist/types/rawsets/CreatorMetaData.d.ts +1 -1
  189. package/dist/types/rawsets/CreatorMetaData.d.ts.map +1 -1
  190. package/dist/types/rawsets/RawSet.d.ts +10 -8
  191. package/dist/types/rawsets/RawSet.d.ts.map +1 -1
  192. package/dist/types/rawsets/Render.d.ts +1 -1
  193. package/dist/types/rawsets/Render.d.ts.map +1 -1
  194. package/dist/types/rawsets/index.d.ts +20 -0
  195. package/dist/types/rawsets/index.d.ts.map +1 -1
  196. package/dist/umd-bundle/dooboostore-dom-render.umd.js +11491 -8957
  197. package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
  198. package/package.json +6 -10
  199. package/src/DomRender.ts +5 -5
  200. package/src/DomRenderProxy.ts +195 -124
  201. package/src/bundle-entry.ts +2 -4
  202. package/src/components/ComponentBase.ts +30 -11
  203. package/src/components/ComponentSet.ts +3 -3
  204. package/src/components/details/Details.ts +3 -3
  205. package/src/components/dialog/example/ImageEditorDialog.ts +10 -10
  206. package/src/components/input/Input.ts +7 -9
  207. package/src/components/promise/PromiseSwitch.ts +2 -2
  208. package/src/components/router/Route.ts +1 -1
  209. package/src/components/router/RouterOutlet.ts +4 -0
  210. package/src/components/select/Select.ts +4 -4
  211. package/src/components/this/This.ts +3 -0
  212. package/src/configs/DomRenderConfig.ts +9 -9
  213. package/src/configs/TargetElement.ts +3 -3
  214. package/src/decorators/DomRenderNoProxy.ts +2 -2
  215. package/src/events/EventManager.ts +171 -101
  216. package/src/index.ts +32 -17
  217. package/src/messenger/Messenger.ts +1 -1
  218. package/src/operators/Dr.ts +1 -2
  219. package/src/operators/DrAppender.ts +121 -56
  220. package/src/operators/DrFor.ts +1 -2
  221. package/src/operators/DrForOf.ts +102 -128
  222. package/src/operators/DrForm.ts +3 -4
  223. package/src/operators/DrIf.ts +1 -2
  224. package/src/operators/DrInnerHTML.ts +1 -2
  225. package/src/operators/DrInnerText.ts +1 -2
  226. package/src/operators/DrRepeat.ts +1 -2
  227. package/src/operators/DrStripElement.ts +1 -2
  228. package/src/operators/DrTargetElement.ts +4 -4
  229. package/src/operators/DrTargetElementIsElement.ts +4 -3
  230. package/src/operators/DrThis.ts +1 -1
  231. package/src/operators/DrThisProperty.ts +2 -2
  232. package/src/operators/OperatorExecuter.ts +1 -1
  233. package/src/rawsets/Attrs.ts +32 -27
  234. package/src/rawsets/CreatorMetaData.ts +1 -1
  235. package/src/rawsets/RawSet.ts +226 -256
  236. package/src/rawsets/Render.ts +1 -1
  237. package/src/rawsets/index.ts +23 -0
  238. package/tsconfig.json +2 -1
  239. package/dist/cjs/iterators/Range.js +0 -85
  240. package/dist/cjs/iterators/Range.js.map +0 -7
  241. package/dist/cjs/iterators/index.js +0 -18
  242. package/dist/cjs/iterators/index.js.map +0 -7
  243. package/dist/cjs/routers/HashRouter.js +0 -110
  244. package/dist/cjs/routers/HashRouter.js.map +0 -7
  245. package/dist/cjs/routers/PathRouter.js +0 -102
  246. package/dist/cjs/routers/PathRouter.js.map +0 -7
  247. package/dist/cjs/routers/Router.js +0 -192
  248. package/dist/cjs/routers/Router.js.map +0 -7
  249. package/dist/cjs/routers/index.js +0 -20
  250. package/dist/cjs/routers/index.js.map +0 -7
  251. package/dist/cjs/validators/AllCheckedValidatorArray.js +0 -32
  252. package/dist/cjs/validators/AllCheckedValidatorArray.js.map +0 -7
  253. package/dist/cjs/validators/AllUnCheckedValidatorArray.js +0 -32
  254. package/dist/cjs/validators/AllUnCheckedValidatorArray.js.map +0 -7
  255. package/dist/cjs/validators/CheckedValidator.js +0 -32
  256. package/dist/cjs/validators/CheckedValidator.js.map +0 -7
  257. package/dist/cjs/validators/CountEqualsCheckedValidatorArray.js +0 -33
  258. package/dist/cjs/validators/CountEqualsCheckedValidatorArray.js.map +0 -7
  259. package/dist/cjs/validators/CountEqualsUnCheckedValidatorArray.js +0 -33
  260. package/dist/cjs/validators/CountEqualsUnCheckedValidatorArray.js.map +0 -7
  261. package/dist/cjs/validators/CountGreaterThanCheckedValidatorArray.js +0 -33
  262. package/dist/cjs/validators/CountGreaterThanCheckedValidatorArray.js.map +0 -7
  263. package/dist/cjs/validators/CountGreaterThanEqualsCheckedValidatorArray.js +0 -33
  264. package/dist/cjs/validators/CountGreaterThanEqualsCheckedValidatorArray.js.map +0 -7
  265. package/dist/cjs/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +0 -33
  266. package/dist/cjs/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js.map +0 -7
  267. package/dist/cjs/validators/CountGreaterThanUnCheckedValidatorArray.js +0 -33
  268. package/dist/cjs/validators/CountGreaterThanUnCheckedValidatorArray.js.map +0 -7
  269. package/dist/cjs/validators/CountLessThanCheckedValidatorArray.js +0 -33
  270. package/dist/cjs/validators/CountLessThanCheckedValidatorArray.js.map +0 -7
  271. package/dist/cjs/validators/CountLessThanEqualsCheckedValidatorArray.js +0 -33
  272. package/dist/cjs/validators/CountLessThanEqualsCheckedValidatorArray.js.map +0 -7
  273. package/dist/cjs/validators/CountLessThanEqualsUnCheckedValidatorArray.js +0 -33
  274. package/dist/cjs/validators/CountLessThanEqualsUnCheckedValidatorArray.js.map +0 -7
  275. package/dist/cjs/validators/CountLessThanUnCheckedValidatorArray.js +0 -33
  276. package/dist/cjs/validators/CountLessThanUnCheckedValidatorArray.js.map +0 -7
  277. package/dist/cjs/validators/CountUnCheckedValidatorArray.js +0 -33
  278. package/dist/cjs/validators/CountUnCheckedValidatorArray.js.map +0 -7
  279. package/dist/cjs/validators/EmptyValidator.js +0 -33
  280. package/dist/cjs/validators/EmptyValidator.js.map +0 -7
  281. package/dist/cjs/validators/ExcludeCheckedValidatorArray.js +0 -36
  282. package/dist/cjs/validators/ExcludeCheckedValidatorArray.js.map +0 -7
  283. package/dist/cjs/validators/FormValidator.js +0 -38
  284. package/dist/cjs/validators/FormValidator.js.map +0 -7
  285. package/dist/cjs/validators/IncludeCheckedValidatorArray.js +0 -36
  286. package/dist/cjs/validators/IncludeCheckedValidatorArray.js.map +0 -7
  287. package/dist/cjs/validators/MultipleValidator.js +0 -46
  288. package/dist/cjs/validators/MultipleValidator.js.map +0 -7
  289. package/dist/cjs/validators/NonPassValidator.js +0 -32
  290. package/dist/cjs/validators/NonPassValidator.js.map +0 -7
  291. package/dist/cjs/validators/NotEmptyValidator.js +0 -33
  292. package/dist/cjs/validators/NotEmptyValidator.js.map +0 -7
  293. package/dist/cjs/validators/NotRegExpTestValidator.js +0 -40
  294. package/dist/cjs/validators/NotRegExpTestValidator.js.map +0 -7
  295. package/dist/cjs/validators/PassValidator.js +0 -32
  296. package/dist/cjs/validators/PassValidator.js.map +0 -7
  297. package/dist/cjs/validators/RegExpTestValidator.js +0 -40
  298. package/dist/cjs/validators/RegExpTestValidator.js.map +0 -7
  299. package/dist/cjs/validators/RequiredValidator.js +0 -33
  300. package/dist/cjs/validators/RequiredValidator.js.map +0 -7
  301. package/dist/cjs/validators/UnCheckedValidator.js +0 -32
  302. package/dist/cjs/validators/UnCheckedValidator.js.map +0 -7
  303. package/dist/cjs/validators/ValidMultipleValidator.js +0 -34
  304. package/dist/cjs/validators/ValidMultipleValidator.js.map +0 -7
  305. package/dist/cjs/validators/ValidValidator.js +0 -33
  306. package/dist/cjs/validators/ValidValidator.js.map +0 -7
  307. package/dist/cjs/validators/ValidValidatorArray.js +0 -33
  308. package/dist/cjs/validators/ValidValidatorArray.js.map +0 -7
  309. package/dist/cjs/validators/Validator.js +0 -206
  310. package/dist/cjs/validators/Validator.js.map +0 -7
  311. package/dist/cjs/validators/ValidatorArray.js +0 -91
  312. package/dist/cjs/validators/ValidatorArray.js.map +0 -7
  313. package/dist/cjs/validators/ValueEqualsValidator.js +0 -33
  314. package/dist/cjs/validators/ValueEqualsValidator.js.map +0 -7
  315. package/dist/cjs/validators/ValueNotEqualsValidator.js +0 -33
  316. package/dist/cjs/validators/ValueNotEqualsValidator.js.map +0 -7
  317. package/dist/cjs/validators/index.js +0 -48
  318. package/dist/cjs/validators/index.js.map +0 -7
  319. package/dist/esm/iterators/Range.js +0 -66
  320. package/dist/esm/iterators/Range.js.map +0 -7
  321. package/dist/esm/iterators/index.js +0 -2
  322. package/dist/esm/iterators/index.js.map +0 -7
  323. package/dist/esm/routers/HashRouter.js +0 -91
  324. package/dist/esm/routers/HashRouter.js.map +0 -7
  325. package/dist/esm/routers/PathRouter.js +0 -83
  326. package/dist/esm/routers/PathRouter.js.map +0 -7
  327. package/dist/esm/routers/Router.js +0 -173
  328. package/dist/esm/routers/Router.js.map +0 -7
  329. package/dist/esm/routers/index.js +0 -4
  330. package/dist/esm/routers/index.js.map +0 -7
  331. package/dist/esm/validators/AllCheckedValidatorArray.js +0 -13
  332. package/dist/esm/validators/AllCheckedValidatorArray.js.map +0 -7
  333. package/dist/esm/validators/AllUnCheckedValidatorArray.js +0 -13
  334. package/dist/esm/validators/AllUnCheckedValidatorArray.js.map +0 -7
  335. package/dist/esm/validators/CheckedValidator.js +0 -13
  336. package/dist/esm/validators/CheckedValidator.js.map +0 -7
  337. package/dist/esm/validators/CountEqualsCheckedValidatorArray.js +0 -14
  338. package/dist/esm/validators/CountEqualsCheckedValidatorArray.js.map +0 -7
  339. package/dist/esm/validators/CountEqualsUnCheckedValidatorArray.js +0 -14
  340. package/dist/esm/validators/CountEqualsUnCheckedValidatorArray.js.map +0 -7
  341. package/dist/esm/validators/CountGreaterThanCheckedValidatorArray.js +0 -14
  342. package/dist/esm/validators/CountGreaterThanCheckedValidatorArray.js.map +0 -7
  343. package/dist/esm/validators/CountGreaterThanEqualsCheckedValidatorArray.js +0 -14
  344. package/dist/esm/validators/CountGreaterThanEqualsCheckedValidatorArray.js.map +0 -7
  345. package/dist/esm/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +0 -14
  346. package/dist/esm/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js.map +0 -7
  347. package/dist/esm/validators/CountGreaterThanUnCheckedValidatorArray.js +0 -14
  348. package/dist/esm/validators/CountGreaterThanUnCheckedValidatorArray.js.map +0 -7
  349. package/dist/esm/validators/CountLessThanCheckedValidatorArray.js +0 -14
  350. package/dist/esm/validators/CountLessThanCheckedValidatorArray.js.map +0 -7
  351. package/dist/esm/validators/CountLessThanEqualsCheckedValidatorArray.js +0 -14
  352. package/dist/esm/validators/CountLessThanEqualsCheckedValidatorArray.js.map +0 -7
  353. package/dist/esm/validators/CountLessThanEqualsUnCheckedValidatorArray.js +0 -14
  354. package/dist/esm/validators/CountLessThanEqualsUnCheckedValidatorArray.js.map +0 -7
  355. package/dist/esm/validators/CountLessThanUnCheckedValidatorArray.js +0 -14
  356. package/dist/esm/validators/CountLessThanUnCheckedValidatorArray.js.map +0 -7
  357. package/dist/esm/validators/CountUnCheckedValidatorArray.js +0 -14
  358. package/dist/esm/validators/CountUnCheckedValidatorArray.js.map +0 -7
  359. package/dist/esm/validators/EmptyValidator.js +0 -14
  360. package/dist/esm/validators/EmptyValidator.js.map +0 -7
  361. package/dist/esm/validators/ExcludeCheckedValidatorArray.js +0 -17
  362. package/dist/esm/validators/ExcludeCheckedValidatorArray.js.map +0 -7
  363. package/dist/esm/validators/FormValidator.js +0 -19
  364. package/dist/esm/validators/FormValidator.js.map +0 -7
  365. package/dist/esm/validators/IncludeCheckedValidatorArray.js +0 -17
  366. package/dist/esm/validators/IncludeCheckedValidatorArray.js.map +0 -7
  367. package/dist/esm/validators/MultipleValidator.js +0 -27
  368. package/dist/esm/validators/MultipleValidator.js.map +0 -7
  369. package/dist/esm/validators/NonPassValidator.js +0 -13
  370. package/dist/esm/validators/NonPassValidator.js.map +0 -7
  371. package/dist/esm/validators/NotEmptyValidator.js +0 -14
  372. package/dist/esm/validators/NotEmptyValidator.js.map +0 -7
  373. package/dist/esm/validators/NotRegExpTestValidator.js +0 -21
  374. package/dist/esm/validators/NotRegExpTestValidator.js.map +0 -7
  375. package/dist/esm/validators/PassValidator.js +0 -13
  376. package/dist/esm/validators/PassValidator.js.map +0 -7
  377. package/dist/esm/validators/RegExpTestValidator.js +0 -21
  378. package/dist/esm/validators/RegExpTestValidator.js.map +0 -7
  379. package/dist/esm/validators/RequiredValidator.js +0 -14
  380. package/dist/esm/validators/RequiredValidator.js.map +0 -7
  381. package/dist/esm/validators/UnCheckedValidator.js +0 -13
  382. package/dist/esm/validators/UnCheckedValidator.js.map +0 -7
  383. package/dist/esm/validators/ValidMultipleValidator.js +0 -15
  384. package/dist/esm/validators/ValidMultipleValidator.js.map +0 -7
  385. package/dist/esm/validators/ValidValidator.js +0 -14
  386. package/dist/esm/validators/ValidValidator.js.map +0 -7
  387. package/dist/esm/validators/ValidValidatorArray.js +0 -14
  388. package/dist/esm/validators/ValidValidatorArray.js.map +0 -7
  389. package/dist/esm/validators/Validator.js +0 -187
  390. package/dist/esm/validators/Validator.js.map +0 -7
  391. package/dist/esm/validators/ValidatorArray.js +0 -72
  392. package/dist/esm/validators/ValidatorArray.js.map +0 -7
  393. package/dist/esm/validators/ValueEqualsValidator.js +0 -14
  394. package/dist/esm/validators/ValueEqualsValidator.js.map +0 -7
  395. package/dist/esm/validators/ValueNotEqualsValidator.js +0 -14
  396. package/dist/esm/validators/ValueNotEqualsValidator.js.map +0 -7
  397. package/dist/esm/validators/index.js +0 -32
  398. package/dist/esm/validators/index.js.map +0 -7
  399. package/dist/types/iterators/Range.d.ts +0 -24
  400. package/dist/types/iterators/Range.d.ts.map +0 -1
  401. package/dist/types/iterators/index.d.ts +0 -2
  402. package/dist/types/iterators/index.d.ts.map +0 -1
  403. package/dist/types/routers/HashRouter.d.ts +0 -26
  404. package/dist/types/routers/HashRouter.d.ts.map +0 -1
  405. package/dist/types/routers/PathRouter.d.ts +0 -25
  406. package/dist/types/routers/PathRouter.d.ts.map +0 -1
  407. package/dist/types/routers/Router.d.ts +0 -83
  408. package/dist/types/routers/Router.d.ts.map +0 -1
  409. package/dist/types/routers/index.d.ts +0 -4
  410. package/dist/types/routers/index.d.ts.map +0 -1
  411. package/dist/types/validators/AllCheckedValidatorArray.d.ts +0 -7
  412. package/dist/types/validators/AllCheckedValidatorArray.d.ts.map +0 -1
  413. package/dist/types/validators/AllUnCheckedValidatorArray.d.ts +0 -7
  414. package/dist/types/validators/AllUnCheckedValidatorArray.d.ts.map +0 -1
  415. package/dist/types/validators/CheckedValidator.d.ts +0 -6
  416. package/dist/types/validators/CheckedValidator.d.ts.map +0 -1
  417. package/dist/types/validators/CountEqualsCheckedValidatorArray.d.ts +0 -8
  418. package/dist/types/validators/CountEqualsCheckedValidatorArray.d.ts.map +0 -1
  419. package/dist/types/validators/CountEqualsUnCheckedValidatorArray.d.ts +0 -8
  420. package/dist/types/validators/CountEqualsUnCheckedValidatorArray.d.ts.map +0 -1
  421. package/dist/types/validators/CountGreaterThanCheckedValidatorArray.d.ts +0 -8
  422. package/dist/types/validators/CountGreaterThanCheckedValidatorArray.d.ts.map +0 -1
  423. package/dist/types/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +0 -8
  424. package/dist/types/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts.map +0 -1
  425. package/dist/types/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +0 -8
  426. package/dist/types/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts.map +0 -1
  427. package/dist/types/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +0 -8
  428. package/dist/types/validators/CountGreaterThanUnCheckedValidatorArray.d.ts.map +0 -1
  429. package/dist/types/validators/CountLessThanCheckedValidatorArray.d.ts +0 -8
  430. package/dist/types/validators/CountLessThanCheckedValidatorArray.d.ts.map +0 -1
  431. package/dist/types/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +0 -8
  432. package/dist/types/validators/CountLessThanEqualsCheckedValidatorArray.d.ts.map +0 -1
  433. package/dist/types/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +0 -8
  434. package/dist/types/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts.map +0 -1
  435. package/dist/types/validators/CountLessThanUnCheckedValidatorArray.d.ts +0 -8
  436. package/dist/types/validators/CountLessThanUnCheckedValidatorArray.d.ts.map +0 -1
  437. package/dist/types/validators/CountUnCheckedValidatorArray.d.ts +0 -8
  438. package/dist/types/validators/CountUnCheckedValidatorArray.d.ts.map +0 -1
  439. package/dist/types/validators/EmptyValidator.d.ts +0 -6
  440. package/dist/types/validators/EmptyValidator.d.ts.map +0 -1
  441. package/dist/types/validators/ExcludeCheckedValidatorArray.d.ts +0 -9
  442. package/dist/types/validators/ExcludeCheckedValidatorArray.d.ts.map +0 -1
  443. package/dist/types/validators/FormValidator.d.ts +0 -8
  444. package/dist/types/validators/FormValidator.d.ts.map +0 -1
  445. package/dist/types/validators/IncludeCheckedValidatorArray.d.ts +0 -9
  446. package/dist/types/validators/IncludeCheckedValidatorArray.d.ts.map +0 -1
  447. package/dist/types/validators/MultipleValidator.d.ts +0 -9
  448. package/dist/types/validators/MultipleValidator.d.ts.map +0 -1
  449. package/dist/types/validators/NonPassValidator.d.ts +0 -6
  450. package/dist/types/validators/NonPassValidator.d.ts.map +0 -1
  451. package/dist/types/validators/NotEmptyValidator.d.ts +0 -6
  452. package/dist/types/validators/NotEmptyValidator.d.ts.map +0 -1
  453. package/dist/types/validators/NotRegExpTestValidator.d.ts +0 -7
  454. package/dist/types/validators/NotRegExpTestValidator.d.ts.map +0 -1
  455. package/dist/types/validators/PassValidator.d.ts +0 -6
  456. package/dist/types/validators/PassValidator.d.ts.map +0 -1
  457. package/dist/types/validators/RegExpTestValidator.d.ts +0 -7
  458. package/dist/types/validators/RegExpTestValidator.d.ts.map +0 -1
  459. package/dist/types/validators/RequiredValidator.d.ts +0 -6
  460. package/dist/types/validators/RequiredValidator.d.ts.map +0 -1
  461. package/dist/types/validators/UnCheckedValidator.d.ts +0 -6
  462. package/dist/types/validators/UnCheckedValidator.d.ts.map +0 -1
  463. package/dist/types/validators/ValidMultipleValidator.d.ts +0 -10
  464. package/dist/types/validators/ValidMultipleValidator.d.ts.map +0 -1
  465. package/dist/types/validators/ValidValidator.d.ts +0 -7
  466. package/dist/types/validators/ValidValidator.d.ts.map +0 -1
  467. package/dist/types/validators/ValidValidatorArray.d.ts +0 -8
  468. package/dist/types/validators/ValidValidatorArray.d.ts.map +0 -1
  469. package/dist/types/validators/Validator.d.ts +0 -58
  470. package/dist/types/validators/Validator.d.ts.map +0 -1
  471. package/dist/types/validators/ValidatorArray.d.ts +0 -18
  472. package/dist/types/validators/ValidatorArray.d.ts.map +0 -1
  473. package/dist/types/validators/ValueEqualsValidator.d.ts +0 -7
  474. package/dist/types/validators/ValueEqualsValidator.d.ts.map +0 -1
  475. package/dist/types/validators/ValueNotEqualsValidator.d.ts +0 -7
  476. package/dist/types/validators/ValueNotEqualsValidator.d.ts.map +0 -1
  477. package/dist/types/validators/index.d.ts +0 -32
  478. package/dist/types/validators/index.d.ts.map +0 -1
  479. package/src/DomRenderProxy.ts_cache_back +0 -1031
  480. package/src/iterators/Range.ts +0 -73
  481. package/src/iterators/index.ts +0 -1
  482. package/src/routers/HashRouter.ts +0 -110
  483. package/src/routers/PathRouter.ts +0 -105
  484. package/src/routers/Router.ts +0 -278
  485. package/src/routers/index.ts +0 -3
  486. package/src/validators/AllCheckedValidatorArray.ts +0 -12
  487. package/src/validators/AllUnCheckedValidatorArray.ts +0 -12
  488. package/src/validators/CheckedValidator.ts +0 -11
  489. package/src/validators/CountEqualsCheckedValidatorArray.ts +0 -12
  490. package/src/validators/CountEqualsUnCheckedValidatorArray.ts +0 -12
  491. package/src/validators/CountGreaterThanCheckedValidatorArray.ts +0 -12
  492. package/src/validators/CountGreaterThanEqualsCheckedValidatorArray.ts +0 -12
  493. package/src/validators/CountGreaterThanEqualsUnCheckedValidatorArray.ts +0 -12
  494. package/src/validators/CountGreaterThanUnCheckedValidatorArray.ts +0 -12
  495. package/src/validators/CountLessThanCheckedValidatorArray.ts +0 -12
  496. package/src/validators/CountLessThanEqualsCheckedValidatorArray.ts +0 -12
  497. package/src/validators/CountLessThanEqualsUnCheckedValidatorArray.ts +0 -12
  498. package/src/validators/CountLessThanUnCheckedValidatorArray.ts +0 -12
  499. package/src/validators/CountUnCheckedValidatorArray.ts +0 -12
  500. package/src/validators/EmptyValidator.ts +0 -12
  501. package/src/validators/ExcludeCheckedValidatorArray.ts +0 -16
  502. package/src/validators/FormValidator.ts +0 -19
  503. package/src/validators/IncludeCheckedValidatorArray.ts +0 -16
  504. package/src/validators/MultipleValidator.ts +0 -29
  505. package/src/validators/NonPassValidator.ts +0 -11
  506. package/src/validators/NotEmptyValidator.ts +0 -13
  507. package/src/validators/NotRegExpTestValidator.ts +0 -20
  508. package/src/validators/PassValidator.ts +0 -11
  509. package/src/validators/RegExpTestValidator.ts +0 -21
  510. package/src/validators/RequiredValidator.ts +0 -13
  511. package/src/validators/UnCheckedValidator.ts +0 -11
  512. package/src/validators/ValidMultipleValidator.ts +0 -14
  513. package/src/validators/ValidValidator.ts +0 -11
  514. package/src/validators/ValidValidatorArray.ts +0 -12
  515. package/src/validators/Validator.ts +0 -245
  516. package/src/validators/ValidatorArray.ts +0 -83
  517. package/src/validators/ValueEqualsValidator.ts +0 -11
  518. package/src/validators/ValueNotEqualsValidator.ts +0 -11
  519. package/src/validators/index.ts +0 -31
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/DomRenderProxy.ts"],
4
- "sourcesContent": ["import { RawSet, RenderResult } from './rawsets/RawSet';\nimport { EventManager, NormalAttrDataType } from './events/EventManager';\nimport { DomRenderConfig } from './configs/DomRenderConfig';\nimport { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';\nimport { DomRenderFinalProxy, Shield } from './types/Types';\nimport { RawSetType } from './rawsets/RawSetType';\nimport { DrThisProperty } from './operators/DrThisProperty';\nimport { RawSetOperatorType } from './rawsets/RawSetOperatorType';\nimport { ComponentSet } from './components/ComponentSet';\nimport { DomRenderNoProxyKey, isDomRenderNoProxy } from './decorators/DomRenderNoProxy';\nimport { isOnCreateRender } from './lifecycle/OnCreateRender';\nimport { isOnInitRender } from './lifecycle/OnInitRender';\nimport { isOnCreateRenderData } from './lifecycle/OnCreateRenderData';\nimport { isOnChangeAttrRender } from './lifecycle/OnChangeAttrRender';\nimport { DocumentUtils } from '@dooboostore/core-web/document/DocumentUtils';\nimport { isDefined } from '@dooboostore/core/types';\nimport { isOnBeforeReturnSet } from './lifecycle/OnBeforeReturnSet';\nimport { isOnChildRenderedByProperty } from './lifecycle/OnChildRenderedByProperty';\nimport { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';\nimport { ValidUtils } from '@dooboostore/core/valid/ValidUtils';\nimport { isOnProxyDomRender } from './lifecycle/OnProxyDomRender';\nimport { isOnRawSetRendered } from './lifecycle/OnRawSetRendered';\nimport { isOnChildRawSetRendered } from \"./lifecycle/OnChildRawSetRendered\";\n\nconst excludeGetSetPropertys = [\n 'onBeforeReturnGet',\n 'onBeforeReturnSet',\n '__domrender_components',\n '__render',\n '_DomRender_isFinal',\n '_domRender_ref',\n '_rawSets',\n '_domRender_proxy',\n '_targets',\n '_DomRender_origin',\n '_DomRender_ref',\n '_DomRender_proxy'\n];\nexport const isWrapProxyDomRenderProxy = <T>(obj: T): boolean => {\n return obj && typeof obj === 'object' && '_DomRender_isProxy' in obj;\n};\nexport const getDomRenderOriginObject = <T>(obj: T): T => {\n if (isWrapProxyDomRenderProxy(obj)) {\n return (obj as any)._domRender_origin;\n }\n return obj;\n};\nexport const getDomRenderConfig = (obj: any): DomRenderConfig | undefined => {\n if (isWrapProxyDomRenderProxy(obj)) {\n return obj._domRender_config;\n }\n return undefined;\n};\n//@ts-ignore\nexport const getDomRenderProxy = <T>(obj: T): DomRenderProxy<T> | undefined => {\n if (isWrapProxyDomRenderProxy(obj)) {\n //@ts-ignore\n return (obj as any)._domRender_proxy as DomRenderProxy<T>;\n }\n return undefined;\n};\nexport class DomRenderProxy<T extends object> implements ProxyHandler<T> {\n public _domRender_ref = new Map<object, Set<string>>();\n public _rawSets = new Map<string, Set<RawSet>>();\n public _domRender_proxy?: T;\n public _targets = new Set<Node>();\n // public name = Math.random();\n\n constructor(\n public _domRender_origin: T,\n target: Node | null | undefined,\n public _domRender_config: DomRenderConfig\n ) {\n if (target) {\n this._targets.add(target);\n // this._firstTarget = target;\n }\n\n // setInterval(() => {\n // this._rawSets.forEach(it => {\n // Array.from(it).forEach(it => {\n // console.log(it, it.isConnected)\n // })\n // });\n // }, 1000)\n }\n\n public static unFinal<T = any>(obj: T): T {\n return DomRenderFinalProxy.unFinal(obj);\n }\n\n public static final<T = any>(obj: T): T {\n return DomRenderFinalProxy.final(obj);\n }\n\n public static isFinal<T = any>(obj: T) {\n return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);\n }\n\n public async run(objProxy: T) {\n this._domRender_proxy = objProxy;\n if (isOnProxyDomRender(objProxy)) {\n objProxy.onProxyDomRender(this._domRender_config);\n }\n const obj = getDomRenderOriginObject<any>(objProxy);\n if (obj) {\n Object.keys(obj).forEach(it => {\n // Reflect \uBA54\uD0C0\uB370\uC774\uD130\uC5D0\uC11C domRender:NoProxy \uC5EC\uBD80 \uD655\uC778\n try {\n const isNoProxy =\n Reflect.getMetadata(DomRenderNoProxyKey, obj, it) ||\n Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n if (isNoProxy) {\n return obj;\n }\n } catch (e) { }\n const target = obj[it];\n if (\n target !== undefined &&\n target !== null &&\n typeof target === 'object' &&\n !DomRenderProxy.isFinal(target) &&\n !Object.isFrozen(target) &&\n !(obj instanceof Shield)\n ) {\n const isExcluded = this._domRender_config.proxyExcludeTyps?.some(it => target instanceof it) ?? false;\n // const filter = this._domRender_config.proxyExcludeTyps?.filter(it => target instanceof it) ?? [];\n if (!isExcluded) {\n const proxyAfter = this.proxy(objProxy, target, it);\n obj[it] = proxyAfter;\n }\n }\n });\n }\n // console.log('target', this._targets);\n for (let target of this._targets) {\n await this.initRender(target);\n }\n }\n\n public async initRender(target: Node, rawSet?: RawSet) {\n // if (target instanceof Element) {\n // target.setAttribute('dr-this', 'this');\n // const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this.config);\n // this.render(rawSets)\n // return;\n // }\n //\n if (target instanceof Element) {\n // \uC911\uC694: \uB098\uB97C\uD1B5\uD574 \uC774\uC5B4\uC9C4\uACF3\uC758 \uC704\uCE58\uB97C \uB0A8\uACA8\uC57C\uB41C\uB2E4 \uC548\uADF8\uB7EC\uBA74 TargetElement\uB294 \uC54C\uC218 \uC788\uB294 \uBC29\uBC95\uC774 \uC5C6\uB2E4. \uC5EC\uAE30\uC11C \uD754\uC801\uC744 \uB0A8\uACA8\uC918\uC57C \uD55C\uB2E4.\n // const targetElementNames = (this.config.targetElements?.map(it => it.name.toLowerCase().replaceAll('.', '\\\\.')) ?? []).join(',');\n // Array.from(target.querySelectorAll(targetElementNames)).forEach(it => it.setAttribute(EventManager.parentVariablePathAttrName, '@this@'));\n target.innerHTML = target.innerHTML.replace(/@this@/g, 'this');\n }\n // TODO: \uD55C\uACF3\uC5D0\uC11C \uCC98\uB9AC \uD544\uC694\uD560\uB4EF.. \uB108\uBB34 \uC0B0\uBC1C\uC801\uC73C\uB85C \uC788\uC74C.\n const onCreate = (target as any).getAttribute?.(RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);\n let createParam: any[] = [];\n if (onCreate) {\n createParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);\n if (!Array.isArray(createParam)) {\n createParam = [createParam];\n }\n }\n\n if (isOnCreateRenderData(this._domRender_proxy)) {\n this._domRender_proxy?.onCreateRenderData({ rootParent: this._domRender_proxy });\n }\n\n if (isOnCreateRender(this._domRender_proxy)) {\n this._domRender_proxy.onCreateRender(...createParam);\n }\n\n // const innerHTML = (target as any).innerHTML ?? '';\n this._targets.add(target);\n const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this._domRender_config);\n // console.log('initRender -------rawSet', rawSets)\n // \uC911\uC694 \uCD08\uAE30\uC5D0 \uD55C\uBC88 \uD295\uACA8\uC918\uC57C\uD568.\n this._domRender_config.eventManager.applyEvent(\n this._domRender_proxy,\n this._domRender_config.eventManager.findAttrElements(target as Element, this._domRender_config),\n this._domRender_config\n );\n rawSets.forEach(it => {\n const variables = it.getUsingTriggerVariables(this._domRender_config);\n if (variables.size <= 0) {\n this.addRawSet('', it);\n } else {\n variables.forEach(sit => {\n this.addRawSet(sit, it);\n });\n }\n });\n\n const targetRawSets = await this.render(this.getRawSets());\n for (let targetRawSet of targetRawSets) {\n const onInit = (target as any).getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);\n let initParam: any;\n if (onCreate) {\n initParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);\n }\n if (isOnInitRender(this._domRender_proxy)) {\n await this._domRender_proxy.onInitRender(\n initParam,\n rawSet ?? ({ dataSet: { config: this._domRender_config } } as any)\n );\n }\n }\n }\n\n public getRawSets() {\n const set = new Set<RawSet>();\n this._rawSets.forEach((v, k) => {\n v.forEach(it => set.add(it));\n });\n return Array.from(set);\n }\n\n // \uC911\uC694 important\n public async render(raws?: RawSet[] | string, fullPathStr?: string) {\n if (typeof raws === 'string') {\n const iter = this._rawSets.get(raws);\n if (iter) {\n raws = Array.from(iter);\n } else {\n raws = undefined;\n }\n }\n const removeRawSets: RawSet[] = [];\n const rawSets = raws ?? this.getRawSets();\n // console.log('Total RawSets to render:', Array.isArray(rawSets) ? rawSets.length : 0);\n\n // console.log('----', rawSets);\n // console.log('----', rawSets);\n const CHUNK_SIZE = 50;\n const chunks = [];\n const rawSetsArray = Array.from(rawSets as RawSet[]);\n for (let i = 0; i < rawSetsArray.length; i += CHUNK_SIZE) {\n chunks.push(rawSetsArray.slice(i, i + CHUNK_SIZE));\n }\n\n for (const chunk of chunks) {\n const promises = chunk.map(async (it) => {\n it.getUsingTriggerVariables(this._domRender_config).forEach(path => {\n // console.log('getUsingTriggerVariables->', path);\n this.addRawSet(path, it);\n });\n\n let renderResult: RenderResult | undefined;\n if (it.isConnected) {\n // \uC911\uC694 render\uB420\uB54C targetAttribute \uCCB4\uD06C \uD574\uC57C\uD568.\n const targetAttrMap = (it.point.node as Element)?.getAttribute?.(EventManager.normalAttrMapAttrName);\n // console.log('sssssssssSSS?',it, targetAttrMap)\n // console.log('----2', it, fullPathStr, targetAttrMap, (it.fragment as any).render, it.isConnected, this.getRawSets());\n if (it.detect?.action) {\n it.detect.action();\n // } else if (it.type === RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && (it.fragment as any).render) {\n } else if (\n it.type === RawSetType.TARGET_ELEMENT &&\n it.dataSet?.render?.currentThis &&\n fullPathStr &&\n targetAttrMap\n ) {\n const attrStart = performance.now();\n new Map<string, NormalAttrDataType>(JSON.parse(targetAttrMap)).forEach((v, k) => {\n // it?.data.onChangeAttrRender(k, null, v);\n // console.log('------->?',v,k);\n const isUsing = v.variablePaths.some(it => EventManager.isUsingThisVar(it.inner, `this.${fullPathStr}`))\n // console.log('------->?',v,k, isUsing);\n if (isUsing) {\n const targetAttrObject = RawSet.getAttributeObject(it.point.node as Element, {\n script: it.dataSet?.render?.renderScript ?? '',\n obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })\n });\n it.dataSet.render ??= {};\n it.dataSet.render.attribute = targetAttrObject;\n // const render = it.dataSet?.render;\n // console.log('render-->!!!!!', it.dataSet.render);\n // const script = `${render.renderScript} return ${v} `;\n // const cval = ScriptUtils.eval(script, Object.assign(this._domRender_proxy ?? {}, { __render: render }));\n if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {\n it.dataSet?.render?.currentThis?.onChangeAttrRender?.(k, targetAttrObject[k], { rawSet: it });\n }\n }\n // console.log('---?', v, fullPathStr, isUsing);\n });\n const attrEnd = performance.now();\n // if (attrEnd - attrStart > 10) {\n // console.log('Slow Attr Update:', attrEnd - attrStart, it);\n // }\n // ------------------->\n } else {\n const renderStart = performance.now();\n const rawSets = await it.render(this._domRender_proxy, this._domRender_config);\n const renderEnd = performance.now();\n // if (renderEnd - renderStart > 10) {\n // console.log('Slow RawSet Render:', renderEnd - renderStart, it);\n // }\n renderResult = rawSets;\n // \uADF8\uC678 \uC790\uC2DD\uB4E4 render\n if (rawSets && rawSets.raws.length > 0) {\n await this.render(rawSets.raws);\n }\n }\n } else {\n removeRawSets.push(it);\n }\n\n const t = it.findNearThis(this._domRender_proxy);\n // TODO: \uD638\uCD9C\uB41C\uACF3\uC5D0\uC11C \uB610 \uBCC0\uC218\uB97C \uC218\uC815\uD558\uAC8C\uB418\uBA74 \uBB34\uD55C\uB8E8\uD504\uB2C8\uAE50 \uC660\uB9CC\uD558\uBA74 \uC0AC\uC6A9\uBABB\uD558\uAC8C \uD574\uC57C\uD55C\uB2E4.\n if (isOnRawSetRendered(t)) {\n await t.onRawSetRendered(it, { path: fullPathStr, value: ObjectUtils.Script.evaluateReturn(`this.${fullPathStr}`, this._domRender_proxy), root: this._domRender_proxy, renderResult });\n }\n // console.log('----', it);\n });\n await Promise.all(promises);\n if (chunks.length > 1) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n }\n }\n\n if (isOnChildRawSetRendered(this._domRender_proxy)) {\n await this._domRender_proxy.onChildRawSetRendered();\n }\n\n if (removeRawSets.length > 0) {\n this.removeRawSet(...removeRawSets);\n }\n return this.getRawSets();\n }\n\n // domrender_ref\uB85C \uCC3E\uB294\uAC78\uB85C \uBC14\uAFC8\n // public findRootDomRenderProxy(): DomRenderProxy<any> {\n // let current:DomRenderProxy<any> = this;\n // while (current.parentProxy) {\n // current = current.parentProxy;\n // }\n // return current;\n // }\n\n public root(\n pathInfos: { path: string; obj: any }[][],\n value?: any,\n lastDoneExecute = true\n ): { path: string; obj: any }[][] {\n // console.time('root_total');\n const rootStartTime = Date.now();\n const pathKey = pathInfos.flat().map(i => i.path).join('.');\n\n // console.group(`\uD83C\uDF33 DomRenderProxy root: ${pathKey}`);\n // console.log('root--->', pathInfos, value, this._domRender_ref, this._domRender_origin);\n const fullPaths: { path: string; obj: any }[][] = [];\n if (this._domRender_ref.size > 0) {\n this._domRender_ref.forEach((it, key) => {\n if ('_DomRender_isProxy' in key) {\n it.forEach(sit => {\n try {\n const recursiveStartTime = Date.now();\n const concat = pathInfos.concat([[{ path: sit, obj: key }]]);\n const items: { path: string; obj: any }[][] = (key as any)._DomRender_proxy?.root(\n concat,\n value,\n lastDoneExecute\n );\n // console.log(`\uD83D\uDD04 Recursive root call for ${sit}: ${Date.now() - recursiveStartTime}ms`);\n\n fullPaths.push(items.flat());\n // fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});\n // fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});\n } catch (e) {\n // \uC624\uBE0C\uC81D\uD2B8\uB4E4 \uC5C6\uC5B4\uC84C\uC744\uC218\uB3C4\uC788\uB2E4 Destroy\uC2DC\uC810\uC5D0\uC11C \uC624\uB958\uB098\uB294\uACBD\uC6B0\uAC00 \uC788\uB2E4. \uB530\uB77C\uC11C \uCC38\uC870 \uD558\uB294\uBD80\uBD84 \uC5C6\uC5B4\uC838\uC57C\uD55C\uB2E4.\n // console.error(e)\n // it.delete(sit);\n }\n });\n }\n });\n } else {\n // console.time('root_recursive');\n const pathProcessStartTime = Date.now();\n // const firstPathStr = paths.slice(1).reverse().join('.');\n const strings = pathInfos.reverse().map(it => it.map(it => it.path).join(','));\n // array\uAC19\uC740\uACBD\uC6B0\uB3C4 \uD0A4\uAC12\uC73C\uB85C \uC811\uADFC\uD558\uAE30\uB54C\uBB38\uC5D0 \uD2B9\uC815 \uC778\uB371\uC2A4\uB97C \uCC3E\uC544\uC11C \uADF8\uBD80\uBD84\uB9CC \uBC14\uAFD4\uC904\uC218 \uC788\uB2E4.\n const fullPathStr = strings\n .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))\n .join('')\n .slice(1);\n // console.log(`\uD83D\uDEE4\uFE0F Path processing time: ${Date.now() - pathProcessStartTime}ms for path: ${fullPathStr}`);\n if (lastDoneExecute) {\n // const firstData = ScriptUtils.evalReturn('this.' + firstPathStr, this._domRender_proxy);\n // console.log('-------', firstPathStr, firstData);\n // if (firstData instanceof Dictionary) {\n // }\n const iterable = this._rawSets.get(fullPathStr);\n // array check\n const front = strings\n .slice(0, strings.length - 1)\n .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))\n .join('');\n const lastPropertyName = strings[strings.length - 1];\n const path = 'this' + front;\n const data = ObjectUtils.Script.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(path), this._domRender_proxy);\n // console.log('root-->', this._rawSets, path, data );\n // console.log('--!!!!', fullPathStr, iterable, data, front, last);\n // \uC65C\uC5EC\uAE30\uC11C promise\uB97C \uD588\uC744\uAE4C\uB97C \uC0DD\uAC01\uD574\uBCF4\uBA74......\uD6D4.. \uBCC0\uC218\uBCC0\uACBD\uACFC \uD654\uBA74 \uBFCC\uB824\uC8FC\uB294\uAC78 \uB3D9\uAE30\uB85C\uD558\uBA74 \uC131\uB2A5\uC774 \uC548\uB098\uC624\uACE0 \uBE44\uD604\uC2E4\uC801\uC774\uB2E4. \uADF8\uB798\uC11C promise\n const promiseStartTime = Date.now();\n // console.timeEnd('root_recursive');\n // console.time('root_render_wait');\n new Promise<RawSet[]>(async resolve => {\n const promiseInnerStartTime = Date.now();\n let rData: RawSet[] = [];\n const firstPathStr = front.slice(1);\n\n // check dictionary\n const dictionaryCheckStartTime = Date.now();\n // console.log('-promise-------', firstPathStr, this)\n const firstTargets = this._rawSets.get(firstPathStr);\n const firstTargetDictionary: RawSet[] = [];\n firstTargets?.forEach(it => {\n // console.log('----forEach---', it);\n const type = (it.point.start as Element)?.getAttribute?.('type');\n if (type === RawSetOperatorType.DR_THIS_PROPERTY) {\n firstTargetDictionary.push(it);\n }\n });\n // console.log(`\uD83D\uDCDA Dictionary check time: ${Date.now() - dictionaryCheckStartTime}ms (${firstTargetDictionary.length} found)`);\n\n if (firstTargetDictionary.length > 0) {\n // console.log('ddddddddddd', firstTargetDictionary);\n const rawSets: RawSet[] = [];\n let skip = false;\n firstTargetDictionary.forEach(it => {\n const startElement = it.point.start as Element;\n const keys = startElement.getAttribute(RawSet.DR_HAS_KEYS_OPTIONNAME)?.split(',') ?? [];\n if (value === undefined) {\n const rawSet = it.getHasRawSet(lastPropertyName);\n rawSet?.remove();\n startElement.setAttribute(\n RawSet.DR_HAS_KEYS_OPTIONNAME,\n keys.filter(it => it !== lastPropertyName).join(',')\n );\n }\n if (!keys.includes(lastPropertyName)) {\n const raws = DrThisProperty.append(\n this._domRender_proxy,\n fullPathStr,\n lastPropertyName,\n it,\n this._domRender_config\n );\n if (raws) {\n rawSets.push(...raws);\n }\n } else {\n skip = true;\n }\n });\n if (skip === false || rawSets.length > 0) {\n rData = await this.render(rawSets);\n }\n }\n\n const renderStartTime = Date.now();\n if (lastPropertyName === 'length' && Array.isArray(data)) {\n const aIterable = this._rawSets.get(firstPathStr);\n if (aIterable) {\n rData = await this.render(Array.from(aIterable));\n }\n } else if (iterable) {\n // console.log('------------',iterable, fullPaths)\n rData = await this.render(Array.from(iterable), fullPathStr);\n }\n // console.log(`\uD83C\uDFA8 Render time: ${Date.now() - renderStartTime}ms (${rData?.length || 0} rawSets)`);\n\n // console.log('-----------', this, lastPropertyName );\n // this._targets.forEach(it => {\n // // return;\n // if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {\n // const targets = eventManager.findAttrElements((it as DocumentFragment | Element), this.config);\n // eventManager.changeVar(this._domRender_proxy, targets, `this.${fullPathStr}`, this.config);\n // }\n // });\n\n const eventProcessStartTime = Date.now();\n const Node = ((this._domRender_config.window as any).Node)\n this._targets.forEach(it => {\n // return;\n if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {\n const findAttrStartTime = Date.now();\n const targets = this._domRender_config.eventManager.findAttrElements(\n it as DocumentFragment | Element,\n this._domRender_config\n );\n const targetCount = (targets as any)?.size || (targets as any)?.length || 0;\n // console.log(`\uD83D\uDD0D findAttrElements time: ${Date.now() - findAttrStartTime}ms (${targetCount} elements)`, it);\n\n const changeVarStartTime = Date.now();\n this._domRender_config.eventManager.changeVar(\n this._domRender_proxy,\n targets,\n `this.${fullPathStr}`,\n this._domRender_config\n );\n // console.log(`\uD83D\uDD04 changeVar time: ${Date.now() - changeVarStartTime}ms`);\n }\n });\n // console.log(`\u26A1 Event processing time: ${Date.now() - eventProcessStartTime}ms (${this._targets.size} targets)`);\n\n // console.log(`\uD83D\uDD04 Promise inner total time: ${Date.now() - promiseInnerStartTime}ms`);\n\n //\uB79C\uB354\uB300\uC0C1\uB41C\uAC8C\uC788\uC73C\uBA74\n if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {\n const propertyValue = ObjectUtils.Script.evaluateReturn(`this.${lastPropertyName}`, data);\n data.onChildRenderedByProperty(lastPropertyName, propertyValue);\n // data\n }\n resolve(rData);\n }).then(it => {\n // console.log('DonrenderProxy root RenderDone')\n // console.timeEnd('root_render_wait');\n // console.timeEnd('root_total');\n });\n }\n fullPaths.push([{ path: fullPathStr, obj: this._domRender_proxy }]);\n }\n\n // console.log(`\uD83C\uDFC1 Root method total time: ${Date.now() - rootStartTime}ms`);\n // console.log('dddddd', fullPaths.flatMap(it => it).map(it => it.path))\n // console.groupEnd();\n return fullPaths;\n }\n\n public set(target: T, p: string | symbol, value: any, receiver: T): boolean {\n // console.log('set------->', target, p, value, receiver, Date.now())\n // console.log('set------->', p,value)\n // console.log('set------->', target, p, value, receiver, Date.now())\n // try {\n // const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, target, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n // if (isNoProxy) {\n // return obj;\n // }\n // }catch (e) {}\n\n // console.log('set-->', p, value, target, receiver, Reflect.getMetadata(DomRenderNoProxyKey, target, p) );\n\n if (\n (typeof p === 'string' && p !== '__domrender_components' && excludeGetSetPropertys.includes(p)) ||\n Reflect.getMetadata(DomRenderNoProxyKey, target, p)\n ) {\n (target as any)[p] = value;\n return true;\n }\n // const old = (target as any)[p];\n // console.log('set proxy-->', target, p, value, this._rawSets, this._domRender_ref);\n // if (typeof p === 'string' && '__render' === p) {\n // (target as any)[p] = value;\n // return true;\n // }\n // console.log('set--?', p, target, value);\n let start = performance.now()\n if (typeof p === 'string') {\n value = this.proxy(receiver, value, p);\n }\n // console.log('set proxy time', performance.now() - start, p);\n // start = performance.now();\n\n\n // console.log('set typeChecked', (target as any)[p] instanceof ComponentSet, value instanceof ComponentSet);\n // if ((target as any)[p] instanceof ComponentSet) {\n // (target as any)[p]?.obj?.onDrThisUnBind?.();\n // }\n // console.log('---', this._domRender_ref, p, this._domRender_proxy)\n // is ComponentSet\n if (value instanceof ComponentSet && (target as any)[p] instanceof ComponentSet) {\n value.config.beforeComponentSet = (target as any)[p];\n }\n (target as any)[p] = value;\n let fullPathInfo: { path: string; obj: any }[][] = [];\n if (typeof p === 'string') {\n fullPathInfo = this.root([[{ path: p, obj: this._domRender_proxy }]], value);\n }\n\n\n // console.log('set proxy root time', performance.now() - start, p);\n // start = performance.now();\n //\n // console.log('setRooot', fullPathInfo);\n\n //normal attribute \uB610\uD55C \uB9C1\uD06C\uB791 \uAC19\uC740 \uC99D\uC138\uB77C\uC11C \uC774\uB807\uAC8C \uD574\uC918\uC57C\uD55C\uB2E4!!\n // const rootDomRenderProxy = this.findRootDomRenderProxy();\n // console.log('set!!!!!!!', fullPathInfo, rootDomRenderProxy)\n // console.log('--------rootDom',fullPathInfo, rootDomRenderProxy, rootDomRenderProxy._domRender_proxy)\n const rootElement = this._domRender_config.rootElement ?? this._domRender_config.window.document;\n DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(\n elementInfo => {\n // @ts-ignore\n // const optionalPath = ObjectUtils.Path.toOptionalChainPath(elementInfo.value);\n const targets = new Map<string, NormalAttrDataType>(\n ObjectUtils.Script.evaluateReturn<[string, NormalAttrDataType][]>(elementInfo.value)\n );\n Array.from(targets.entries())\n .filter(isDefined)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.variablePaths?.some(vit => vit.inner.includes(`this.${it.path}`)))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(it => {\n // const optionalPaths = it.valueScript.variablePaths.map(it => ObjectUtils.Path.toOptionalChainPath(it))\n const variablePaths = it.valueScript.variablePaths;\n let targetScript = it.valueScript.originalAttrValue;\n let script: string;\n if (it.valueScript.isStringTemplate) {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `\\${${r}}`);\n })\n script = '`' + targetScript + '`';\n } else {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `${r}`);\n })\n script = targetScript;\n }\n // variablePaths.forEach(it => {\n // let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n // targetScript = targetScript.replaceAll(it.origin,`\\${${r}}`);\n // })\n const value1 = ObjectUtils.Script.evaluateReturn(script, it.pathInfo.obj);\n // console.log('proxy set!Attribut======', it.key, value1)\n if (value1 === null || value1 === undefined) {\n elementInfo.element.removeAttribute(it.key);\n // elementInfo.element[it.key] = null;\n } else {\n elementInfo.element.setAttribute(it.key, value1);\n elementInfo.element[it.key] = value1;\n }\n });\n }\n );\n\n // console.log('set proxy normalAttrMapAttrName time', performance.now() - start, p);\n // start = performance.now();\n\n\n\n //\uC5EC\uAE30\uC11C \uB9C1\uD06C \uAC19\uC740\uAC70 \uD574\uC918\uC57C\uD568 *-link\uB85C \uBCC0\uC218\uAC12\uC774 \uBCC0\uACBD\uB418\uBA74 \uADF8\uAC78 \uCC38\uACE0\uD558\uACE0\uC788\uB294 \uB2E4\uB978\uAC83\uB4E4\uC5D0\uB3C4 \uD574\uC918\uC57C\uD55C\uB2E4.\n DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(\n elementInfo => {\n // @ts-ignore\n const targets = new Map<string, string>(ObjectUtils.Script.evaluateReturn<[string, string][]>(elementInfo.value));\n\n Array.from(targets.entries())\n .filter(([key, value]) => value.trim())\n .filter(isDefined)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.includes(`this.${it.path}`))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(info => {\n const value1 = ObjectUtils.Script.evaluateReturn(info.valueScript, info.pathInfo.obj);\n const applyAttributeName = EventManager.linkAttrs.find(it => it.name === info.key);\n if (applyAttributeName) {\n if (value1 === null) {\n elementInfo.element.removeAttribute(applyAttributeName.property);\n } else {\n // console.log('ppppppppppppppppppppppp', applyAttributeName, elementInfo)\n elementInfo.element.setAttribute(applyAttributeName.property, value1);\n }\n }\n });\n\n Array.from(targets.entries())\n .filter(([key, value]) => value.trim())\n .filter(isDefined)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.includes(`this.${it.path}`))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(info => {\n const linkInfo = EventManager.linkAttrs.find(it => it.name === info.key);\n if (linkInfo) {\n elementInfo.element[linkInfo.property] = value;\n }\n });\n }\n );\n\n // console.log('set proxy linkTargetMapAttrName time', performance.now() - start, p);\n // start = performance.now();\n\n // console.log('---end',receiver);\n if (\n 'onBeforeReturnSet' in receiver &&\n typeof p === 'string' &&\n !(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)\n ) {\n if (isOnBeforeReturnSet(receiver)) {\n receiver.onBeforeReturnSet?.(\n p,\n value,\n fullPathInfo.map(it => it.map(it => it.path).join())\n );\n }\n }\n\n // console.log('done!!')\n return true;\n }\n\n get(target: T, p: string | symbol, receiver: any): any {\n // console.log('get-->', target, p, receiver);\n if (p === '_DomRender_origin' || p === '_domRender_origin') {\n return this._domRender_origin;\n } else if (p === '_DomRender_ref' || p === '_domRender_ref') {\n return this._domRender_ref;\n } else if (p === '_DomRender_config' || p === '_domRender_config') {\n return this._domRender_config;\n } else if (p === '_DomRender_proxy' || p === '_domRender_proxy') {\n return this;\n } else {\n // Date\uB77C\uB358\uC9C0 \uC774\uB7F0\uB188\uB4E4\uC740-_-\uD504\uB85D\uC2DC\uAC00 \uC774\uC0C1\uD558\uAC8C \uB3D9\uC791\uD574\uC11C\n // console.log('--->', p, target, target.bind, 'bind' in target)\n // if ((p in target) && ('bind' in target)) {\n // try{\n // return (target as any)[p].bind(target);\n // }catch (e) {\n // console.error(e)\n // }\n // } else {\n // return (target as any)[p]\n // }\n // return (p in target) ? (target as any)[p].bind(target) : (target as any)[p]\n // console.log('-->', p, Object.prototype.toString.call((target as any)[p]), (target as any)[p])\n // return (target as any)[p]\n let it = (target as any)[p];\n if (\n it &&\n typeof it === 'object' &&\n '_DomRender_isProxy' in it &&\n Object.prototype.toString.call(it._DomRender_origin) === '[object Date]'\n ) {\n it = it._DomRender_origin;\n }\n\n if (\n 'onBeforeReturnGet' in receiver &&\n typeof p === 'string' &&\n !(this._domRender_config.proxyExcludeOnBeforeReturnGets ?? []).concat(excludeGetSetPropertys).includes(p)\n ) {\n (receiver as any)?.onBeforeReturnGet?.(\n p,\n it,\n this.root([[{ path: p, obj: this._domRender_proxy }]], it, false)\n );\n }\n return it;\n }\n }\n\n deleteProperty(target: T, p: string | symbol): boolean {\n delete (target as any)[p];\n if (typeof p === 'string') {\n this.root([[{ path: p, obj: this._domRender_proxy }]]);\n }\n return true;\n }\n\n has(target: T, p: string | symbol): boolean {\n return p === '_DomRender_isProxy' || p in target;\n }\n\n proxy(parentProxy: T, obj: T | any, p: string) {\n try {\n // const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, obj, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n const isObject = typeof obj === 'object';\n const isNoProxy = isObject && isDomRenderNoProxy(obj, p);\n const isExclude = this._domRender_config.proxyExcludeTyps?.some(it => obj instanceof it) ?? false;\n const isFinal = isObject && DomRenderProxy.isFinal(obj);\n const isFrozen = Object.isFrozen(obj);\n const isShield = obj instanceof Shield;\n if (\n obj === undefined ||\n obj === null ||\n isNoProxy ||\n isExclude ||\n ValidUtils.isNullOrUndefined(obj) ||\n !isObject ||\n isFinal ||\n isFrozen ||\n isShield\n ) {\n return obj;\n }\n } catch (e) { }\n\n /*\n const proxyTarget = (this._domRender_config.proxyExcludeTyps?.filter(it => obj instanceof it) ?? []).length <= 0;\n if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {\n const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);\n domRender.addRef(parentProxy, p);\n const proxy = new Proxy(obj, domRender);\n domRender.run(proxy);\n return proxy;\n }\n if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {\n const d = (obj as any)._DomRender_proxy as DomRenderProxy<T>;\n d.addRef(this._domRender_proxy!, p);\n return obj;\n } else {\n return obj;\n }\n */\n if (!isWrapProxyDomRenderProxy(obj)) {\n const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);\n domRender.addRef(parentProxy, p);\n const proxy = new Proxy(obj, domRender);\n domRender.run(proxy);\n return proxy;\n }\n if (isWrapProxyDomRenderProxy(obj)) {\n const d = (obj as any)._DomRender_proxy as DomRenderProxy<T>;\n d.addRef(this._domRender_proxy!, p);\n return obj;\n } else {\n return obj;\n }\n }\n\n public addRef(parent: object, path: string) {\n if (!this._domRender_ref.get(parent)) {\n this._domRender_ref.set(parent, new Set<string>());\n }\n this._domRender_ref.get(parent)?.add(path);\n }\n\n public addRawSetAndRender(path: string, rawSet: RawSet) {\n this.addRawSet(path, rawSet);\n this.render([rawSet]);\n }\n\n public addRawSet(path: string, rawSet: RawSet) {\n // console.log('addRawSet--> path:', path, 'rawSet:', rawSet)\n if (!this._rawSets.get(path)) {\n this._rawSets.set(path, new Set<RawSet>());\n }\n this._rawSets.get(path)?.add(rawSet);\n }\n\n // public removeRawSet(...raws: RawSet[]) {\n // this._rawSets.forEach(it => {\n // raws.forEach(sit => it.delete(sit));\n // })\n // this.garbageRawSet();\n // }\n\n public removeRawSet(...raws: RawSet[]) {\n this._rawSets.forEach(it => {\n it.forEach(sit => {\n if (!sit.isConnected) {\n it.delete(sit);\n } else if (raws.includes(sit)) {\n it.delete(sit);\n }\n });\n });\n this.targetGarbageRawSet();\n }\n\n private targetGarbageRawSet() {\n this._targets.forEach(it => {\n if (!it.isConnected) {\n this._targets.delete(it);\n }\n });\n }\n\n private garbageRawSet() {\n this._targets.forEach(it => {\n if (!it.isConnected) {\n this._targets.delete(it);\n }\n });\n\n this._rawSets.forEach(it => {\n it.forEach(sit => {\n if (!sit.isConnected) {\n it.delete(sit);\n }\n });\n });\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["it", "rawSets", "value"]
4
+ "sourcesContent": ["import { RawSet, RenderResult } from './rawsets/RawSet';\nimport { EventManager, NormalAttrDataType } from './events/EventManager';\nimport { DomRenderConfig } from './configs/DomRenderConfig';\nimport { DomRenderFinalProxy, Shield } from './types/Types';\nimport { RawSetType } from './rawsets/RawSetType';\nimport { DrThisProperty } from './operators/DrThisProperty';\nimport { RawSetOperatorType } from './rawsets/RawSetOperatorType';\nimport { ComponentSet } from './components/ComponentSet';\nimport { DomRenderNoProxyKey, isDomRenderNoProxy } from './decorators/DomRenderNoProxy';\nimport { isOnCreateRender } from './lifecycle/OnCreateRender';\nimport { isOnInitRender } from './lifecycle/OnInitRender';\nimport { isOnCreateRenderData } from './lifecycle/OnCreateRenderData';\nimport { isOnChangeAttrRender } from './lifecycle/OnChangeAttrRender';\nimport { DocumentUtils } from '@dooboostore/core-web';\nimport { isOnBeforeReturnSet } from './lifecycle/OnBeforeReturnSet';\nimport { isOnChildRenderedByProperty } from './lifecycle/OnChildRenderedByProperty';\nimport { ObjectUtils } from '@dooboostore/core';\nimport { ValidUtils } from '@dooboostore/core';\nimport { isOnProxyDomRender } from './lifecycle/OnProxyDomRender';\nimport { isOnRawSetRendered } from './lifecycle/OnRawSetRendered';\nimport { isOnChildRawSetRendered } from \"./lifecycle/OnChildRawSetRendered\";\nimport { DomRenderComponentMetaKey, DomRenderProxyMetaKey } from './rawsets';\n\nconst excludeGetSetPropertys: string[] = [\n DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY,\n DomRenderProxyMetaKey.onBeforeReturnGet,\n DomRenderProxyMetaKey.onBeforeReturnSet,\n DomRenderProxyMetaKey.__render,\n DomRenderProxyMetaKey._rawSets,\n DomRenderProxyMetaKey._targets,\n DomRenderProxyMetaKey._domRender_proxy,\n DomRenderProxyMetaKey._DomRender_isFinal,\n DomRenderProxyMetaKey._domRender_ref,\n DomRenderProxyMetaKey._DomRender_origin,\n DomRenderProxyMetaKey._DomRender_ref,\n DomRenderProxyMetaKey._DomRender_proxy\n];\nexport const isWrapProxyDomRenderProxy = <T>(obj: T): boolean => {\n return obj && typeof obj === 'object' && '_DomRender_isProxy' in obj;\n};\nexport const getDomRenderOriginObject = <T>(obj: T): T => {\n if (isWrapProxyDomRenderProxy(obj)) {\n return (obj as any)._domRender_origin;\n }\n return obj;\n};\nexport const getDomRenderConfig = (obj: any): DomRenderConfig | undefined => {\n if (isWrapProxyDomRenderProxy(obj)) {\n return obj._domRender_config;\n }\n return undefined;\n};\n//@ts-ignore\nexport const getDomRenderProxy = <T>(obj: T): DomRenderProxy<T> | undefined => {\n if (isWrapProxyDomRenderProxy(obj)) {\n //@ts-ignore\n return (obj as any)._domRender_proxy as DomRenderProxy<T>;\n }\n return undefined;\n};\nexport class DomRenderProxy<T extends object> implements ProxyHandler<T> {\n public _domRender_ref = new Map<object, Set<string>>();\n public _rawSets = new Map<string, Set<RawSet>>();\n public _domRender_proxy?: T;\n public _targets = new Set<Node>();\n // public name = Math.random();\n\n constructor(\n public _domRender_origin: T,\n target: Node | null | undefined,\n public _domRender_config: DomRenderConfig\n ) {\n if (target) {\n this._targets.add(target);\n // this._firstTarget = target;\n }\n\n // setInterval(() => {\n // this._rawSets.forEach(it => {\n // Array.from(it).forEach(it => {\n // console.log(it, it.isConnected)\n // })\n // });\n // }, 1000)\n }\n\n public static unFinal<T = any>(obj: T): T {\n return DomRenderFinalProxy.unFinal(obj);\n }\n\n public static final<T = any>(obj: T): T {\n return DomRenderFinalProxy.final(obj);\n }\n\n public static isFinal<T = any>(obj: T) {\n return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);\n }\n\n public static isProxy<T = any>(obj: T) {\n return ValidUtils.isNull(obj) || isWrapProxyDomRenderProxy(obj);\n }\n\n public static getOriginalObject (obj: any) {\n if (isWrapProxyDomRenderProxy(obj)) {\n return obj._domRender_origin;\n }\n return obj;\n }\n\n public async run(objProxy: T) {\n this._domRender_proxy = objProxy;\n if (isOnProxyDomRender(objProxy)) {\n objProxy.onProxyDomRender(this._domRender_config);\n }\n const obj = getDomRenderOriginObject<any>(objProxy);\n if (obj) {\n Object.keys(obj).forEach(it => {\n // Reflect \uBA54\uD0C0\uB370\uC774\uD130\uC5D0\uC11C domRender:NoProxy \uC5EC\uBD80 \uD655\uC778\n try {\n const isNoProxy =\n Reflect.getMetadata(DomRenderNoProxyKey, obj, it) ||\n Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n if (isNoProxy) {\n return obj;\n }\n } catch (e) { }\n const target = obj[it];\n if (\n target !== undefined &&\n target !== null &&\n typeof target === 'object' &&\n !DomRenderProxy.isFinal(target) &&\n !Object.isFrozen(target) &&\n !(obj instanceof Shield)\n ) {\n const isExcluded = this._domRender_config.proxyExcludeTyps?.some(it => target instanceof it) ?? false;\n // const filter = this._domRender_config.proxyExcludeTyps?.filter(it => target instanceof it) ?? [];\n if (!isExcluded) {\n const proxyAfter = this.proxy(objProxy, target, it);\n obj[it] = proxyAfter;\n }\n }\n });\n }\n // console.log('target', this._targets);\n for (let target of this._targets) {\n await this.initRender(target);\n }\n }\n\n public async initRender(target: Node, rawSet?: RawSet) {\n // if (target instanceof Element) {\n // target.setAttribute('dr-this', 'this');\n // const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this.config);\n // this.render(rawSets)\n // return;\n // }\n //\n if (target instanceof Element) {\n // \uC911\uC694: \uB098\uB97C\uD1B5\uD574 \uC774\uC5B4\uC9C4\uACF3\uC758 \uC704\uCE58\uB97C \uB0A8\uACA8\uC57C\uB41C\uB2E4 \uC548\uADF8\uB7EC\uBA74 TargetElement\uB294 \uC54C\uC218 \uC788\uB294 \uBC29\uBC95\uC774 \uC5C6\uB2E4. \uC5EC\uAE30\uC11C \uD754\uC801\uC744 \uB0A8\uACA8\uC918\uC57C \uD55C\uB2E4.\n // const targetElementNames = (this.config.targetElements?.map(it => it.name.toLowerCase().replaceAll('.', '\\\\.')) ?? []).join(',');\n // Array.from(target.querySelectorAll(targetElementNames)).forEach(it => it.setAttribute(EventManager.parentVariablePathAttrName, '@this@'));\n target.innerHTML = target.innerHTML.replace(/@this@/g, 'this');\n }\n // TODO: \uD55C\uACF3\uC5D0\uC11C \uCC98\uB9AC \uD544\uC694\uD560\uB4EF.. \uB108\uBB34 \uC0B0\uBC1C\uC801\uC73C\uB85C \uC788\uC74C.\n const onCreate = (target as any).getAttribute?.(RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME);\n let createParam: any[] = [];\n if (onCreate) {\n createParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);\n if (!Array.isArray(createParam)) {\n createParam = [createParam];\n }\n }\n\n if (isOnCreateRenderData(this._domRender_proxy)) {\n this._domRender_proxy?.onCreateRenderData({ rootParent: this._domRender_proxy });\n }\n\n if (isOnCreateRender(this._domRender_proxy)) {\n this._domRender_proxy.onCreateRender(...createParam);\n }\n\n // const innerHTML = (target as any).innerHTML ?? '';\n this._targets.add(target);\n const rawSets = RawSet.checkPointCreates(target, this._domRender_proxy, this._domRender_config);\n // console.log('initRender -------rawSet', rawSets)\n // \uC911\uC694 \uCD08\uAE30\uC5D0 \uD55C\uBC88 \uD295\uACA8\uC918\uC57C\uD568.\n this._domRender_config.eventManager.applyEvent(\n this._domRender_proxy,\n this._domRender_config.eventManager.findAttrElements(target as Element, this._domRender_config),\n this._domRender_config\n );\n rawSets.forEach(it => {\n const variables = it.getUsingTriggerVariables(this._domRender_config);\n if (variables.size <= 0) {\n this.addRawSet('', it);\n } else {\n variables.forEach(sit => {\n this.addRawSet(sit, it);\n });\n }\n });\n\n const targetRawSets = await this.render(this.getRawSets());\n for (let targetRawSet of targetRawSets) {\n let initParam: any;\n if (onCreate) {\n initParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);\n }\n if (isOnInitRender(this._domRender_proxy)) {\n await this._domRender_proxy.onInitRender(\n initParam,\n rawSet ?? ({ dataSet: { config: this._domRender_config } } as any)\n );\n }\n }\n }\n\n public getRawSets() {\n const set = new Set<RawSet>();\n this._rawSets.forEach((v, k) => {\n v.forEach(it => set.add(it));\n });\n return Array.from(set);\n }\n\n // \uC911\uC694 important\n public async render(raws?: RawSet[] | string, fullPathStr?: string) {\n if (typeof raws === 'string') {\n const iter = this._rawSets.get(raws);\n if (iter) {\n raws = Array.from(iter);\n } else {\n raws = undefined;\n }\n }\n const removeRawSets: RawSet[] = [];\n const rawSets = raws ?? this.getRawSets();\n // console.log('Total RawSets to render:', Array.isArray(rawSets) ? rawSets.length : 0);\n\n // console.log('----', rawSets);\n // console.log('----', rawSets);\n const CHUNK_SIZE = 50;\n const chunks:RawSet[][] = [];\n let rawSetsArray = Array.from(rawSets as RawSet[]);\n // console.log('--->1', JSON.stringify(rawSetsArray.map(it=>it.type)));\n // rawSetsArray = rawSetsArray.sort((a, b) => {\n // const order = { [RawSetType.TARGET_ELEMENT]: 0, [RawSetType.TARGET_ATTR]: 1, [RawSetType.TEXT]: 2 };\n // return (order[a.type] ?? 999) - (order[b.type] ?? 999);\n // });\n // console.log('--->2', JSON.stringify(rawSetsArray.map(it=>it.type)));\n // await Promise.all(rawSetsArray.map(rawSet => this.renderExecute(rawSet, fullPathStr, removeRawSets)));\n for (const rawSet of rawSetsArray) {\n await this.renderExecute(rawSet, fullPathStr, removeRawSets);\n }\n // \uD6D4....\uC544\uB798 \uBC8C\uD06C..\uC798\uB3D9\uC791\uC774 \uC548\uB418\uB124..\uC544... \uC704\uC5D0\uCC98\uB7FC \uD558\uB098\uC529 \uCC98\uB9AC\uD558\uBA74 \uB418\uAE34\uD558\uB294\uB370..\uD760..\n // const firstRawSet = rawSetsArray.shift();\n // \uC774\uB807\uAC8C \uCCAD\uD06C\uB2E8\uC704\uB85C \uCC98\uB9AC\uD560\uB54C await Promises.sleep(0); \uC744 \uB123\uC5B4\uC918\uB3C4 \uCC98\uC74C\uC5D0 dr-for-of\uAC00 \uBA3C\uC800 \uB3CC\uACE0 \uADF8\uB7EC\uBA74 \uCC38\uACE0\uD558\uACE0\uC788\uB294 rawSet\uB4E4\uC774 isConnect\uAC00 false\uB418\uB2C8\uAE50 \uCC98\uB9AC\uC548\uB418\uACE0\n // \uB098\uC911\uC5D0 \uCC98\uB9AC\uB418\uBA74\uC11C \uC624\uB958\uAC00 \uB09C\uB2E4. \uADF8\uB798\uC11C \uCCAD\uD06C\uB0B4\uC5D0\uC11C \uCCAB\uBC88\uC9F8\uAEBC\uB294 \uBC14\uB85C\uCC98\uB9AC\uD558\uACE0 \uADF8\uB2E4\uC74C\uAEBC\uBD80\uD130\uB294 await\uB97C \uB123\uC5B4\uC918\uC11C \uBE0C\uB77C\uC6B0\uC800\uAC00 \uC911\uAC04\uC5D0 \uCC98\uB9AC\uD560 \uC2DC\uAC04\uC744 \uC8FC\uB3C4\uB85D \uD55C\uB2E4.\n // \uD56D\uC0C1 \uBA3C\uC800 \uB4F1\uB85D\uB41C path\uB4E4\uC5D0 \uC758\uD574 \uB4A4\uC5D0\uAC8C \uC0DD\uC131\uB418\uB294\uACBD\uC6B0\uAC00 \uBB34\uC870\uAC74\uC774\uAE30\uB584\uBB38\uC5D0 \uBA3C\uC800\uAC70 \uD55C\uBC88 \uB3CC\uB824\uC8FC\uBA74 \uC798\uB41C\uB2E4.\n // \uC544\uB2C8\uBA74 renderExecute \uC548\uCABD\uC5D0\uC11C \uB9E4\uBC88 sleep\uC744 \uC918\uB3C4\uB418\uB294\uB370.. \uADF8\uB807\uAC8C\uB418\uBA74 \uBD80\uD558\uAC00 \uB108\uBB34 \uAC08\uC218 \uC788\uC5B4\uC11C.. \uC6B0\uC120 \uCCAB\uBC88\uCA30\uAC83\uB9CC \uCC98\uB9AC\uD558\uB3C4\uB85D\uD574\uBCF8\uB2E4.\n // if (firstRawSet) {\n // await this.renderExecute(firstRawSet, fullPathStr, removeRawSets);\n // }\n // for (let i = 0; i < rawSetsArray.length; i += (CHUNK_SIZE)) {\n // chunks.push(rawSetsArray.slice(i, i + CHUNK_SIZE));\n // }\n //\n // for (const chunk of chunks) {\n // const promises = chunk.map(async (it, index) => {\n // await this.renderExecute(it, fullPathStr, removeRawSets);\n // // console.log('----', it);\n // });\n // // console.log('\uC2E4\uD589.!')\n // await Promise.all(promises);\n // if (chunks.length > 1) {\n // await new Promise(resolve => requestAnimationFrame(resolve));\n // }\n // }\n\n if (isOnChildRawSetRendered(this._domRender_proxy)) {\n await this._domRender_proxy.onChildRawSetRendered();\n }\n\n if (removeRawSets.length > 0) {\n this.removeRawSet(...removeRawSets);\n }\n return this.getRawSets();\n }\n\n private async renderExecute(it: RawSet, fullPathStr: string, removeRawSets: RawSet[]) {\n // console.log('\uC2E4\uD589?')\n // await Promises.sleep(0);\n it.getUsingTriggerVariables(this._domRender_config).forEach(path => {\n // console.log('getUsingTriggerVariables->', path);\n this.addRawSet(path, it);\n });\n\n let renderResult: RenderResult | undefined;\n // console.log('isConnected?', it, it.isConnected);\n if (it.isConnected) {\n // \uC911\uC694 render\uB420\uB54C targetAttribute \uCCB4\uD06C \uD574\uC57C\uD568.\n const targetAttrMap = (it.point.node as Element)?.getAttribute?.(EventManager.normalAttrMapAttrName);\n // console.log('sssssssssSSS?',it, targetAttrMap)\n // console.log('----2', it, fullPathStr, targetAttrMap, (it.fragment as any).render, it.isConnected, this.getRawSets());\n if (it.detect?.action) {\n it.detect.action();\n // } else if (it.type === RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && (it.fragment as any).render) {\n } else if (\n it.type === RawSetType.TARGET_ELEMENT &&\n it.dataSet?.render?.currentThis &&\n fullPathStr &&\n targetAttrMap\n ) {\n const attrStart = performance.now();\n new Map<string, NormalAttrDataType>(JSON.parse(targetAttrMap)).forEach((v, k) => {\n // it?.data.onChangeAttrRender(k, null, v);\n // console.log('------->?',v,k);\n const isUsing = v.variablePaths.some(it => EventManager.isUsingThisVar(it.inner, `this.${fullPathStr}`))\n // console.log('------->?',v,k, isUsing);\n if (isUsing) {\n const targetAttrObject = RawSet.getAttributeObject(it.point.node as Element, {\n script: it.dataSet?.render?.renderScript ?? '',\n obj: Object.assign(this._domRender_proxy ?? {}, {__render: it.dataSet?.render})\n });\n it.dataSet.render ??= {};\n it.dataSet.render.attribute = targetAttrObject;\n // const render = it.dataSet?.render;\n // console.log('render-->!!!!!', it.dataSet.render);\n // const script = `${render.renderScript} return ${v} `;\n // const cval = ScriptUtils.eval(script, Object.assign(this._domRender_proxy ?? {}, { __render: render }));\n if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {\n it.dataSet?.render?.currentThis?.onChangeAttrRender?.(k, targetAttrObject[k], {rawSet: it});\n }\n }\n // console.log('---?', v, fullPathStr, isUsing);\n });\n const attrEnd = performance.now();\n // if (attrEnd - attrStart > 10) {\n // console.log('Slow Attr Update:', attrEnd - attrStart, it);\n // }\n // ------------------->\n } else {\n const renderStart = performance.now();\n const rawSets = await it.render(this._domRender_proxy, this._domRender_config);\n // console.log('!!!!!!!!!', rawSets)\n const renderEnd = performance.now();\n // if (renderEnd - renderStart > 10) {\n // console.log('Slow RawSet Render:', renderEnd - renderStart, it);\n // }\n renderResult = rawSets;\n // \uADF8\uC678 \uC790\uC2DD\uB4E4 render\n if (rawSets && rawSets.raws.length > 0) {\n await this.render(rawSets.raws);\n }\n }\n } else {\n removeRawSets.push(it);\n }\n\n const t = it.findNearThis(this._domRender_proxy);\n // TODO: \uD638\uCD9C\uB41C\uACF3\uC5D0\uC11C \uB610 \uBCC0\uC218\uB97C \uC218\uC815\uD558\uAC8C\uB418\uBA74 \uBB34\uD55C\uB8E8\uD504\uB2C8\uAE50 \uC660\uB9CC\uD558\uBA74 \uC0AC\uC6A9\uBABB\uD558\uAC8C \uD574\uC57C\uD55C\uB2E4.\n if (isOnRawSetRendered(t)) {\n await t.onRawSetRendered(it, {path: fullPathStr, value: ObjectUtils.Script.evaluateReturn(`this.${fullPathStr}`, this._domRender_proxy), root: this._domRender_proxy, renderResult});\n }\n }\n\n// domrender_ref\uB85C \uCC3E\uB294\uAC78\uB85C \uBC14\uAFC8\n // public findRootDomRenderProxy(): DomRenderProxy<any> {\n // let current:DomRenderProxy<any> = this;\n // while (current.parentProxy) {\n // current = current.parentProxy;\n // }\n // return current;\n // }\n\n public root(\n pathInfos: { path: string; obj: any }[][],\n value?: any,\n lastDoneExecute = true\n ): { path: string; obj: any }[][] {\n // console.time('root_total');\n const rootStartTime = Date.now();\n const pathKey = pathInfos.flat().map(i => i.path).join('.');\n\n // console.group(`\uD83C\uDF33 DomRenderProxy root: ${pathKey}`);\n // console.log('root--->', pathInfos, value, this._domRender_ref, this._domRender_origin);\n const fullPaths: { path: string; obj: any }[][] = [];\n if (this._domRender_ref.size > 0) {\n this._domRender_ref.forEach((it, key) => {\n if (DomRenderProxyMetaKey._DomRender_isProxy in key) {\n it.forEach(sit => {\n try {\n const recursiveStartTime = Date.now();\n const concat = pathInfos.concat([[{ path: sit, obj: key }]]);\n const items: { path: string; obj: any }[][] = (key as any)._DomRender_proxy?.root(\n concat,\n value,\n lastDoneExecute\n );\n // console.log(`\uD83D\uDD04 Recursive root call for ${sit}: ${Date.now() - recursiveStartTime}ms`);\n\n fullPaths.push(items.flat());\n // fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});\n // fullPaths.push({path: items.map(it=>it.path).join(','), obj: this._domRender_proxy});\n } catch (e) {\n // \uC624\uBE0C\uC81D\uD2B8\uB4E4 \uC5C6\uC5B4\uC84C\uC744\uC218\uB3C4\uC788\uB2E4 Destroy\uC2DC\uC810\uC5D0\uC11C \uC624\uB958\uB098\uB294\uACBD\uC6B0\uAC00 \uC788\uB2E4. \uB530\uB77C\uC11C \uCC38\uC870 \uD558\uB294\uBD80\uBD84 \uC5C6\uC5B4\uC838\uC57C\uD55C\uB2E4.\n // console.error(e)\n // it.delete(sit);\n }\n });\n }\n });\n } else {\n // console.time('root_recursive');\n const pathProcessStartTime = Date.now();\n // const firstPathStr = paths.slice(1).reverse().join('.');\n const shortPaths = pathInfos.reverse().map(it => it.map(it => it.path).join(','));\n // array\uAC19\uC740\uACBD\uC6B0\uB3C4 \uD0A4\uAC12\uC73C\uB85C \uC811\uADFC\uD558\uAE30\uB54C\uBB38\uC5D0 \uD2B9\uC815 \uC778\uB371\uC2A4\uB97C \uCC3E\uC544\uC11C \uADF8\uBD80\uBD84\uB9CC \uBC14\uAFD4\uC904\uC218 \uC788\uB2E4.\n const fullPathStr = shortPaths\n .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))\n .join('')\n .slice(1);\n // console.log(`\uD83D\uDEE4\uFE0F Path processing time: ${Date.now() - pathProcessStartTime}ms for path: ${fullPathStr}`, lastDoneExecute);\n if (lastDoneExecute) {\n // const firstData = ScriptUtils.evalReturn('this.' + firstPathStr, this._domRender_proxy);\n // console.log('-------', firstPathStr, firstData);\n // if (firstData instanceof Dictionary) {\n // }\n const iterable = this._rawSets.get(fullPathStr);\n // array check\n const front = shortPaths\n .slice(0, shortPaths.length - 1)\n .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))\n .join('');\n const lastPropertyName = shortPaths[shortPaths.length - 1];\n const path = 'this' + front;\n const data = ObjectUtils.Script.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(path), this._domRender_proxy);\n // console.log('root-sub-->', this._rawSets, iterable, path, data );\n \n // \uC911\uC694: \uAC12\uC774 undefined/null\uC774 \uB418\uBA74 \uD574\uB2F9 \uACBD\uB85C\uB85C \uC2DC\uC791\uD558\uB294 \uBAA8\uB4E0 child RawSet\uB4E4\uC744 \uC815\uB9AC\n // \uC608: users\uAC00 undefined\uAC00 \uB418\uBA74 users[0].imgUrl, users[1].office.name \uB4F1\uC758 RawSet\uB4E4\uB3C4 \uC81C\uAC70\n // if (value === undefined || value === null) {\n // this.removeChildRawSetsByPath(fullPathStr);\n // }\n // console.log('--!!!!', fullPathStr, iterable, data, front, last);\n // \uC65C\uC5EC\uAE30\uC11C promise\uB97C \uD588\uC744\uAE4C\uB97C \uC0DD\uAC01\uD574\uBCF4\uBA74......\uD6D4.. \uBCC0\uC218\uBCC0\uACBD\uACFC \uD654\uBA74 \uBFCC\uB824\uC8FC\uB294\uAC78 \uB3D9\uAE30\uB85C\uD558\uBA74 \uC131\uB2A5\uC774 \uC548\uB098\uC624\uACE0 \uBE44\uD604\uC2E4\uC801\uC774\uB2E4. \uADF8\uB798\uC11C promise\n const promiseStartTime = Date.now();\n // console.timeEnd('root_recursive');\n // console.time('root_render_wait');\n new Promise<RawSet[]>(async resolve => {\n const promiseInnerStartTime = Date.now();\n let rData: RawSet[] = [];\n const firstPathStr = front.slice(1);\n\n // check dictionary\n const dictionaryCheckStartTime = Date.now();\n // console.log('-promise-------', firstPathStr, this)\n const firstTargets = this._rawSets.get(firstPathStr);\n const firstTargetDictionary: RawSet[] = [];\n firstTargets?.forEach(it => {\n // console.log('----forEach---', it);\n const type = (it.point.start as Element)?.getAttribute?.('type');\n if (type === RawSetOperatorType.DR_THIS_PROPERTY) {\n firstTargetDictionary.push(it);\n }\n });\n // console.log(`\uD83D\uDCDA Dictionary check time: ${Date.now() - dictionaryCheckStartTime}ms (${firstTargetDictionary.length} found)`);\n\n if (firstTargetDictionary.length > 0) {\n // console.log('ddddddddddd', firstTargetDictionary);\n const rawSets: RawSet[] = [];\n let skip = false;\n firstTargetDictionary.forEach(it => {\n const startElement = it.point.start as Element;\n const keys = startElement.getAttribute(RawSet.DR_HAS_KEYS_OPTIONNAME)?.split(',') ?? [];\n if (value === undefined) {\n const rawSet = it.getHasRawSet(lastPropertyName);\n rawSet?.remove();\n startElement.setAttribute(\n RawSet.DR_HAS_KEYS_OPTIONNAME,\n keys.filter(it => it !== lastPropertyName).join(',')\n );\n }\n if (!keys.includes(lastPropertyName)) {\n const raws = DrThisProperty.append(\n this._domRender_proxy,\n fullPathStr,\n lastPropertyName,\n it,\n this._domRender_config\n );\n if (raws) {\n rawSets.push(...raws);\n }\n } else {\n skip = true;\n }\n });\n if (skip === false || rawSets.length > 0) {\n rData = await this.render(rawSets);\n }\n }\n\n const renderStartTime = Date.now();\n if (lastPropertyName === 'length' && Array.isArray(data)) {\n const aIterable = this._rawSets.get(firstPathStr);\n if (aIterable) {\n rData = await this.render(Array.from(aIterable));\n }\n } else if (iterable) {\n // console.log('------------',iterable, fullPaths)\n rData = await this.render(Array.from(iterable), fullPathStr);\n }\n // console.log(`\uD83C\uDFA8 Render time: ${Date.now() - renderStartTime}ms (${rData?.length || 0} rawSets)`);\n\n // console.log('-----------', this, lastPropertyName );\n // this._targets.forEach(it => {\n // // return;\n // if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {\n // const targets = eventManager.findAttrElements((it as DocumentFragment | Element), this.config);\n // eventManager.changeVar(this._domRender_proxy, targets, `this.${fullPathStr}`, this.config);\n // }\n // });\n\n const eventProcessStartTime = Date.now();\n const Node = ((this._domRender_config.window as any).Node)\n this._targets.forEach(it => {\n // return;\n if (it.nodeType === Node.DOCUMENT_FRAGMENT_NODE || it.nodeType === Node.ELEMENT_NODE) {\n const findAttrStartTime = Date.now();\n const targets = this._domRender_config.eventManager.findAttrElements(\n it as DocumentFragment | Element,\n this._domRender_config\n );\n const targetCount = (targets as any)?.size || (targets as any)?.length || 0;\n // console.log(`\uD83D\uDD0D findAttrElements time: ${Date.now() - findAttrStartTime}ms (${targetCount} elements)`, it);\n\n const changeVarStartTime = Date.now();\n this._domRender_config.eventManager.changeVar(\n this._domRender_proxy,\n targets,\n `this.${fullPathStr}`,\n this._domRender_config\n );\n // console.log(`\uD83D\uDD04 changeVar time: ${Date.now() - changeVarStartTime}ms`);\n }\n });\n // console.log(`\u26A1 Event processing time: ${Date.now() - eventProcessStartTime}ms (${this._targets.size} targets)`);\n\n // console.log(`\uD83D\uDD04 Promise inner total time: ${Date.now() - promiseInnerStartTime}ms`);\n\n //\uB79C\uB354\uB300\uC0C1\uB41C\uAC8C\uC788\uC73C\uBA74\n if (rData?.length > 0 && isOnChildRenderedByProperty(data)) {\n const propertyValue = ObjectUtils.Script.evaluateReturn(`this.${lastPropertyName}`, data);\n data.onChildRenderedByProperty(lastPropertyName, propertyValue);\n // data\n }\n resolve(rData);\n }).then(it => {\n // console.log('DonrenderProxy root RenderDone')\n // console.timeEnd('root_render_wait');\n // console.timeEnd('root_total');\n });\n }\n fullPaths.push([{ path: fullPathStr, obj: this._domRender_proxy }]);\n }\n\n // console.log(`\uD83C\uDFC1 Root method total time: ${Date.now() - rootStartTime}ms`);\n // console.log('dddddd', fullPaths.flatMap(it => it).map(it => it.path))\n // console.groupEnd();\n return fullPaths;\n }\n\n public set(target: T, p: string | symbol, value: any, receiver: T): boolean {\n // console.log('set------->', target, p, value, receiver, Date.now())\n // console.log('set------->', p,value)\n // console.log('set------->', target, p, value, receiver, Date.now())\n // try {\n // const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, target, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n // if (isNoProxy) {\n // return obj;\n // }\n // }catch (e) {}\n\n // console.log('set-->', p, value, target, receiver, Reflect.getMetadata(DomRenderNoProxyKey, target, p) );\n\n if (\n (typeof p === 'string' && p !== DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY && excludeGetSetPropertys.includes(p)) ||\n Reflect.getMetadata(DomRenderNoProxyKey, target, p)\n ) {\n (target as any)[p] = value;\n return true;\n }\n // const old = (target as any)[p];\n // console.log('set proxy-->', target, p, value, this._rawSets, this._domRender_ref);\n // if (typeof p === 'string' && '__render' === p) {\n // (target as any)[p] = value;\n // return true;\n // }\n // console.log('set--?', p, target, value);\n let start = performance.now()\n if (typeof p === 'string') {\n value = this.proxy(receiver, value, p);\n }\n // console.log('set proxy time', performance.now() - start, p);\n // start = performance.now();\n\n\n // console.log('set typeChecked', (target as any)[p] instanceof ComponentSet, value instanceof ComponentSet);\n // if ((target as any)[p] instanceof ComponentSet) {\n // (target as any)[p]?.obj?.onDrThisUnBind?.();\n // }\n // console.log('---', this._domRender_ref, p, this._domRender_proxy)\n // is ComponentSet\n if (value instanceof ComponentSet && (target as any)[p] instanceof ComponentSet) {\n value.config.beforeComponentSet = (target as any)[p];\n }\n (target as any)[p] = value;\n let fullPathInfo: { path: string; obj: any }[][] = [];\n if (typeof p === 'string') {\n fullPathInfo = this.root([[{ path: p, obj: this._domRender_proxy }]], value);\n }\n\n\n // console.log('set proxy root time', performance.now() - start, p);\n // start = performance.now();\n //\n // console.log('setRooot', fullPathInfo);\n\n //normal attribute \uB610\uD55C \uB9C1\uD06C\uB791 \uAC19\uC740 \uC99D\uC138\uB77C\uC11C \uC774\uB807\uAC8C \uD574\uC918\uC57C\uD55C\uB2E4!!\n // const rootDomRenderProxy = this.findRootDomRenderProxy();\n // console.log('set!!!!!!!', fullPathInfo, rootDomRenderProxy)\n // console.log('--------rootDom',fullPathInfo, rootDomRenderProxy, rootDomRenderProxy._domRender_proxy)\n const rootElement = this._domRender_config.rootElement ?? this._domRender_config.window.document;\n DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.normalAttrMapAttrName)?.forEach(\n elementInfo => {\n // @ts-ignore\n // const optionalPath = ObjectUtils.Path.toOptionalChainPath(elementInfo.value);\n const targets = new Map<string, NormalAttrDataType>(\n ObjectUtils.Script.evaluateReturn<[string, NormalAttrDataType][]>(elementInfo.value)\n );\n Array.from(targets.entries())\n .filter(ValidUtils.isDefined<[string, NormalAttrDataType]>)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.variablePaths?.some(vit => vit.inner.includes(`this.${it.path}`)))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(it => {\n // const optionalPaths = it.valueScript.variablePaths.map(it => ObjectUtils.Path.toOptionalChainPath(it))\n const variablePaths = it.valueScript.variablePaths;\n let targetScript = it.valueScript.originalAttrValue;\n let script: string;\n if (it.valueScript.isStringTemplate) {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `\\${${r}}`);\n })\n script = '`' + targetScript + '`';\n } else {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `${r}`);\n })\n script = targetScript;\n }\n // variablePaths.forEach(it => {\n // let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n // targetScript = targetScript.replaceAll(it.origin,`\\${${r}}`);\n // })\n const value1 = ObjectUtils.Script.evaluateReturn(script, it.pathInfo.obj);\n // console.log('proxy set!Attribut======', it.key, value1)\n if (value1 === null || value1 === undefined) {\n elementInfo.element.removeAttribute(it.key);\n // elementInfo.element[it.key] = null;\n } else {\n elementInfo.element.setAttribute(it.key, value1);\n elementInfo.element[it.key] = value1;\n }\n });\n }\n );\n\n // console.log('set proxy normalAttrMapAttrName time', performance.now() - start, p);\n // start = performance.now();\n\n\n\n //\uC5EC\uAE30\uC11C \uB9C1\uD06C \uAC19\uC740\uAC70 \uD574\uC918\uC57C\uD568 *-link\uB85C \uBCC0\uC218\uAC12\uC774 \uBCC0\uACBD\uB418\uBA74 \uADF8\uAC78 \uCC38\uACE0\uD558\uACE0\uC788\uB294 \uB2E4\uB978\uAC83\uB4E4\uC5D0\uB3C4 \uD574\uC918\uC57C\uD55C\uB2E4.\n DocumentUtils.querySelectorAllByAttributeName(rootElement, EventManager.linkTargetMapAttrName)?.forEach(\n elementInfo => {\n // @ts-ignore\n const targets = new Map<string, string>(ObjectUtils.Script.evaluateReturn<[string, string][]>(elementInfo.value));\n\n Array.from(targets.entries())\n .filter(([key, value]) => value.trim())\n .filter(ValidUtils.isDefined<[string, string]>)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.includes(`this.${it.path}`))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(info => {\n const value1 = ObjectUtils.Script.evaluateReturn(info.valueScript, info.pathInfo.obj);\n const applyAttributeName = EventManager.linkAttrs.find(it => it.name === info.key);\n if (applyAttributeName) {\n if (value1 === null) {\n elementInfo.element.removeAttribute(applyAttributeName.property);\n } else {\n // console.log('ppppppppppppppppppppppp', applyAttributeName, elementInfo)\n elementInfo.element.setAttribute(applyAttributeName.property, value1);\n }\n }\n });\n\n Array.from(targets.entries())\n .filter(([key, value]) => value.trim())\n .filter(ValidUtils.isDefined<[string, string]>)\n .flatMap(([key, valueScript]) => {\n return fullPathInfo\n .flat()\n .filter(it => valueScript.includes(`this.${it.path}`))\n .flatMap(it => ({ key, valueScript: valueScript, pathInfo: it }));\n })\n .forEach(info => {\n const linkInfo = EventManager.linkAttrs.find(it => it.name === info.key);\n if (linkInfo) {\n elementInfo.element[linkInfo.property] = value;\n }\n });\n }\n );\n\n // console.log('set proxy linkTargetMapAttrName time', performance.now() - start, p);\n // start = performance.now();\n\n // console.log('---end',receiver);\n if (\n DomRenderProxyMetaKey.onBeforeReturnSet in receiver &&\n typeof p === 'string' &&\n !(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)\n ) {\n if (isOnBeforeReturnSet(receiver)) {\n receiver.onBeforeReturnSet?.(\n p,\n value,\n fullPathInfo.map(it => it.map(it => it.path).join())\n );\n }\n }\n\n // console.log('done!!')\n return true;\n }\n\n get(target: T, p: string | symbol, receiver: any): any {\n // console.log('get-->', target, p, receiver);\n if (p === DomRenderProxyMetaKey._DomRender_origin || p === DomRenderProxyMetaKey._domRender_origin) {\n return this._domRender_origin;\n } else if (p === DomRenderProxyMetaKey._DomRender_ref || p === DomRenderProxyMetaKey._domRender_ref) {\n return this._domRender_ref;\n } else if (p === DomRenderProxyMetaKey._DomRender_config || p === DomRenderProxyMetaKey._domRender_config) {\n return this._domRender_config;\n } else if (p === DomRenderProxyMetaKey._DomRender_proxy || p === DomRenderProxyMetaKey._domRender_proxy) {\n return this;\n } else {\n // Date\uB77C\uB358\uC9C0 \uC774\uB7F0\uB188\uB4E4\uC740-_-\uD504\uB85D\uC2DC\uAC00 \uC774\uC0C1\uD558\uAC8C \uB3D9\uC791\uD574\uC11C\n // console.log('--->', p, target, target.bind, 'bind' in target)\n // if ((p in target) && ('bind' in target)) {\n // try{\n // return (target as any)[p].bind(target);\n // }catch (e) {\n // console.error(e)\n // }\n // } else {\n // return (target as any)[p]\n // }\n // return (p in target) ? (target as any)[p].bind(target) : (target as any)[p]\n // console.log('-->', p, Object.prototype.toString.call((target as any)[p]), (target as any)[p])\n // return (target as any)[p]\n let it = (target as any)[p];\n if (\n it &&\n typeof it === 'object' &&\n DomRenderProxyMetaKey._DomRender_isProxy in it &&\n Object.prototype.toString.call(it._DomRender_origin) === '[object Date]'\n ) {\n it = it._DomRender_origin;\n }\n\n if (\n DomRenderProxyMetaKey.onBeforeReturnGet in receiver &&\n typeof p === 'string' &&\n !(this._domRender_config.proxyExcludeOnBeforeReturnGets ?? []).concat(excludeGetSetPropertys).includes(p)\n ) {\n (receiver as any)?.onBeforeReturnGet?.(\n p,\n it,\n this.root([[{ path: p, obj: this._domRender_proxy }]], it, false)\n );\n }\n return it;\n }\n }\n\n deleteProperty(target: T, p: string | symbol): boolean {\n delete (target as any)[p];\n if (typeof p === 'string') {\n this.root([[{ path: p, obj: this._domRender_proxy }]]);\n }\n return true;\n }\n\n has(target: T, p: string | symbol): boolean {\n return p === DomRenderProxyMetaKey._DomRender_isProxy || p in target;\n }\n\n proxy(parentProxy: T, obj: T | any, p: string) {\n try {\n // const isNoProxy = Reflect.getMetadata(DomRenderNoProxyKey, obj, p) || Reflect.getMetadata(DomRenderNoProxyKey, Object.getPrototypeOf(obj).constructor);\n const isObject = typeof obj === 'object';\n const isNoProxy = isObject && isDomRenderNoProxy(obj, p);\n const isExclude = this._domRender_config.proxyExcludeTyps?.some(it => obj instanceof it) ?? false;\n const isFinal = isObject && DomRenderProxy.isFinal(obj);\n const isFrozen = Object.isFrozen(obj);\n const isShield = obj instanceof Shield;\n if (\n obj === undefined ||\n obj === null ||\n isNoProxy ||\n isExclude ||\n ValidUtils.isNullOrUndefined(obj) ||\n !isObject ||\n isFinal ||\n isFrozen ||\n isShield\n ) {\n return obj;\n }\n } catch (e) { }\n\n /*\n const proxyTarget = (this._domRender_config.proxyExcludeTyps?.filter(it => obj instanceof it) ?? []).length <= 0;\n if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && !('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {\n const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);\n domRender.addRef(parentProxy, p);\n const proxy = new Proxy(obj, domRender);\n domRender.run(proxy);\n return proxy;\n }\n if (proxyTarget && obj !== undefined && obj !== null && typeof obj === 'object' && ('_DomRender_isProxy' in obj) && !DomRenderProxy.isFinal(obj) && !Object.isFrozen(obj) && !(obj instanceof Shield)) {\n const d = (obj as any)._DomRender_proxy as DomRenderProxy<T>;\n d.addRef(this._domRender_proxy!, p);\n return obj;\n } else {\n return obj;\n }\n */\n if (!isWrapProxyDomRenderProxy(obj)) {\n const domRender = new DomRenderProxy(obj, undefined, this._domRender_config);\n domRender.addRef(parentProxy, p);\n const proxy = new Proxy(obj, domRender);\n domRender.run(proxy);\n return proxy;\n }\n if (isWrapProxyDomRenderProxy(obj)) {\n const d = (obj as any)._DomRender_proxy as DomRenderProxy<T>;\n d.addRef(this._domRender_proxy!, p);\n return obj;\n } else {\n return obj;\n }\n }\n\n public addRef(parent: object, path: string) {\n if (!this._domRender_ref.get(parent)) {\n this._domRender_ref.set(parent, new Set<string>());\n }\n this._domRender_ref.get(parent)?.add(path);\n }\n\n public addRawSetAndRender(path: string, rawSet: RawSet) {\n this.addRawSet(path, rawSet);\n this.render([rawSet]);\n }\n\n public addRawSet(path: string, rawSet: RawSet) {\n // console.log('addRawSet--> path:', path, 'rawSet:', rawSet)\n if (!this._rawSets.get(path)) {\n this._rawSets.set(path, new Set<RawSet>());\n }\n this._rawSets.get(path)?.add(rawSet);\n }\n\n // public removeRawSet(...raws: RawSet[]) {\n // this._rawSets.forEach(it => {\n // raws.forEach(sit => it.delete(sit));\n // })\n // this.garbageRawSet();\n // }\n\n public removeRawSet(...raws: RawSet[]) {\n // console.log('Before removeRawSet, total rawSets:', this.getRawSets().length);\n this._rawSets.forEach(it => {\n it.forEach(sit => {\n if (!sit.isConnected) {\n it.delete(sit);\n } else if (raws.includes(sit)) {\n it.delete(sit);\n }\n });\n });\n this.targetGarbageRawSet();\n // console.log('After removeRawSet, total rawSets:', this.getRawSets().length);\n }\n\n // \uD2B9\uC815 \uACBD\uB85C\uB85C \uC2DC\uC791\uD558\uB294 \uBAA8\uB4E0 child RawSet\uB4E4\uC744 \uC81C\uAC70\n // \uC608: path\uAC00 'users'\uC774\uBA74 'users[0]', 'users[0].imgUrl', 'users.length' \uB4F1 \uBAA8\uB450 \uC81C\uAC70\n public removeChildRawSetsByPath(parentPath: string) {\n const pathsToRemove: string[] = [];\n this._rawSets.forEach((rawSetSet, path) => {\n // \uC815\uD655\uD788 \uC77C\uCE58\uD558\uAC70\uB098, \uBC30\uC5F4 \uC778\uB371\uC2A4 \uC811\uADFC(users[), \uB610\uB294 \uC18D\uC131 \uC811\uADFC(users.)\uC73C\uB85C \uC2DC\uC791\uD558\uB294 \uACBD\uC6B0\n if (path === parentPath || path.startsWith(parentPath + '[') || path.startsWith(parentPath + '.')) {\n pathsToRemove.push(path);\n }\n });\n \n if (pathsToRemove.length > 0) {\n // console.log(`\uD83E\uDDF9 Removing child RawSets for path '${parentPath}':`, pathsToRemove);\n pathsToRemove.forEach(path => {\n const rawSetSet = this._rawSets.get(path);\n if (rawSetSet) {\n rawSetSet.forEach(rawSet => {\n // DOM\uC5D0\uC11C \uC81C\uAC70\n rawSet.remove?.();\n });\n this._rawSets.delete(path);\n }\n });\n }\n }\n\n private targetGarbageRawSet() {\n this._targets.forEach(it => {\n if (!it.isConnected) {\n this._targets.delete(it);\n }\n });\n }\n\n private garbageRawSet() {\n this._targets.forEach(it => {\n if (!it.isConnected) {\n this._targets.delete(it);\n }\n });\n\n this._rawSets.forEach(it => {\n it.forEach(sit => {\n if (!sit.isConnected) {\n it.delete(sit);\n }\n });\n });\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["it", "value"]
7
7
  }
@@ -6,14 +6,12 @@ export * from "./DomRenderProxy.js";
6
6
  export * from "./configs/index.js";
7
7
  export * from "./decorators/index.js";
8
8
  export * from "./events/index.js";
9
- export * from "./iterators/index.js";
9
+ export * from "@dooboostore/core";
10
10
  export * from "./lifecycle/index.js";
11
11
  export * from "./messenger/index.js";
12
12
  export * from "./operators/index.js";
13
13
  export * from "./rawsets/index.js";
14
- export * from "./routers/index.js";
15
14
  export * from "./types/index.js";
16
- export * from "./validators/index.js";
17
15
  import { drComponent, If, This, Appender, PromiseSwitch, Choose, CheckBox, Radio, Select, Timer, Details, Input, Route, RouterOutlet, A } from "./components/index.js";
18
16
  export {
19
17
  A,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/bundle-entry.ts"],
4
- "sourcesContent": ["import 'reflect-metadata';\nexport * as Core from '@dooboostore/core/bundle-entry';\nexport * as CoreWeb from '@dooboostore/core-web/bundle-entry';\n// export { DomRender, type DomRenderRunConfig, type CreateComponentParam } from './DomRender';\n// export { DomRenderProxy, getDomRenderConfig, getDomRenderOriginObject, getDomRenderProxy, isWrapProxyDomRenderProxy } from './DomRenderProxy';\n\nexport * from './DomRender';\nexport * from './DomRenderProxy';\nexport * from './configs';\nexport * from './decorators';\nexport * from './events';\nexport * from './iterators';\nexport * from './lifecycle';\nexport * from './messenger';\nexport * from './operators';\nexport * from './rawsets';\nexport * from './routers';\nexport * from './types';\nexport * from './validators';\nexport { drComponent , If, This, Appender as AppenderComponent, PromiseSwitch, Choose, CheckBox, Radio, Select, Timer, Details, Input, Route, RouterOutlet, A } from './components';"],
5
- "mappings": "AAAA,OAAO;AACP,YAAY,UAAU;AACtB,YAAY,aAAa;AAIzB,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,aAAc,IAAI,MAAkB,UAAmB,eAAe,QAAQ,UAAU,OAAO,QAAQ,OAAO,SAAS,OAAO,OAAO,cAAc,SAAS;",
4
+ "sourcesContent": ["import 'reflect-metadata';\nexport * as Core from '@dooboostore/core/bundle-entry';\nexport * as CoreWeb from '@dooboostore/core-web/bundle-entry';\n// export { DomRender, type DomRenderRunConfig, type CreateComponentParam } from './DomRender';\n// export { DomRenderProxy, getDomRenderConfig, getDomRenderOriginObject, getDomRenderProxy, isWrapProxyDomRenderProxy } from './DomRenderProxy';\n\nexport * from './DomRender';\nexport * from './DomRenderProxy';\nexport * from './configs';\nexport * from './decorators';\nexport * from './events';\nexport * from '@dooboostore/core';\nexport * from './lifecycle';\nexport * from './messenger';\nexport * from './operators';\nexport * from './rawsets';\nexport * from './types';\nexport { drComponent, If, This, Appender as AppenderComponent, PromiseSwitch, Choose, CheckBox, Radio, Select, Timer, Details, Input, Route, RouterOutlet, A } from './components';\n"],
5
+ "mappings": "AAAA,OAAO;AACP,YAAY,UAAU;AACtB,YAAY,aAAa;AAIzB,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,aAAa,IAAI,MAAkB,UAAmB,eAAe,QAAQ,UAAU,OAAO,QAAQ,OAAO,SAAS,OAAO,OAAO,cAAc,SAAS;",
6
6
  "names": []
7
7
  }
@@ -8,14 +8,13 @@ var __metadata = function(k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  var _a, _b;
11
- import { ElementUtils } from "@dooboostore/core-web/element/ElementUtils";
11
+ import { ElementUtils } from "@dooboostore/core-web";
12
12
  import { RawSet } from "../rawsets/RawSet.js";
13
13
  import { DomRenderNoProxy } from "../decorators/DomRenderNoProxy.js";
14
- import { ConvertUtils } from "@dooboostore/core/convert/ConvertUtils";
15
- import { ReflectUtils } from "@dooboostore/core/reflect/ReflectUtils";
16
- import { Subject } from "@dooboostore/core/message/Subject";
17
- import { debounceTime } from "@dooboostore/core/message/operators/debounceTime";
18
- import { bufferTime } from "@dooboostore/core/message/operators/bufferTime";
14
+ import { ConvertUtils } from "@dooboostore/core";
15
+ import { ReflectUtils } from "@dooboostore/core";
16
+ import { Subject } from "@dooboostore/core";
17
+ import { MessageOperator } from "@dooboostore/core";
19
18
  const ATTRIBUTE_METADATA_KEY = Symbol("attribute");
20
19
  const QUERY_METADATA_KEY = Symbol("query");
21
20
  const EVENT_METADATA_KEY = Symbol("event");
@@ -511,13 +510,26 @@ class ComponentBase {
511
510
  }
512
511
  }
513
512
  async onInitRender(param, rawSet) {
514
- this.createChildrenDebounceSubscription = this.childrenSetSubject.pipe(debounceTime(this.componentConfig?.createChildrenDebounce ?? 0)).subscribe((it) => {
513
+ const window = rawSet.dataSet?.config?.window;
514
+ this.createChildrenDebounceSubscription = this.childrenSetSubject.pipe(MessageOperator.debounceTime(this.componentConfig?.createChildrenDebounce ?? 1, {
515
+ setTimeout: window ? window.setTimeout.bind(window) : void 0,
516
+ clearTimeout: window ? window.clearTimeout.bind(window) : void 0
517
+ })).subscribe((it) => {
515
518
  this.onCreatedThisChildDebounce(it);
516
519
  });
517
- this.onRawSetRenderedOtherDataSubjectSubscription = this.onRawSetRenderedOtherDataSubject.pipe(bufferTime(this.componentConfig?.onRawSetRenderedOtherDataDebounce ?? 0)).subscribe((it) => {
520
+ this.onRawSetRenderedOtherDataSubjectSubscription = this.onRawSetRenderedOtherDataSubject.pipe(MessageOperator.bufferTime(this.componentConfig?.onRawSetRenderedOtherDataDebounce ?? 1, {
521
+ skipEmpty: true,
522
+ setInterval: window ? window.setInterval.bind(window) : void 0,
523
+ clearInterval: window ? window.clearInterval.bind(window) : void 0,
524
+ setTimeout: window ? window.setTimeout.bind(window) : void 0,
525
+ clearTimeout: window ? window.clearTimeout.bind(window) : void 0
526
+ })).subscribe((it) => {
518
527
  this.onRawSetRenderedDebounce(it);
519
528
  });
520
- this.onChildRawSetRenderedOtherDataSubjectSubscription = this.onChildRawSetRenderedOtherDataSubject.pipe(debounceTime(this.componentConfig?.onChildRawSetRenderedOtherDataDebounce ?? 0)).subscribe((it) => {
529
+ this.onChildRawSetRenderedOtherDataSubjectSubscription = this.onChildRawSetRenderedOtherDataSubject.pipe(MessageOperator.debounceTime(this.componentConfig?.onChildRawSetRenderedOtherDataDebounce ?? 10, {
530
+ setTimeout: window ? window.setTimeout.bind(window) : void 0,
531
+ clearTimeout: window ? window.clearTimeout.bind(window) : void 0
532
+ })).subscribe((it) => {
521
533
  this.onChildRawSetRenderedDebounce();
522
534
  });
523
535
  if (rawSet) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/ComponentBase.ts"],
4
- "sourcesContent": ["import { ElementUtils } from '@dooboostore/core-web/element/ElementUtils';\nimport { OnChangeAttrRender, OtherData } from '../lifecycle/OnChangeAttrRender';\nimport { OnCreateRenderData, OnCreateRenderDataParams } from '../lifecycle/OnCreateRenderData';\nimport { RawSet } from '../rawsets/RawSet';\nimport { ConstructorType } from '@dooboostore/core/types';\nimport { OnCreatedThisChild } from '../lifecycle/OnCreatedThisChild';\nimport { DomRenderNoProxy } from '../decorators/DomRenderNoProxy';\nimport { OnInitRender } from '../lifecycle/OnInitRender';\nimport { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';\nimport { OnDestroyRender, OnDestroyRenderParams } from '../lifecycle/OnDestroyRender';\nimport { OnDrThisUnBind } from '../lifecycle/dr-this/OnDrThisUnBind';\nimport { OnDrThisBind } from '../lifecycle/dr-this/OnDrThisBind';\nimport type { Render } from '../rawsets/Render';\nimport { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';\nimport { DomRenderConfig } from '../configs/DomRenderConfig';\nimport { Subject } from '@dooboostore/core/message/Subject';\nimport { debounceTime } from '@dooboostore/core/message/operators/debounceTime';\nimport type { Subscription } from '@dooboostore/core/message/Subscription';\nimport { OnRawSetRendered, OnRawSetRenderedOtherData } from \"../lifecycle/OnRawSetRendered\";\nimport {bufferTime} from \"@dooboostore/core/message/operators/bufferTime\";\nimport {OnChildRawSetRendered} from \"../lifecycle/OnChildRawSetRendered\";\n\n\nexport const ATTRIBUTE_METADATA_KEY = Symbol('attribute');\nexport const QUERY_METADATA_KEY = Symbol('query');\nexport const EVENT_METADATA_KEY = Symbol('event');\n\nexport interface AttributeMetadata {\n propertyKey: string | symbol;\n name: string;\n converter?: (value: any | string | null) => any;\n isMethod: boolean;\n}\n\nexport interface QueryMetadata {\n selector: string;\n propertyKey: string | symbol;\n isMethod: boolean;\n convert?: (e: Element) => any;\n onDestroy?: (componentInstance: any, element: Element) => void;\n refreshTime?: number; // milliseconds\n refreshRawSetRendered?: boolean;\n}\n\nexport interface EventMetadata {\n query: string;\n eventName: string;\n methodName: string | symbol;\n onDestroy?: (componentInstance: any, element: Element) => void;\n refreshTime?: number; // milliseconds\n refreshRawSetRendered?: boolean;\n}\n\nexport function attribute(nameOrOptions?: string | { name?: string, converter?: (value: any | string | null) => any }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {\n return (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const attributes = ReflectUtils.getMetadata<AttributeMetadata[]>(ATTRIBUTE_METADATA_KEY, target.constructor) || [];\n \n let name: string;\n let converter: ((value: any | string | null) => any) | undefined;\n \n if (typeof nameOrOptions === 'string') {\n name = nameOrOptions;\n } else if (nameOrOptions) {\n name = nameOrOptions.name || String(propertyKey);\n converter = nameOrOptions.converter;\n } else {\n name = String(propertyKey);\n }\n \n const attributeMetadata: AttributeMetadata = {\n propertyKey: propertyKey,\n name: name,\n converter: converter,\n isMethod: !!descriptor\n };\n \n attributes.push(attributeMetadata);\n ReflectUtils.defineMetadata(ATTRIBUTE_METADATA_KEY, attributes, target.constructor);\n };\n}\n\nexport function query(selectorOrOptions: string | { selector: string, convert?: (e: Element) => any, onDestroy?: (componentInstance: any, element: Element) => void, refreshIntervalTime?: number, refreshRawSetRendered?: boolean }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {\n return (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, target.constructor) || [];\n \n let selector: string;\n let convert: ((e: Element) => any) | undefined;\n let onDestroy: ((componentInstance: any, element: Element) => void) | undefined;\n let refreshTime: number | undefined;\n let refreshRawSetRendered: boolean | undefined;\n\n if (typeof selectorOrOptions === 'string') {\n selector = selectorOrOptions;\n } else {\n selector = selectorOrOptions.selector;\n convert = selectorOrOptions.convert;\n onDestroy = selectorOrOptions.onDestroy;\n refreshTime = selectorOrOptions.refreshIntervalTime;\n refreshRawSetRendered = selectorOrOptions.refreshRawSetRendered;\n }\n \n const queryMetadata: QueryMetadata = {\n selector: selector,\n propertyKey: propertyKey,\n isMethod: !!descriptor,\n convert: convert,\n onDestroy: onDestroy,\n refreshTime: refreshTime,\n refreshRawSetRendered\n };\n \n queries.push(queryMetadata);\n ReflectUtils.defineMetadata(QUERY_METADATA_KEY, queries, target.constructor);\n };\n}\n\nexport function event(options: { query: string, name: string, onDestroy?: (componentInstance: any, element: Element) => void, refreshTime?: number, refreshRawSetRendered?: boolean }): MethodDecorator {\n return (target: object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, target.constructor) || [];\n \n const eventMetadata: EventMetadata = {\n query: options.query,\n eventName: options.name,\n methodName: propertyKey,\n onDestroy: options.onDestroy,\n refreshTime: options.refreshTime,\n refreshRawSetRendered: options.refreshRawSetRendered\n };\n \n events.push(eventMetadata);\n ReflectUtils.defineMetadata(EVENT_METADATA_KEY, events, target.constructor);\n };\n}\n\n\nexport type ComponentBaseConfig = { onlyParentType?: ConstructorType<any>[] | ConstructorType<any>,\n createChildrenDebounce?: number,\n onRawSetRenderedOtherDataDebounce?: number\n onChildRawSetRenderedOtherDataDebounce?: number\n};\n\nexport type ChildrenSet = { instance: any, data: OnCreateRenderDataParams };\n\nexport class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBaseConfig> implements OnChangeAttrRender, OnCreateRenderData, OnCreatedThisChild, OnDrThisBind, OnDrThisUnBind, OnInitRender, OnDestroyRender, OnRawSetRendered, OnChildRawSetRendered {\n @DomRenderNoProxy\n private _rawSet?: RawSet;\n @DomRenderNoProxy\n private _children: ChildrenSet[] = [];\n @DomRenderNoProxy\n private _render: Render | undefined;\n @DomRenderNoProxy\n private _attribute?: T;\n @DomRenderNoProxy\n private _boundEventListeners: { element: Element, eventName: string, listener: (e: Event) => void }[] = [];\n @DomRenderNoProxy\n private _queryBindings: { element: Element, metadata: QueryMetadata }[] = [];\n @DomRenderNoProxy\n private _eventBindings: { element: Element, metadata: EventMetadata, listener: (e: Event) => void }[] = [];\n @DomRenderNoProxy\n private _refreshTimers: Map<QueryMetadata | EventMetadata, NodeJS.Timeout> = new Map();\n\n @DomRenderNoProxy\n private childrenSetSubject = new Subject<ChildrenSet[]>();\n @DomRenderNoProxy\n private createChildrenDebounceSubscription?: Subscription | undefined;\n @DomRenderNoProxy\n private onRawSetRenderedOtherDataSubject = new Subject<OnRawSetRenderedOtherData>();\n @DomRenderNoProxy\n private onChildRawSetRenderedOtherDataSubject = new Subject<void>();\n @DomRenderNoProxy\n private onRawSetRenderedOtherDataSubjectSubscription?: Subscription | undefined;\n @DomRenderNoProxy\n private onChildRawSetRenderedOtherDataSubjectSubscription?: Subscription | undefined;\n\n constructor(private _config?: C) {\n }\n get componentConfig(): C | undefined {\n return this._config;\n }\n get render(): Render | undefined {\n return this._render;\n }\n\n get rawSet(): RawSet | undefined {\n return this._rawSet;\n }\n\n get domRenderConfig(): DomRenderConfig | undefined {\n return this.rawSet?.dataSet.config;\n }\n\n private _queryElements(selector: string, rawSet:RawSet): Element[] {\n const e = this.getElement();\n // console.log('queryElement-->', e);\n if (e) {\n return ElementUtils.querySelectorAll(e, selector);\n } else {\n let startNode = rawSet.point?.start;\n let endNode = rawSet.point?.end;\n // console.log('-----', startNode, endNode)\n // console.log('-----', startNode?.isConnected, endNode?.isConnected)\n if (rawSet.point?.start && startNode && !startNode.isConnected && startNode instanceof HTMLElement && startNode.hasAttribute('id')) {\n rawSet.point.start = startNode = rawSet.dataSet.config.window.document.querySelector('#' + startNode.id) as HTMLMetaElement\n }\n if (rawSet.point?.end && endNode && !endNode.isConnected && endNode instanceof HTMLElement && endNode.hasAttribute('id')) {\n rawSet.point.end = endNode = rawSet.dataSet.config.window.document.querySelector('#' + endNode.id) as HTMLMetaElement\n }\n if (startNode && endNode) {\n // console.log('query!!', startNode, endNode);\n return ElementUtils.querySelectorAll({ start: startNode as Element, end: endNode as Element }, selector);\n }\n }\n return [];\n }\n\n private _cleanupEventListeners() {\n for (const { element, eventName, listener } of this._boundEventListeners) {\n element.removeEventListener(eventName, listener);\n }\n this._boundEventListeners = [];\n }\n\n private _cleanupQueryBindings() {\n for (const { element, metadata } of this._queryBindings) {\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n this._clearRefreshTimer(metadata);\n }\n this._queryBindings = [];\n }\n\n private _cleanupEventBindings() {\n for (const { element, metadata, listener } of this._eventBindings) {\n element.removeEventListener(metadata.eventName, listener);\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n this._clearRefreshTimer(metadata);\n }\n this._eventBindings = [];\n }\n\n private _applyQueryBinding(queryInfo: QueryMetadata, elements: Element[], newElementsOnly: Element[] = elements) {\n const { propertyKey, isMethod, convert } = queryInfo;\n \n // Track bindings for cleanup\n elements.forEach(element => {\n this._queryBindings.push({ element, metadata: queryInfo });\n });\n \n // Apply convert function if provided\n const processedElements = convert ? elements.map(convert) : elements;\n const processedNewElements = convert ? newElementsOnly.map(convert) : newElementsOnly;\n \n if (isMethod) {\n const method = (this as any)[propertyKey];\n if (typeof method === 'function') {\n const paramTypes = ReflectUtils.getParameterTypes(this, propertyKey);\n if (paramTypes && paramTypes.length > 0 && paramTypes[0] === Array) {\n // For array methods, pass only new elements\n method.call(this, processedNewElements, {all: processedElements});\n } else {\n // For single element methods, pass first new element\n if (processedNewElements.length > 0) {\n method.call(this, processedNewElements[0], {all: processedElements, newAll: processedNewElements});\n }\n }\n }\n } else {\n // For properties, always set all elements (not just new ones)\n const propertyType = ReflectUtils.getType(this, propertyKey);\n if (propertyType === Array) {\n (this as any)[propertyKey] = processedElements;\n } else {\n (this as any)[propertyKey] = processedElements[0] || null;\n }\n }\n }\n\n private _setupQueryDecorators(rawSet: RawSet) {\n if (!rawSet) return;\n\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);\n // console.group('_setupQueryDecorators')\n // console.log('queries', queries);\n if (queries && Array.isArray(queries)) {\n for (const queryInfo of queries) {\n const elements = this._queryElements(queryInfo.selector, rawSet);\n // console.log('------elements', elements);\n this._applyQueryBinding(queryInfo, elements);\n \n // Setup refresh timer if specified\n this._setupRefreshTimer(queryInfo);\n }\n }\n // console.groupEnd();\n }\n\n private _updateQueryBinding(queryInfo: QueryMetadata, rawSet: RawSet, forceUpdate = false) {\n const newElements = this._queryElements(queryInfo.selector, rawSet);\n \n // Get current bindings for this query\n const currentBindings = this._queryBindings.filter(binding => binding.metadata === queryInfo);\n const currentElements = currentBindings.map(binding => binding.element);\n \n // Check if elements have changed\n const elementsChanged = forceUpdate || !this._arraysEqual(currentElements, newElements);\n \n if (elementsChanged) {\n let addedElements: Element[] = [];\n \n if (forceUpdate) {\n // Force update: cleanup all old bindings, treat all as new\n currentBindings.forEach(({ element, metadata }) => {\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n });\n addedElements = newElements;\n } else {\n // Smart update: only cleanup removed elements, find added elements\n const removedElements = currentElements.filter(element => !newElements.includes(element));\n addedElements = newElements.filter(element => !currentElements.includes(element));\n \n removedElements.forEach(element => {\n if (queryInfo.onDestroy) {\n queryInfo.onDestroy(this, element);\n }\n });\n }\n \n // Remove old bindings\n this._queryBindings = this._queryBindings.filter(binding => binding.metadata !== queryInfo);\n \n // Apply new bindings, but pass only added elements to methods\n this._applyQueryBinding(queryInfo, newElements, addedElements);\n }\n }\n\n private _updateQueryDecorators(rawSet: RawSet) {\n if (!rawSet) return;\n\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);\n if (queries && Array.isArray(queries)) {\n for (const queryInfo of queries) {\n this._updateQueryBinding(queryInfo, rawSet);\n }\n }\n }\n\n private _arraysEqual(arr1: Element[], arr2: Element[]): boolean {\n if (arr1.length !== arr2.length) return false;\n return arr1.every((element, index) => element === arr2[index]);\n }\n\n private _setupRefreshTimer(metadata: QueryMetadata | EventMetadata) {\n if (!metadata.refreshTime || !this._rawSet) return;\n\n const timer = setInterval(() => {\n if (!this._rawSet) return;\n\n if ('selector' in metadata) {\n // QueryMetadata\n this._updateQueryBinding(metadata as QueryMetadata, this._rawSet);\n } else {\n // EventMetadata\n this._updateEventBinding(metadata as EventMetadata, this._rawSet);\n }\n }, metadata.refreshTime);\n\n this._refreshTimers.set(metadata, timer);\n }\n\n private _clearRefreshTimer(metadata: QueryMetadata | EventMetadata) {\n const timer = this._refreshTimers.get(metadata);\n if (timer) {\n clearInterval(timer);\n this._refreshTimers.delete(metadata);\n }\n }\n\n private _clearAllRefreshTimers() {\n for (const timer of Array.from(this._refreshTimers.values())) {\n clearInterval(timer);\n }\n this._refreshTimers.clear();\n }\n\n async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n this.onRawSetRenderedOtherDataSubject.next(otherData);\n // this.onRawSetRenderedOtherDataSubjectSubscription = this.onRawSetRenderedOtherDataSubject.pipe(debounceTime(this.componentConfig?.onRawSetRenderedOtherDataDebounce??0)).subscribe(it => {\n // this.onRawSetRenderedDebounce(it);\n // });\n\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);\n if (queries) {\n queries.filter(it => it.refreshRawSetRendered).forEach(queryInfo => {\n this._updateQueryBinding(queryInfo, rawSet, true);\n });\n }\n\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);\n if (events) {\n events.filter(it => it.refreshRawSetRendered).forEach(eventInfo => {\n this._updateEventBinding(eventInfo, rawSet, true);\n });\n }\n }\n\n async onChildRawSetRendered(): Promise<void> {\n this.onChildRawSetRenderedOtherDataSubject.next();\n }\n\n /**\n * Manually refresh all query and event decorators\n * Useful when DOM elements are dynamically added/removed and you want to update bindings\n */\n refreshDecorators(): void {\n if (this._rawSet) {\n this._updateQueryDecorators(this._rawSet);\n this._updateEventDecorators(this._rawSet);\n }\n }\n\n /**\n * Manually refresh specific query decorators by property key\n * @param propertyKeys - Array of property keys to refresh, or single property key\n */\n refreshQueryDecorators(propertyKeys: (string | symbol) | (string | symbol)[]): void {\n if (!this._rawSet) return;\n\n const keys = Array.isArray(propertyKeys) ? propertyKeys : [propertyKeys];\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);\n \n if (queries && Array.isArray(queries)) {\n for (const queryInfo of queries) {\n if (keys.includes(queryInfo.propertyKey)) {\n this._updateQueryBinding(queryInfo, this._rawSet, true); // Force update\n }\n }\n }\n }\n\n /**\n * Manually refresh specific event decorators by method name\n * @param methodNames - Array of method names to refresh, or single method name\n */\n refreshEventDecorators(methodNames: (string | symbol) | (string | symbol)[]): void {\n if (!this._rawSet) return;\n\n const names = Array.isArray(methodNames) ? methodNames : [methodNames];\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);\n \n if (events && Array.isArray(events)) {\n for (const eventInfo of events) {\n if (names.includes(eventInfo.methodName)) {\n this._updateEventBinding(eventInfo, this._rawSet, true); // Force update\n }\n }\n }\n }\n\n private _applyEventBinding(eventInfo: EventMetadata, elements: Element[]) {\n elements.forEach(element => {\n const listener = (this as any)[eventInfo.methodName].bind(this);\n // console.log('bind?????', element);\n element.addEventListener(eventInfo.eventName, listener);\n \n // Track bindings for cleanup\n this._eventBindings.push({ element, metadata: eventInfo, listener });\n this._boundEventListeners.push({ element, eventName: eventInfo.eventName, listener });\n });\n }\n\n private _setupEventDecorators(rawSet: RawSet) {\n if (!rawSet) return;\n\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);\n if (events && Array.isArray(events)) {\n for (const eventInfo of events) {\n const elements = this._queryElements(eventInfo.query, rawSet);\n this._applyEventBinding(eventInfo, elements);\n \n // Setup refresh timer if specified\n this._setupRefreshTimer(eventInfo);\n }\n }\n }\n\n private _updateEventBinding(eventInfo: EventMetadata, rawSet: RawSet, forceUpdate = false) {\n const newElements = this._queryElements(eventInfo.query, rawSet);\n \n // Get current bindings for this event\n const currentBindings = this._eventBindings.filter(binding => binding.metadata === eventInfo);\n const currentElements = currentBindings.map(binding => binding.element);\n \n // Check if elements have changed\n const elementsChanged = forceUpdate || !this._arraysEqual(currentElements, newElements);\n \n if (elementsChanged) {\n if (forceUpdate) {\n // Force update: cleanup all old bindings\n currentBindings.forEach(({ element, metadata, listener }) => {\n element.removeEventListener(metadata.eventName, listener);\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n });\n } else {\n // Smart update: only cleanup removed elements\n const removedElements = currentElements.filter(element => !newElements.includes(element));\n const removedBindings = currentBindings.filter(binding => removedElements.includes(binding.element));\n \n removedBindings.forEach(({ element, metadata, listener }) => {\n element.removeEventListener(metadata.eventName, listener);\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n });\n }\n \n // Remove old bindings from tracking arrays\n this._eventBindings = this._eventBindings.filter(binding => binding.metadata !== eventInfo);\n this._boundEventListeners = this._boundEventListeners.filter(binding => \n !currentBindings.some(cb => cb.element === binding.element && cb.metadata.eventName === binding.eventName)\n );\n \n // Apply new bindings\n this._applyEventBinding(eventInfo, newElements);\n }\n }\n\n private _updateEventDecorators(rawSet: RawSet) {\n if (!rawSet) return;\n\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);\n if (events && Array.isArray(events)) {\n for (const eventInfo of events) {\n this._updateEventBinding(eventInfo, rawSet);\n }\n }\n }\ngetAttributeNames(attribute = this._attribute): string[] {\n const target = attribute as any;\n if (!target) return [];\n const keys = Object.keys(target);\n const names = new Set<string>();\n for (const k of keys) {\n names.add(k);\n // names.add(ConvertUtils.camelToSnakeCase(k));\n // names.add(ConvertUtils.snakeToCamelCase(k));\n // names.add(k.toLowerCase());\n // names.add(k.toUpperCase());\n }\n return Array.from(names);\n}\n getAttribute<K extends keyof T>(name: K, attribute = this._attribute): T[K] | null {\n const target = attribute as any;\n if (!target) {\n return null;\n }\n\n const nameString = String(name);\n let p = nameString;\n if (p in target) {\n return target[p];\n }\n p = ConvertUtils.snakeToCamelCase(nameString);\n if (p in target) {\n return target[p];\n }\n p = ConvertUtils.camelToSnakeCase(nameString);\n if (p in target) {\n return target[p];\n }\n p = nameString.toUpperCase()\n if (p in target) {\n return target[p];\n }\n p = nameString.toLowerCase()\n if (p in target) {\n return target[p];\n }\n return null;\n }\n\n hasAttribute(name: keyof T) {\n return this.getAttribute(name) !==null;\n }\n\n equalsAttributeName(n: string, name: keyof T) {\n return n === name ||\n ConvertUtils.snakeToCamelCase(n) === name ||\n ConvertUtils.camelToSnakeCase(n) === name ||\n n.toUpperCase() === (name as string).toUpperCase() ||\n n.toLowerCase() === (name as string).toLowerCase()\n ;\n }\n\n get uuid(): string | undefined {\n return this._rawSet?.uuid;\n }\n\n get childrenSet() {\n return this._children;\n }\n\n get children(): any[] {\n return this._children.map(it=>it.instance);\n }\n\n getElement<T extends Element>(): T | undefined {\n return (this.render ?? this.rawSet?.dataSet?.render)?.getElement?.();\n }\n\n getFirstChild<T>(type: ConstructorType<T>): T | undefined {\n return this._children.find(it => it.instance instanceof type)?.instance;\n }\n\n getParentThis<P>():P {\n return this.render?.parentThis as P;\n }\n\n getChildren<C extends ConstructorType<any>>(type: C): InstanceType<C>[];\n getChildren<C extends ConstructorType<any>[]>(types: C): InstanceType<C[number]>[];\n getChildren(typeOrTypes: ConstructorType<any> | ConstructorType<any>[]): any[] {\n const targets = Array.isArray(typeOrTypes) ? typeOrTypes : [typeOrTypes];\n return this._children.filter(childSet =>\n targets.some(targetConstructor => childSet.instance instanceof targetConstructor)\n )?.map(it=>it.instance);\n }\n\n\n\n private setRawSet(rawSet: RawSet) {\n this._rawSet = rawSet;\n if (this._rawSet) {\n this.setAttribute(this._rawSet.dataSet?.render?.attribute as T);\n }\n }\n\n setAttribute(attribute: T) {\n this._attribute = attribute;\n }\n\n // TODO: rawSet isConnected로 체크해서 들어가있는것만 처리되도록 또는 이미들어가있는것도 뺴야될것같은데.. 적용하긴했음..지켜봐야될듯.\n onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // console.log('onCreatedThisChild------------------------',child, data, data.render?.rawSet?.isConnected)\n const n = [...this._children];\n n.push({instance:child, data});\n this._children = n.filter(it=>it.data.render?.rawSet?.isConnected)\n this.childrenSetSubject.next(this._children);\n \n // Update decorators when children change (DOM might have changed)\n // Only update if elements actually changed\n if (this._rawSet) {\n this._updateQueryDecorators(this._rawSet);\n this._updateEventDecorators(this._rawSet);\n }\n }\n\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n }\n onRawSetRenderedDebounce(childrenSet: OnRawSetRenderedOtherData[]) {\n }\n onChildRawSetRenderedDebounce(){\n\n }\n\n onCreateRenderData(data: OnCreateRenderDataParams): void {\n this._render = data.render;\n if (data.render?.rawSet) {\n this.setRawSet(data.render.rawSet);\n }\n if (this._config?.onlyParentType) {\n const isOk = Array.isArray(this._config?.onlyParentType) ? this._config?.onlyParentType : [this._config?.onlyParentType].some(it => data.render?.parentThis instanceof it);\n if (!isOk) {\n throw new Error('only my parentThis ' + this._config?.onlyParentType);\n }\n }\n }\n\n onChangeAttrRender(name: string, value: any, other: OtherData): void {\n if (other?.rawSet) {\n this.setRawSet(other.rawSet);\n }\n\n const attributes = ReflectUtils.getMetadata<AttributeMetadata[]>(ATTRIBUTE_METADATA_KEY, this.constructor);\n if (attributes && Array.isArray(attributes)) {\n for (const attrInfo of attributes) {\n if (this.equalsAttributeName(name, attrInfo.name as any)) {\n const finalValue = attrInfo.converter ? attrInfo.converter(value) : value;\n if (attrInfo.isMethod) {\n const method = (this as any)[attrInfo.propertyKey];\n if (typeof method === 'function') {\n method.call(this, finalValue);\n }\n } else {\n (this as any)[attrInfo.propertyKey] = finalValue;\n }\n }\n }\n }\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n this.createChildrenDebounceSubscription = this.childrenSetSubject.pipe(\n debounceTime(this.componentConfig?.createChildrenDebounce??0)\n ).subscribe(it => {\n // console.log('call onCreatedThisChildDebounce', it);\n this.onCreatedThisChildDebounce(it);\n });\n this.onRawSetRenderedOtherDataSubjectSubscription = this.onRawSetRenderedOtherDataSubject.pipe(\n bufferTime(this.componentConfig?.onRawSetRenderedOtherDataDebounce??0)\n ).subscribe(it => {\n this.onRawSetRenderedDebounce(it);\n });\n this.onChildRawSetRenderedOtherDataSubjectSubscription = this.onChildRawSetRenderedOtherDataSubject.pipe(\n debounceTime(this.componentConfig?.onChildRawSetRenderedOtherDataDebounce??0)\n ).subscribe(it => {\n this.onChildRawSetRenderedDebounce();\n });\n if (rawSet) {\n this.setRawSet(rawSet);\n\n const e = this.getElement();\n if (e) {\n (e as any).component = this;\n }\n\n // Setup decorators\n this._setupQueryDecorators(rawSet);\n this._setupEventDecorators(rawSet);\n }\n }\n\n onDrThisBind() {\n // Logic moved to onInitRender for robustness\n }\n\n onDrThisUnBind() {\n this.onDestroy();\n }\n\n onDestroyRender(data?: OnDestroyRenderParams): void {\n this.onDestroy();\n }\n\n onDestroy() {\n this._cleanupEventListeners();\n this._cleanupQueryBindings();\n this._cleanupEventBindings();\n this._clearAllRefreshTimers();\n this.createChildrenDebounceSubscription?.unsubscribe();\n this.onRawSetRenderedOtherDataSubjectSubscription?.unsubscribe();\n this.onChildRawSetRenderedOtherDataSubjectSubscription?.unsubscribe();\n }\n\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ElementUtils } from '@dooboostore/core-web';\nimport { OnChangeAttrRender, OtherData } from '../lifecycle/OnChangeAttrRender';\nimport { OnCreateRenderData, OnCreateRenderDataParams } from '../lifecycle/OnCreateRenderData';\nimport { RawSet } from '../rawsets/RawSet';\nimport { ConstructorType } from '@dooboostore/core';\nimport { OnCreatedThisChild } from '../lifecycle/OnCreatedThisChild';\nimport { DomRenderNoProxy } from '../decorators/DomRenderNoProxy';\nimport { OnInitRender } from '../lifecycle/OnInitRender';\nimport { ConvertUtils } from '@dooboostore/core';\nimport { OnDestroyRender, OnDestroyRenderParams } from '../lifecycle/OnDestroyRender';\nimport { OnDrThisUnBind } from '../lifecycle/dr-this/OnDrThisUnBind';\nimport { OnDrThisBind } from '../lifecycle/dr-this/OnDrThisBind';\nimport type { Render } from '../rawsets/Render';\nimport { ReflectUtils } from '@dooboostore/core';\nimport { DomRenderConfig } from '../configs/DomRenderConfig';\nimport { Subject } from '@dooboostore/core';\nimport { MessageOperator } from '@dooboostore/core';\nimport type { Subscription } from '@dooboostore/core';\nimport { OnRawSetRendered, OnRawSetRenderedOtherData } from \"../lifecycle/OnRawSetRendered\";\nimport {OnChildRawSetRendered} from \"../lifecycle/OnChildRawSetRendered\";\n\n\nexport const ATTRIBUTE_METADATA_KEY = Symbol('attribute');\nexport const QUERY_METADATA_KEY = Symbol('query');\nexport const EVENT_METADATA_KEY = Symbol('event');\n\nexport interface AttributeMetadata {\n propertyKey: string | symbol;\n name: string;\n converter?: (value: any | string | null) => any;\n isMethod: boolean;\n}\n\nexport interface QueryMetadata {\n selector: string;\n propertyKey: string | symbol;\n isMethod: boolean;\n convert?: (e: Element) => any;\n onDestroy?: (componentInstance: any, element: Element) => void;\n refreshTime?: number; // milliseconds\n refreshRawSetRendered?: boolean;\n}\n\nexport interface EventMetadata {\n query: string;\n eventName: string;\n methodName: string | symbol;\n onDestroy?: (componentInstance: any, element: Element) => void;\n refreshTime?: number; // milliseconds\n refreshRawSetRendered?: boolean;\n}\n\nexport function attribute(nameOrOptions?: string | { name?: string, converter?: (value: any | string | null) => any }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {\n return (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const attributes = ReflectUtils.getMetadata<AttributeMetadata[]>(ATTRIBUTE_METADATA_KEY, target.constructor) || [];\n \n let name: string;\n let converter: ((value: any | string | null) => any) | undefined;\n \n if (typeof nameOrOptions === 'string') {\n name = nameOrOptions;\n } else if (nameOrOptions) {\n name = nameOrOptions.name || String(propertyKey);\n converter = nameOrOptions.converter;\n } else {\n name = String(propertyKey);\n }\n \n const attributeMetadata: AttributeMetadata = {\n propertyKey: propertyKey,\n name: name,\n converter: converter,\n isMethod: !!descriptor\n };\n \n attributes.push(attributeMetadata);\n ReflectUtils.defineMetadata(ATTRIBUTE_METADATA_KEY, attributes, target.constructor);\n };\n}\n\nexport function query(selectorOrOptions: string | { selector: string, convert?: (e: Element) => any, onDestroy?: (componentInstance: any, element: Element) => void, refreshIntervalTime?: number, refreshRawSetRendered?: boolean }): (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void {\n return (target: object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, target.constructor) || [];\n \n let selector: string;\n let convert: ((e: Element) => any) | undefined;\n let onDestroy: ((componentInstance: any, element: Element) => void) | undefined;\n let refreshTime: number | undefined;\n let refreshRawSetRendered: boolean | undefined;\n\n if (typeof selectorOrOptions === 'string') {\n selector = selectorOrOptions;\n } else {\n selector = selectorOrOptions.selector;\n convert = selectorOrOptions.convert;\n onDestroy = selectorOrOptions.onDestroy;\n refreshTime = selectorOrOptions.refreshIntervalTime;\n refreshRawSetRendered = selectorOrOptions.refreshRawSetRendered;\n }\n \n const queryMetadata: QueryMetadata = {\n selector: selector,\n propertyKey: propertyKey,\n isMethod: !!descriptor,\n convert: convert,\n onDestroy: onDestroy,\n refreshTime: refreshTime,\n refreshRawSetRendered\n };\n \n queries.push(queryMetadata);\n ReflectUtils.defineMetadata(QUERY_METADATA_KEY, queries, target.constructor);\n };\n}\n\nexport function event(options: { query: string, name: string, onDestroy?: (componentInstance: any, element: Element) => void, refreshTime?: number, refreshRawSetRendered?: boolean }): MethodDecorator {\n return (target: object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, target.constructor) || [];\n \n const eventMetadata: EventMetadata = {\n query: options.query,\n eventName: options.name,\n methodName: propertyKey,\n onDestroy: options.onDestroy,\n refreshTime: options.refreshTime,\n refreshRawSetRendered: options.refreshRawSetRendered\n };\n \n events.push(eventMetadata);\n ReflectUtils.defineMetadata(EVENT_METADATA_KEY, events, target.constructor);\n };\n}\n\n\nexport type ComponentBaseConfig = { onlyParentType?: ConstructorType<any>[] | ConstructorType<any>,\n createChildrenDebounce?: number,\n onRawSetRenderedOtherDataDebounce?: number\n onChildRawSetRenderedOtherDataDebounce?: number\n};\n\nexport type ChildrenSet = { instance: any, data: OnCreateRenderDataParams };\n\nexport class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBaseConfig> implements OnChangeAttrRender, OnCreateRenderData, OnCreatedThisChild, OnDrThisBind, OnDrThisUnBind, OnInitRender, OnDestroyRender, OnRawSetRendered, OnChildRawSetRendered {\n @DomRenderNoProxy\n private _rawSet?: RawSet;\n @DomRenderNoProxy\n private _children: ChildrenSet[] = [];\n @DomRenderNoProxy\n private _render: Render | undefined;\n @DomRenderNoProxy\n private _attribute?: T;\n @DomRenderNoProxy\n private _boundEventListeners: { element: Element, eventName: string, listener: (e: Event) => void }[] = [];\n @DomRenderNoProxy\n private _queryBindings: { element: Element, metadata: QueryMetadata }[] = [];\n @DomRenderNoProxy\n private _eventBindings: { element: Element, metadata: EventMetadata, listener: (e: Event) => void }[] = [];\n @DomRenderNoProxy\n private _refreshTimers: Map<QueryMetadata | EventMetadata, NodeJS.Timeout> = new Map();\n\n @DomRenderNoProxy\n private childrenSetSubject = new Subject<ChildrenSet[]>();\n @DomRenderNoProxy\n private createChildrenDebounceSubscription?: Subscription | undefined;\n @DomRenderNoProxy\n private onRawSetRenderedOtherDataSubject = new Subject<OnRawSetRenderedOtherData>();\n @DomRenderNoProxy\n private onChildRawSetRenderedOtherDataSubject = new Subject<void>();\n @DomRenderNoProxy\n private onRawSetRenderedOtherDataSubjectSubscription?: Subscription | undefined;\n @DomRenderNoProxy\n private onChildRawSetRenderedOtherDataSubjectSubscription?: Subscription | undefined;\n\n constructor(private _config?: C) {\n // console.log('ComponentBase created', this);\n // setTimeout(()=>{\n // console.log('ComponentBase created', this.constructor.name, this._rawSet?.uuid);\n // }, 1000)\n }\n get componentConfig(): C | undefined {\n return this._config;\n }\n get render(): Render | undefined {\n return this._render;\n }\n\n get rawSet(): RawSet | undefined {\n return this._rawSet;\n }\n\n get domRenderConfig(): DomRenderConfig | undefined {\n return this.rawSet?.dataSet.config;\n }\n\n private _queryElements(selector: string, rawSet:RawSet): Element[] {\n const e = this.getElement();\n // console.log('queryElement-->', e);\n if (e) {\n return ElementUtils.querySelectorAll(e, selector);\n } else {\n let startNode = rawSet.point?.start;\n let endNode = rawSet.point?.end;\n // console.log('-----', startNode, endNode)\n // console.log('-----', startNode?.isConnected, endNode?.isConnected)\n if (rawSet.point?.start && startNode && !startNode.isConnected && startNode instanceof HTMLElement && startNode.hasAttribute('id')) {\n rawSet.point.start = startNode = rawSet.dataSet.config.window.document.querySelector('#' + startNode.id) as HTMLMetaElement\n }\n if (rawSet.point?.end && endNode && !endNode.isConnected && endNode instanceof HTMLElement && endNode.hasAttribute('id')) {\n rawSet.point.end = endNode = rawSet.dataSet.config.window.document.querySelector('#' + endNode.id) as HTMLMetaElement\n }\n if (startNode && endNode) {\n // console.log('query!!', startNode, endNode);\n return ElementUtils.querySelectorAll({ start: startNode as Element, end: endNode as Element }, selector);\n }\n }\n return [];\n }\n\n private _cleanupEventListeners() {\n for (const { element, eventName, listener } of this._boundEventListeners) {\n element.removeEventListener(eventName, listener);\n }\n this._boundEventListeners = [];\n }\n\n private _cleanupQueryBindings() {\n for (const { element, metadata } of this._queryBindings) {\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n this._clearRefreshTimer(metadata);\n }\n this._queryBindings = [];\n }\n\n private _cleanupEventBindings() {\n for (const { element, metadata, listener } of this._eventBindings) {\n element.removeEventListener(metadata.eventName, listener);\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n this._clearRefreshTimer(metadata);\n }\n this._eventBindings = [];\n }\n\n private _applyQueryBinding(queryInfo: QueryMetadata, elements: Element[], newElementsOnly: Element[] = elements) {\n const { propertyKey, isMethod, convert } = queryInfo;\n \n // Track bindings for cleanup\n elements.forEach(element => {\n this._queryBindings.push({ element, metadata: queryInfo });\n });\n \n // Apply convert function if provided\n const processedElements = convert ? elements.map(convert) : elements;\n const processedNewElements = convert ? newElementsOnly.map(convert) : newElementsOnly;\n \n if (isMethod) {\n const method = (this as any)[propertyKey];\n if (typeof method === 'function') {\n const paramTypes = ReflectUtils.getParameterTypes(this, propertyKey);\n if (paramTypes && paramTypes.length > 0 && paramTypes[0] === Array) {\n // For array methods, pass only new elements\n method.call(this, processedNewElements, {all: processedElements});\n } else {\n // For single element methods, pass first new element\n if (processedNewElements.length > 0) {\n method.call(this, processedNewElements[0], {all: processedElements, newAll: processedNewElements});\n }\n }\n }\n } else {\n // For properties, always set all elements (not just new ones)\n const propertyType = ReflectUtils.getType(this, propertyKey);\n if (propertyType === Array) {\n (this as any)[propertyKey] = processedElements;\n } else {\n (this as any)[propertyKey] = processedElements[0] || null;\n }\n }\n }\n\n private _setupQueryDecorators(rawSet: RawSet) {\n if (!rawSet) return;\n\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);\n // console.group('_setupQueryDecorators')\n // console.log('queries', queries);\n if (queries && Array.isArray(queries)) {\n for (const queryInfo of queries) {\n const elements = this._queryElements(queryInfo.selector, rawSet);\n // console.log('------elements', elements);\n this._applyQueryBinding(queryInfo, elements);\n \n // Setup refresh timer if specified\n this._setupRefreshTimer(queryInfo);\n }\n }\n // console.groupEnd();\n }\n\n private _updateQueryBinding(queryInfo: QueryMetadata, rawSet: RawSet, forceUpdate = false) {\n const newElements = this._queryElements(queryInfo.selector, rawSet);\n \n // Get current bindings for this query\n const currentBindings = this._queryBindings.filter(binding => binding.metadata === queryInfo);\n const currentElements = currentBindings.map(binding => binding.element);\n \n // Check if elements have changed\n const elementsChanged = forceUpdate || !this._arraysEqual(currentElements, newElements);\n \n if (elementsChanged) {\n let addedElements: Element[] = [];\n \n if (forceUpdate) {\n // Force update: cleanup all old bindings, treat all as new\n currentBindings.forEach(({ element, metadata }) => {\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n });\n addedElements = newElements;\n } else {\n // Smart update: only cleanup removed elements, find added elements\n const removedElements = currentElements.filter(element => !newElements.includes(element));\n addedElements = newElements.filter(element => !currentElements.includes(element));\n \n removedElements.forEach(element => {\n if (queryInfo.onDestroy) {\n queryInfo.onDestroy(this, element);\n }\n });\n }\n \n // Remove old bindings\n this._queryBindings = this._queryBindings.filter(binding => binding.metadata !== queryInfo);\n \n // Apply new bindings, but pass only added elements to methods\n this._applyQueryBinding(queryInfo, newElements, addedElements);\n }\n }\n\n private _updateQueryDecorators(rawSet: RawSet) {\n if (!rawSet) return;\n\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);\n if (queries && Array.isArray(queries)) {\n for (const queryInfo of queries) {\n this._updateQueryBinding(queryInfo, rawSet);\n }\n }\n }\n\n private _arraysEqual(arr1: Element[], arr2: Element[]): boolean {\n if (arr1.length !== arr2.length) return false;\n return arr1.every((element, index) => element === arr2[index]);\n }\n\n private _setupRefreshTimer(metadata: QueryMetadata | EventMetadata) {\n if (!metadata.refreshTime || !this._rawSet) return;\n\n const timer = setInterval(() => {\n if (!this._rawSet) return;\n\n if ('selector' in metadata) {\n // QueryMetadata\n this._updateQueryBinding(metadata as QueryMetadata, this._rawSet);\n } else {\n // EventMetadata\n this._updateEventBinding(metadata as EventMetadata, this._rawSet);\n }\n }, metadata.refreshTime);\n\n this._refreshTimers.set(metadata, timer);\n }\n\n private _clearRefreshTimer(metadata: QueryMetadata | EventMetadata) {\n const timer = this._refreshTimers.get(metadata);\n if (timer) {\n clearInterval(timer);\n this._refreshTimers.delete(metadata);\n }\n }\n\n private _clearAllRefreshTimers() {\n for (const timer of Array.from(this._refreshTimers.values())) {\n clearInterval(timer);\n }\n this._refreshTimers.clear();\n }\n\n async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n this.onRawSetRenderedOtherDataSubject.next(otherData);\n // this.onRawSetRenderedOtherDataSubjectSubscription = this.onRawSetRenderedOtherDataSubject.pipe(debounceTime(this.componentConfig?.onRawSetRenderedOtherDataDebounce??0)).subscribe(it => {\n // this.onRawSetRenderedDebounce(it);\n // });\n\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);\n if (queries) {\n queries.filter(it => it.refreshRawSetRendered).forEach(queryInfo => {\n this._updateQueryBinding(queryInfo, rawSet, true);\n });\n }\n\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);\n if (events) {\n events.filter(it => it.refreshRawSetRendered).forEach(eventInfo => {\n this._updateEventBinding(eventInfo, rawSet, true);\n });\n }\n }\n\n async onChildRawSetRendered(): Promise<void> {\n this.onChildRawSetRenderedOtherDataSubject.next();\n }\n\n /**\n * Manually refresh all query and event decorators\n * Useful when DOM elements are dynamically added/removed and you want to update bindings\n */\n refreshDecorators(): void {\n if (this._rawSet) {\n this._updateQueryDecorators(this._rawSet);\n this._updateEventDecorators(this._rawSet);\n }\n }\n\n /**\n * Manually refresh specific query decorators by property key\n * @param propertyKeys - Array of property keys to refresh, or single property key\n */\n refreshQueryDecorators(propertyKeys: (string | symbol) | (string | symbol)[]): void {\n if (!this._rawSet) return;\n\n const keys = Array.isArray(propertyKeys) ? propertyKeys : [propertyKeys];\n const queries = ReflectUtils.getMetadata<QueryMetadata[]>(QUERY_METADATA_KEY, this.constructor);\n \n if (queries && Array.isArray(queries)) {\n for (const queryInfo of queries) {\n if (keys.includes(queryInfo.propertyKey)) {\n this._updateQueryBinding(queryInfo, this._rawSet, true); // Force update\n }\n }\n }\n }\n\n /**\n * Manually refresh specific event decorators by method name\n * @param methodNames - Array of method names to refresh, or single method name\n */\n refreshEventDecorators(methodNames: (string | symbol) | (string | symbol)[]): void {\n if (!this._rawSet) return;\n\n const names = Array.isArray(methodNames) ? methodNames : [methodNames];\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);\n \n if (events && Array.isArray(events)) {\n for (const eventInfo of events) {\n if (names.includes(eventInfo.methodName)) {\n this._updateEventBinding(eventInfo, this._rawSet, true); // Force update\n }\n }\n }\n }\n\n private _applyEventBinding(eventInfo: EventMetadata, elements: Element[]) {\n elements.forEach(element => {\n const listener = (this as any)[eventInfo.methodName].bind(this);\n // console.log('bind?????', element);\n element.addEventListener(eventInfo.eventName, listener);\n \n // Track bindings for cleanup\n this._eventBindings.push({ element, metadata: eventInfo, listener });\n this._boundEventListeners.push({ element, eventName: eventInfo.eventName, listener });\n });\n }\n\n private _setupEventDecorators(rawSet: RawSet) {\n if (!rawSet) return;\n\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);\n if (events && Array.isArray(events)) {\n for (const eventInfo of events) {\n const elements = this._queryElements(eventInfo.query, rawSet);\n this._applyEventBinding(eventInfo, elements);\n \n // Setup refresh timer if specified\n this._setupRefreshTimer(eventInfo);\n }\n }\n }\n\n private _updateEventBinding(eventInfo: EventMetadata, rawSet: RawSet, forceUpdate = false) {\n const newElements = this._queryElements(eventInfo.query, rawSet);\n \n // Get current bindings for this event\n const currentBindings = this._eventBindings.filter(binding => binding.metadata === eventInfo);\n const currentElements = currentBindings.map(binding => binding.element);\n \n // Check if elements have changed\n const elementsChanged = forceUpdate || !this._arraysEqual(currentElements, newElements);\n \n if (elementsChanged) {\n if (forceUpdate) {\n // Force update: cleanup all old bindings\n currentBindings.forEach(({ element, metadata, listener }) => {\n element.removeEventListener(metadata.eventName, listener);\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n });\n } else {\n // Smart update: only cleanup removed elements\n const removedElements = currentElements.filter(element => !newElements.includes(element));\n const removedBindings = currentBindings.filter(binding => removedElements.includes(binding.element));\n \n removedBindings.forEach(({ element, metadata, listener }) => {\n element.removeEventListener(metadata.eventName, listener);\n if (metadata.onDestroy) {\n metadata.onDestroy(this, element);\n }\n });\n }\n \n // Remove old bindings from tracking arrays\n this._eventBindings = this._eventBindings.filter(binding => binding.metadata !== eventInfo);\n this._boundEventListeners = this._boundEventListeners.filter(binding => \n !currentBindings.some(cb => cb.element === binding.element && cb.metadata.eventName === binding.eventName)\n );\n \n // Apply new bindings\n this._applyEventBinding(eventInfo, newElements);\n }\n }\n\n private _updateEventDecorators(rawSet: RawSet) {\n if (!rawSet) return;\n\n const events = ReflectUtils.getMetadata<EventMetadata[]>(EVENT_METADATA_KEY, this.constructor);\n if (events && Array.isArray(events)) {\n for (const eventInfo of events) {\n this._updateEventBinding(eventInfo, rawSet);\n }\n }\n }\ngetAttributeNames(attribute = this._attribute): string[] {\n const target = attribute as any;\n if (!target) return [];\n const keys = Object.keys(target);\n const names = new Set<string>();\n for (const k of keys) {\n names.add(k);\n // names.add(ConvertUtils.camelToSnakeCase(k));\n // names.add(ConvertUtils.snakeToCamelCase(k));\n // names.add(k.toLowerCase());\n // names.add(k.toUpperCase());\n }\n return Array.from(names);\n}\n getAttribute<K extends keyof T>(name: K, attribute = this._attribute): T[K] | null {\n const target = attribute as any;\n if (!target) {\n return null;\n }\n\n const nameString = String(name);\n let p = nameString;\n if (p in target) {\n return target[p];\n }\n p = ConvertUtils.snakeToCamelCase(nameString);\n if (p in target) {\n return target[p];\n }\n p = ConvertUtils.camelToSnakeCase(nameString);\n if (p in target) {\n return target[p];\n }\n p = nameString.toUpperCase()\n if (p in target) {\n return target[p];\n }\n p = nameString.toLowerCase()\n if (p in target) {\n return target[p];\n }\n return null;\n }\n\n hasAttribute(name: keyof T) {\n return this.getAttribute(name) !==null;\n }\n\n equalsAttributeName(n: string, name: keyof T) {\n return n === name ||\n ConvertUtils.snakeToCamelCase(n) === name ||\n ConvertUtils.camelToSnakeCase(n) === name ||\n n.toUpperCase() === (name as string).toUpperCase() ||\n n.toLowerCase() === (name as string).toLowerCase()\n ;\n }\n\n get uuid(): string | undefined {\n return this._rawSet?.uuid;\n }\n\n get childrenSet() {\n return this._children;\n }\n\n get children(): any[] {\n return this._children.map(it=>it.instance);\n }\n\n getElement<T extends Element>(): T | undefined {\n return (this.render ?? this.rawSet?.dataSet?.render)?.getElement?.();\n }\n\n getFirstChild<T>(type: ConstructorType<T>): T | undefined {\n return this._children.find(it => it.instance instanceof type)?.instance;\n }\n\n getParentThis<P>():P {\n return this.render?.parentThis as P;\n }\n\n getChildren<C extends ConstructorType<any>>(type: C): InstanceType<C>[];\n getChildren<C extends ConstructorType<any>[]>(types: C): InstanceType<C[number]>[];\n getChildren(typeOrTypes: ConstructorType<any> | ConstructorType<any>[]): any[] {\n const targets = Array.isArray(typeOrTypes) ? typeOrTypes : [typeOrTypes];\n return this._children.filter(childSet =>\n targets.some(targetConstructor => childSet.instance instanceof targetConstructor)\n )?.map(it=>it.instance);\n }\n\n\n\n private setRawSet(rawSet: RawSet) {\n this._rawSet = rawSet;\n if (this._rawSet) {\n this.setAttribute(this._rawSet.dataSet?.render?.attribute as T);\n }\n }\n\n setAttribute(attribute: T) {\n this._attribute = attribute;\n }\n\n // TODO: rawSet isConnected로 체크해서 들어가있는것만 처리되도록 또는 이미들어가있는것도 뺴야될것같은데.. 적용하긴했음..지켜봐야될듯.\n onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // console.log('onCreatedThisChild------------------------',child, data, data.render?.rawSet?.isConnected)\n const n = [...this._children];\n n.push({instance:child, data});\n this._children = n.filter(it=>it.data.render?.rawSet?.isConnected)\n this.childrenSetSubject.next(this._children);\n \n // Update decorators when children change (DOM might have changed)\n // Only update if elements actually changed\n if (this._rawSet) {\n this._updateQueryDecorators(this._rawSet);\n this._updateEventDecorators(this._rawSet);\n }\n }\n\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n }\n onRawSetRenderedDebounce(childrenSet: OnRawSetRenderedOtherData[]) {\n }\n onChildRawSetRenderedDebounce(){\n\n }\n\n onCreateRenderData(data: OnCreateRenderDataParams): void {\n this._render = data.render;\n if (data.render?.rawSet) {\n this.setRawSet(data.render.rawSet);\n }\n if (this._config?.onlyParentType) {\n const isOk = Array.isArray(this._config?.onlyParentType) ? this._config?.onlyParentType : [this._config?.onlyParentType].some(it => data.render?.parentThis instanceof it);\n if (!isOk) {\n throw new Error('only my parentThis ' + this._config?.onlyParentType);\n }\n }\n }\n\n onChangeAttrRender(name: string, value: any, other: OtherData): void {\n if (other?.rawSet) {\n this.setRawSet(other.rawSet);\n }\n\n const attributes = ReflectUtils.getMetadata<AttributeMetadata[]>(ATTRIBUTE_METADATA_KEY, this.constructor);\n if (attributes && Array.isArray(attributes)) {\n for (const attrInfo of attributes) {\n if (this.equalsAttributeName(name, attrInfo.name as any)) {\n const finalValue = attrInfo.converter ? attrInfo.converter(value) : value;\n if (attrInfo.isMethod) {\n const method = (this as any)[attrInfo.propertyKey];\n if (typeof method === 'function') {\n method.call(this, finalValue);\n }\n } else {\n (this as any)[attrInfo.propertyKey] = finalValue;\n }\n }\n }\n }\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n\n // console.log('onInitRender ComponentBase', this.constructor.name, rawSet?.uuid);\n const window = rawSet.dataSet?.config?.window;\n this.createChildrenDebounceSubscription = this.childrenSetSubject.pipe(\n MessageOperator.debounceTime(this.componentConfig?.createChildrenDebounce??1, {\n setTimeout: window ? window.setTimeout.bind(window) : undefined,\n clearTimeout: window ? window.clearTimeout.bind(window) : undefined,\n })\n ).subscribe(it => {\n // console.log('call onCreatedThisChildDebounce', it);\n this.onCreatedThisChildDebounce(it);\n });\n this.onRawSetRenderedOtherDataSubjectSubscription = this.onRawSetRenderedOtherDataSubject.pipe(\n MessageOperator.bufferTime(this.componentConfig?.onRawSetRenderedOtherDataDebounce??1, {\n skipEmpty: true,\n setInterval: window ? window.setInterval.bind(window) : undefined,\n clearInterval: window ? window.clearInterval.bind(window) : undefined,\n setTimeout: window ? window.setTimeout.bind(window) : undefined,\n clearTimeout: window ? window.clearTimeout.bind(window) : undefined,\n })\n ).subscribe(it => {\n this.onRawSetRenderedDebounce(it);\n });\n this.onChildRawSetRenderedOtherDataSubjectSubscription = this.onChildRawSetRenderedOtherDataSubject.pipe(\n MessageOperator.debounceTime(this.componentConfig?.onChildRawSetRenderedOtherDataDebounce??10, {\n setTimeout: window ? window.setTimeout.bind(window) : undefined,\n clearTimeout: window ? window.clearTimeout.bind(window) : undefined,\n })\n ).subscribe(it => {\n this.onChildRawSetRenderedDebounce();\n });\n if (rawSet) {\n this.setRawSet(rawSet);\n\n const e = this.getElement();\n if (e) {\n (e as any).component = this;\n }\n\n // Setup decorators\n this._setupQueryDecorators(rawSet);\n this._setupEventDecorators(rawSet);\n }\n }\n\n onDrThisBind() {\n // Logic moved to onInitRender for robustness\n }\n\n onDrThisUnBind() {\n this.onDestroy();\n }\n\n onDestroyRender(data?: OnDestroyRenderParams): void {\n this.onDestroy();\n }\n\n onDestroy() {\n this._cleanupEventListeners();\n this._cleanupQueryBindings();\n this._cleanupEventBindings();\n this._clearAllRefreshTimers();\n this.createChildrenDebounceSubscription?.unsubscribe();\n this.onRawSetRenderedOtherDataSubjectSubscription?.unsubscribe();\n this.onChildRawSetRenderedOtherDataSubjectSubscription?.unsubscribe();\n // console.log('ComponentBase onDestroy', this.constructor.name, this.onRawSetRenderedOtherDataSubjectSubscription.closed);\n }\n\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["attribute"]
7
7
  }