@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dooboostore/dom-render",
3
- "version": "1.0.112",
3
+ "version": "1.0.113",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -41,12 +41,8 @@
41
41
  ".": {
42
42
  "types": "./dist/types/index.d.ts",
43
43
  "import": "./dist/esm/index.js",
44
- "require": "./dist/cjs/index.js"
45
- },
46
- "./*": {
47
- "types": "./dist/types/*.d.ts",
48
- "import": "./dist/esm/*.js",
49
- "require": "./dist/cjs/*.js"
44
+ "require": "./dist/cjs/index.js",
45
+ "default": "./dist/esm/index.js"
50
46
  }
51
47
  },
52
48
  "author": "dooboostore <dooboostore@gmail.com> (https://github.com/dooboostore)",
@@ -90,9 +86,9 @@
90
86
  "typescript": "^5.9.2",
91
87
  "esbuild-plugin-tsc": "^0.5.0",
92
88
  "esbuild": "^0.23.0",
93
- "@dooboostore/core": "1.0.28",
94
- "@dooboostore/core-node": "1.0.10",
95
- "@dooboostore/core-web": "1.0.9"
89
+ "@dooboostore/core": "1.0.30",
90
+ "@dooboostore/core-node": "1.0.12",
91
+ "@dooboostore/core-web": "1.0.10"
96
92
  },
97
93
  "scripts": {
98
94
  "clean": "rm -rf dist",
package/src/DomRender.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  import { DomRenderProxy } from './DomRenderProxy';
2
2
  import { DomRenderConfig } from './configs/DomRenderConfig';
3
- import { PathRouter } from './routers/PathRouter';
4
- import { HashRouter } from './routers/HashRouter';
5
- import { ConstructorType } from '@dooboostore/core/types';
3
+ import { PathRouter } from '@dooboostore/core-web';
4
+ import { HashRouter } from '@dooboostore/core-web';
5
+ import { ConstructorType } from '@dooboostore/core';
6
6
  import { DomRenderFinalProxy } from './types/Types';
7
7
  import { RawSet } from './rawsets/RawSet';
8
8
  import { DefaultMessenger } from './messenger/DefaultMessenger';
9
- import { Router } from './routers/Router';
9
+ import { Router } from '@dooboostore/core-web';
10
10
  import { drComponent } from './components';
11
11
  import { EventManager } from './events/EventManager';
12
- import { RandomUtils } from '@dooboostore/core/random/RandomUtils';
12
+ import { RandomUtils } from '@dooboostore/core';
13
13
 
14
14
  export type DomRenderRunConfig<T = any> = Omit<DomRenderConfig<T>, 'router' | 'uuid' | 'eventManager' | 'messenger' | 'root' | 'rootElement'> & { routerType?: 'path' | 'hash' | ((obj: T, targetConfig: DomRenderConfig) => Router) | Router };
15
15
  export type CreateComponentParam = { type: ConstructorType<any> | any, tagName?: string, noStrip?: boolean, template?: string, styles?: string[] | string };
@@ -1,7 +1,6 @@
1
1
  import { RawSet, RenderResult } from './rawsets/RawSet';
2
2
  import { EventManager, NormalAttrDataType } from './events/EventManager';
3
3
  import { DomRenderConfig } from './configs/DomRenderConfig';
4
- import { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';
5
4
  import { DomRenderFinalProxy, Shield } from './types/Types';
6
5
  import { RawSetType } from './rawsets/RawSetType';
7
6
  import { DrThisProperty } from './operators/DrThisProperty';
@@ -12,29 +11,29 @@ import { isOnCreateRender } from './lifecycle/OnCreateRender';
12
11
  import { isOnInitRender } from './lifecycle/OnInitRender';
13
12
  import { isOnCreateRenderData } from './lifecycle/OnCreateRenderData';
14
13
  import { isOnChangeAttrRender } from './lifecycle/OnChangeAttrRender';
15
- import { DocumentUtils } from '@dooboostore/core-web/document/DocumentUtils';
16
- import { isDefined } from '@dooboostore/core/types';
14
+ import { DocumentUtils } from '@dooboostore/core-web';
17
15
  import { isOnBeforeReturnSet } from './lifecycle/OnBeforeReturnSet';
18
16
  import { isOnChildRenderedByProperty } from './lifecycle/OnChildRenderedByProperty';
19
- import { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';
20
- import { ValidUtils } from '@dooboostore/core/valid/ValidUtils';
17
+ import { ObjectUtils } from '@dooboostore/core';
18
+ import { ValidUtils } from '@dooboostore/core';
21
19
  import { isOnProxyDomRender } from './lifecycle/OnProxyDomRender';
22
20
  import { isOnRawSetRendered } from './lifecycle/OnRawSetRendered';
23
21
  import { isOnChildRawSetRendered } from "./lifecycle/OnChildRawSetRendered";
24
-
25
- const excludeGetSetPropertys = [
26
- 'onBeforeReturnGet',
27
- 'onBeforeReturnSet',
28
- '__domrender_components',
29
- '__render',
30
- '_DomRender_isFinal',
31
- '_domRender_ref',
32
- '_rawSets',
33
- '_domRender_proxy',
34
- '_targets',
35
- '_DomRender_origin',
36
- '_DomRender_ref',
37
- '_DomRender_proxy'
22
+ import { DomRenderComponentMetaKey, DomRenderProxyMetaKey } from './rawsets';
23
+
24
+ const excludeGetSetPropertys: string[] = [
25
+ DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY,
26
+ DomRenderProxyMetaKey.onBeforeReturnGet,
27
+ DomRenderProxyMetaKey.onBeforeReturnSet,
28
+ DomRenderProxyMetaKey.__render,
29
+ DomRenderProxyMetaKey._rawSets,
30
+ DomRenderProxyMetaKey._targets,
31
+ DomRenderProxyMetaKey._domRender_proxy,
32
+ DomRenderProxyMetaKey._DomRender_isFinal,
33
+ DomRenderProxyMetaKey._domRender_ref,
34
+ DomRenderProxyMetaKey._DomRender_origin,
35
+ DomRenderProxyMetaKey._DomRender_ref,
36
+ DomRenderProxyMetaKey._DomRender_proxy
38
37
  ];
39
38
  export const isWrapProxyDomRenderProxy = <T>(obj: T): boolean => {
40
39
  return obj && typeof obj === 'object' && '_DomRender_isProxy' in obj;
@@ -97,6 +96,17 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
97
96
  return ValidUtils.isNull(obj) || DomRenderFinalProxy.isFinal(obj);
98
97
  }
99
98
 
99
+ public static isProxy<T = any>(obj: T) {
100
+ return ValidUtils.isNull(obj) || isWrapProxyDomRenderProxy(obj);
101
+ }
102
+
103
+ public static getOriginalObject (obj: any) {
104
+ if (isWrapProxyDomRenderProxy(obj)) {
105
+ return obj._domRender_origin;
106
+ }
107
+ return obj;
108
+ }
109
+
100
110
  public async run(objProxy: T) {
101
111
  this._domRender_proxy = objProxy;
102
112
  if (isOnProxyDomRender(objProxy)) {
@@ -193,7 +203,6 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
193
203
 
194
204
  const targetRawSets = await this.render(this.getRawSets());
195
205
  for (let targetRawSet of targetRawSets) {
196
- const onInit = (target as any).getAttribute?.(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
197
206
  let initParam: any;
198
207
  if (onCreate) {
199
208
  initParam = ObjectUtils.Script.evaluateReturn(onCreate, this._domRender_proxy);
@@ -232,103 +241,131 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
232
241
  // console.log('----', rawSets);
233
242
  // console.log('----', rawSets);
234
243
  const CHUNK_SIZE = 50;
235
- const chunks = [];
236
- const rawSetsArray = Array.from(rawSets as RawSet[]);
237
- for (let i = 0; i < rawSetsArray.length; i += CHUNK_SIZE) {
238
- chunks.push(rawSetsArray.slice(i, i + CHUNK_SIZE));
244
+ const chunks:RawSet[][] = [];
245
+ let rawSetsArray = Array.from(rawSets as RawSet[]);
246
+ // console.log('--->1', JSON.stringify(rawSetsArray.map(it=>it.type)));
247
+ // rawSetsArray = rawSetsArray.sort((a, b) => {
248
+ // const order = { [RawSetType.TARGET_ELEMENT]: 0, [RawSetType.TARGET_ATTR]: 1, [RawSetType.TEXT]: 2 };
249
+ // return (order[a.type] ?? 999) - (order[b.type] ?? 999);
250
+ // });
251
+ // console.log('--->2', JSON.stringify(rawSetsArray.map(it=>it.type)));
252
+ // await Promise.all(rawSetsArray.map(rawSet => this.renderExecute(rawSet, fullPathStr, removeRawSets)));
253
+ for (const rawSet of rawSetsArray) {
254
+ await this.renderExecute(rawSet, fullPathStr, removeRawSets);
255
+ }
256
+ // 훔....아래 벌크..잘동작이 안되네..아... 위에처럼 하나씩 처리하면 되긴하는데..흠..
257
+ // const firstRawSet = rawSetsArray.shift();
258
+ // 이렇게 청크단위로 처리할때 await Promises.sleep(0); 을 넣어줘도 처음에 dr-for-of가 먼저 돌고 그러면 참고하고있는 rawSet들이 isConnect가 false되니깐 처리안되고
259
+ // 나중에 처리되면서 오류가 난다. 그래서 청크내에서 첫번째꺼는 바로처리하고 그다음꺼부터는 await를 넣어줘서 브라우저가 중간에 처리할 시간을 주도록 한다.
260
+ // 항상 먼저 등록된 path들에 의해 뒤에게 생성되는경우가 무조건이기떄문에 먼저거 한번 돌려주면 잘된다.
261
+ // 아니면 renderExecute 안쪽에서 매번 sleep을 줘도되는데.. 그렇게되면 부하가 너무 갈수 있어서.. 우선 첫번쨰것만 처리하도록해본다.
262
+ // if (firstRawSet) {
263
+ // await this.renderExecute(firstRawSet, fullPathStr, removeRawSets);
264
+ // }
265
+ // for (let i = 0; i < rawSetsArray.length; i += (CHUNK_SIZE)) {
266
+ // chunks.push(rawSetsArray.slice(i, i + CHUNK_SIZE));
267
+ // }
268
+ //
269
+ // for (const chunk of chunks) {
270
+ // const promises = chunk.map(async (it, index) => {
271
+ // await this.renderExecute(it, fullPathStr, removeRawSets);
272
+ // // console.log('----', it);
273
+ // });
274
+ // // console.log('실행.!')
275
+ // await Promise.all(promises);
276
+ // if (chunks.length > 1) {
277
+ // await new Promise(resolve => requestAnimationFrame(resolve));
278
+ // }
279
+ // }
280
+
281
+ if (isOnChildRawSetRendered(this._domRender_proxy)) {
282
+ await this._domRender_proxy.onChildRawSetRendered();
239
283
  }
240
284
 
241
- for (const chunk of chunks) {
242
- const promises = chunk.map(async (it) => {
243
- it.getUsingTriggerVariables(this._domRender_config).forEach(path => {
244
- // console.log('getUsingTriggerVariables->', path);
245
- this.addRawSet(path, it);
246
- });
285
+ if (removeRawSets.length > 0) {
286
+ this.removeRawSet(...removeRawSets);
287
+ }
288
+ return this.getRawSets();
289
+ }
247
290
 
248
- let renderResult: RenderResult | undefined;
249
- if (it.isConnected) {
250
- // 중요 render될때 targetAttribute 체크 해야함.
251
- const targetAttrMap = (it.point.node as Element)?.getAttribute?.(EventManager.normalAttrMapAttrName);
252
- // console.log('sssssssssSSS?',it, targetAttrMap)
253
- // console.log('----2', it, fullPathStr, targetAttrMap, (it.fragment as any).render, it.isConnected, this.getRawSets());
254
- if (it.detect?.action) {
255
- it.detect.action();
256
- // } else if (it.type === RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && (it.fragment as any).render) {
257
- } else if (
258
- it.type === RawSetType.TARGET_ELEMENT &&
259
- it.dataSet?.render?.currentThis &&
260
- fullPathStr &&
261
- targetAttrMap
262
- ) {
263
- const attrStart = performance.now();
264
- new Map<string, NormalAttrDataType>(JSON.parse(targetAttrMap)).forEach((v, k) => {
265
- // it?.data.onChangeAttrRender(k, null, v);
266
- // console.log('------->?',v,k);
267
- const isUsing = v.variablePaths.some(it => EventManager.isUsingThisVar(it.inner, `this.${fullPathStr}`))
268
- // console.log('------->?',v,k, isUsing);
269
- if (isUsing) {
270
- const targetAttrObject = RawSet.getAttributeObject(it.point.node as Element, {
271
- script: it.dataSet?.render?.renderScript ?? '',
272
- obj: Object.assign(this._domRender_proxy ?? {}, { __render: it.dataSet?.render })
273
- });
274
- it.dataSet.render ??= {};
275
- it.dataSet.render.attribute = targetAttrObject;
276
- // const render = it.dataSet?.render;
277
- // console.log('render-->!!!!!', it.dataSet.render);
278
- // const script = `${render.renderScript} return ${v} `;
279
- // const cval = ScriptUtils.eval(script, Object.assign(this._domRender_proxy ?? {}, { __render: render }));
280
- if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {
281
- it.dataSet?.render?.currentThis?.onChangeAttrRender?.(k, targetAttrObject[k], { rawSet: it });
282
- }
283
- }
284
- // console.log('---?', v, fullPathStr, isUsing);
291
+ private async renderExecute(it: RawSet, fullPathStr: string, removeRawSets: RawSet[]) {
292
+ // console.log('실행?')
293
+ // await Promises.sleep(0);
294
+ it.getUsingTriggerVariables(this._domRender_config).forEach(path => {
295
+ // console.log('getUsingTriggerVariables->', path);
296
+ this.addRawSet(path, it);
297
+ });
298
+
299
+ let renderResult: RenderResult | undefined;
300
+ // console.log('isConnected?', it, it.isConnected);
301
+ if (it.isConnected) {
302
+ // 중요 render될때 targetAttribute 체크 해야함.
303
+ const targetAttrMap = (it.point.node as Element)?.getAttribute?.(EventManager.normalAttrMapAttrName);
304
+ // console.log('sssssssssSSS?',it, targetAttrMap)
305
+ // console.log('----2', it, fullPathStr, targetAttrMap, (it.fragment as any).render, it.isConnected, this.getRawSets());
306
+ if (it.detect?.action) {
307
+ it.detect.action();
308
+ // } else if (it.type === RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && (it.fragment as any).render) {
309
+ } else if (
310
+ it.type === RawSetType.TARGET_ELEMENT &&
311
+ it.dataSet?.render?.currentThis &&
312
+ fullPathStr &&
313
+ targetAttrMap
314
+ ) {
315
+ const attrStart = performance.now();
316
+ new Map<string, NormalAttrDataType>(JSON.parse(targetAttrMap)).forEach((v, k) => {
317
+ // it?.data.onChangeAttrRender(k, null, v);
318
+ // console.log('------->?',v,k);
319
+ const isUsing = v.variablePaths.some(it => EventManager.isUsingThisVar(it.inner, `this.${fullPathStr}`))
320
+ // console.log('------->?',v,k, isUsing);
321
+ if (isUsing) {
322
+ const targetAttrObject = RawSet.getAttributeObject(it.point.node as Element, {
323
+ script: it.dataSet?.render?.renderScript ?? '',
324
+ obj: Object.assign(this._domRender_proxy ?? {}, {__render: it.dataSet?.render})
285
325
  });
286
- const attrEnd = performance.now();
287
- // if (attrEnd - attrStart > 10) {
288
- // console.log('Slow Attr Update:', attrEnd - attrStart, it);
289
- // }
290
- // ------------------->
291
- } else {
292
- const renderStart = performance.now();
293
- const rawSets = await it.render(this._domRender_proxy, this._domRender_config);
294
- const renderEnd = performance.now();
295
- // if (renderEnd - renderStart > 10) {
296
- // console.log('Slow RawSet Render:', renderEnd - renderStart, it);
297
- // }
298
- renderResult = rawSets;
299
- // 그외 자식들 render
300
- if (rawSets && rawSets.raws.length > 0) {
301
- await this.render(rawSets.raws);
326
+ it.dataSet.render ??= {};
327
+ it.dataSet.render.attribute = targetAttrObject;
328
+ // const render = it.dataSet?.render;
329
+ // console.log('render-->!!!!!', it.dataSet.render);
330
+ // const script = `${render.renderScript} return ${v} `;
331
+ // const cval = ScriptUtils.eval(script, Object.assign(this._domRender_proxy ?? {}, { __render: render }));
332
+ if (isOnChangeAttrRender(it.dataSet?.render?.currentThis)) {
333
+ it.dataSet?.render?.currentThis?.onChangeAttrRender?.(k, targetAttrObject[k], {rawSet: it});
302
334
  }
303
335
  }
304
- } else {
305
- removeRawSets.push(it);
306
- }
307
-
308
- const t = it.findNearThis(this._domRender_proxy);
309
- // TODO: 호출된곳에서 또 변수를 수정하게되면 무한루프니깐 왠만하면 사용못하게 해야한다.
310
- if (isOnRawSetRendered(t)) {
311
- await t.onRawSetRendered(it, { path: fullPathStr, value: ObjectUtils.Script.evaluateReturn(`this.${fullPathStr}`, this._domRender_proxy), root: this._domRender_proxy, renderResult });
336
+ // console.log('---?', v, fullPathStr, isUsing);
337
+ });
338
+ const attrEnd = performance.now();
339
+ // if (attrEnd - attrStart > 10) {
340
+ // console.log('Slow Attr Update:', attrEnd - attrStart, it);
341
+ // }
342
+ // ------------------->
343
+ } else {
344
+ const renderStart = performance.now();
345
+ const rawSets = await it.render(this._domRender_proxy, this._domRender_config);
346
+ // console.log('!!!!!!!!!', rawSets)
347
+ const renderEnd = performance.now();
348
+ // if (renderEnd - renderStart > 10) {
349
+ // console.log('Slow RawSet Render:', renderEnd - renderStart, it);
350
+ // }
351
+ renderResult = rawSets;
352
+ // 그외 자식들 render
353
+ if (rawSets && rawSets.raws.length > 0) {
354
+ await this.render(rawSets.raws);
312
355
  }
313
- // console.log('----', it);
314
- });
315
- await Promise.all(promises);
316
- if (chunks.length > 1) {
317
- await new Promise(resolve => requestAnimationFrame(resolve));
318
356
  }
357
+ } else {
358
+ removeRawSets.push(it);
319
359
  }
320
360
 
321
- if (isOnChildRawSetRendered(this._domRender_proxy)) {
322
- await this._domRender_proxy.onChildRawSetRendered();
323
- }
324
-
325
- if (removeRawSets.length > 0) {
326
- this.removeRawSet(...removeRawSets);
361
+ const t = it.findNearThis(this._domRender_proxy);
362
+ // TODO: 호출된곳에서 또 변수를 수정하게되면 무한루프니깐 왠만하면 사용못하게 해야한다.
363
+ if (isOnRawSetRendered(t)) {
364
+ await t.onRawSetRendered(it, {path: fullPathStr, value: ObjectUtils.Script.evaluateReturn(`this.${fullPathStr}`, this._domRender_proxy), root: this._domRender_proxy, renderResult});
327
365
  }
328
- return this.getRawSets();
329
366
  }
330
367
 
331
- // domrender_ref로 찾는걸로 바꿈
368
+ // domrender_ref로 찾는걸로 바꿈
332
369
  // public findRootDomRenderProxy(): DomRenderProxy<any> {
333
370
  // let current:DomRenderProxy<any> = this;
334
371
  // while (current.parentProxy) {
@@ -351,7 +388,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
351
388
  const fullPaths: { path: string; obj: any }[][] = [];
352
389
  if (this._domRender_ref.size > 0) {
353
390
  this._domRender_ref.forEach((it, key) => {
354
- if ('_DomRender_isProxy' in key) {
391
+ if (DomRenderProxyMetaKey._DomRender_isProxy in key) {
355
392
  it.forEach(sit => {
356
393
  try {
357
394
  const recursiveStartTime = Date.now();
@@ -378,13 +415,13 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
378
415
  // console.time('root_recursive');
379
416
  const pathProcessStartTime = Date.now();
380
417
  // const firstPathStr = paths.slice(1).reverse().join('.');
381
- const strings = pathInfos.reverse().map(it => it.map(it => it.path).join(','));
418
+ const shortPaths = pathInfos.reverse().map(it => it.map(it => it.path).join(','));
382
419
  // array같은경우도 키값으로 접근하기때문에 특정 인덱스를 찾아서 그부분만 바꿔줄수 있다.
383
- const fullPathStr = strings
420
+ const fullPathStr = shortPaths
384
421
  .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))
385
422
  .join('')
386
423
  .slice(1);
387
- // console.log(`🛤️ Path processing time: ${Date.now() - pathProcessStartTime}ms for path: ${fullPathStr}`);
424
+ // console.log(`🛤️ Path processing time: ${Date.now() - pathProcessStartTime}ms for path: ${fullPathStr}`, lastDoneExecute);
388
425
  if (lastDoneExecute) {
389
426
  // const firstData = ScriptUtils.evalReturn('this.' + firstPathStr, this._domRender_proxy);
390
427
  // console.log('-------', firstPathStr, firstData);
@@ -392,14 +429,20 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
392
429
  // }
393
430
  const iterable = this._rawSets.get(fullPathStr);
394
431
  // array check
395
- const front = strings
396
- .slice(0, strings.length - 1)
432
+ const front = shortPaths
433
+ .slice(0, shortPaths.length - 1)
397
434
  .map(it => (isNaN(Number(it)) ? '.' + it : `[${it}]`))
398
435
  .join('');
399
- const lastPropertyName = strings[strings.length - 1];
436
+ const lastPropertyName = shortPaths[shortPaths.length - 1];
400
437
  const path = 'this' + front;
401
438
  const data = ObjectUtils.Script.evaluateReturn(ObjectUtils.Path.toOptionalChainPath(path), this._domRender_proxy);
402
- // console.log('root-->', this._rawSets, path, data );
439
+ // console.log('root-sub-->', this._rawSets, iterable, path, data );
440
+
441
+ // 중요: 값이 undefined/null이 되면 해당 경로로 시작하는 모든 child RawSet들을 정리
442
+ // 예: users가 undefined가 되면 users[0].imgUrl, users[1].office.name 등의 RawSet들도 제거
443
+ // if (value === undefined || value === null) {
444
+ // this.removeChildRawSetsByPath(fullPathStr);
445
+ // }
403
446
  // console.log('--!!!!', fullPathStr, iterable, data, front, last);
404
447
  // 왜여기서 promise를 했을까를 생각해보면......훔.. 변수변경과 화면 뿌려주는걸 동기로하면 성능이 안나오고 비현실적이다. 그래서 promise
405
448
  const promiseStartTime = Date.now();
@@ -543,7 +586,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
543
586
  // console.log('set-->', p, value, target, receiver, Reflect.getMetadata(DomRenderNoProxyKey, target, p) );
544
587
 
545
588
  if (
546
- (typeof p === 'string' && p !== '__domrender_components' && excludeGetSetPropertys.includes(p)) ||
589
+ (typeof p === 'string' && p !== DomRenderComponentMetaKey.DOMRENDER_COMPONENTS_KEY && excludeGetSetPropertys.includes(p)) ||
547
590
  Reflect.getMetadata(DomRenderNoProxyKey, target, p)
548
591
  ) {
549
592
  (target as any)[p] = value;
@@ -598,7 +641,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
598
641
  ObjectUtils.Script.evaluateReturn<[string, NormalAttrDataType][]>(elementInfo.value)
599
642
  );
600
643
  Array.from(targets.entries())
601
- .filter(isDefined)
644
+ .filter(ValidUtils.isDefined<[string, NormalAttrDataType]>)
602
645
  .flatMap(([key, valueScript]) => {
603
646
  return fullPathInfo
604
647
  .flat()
@@ -653,7 +696,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
653
696
 
654
697
  Array.from(targets.entries())
655
698
  .filter(([key, value]) => value.trim())
656
- .filter(isDefined)
699
+ .filter(ValidUtils.isDefined<[string, string]>)
657
700
  .flatMap(([key, valueScript]) => {
658
701
  return fullPathInfo
659
702
  .flat()
@@ -675,7 +718,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
675
718
 
676
719
  Array.from(targets.entries())
677
720
  .filter(([key, value]) => value.trim())
678
- .filter(isDefined)
721
+ .filter(ValidUtils.isDefined<[string, string]>)
679
722
  .flatMap(([key, valueScript]) => {
680
723
  return fullPathInfo
681
724
  .flat()
@@ -696,7 +739,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
696
739
 
697
740
  // console.log('---end',receiver);
698
741
  if (
699
- 'onBeforeReturnSet' in receiver &&
742
+ DomRenderProxyMetaKey.onBeforeReturnSet in receiver &&
700
743
  typeof p === 'string' &&
701
744
  !(this._domRender_config.proxyExcludeOnBeforeReturnSets ?? []).concat(excludeGetSetPropertys).includes(p)
702
745
  ) {
@@ -715,13 +758,13 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
715
758
 
716
759
  get(target: T, p: string | symbol, receiver: any): any {
717
760
  // console.log('get-->', target, p, receiver);
718
- if (p === '_DomRender_origin' || p === '_domRender_origin') {
761
+ if (p === DomRenderProxyMetaKey._DomRender_origin || p === DomRenderProxyMetaKey._domRender_origin) {
719
762
  return this._domRender_origin;
720
- } else if (p === '_DomRender_ref' || p === '_domRender_ref') {
763
+ } else if (p === DomRenderProxyMetaKey._DomRender_ref || p === DomRenderProxyMetaKey._domRender_ref) {
721
764
  return this._domRender_ref;
722
- } else if (p === '_DomRender_config' || p === '_domRender_config') {
765
+ } else if (p === DomRenderProxyMetaKey._DomRender_config || p === DomRenderProxyMetaKey._domRender_config) {
723
766
  return this._domRender_config;
724
- } else if (p === '_DomRender_proxy' || p === '_domRender_proxy') {
767
+ } else if (p === DomRenderProxyMetaKey._DomRender_proxy || p === DomRenderProxyMetaKey._domRender_proxy) {
725
768
  return this;
726
769
  } else {
727
770
  // Date라던지 이런놈들은-_-프록시가 이상하게 동작해서
@@ -742,14 +785,14 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
742
785
  if (
743
786
  it &&
744
787
  typeof it === 'object' &&
745
- '_DomRender_isProxy' in it &&
788
+ DomRenderProxyMetaKey._DomRender_isProxy in it &&
746
789
  Object.prototype.toString.call(it._DomRender_origin) === '[object Date]'
747
790
  ) {
748
791
  it = it._DomRender_origin;
749
792
  }
750
793
 
751
794
  if (
752
- 'onBeforeReturnGet' in receiver &&
795
+ DomRenderProxyMetaKey.onBeforeReturnGet in receiver &&
753
796
  typeof p === 'string' &&
754
797
  !(this._domRender_config.proxyExcludeOnBeforeReturnGets ?? []).concat(excludeGetSetPropertys).includes(p)
755
798
  ) {
@@ -772,7 +815,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
772
815
  }
773
816
 
774
817
  has(target: T, p: string | symbol): boolean {
775
- return p === '_DomRender_isProxy' || p in target;
818
+ return p === DomRenderProxyMetaKey._DomRender_isProxy || p in target;
776
819
  }
777
820
 
778
821
  proxy(parentProxy: T, obj: T | any, p: string) {
@@ -860,6 +903,7 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
860
903
  // }
861
904
 
862
905
  public removeRawSet(...raws: RawSet[]) {
906
+ // console.log('Before removeRawSet, total rawSets:', this.getRawSets().length);
863
907
  this._rawSets.forEach(it => {
864
908
  it.forEach(sit => {
865
909
  if (!sit.isConnected) {
@@ -870,6 +914,33 @@ export class DomRenderProxy<T extends object> implements ProxyHandler<T> {
870
914
  });
871
915
  });
872
916
  this.targetGarbageRawSet();
917
+ // console.log('After removeRawSet, total rawSets:', this.getRawSets().length);
918
+ }
919
+
920
+ // 특정 경로로 시작하는 모든 child RawSet들을 제거
921
+ // 예: path가 'users'이면 'users[0]', 'users[0].imgUrl', 'users.length' 등 모두 제거
922
+ public removeChildRawSetsByPath(parentPath: string) {
923
+ const pathsToRemove: string[] = [];
924
+ this._rawSets.forEach((rawSetSet, path) => {
925
+ // 정확히 일치하거나, 배열 인덱스 접근(users[), 또는 속성 접근(users.)으로 시작하는 경우
926
+ if (path === parentPath || path.startsWith(parentPath + '[') || path.startsWith(parentPath + '.')) {
927
+ pathsToRemove.push(path);
928
+ }
929
+ });
930
+
931
+ if (pathsToRemove.length > 0) {
932
+ // console.log(`🧹 Removing child RawSets for path '${parentPath}':`, pathsToRemove);
933
+ pathsToRemove.forEach(path => {
934
+ const rawSetSet = this._rawSets.get(path);
935
+ if (rawSetSet) {
936
+ rawSetSet.forEach(rawSet => {
937
+ // DOM에서 제거
938
+ rawSet.remove?.();
939
+ });
940
+ this._rawSets.delete(path);
941
+ }
942
+ });
943
+ }
873
944
  }
874
945
 
875
946
  private targetGarbageRawSet() {
@@ -9,12 +9,10 @@ export * from './DomRenderProxy';
9
9
  export * from './configs';
10
10
  export * from './decorators';
11
11
  export * from './events';
12
- export * from './iterators';
12
+ export * from '@dooboostore/core';
13
13
  export * from './lifecycle';
14
14
  export * from './messenger';
15
15
  export * from './operators';
16
16
  export * from './rawsets';
17
- export * from './routers';
18
17
  export * from './types';
19
- export * from './validators';
20
- export { drComponent , If, This, Appender as AppenderComponent, PromiseSwitch, Choose, CheckBox, Radio, Select, Timer, Details, Input, Route, RouterOutlet, A } from './components';
18
+ export { drComponent, If, This, Appender as AppenderComponent, PromiseSwitch, Choose, CheckBox, Radio, Select, Timer, Details, Input, Route, RouterOutlet, A } from './components';
@@ -1,23 +1,22 @@
1
- import { ElementUtils } from '@dooboostore/core-web/element/ElementUtils';
1
+ import { ElementUtils } from '@dooboostore/core-web';
2
2
  import { OnChangeAttrRender, OtherData } from '../lifecycle/OnChangeAttrRender';
3
3
  import { OnCreateRenderData, OnCreateRenderDataParams } from '../lifecycle/OnCreateRenderData';
4
4
  import { RawSet } from '../rawsets/RawSet';
5
- import { ConstructorType } from '@dooboostore/core/types';
5
+ import { ConstructorType } from '@dooboostore/core';
6
6
  import { OnCreatedThisChild } from '../lifecycle/OnCreatedThisChild';
7
7
  import { DomRenderNoProxy } from '../decorators/DomRenderNoProxy';
8
8
  import { OnInitRender } from '../lifecycle/OnInitRender';
9
- import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';
9
+ import { ConvertUtils } from '@dooboostore/core';
10
10
  import { OnDestroyRender, OnDestroyRenderParams } from '../lifecycle/OnDestroyRender';
11
11
  import { OnDrThisUnBind } from '../lifecycle/dr-this/OnDrThisUnBind';
12
12
  import { OnDrThisBind } from '../lifecycle/dr-this/OnDrThisBind';
13
13
  import type { Render } from '../rawsets/Render';
14
- import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
14
+ import { ReflectUtils } from '@dooboostore/core';
15
15
  import { DomRenderConfig } from '../configs/DomRenderConfig';
16
- import { Subject } from '@dooboostore/core/message/Subject';
17
- import { debounceTime } from '@dooboostore/core/message/operators/debounceTime';
18
- import type { Subscription } from '@dooboostore/core/message/Subscription';
16
+ import { Subject } from '@dooboostore/core';
17
+ import { MessageOperator } from '@dooboostore/core';
18
+ import type { Subscription } from '@dooboostore/core';
19
19
  import { OnRawSetRendered, OnRawSetRenderedOtherData } from "../lifecycle/OnRawSetRendered";
20
- import {bufferTime} from "@dooboostore/core/message/operators/bufferTime";
21
20
  import {OnChildRawSetRendered} from "../lifecycle/OnChildRawSetRendered";
22
21
 
23
22
 
@@ -173,6 +172,10 @@ export class ComponentBase<T = any, C extends ComponentBaseConfig = ComponentBas
173
172
  private onChildRawSetRenderedOtherDataSubjectSubscription?: Subscription | undefined;
174
173
 
175
174
  constructor(private _config?: C) {
175
+ // console.log('ComponentBase created', this);
176
+ // setTimeout(()=>{
177
+ // console.log('ComponentBase created', this.constructor.name, this._rawSet?.uuid);
178
+ // }, 1000)
176
179
  }
177
180
  get componentConfig(): C | undefined {
178
181
  return this._config;
@@ -705,19 +708,34 @@ getAttributeNames(attribute = this._attribute): string[] {
705
708
  }
706
709
 
707
710
  async onInitRender(param: any, rawSet: RawSet) {
711
+
712
+ // console.log('onInitRender ComponentBase', this.constructor.name, rawSet?.uuid);
713
+ const window = rawSet.dataSet?.config?.window;
708
714
  this.createChildrenDebounceSubscription = this.childrenSetSubject.pipe(
709
- debounceTime(this.componentConfig?.createChildrenDebounce??0)
715
+ MessageOperator.debounceTime(this.componentConfig?.createChildrenDebounce??1, {
716
+ setTimeout: window ? window.setTimeout.bind(window) : undefined,
717
+ clearTimeout: window ? window.clearTimeout.bind(window) : undefined,
718
+ })
710
719
  ).subscribe(it => {
711
720
  // console.log('call onCreatedThisChildDebounce', it);
712
721
  this.onCreatedThisChildDebounce(it);
713
722
  });
714
723
  this.onRawSetRenderedOtherDataSubjectSubscription = this.onRawSetRenderedOtherDataSubject.pipe(
715
- bufferTime(this.componentConfig?.onRawSetRenderedOtherDataDebounce??0)
724
+ MessageOperator.bufferTime(this.componentConfig?.onRawSetRenderedOtherDataDebounce??1, {
725
+ skipEmpty: true,
726
+ setInterval: window ? window.setInterval.bind(window) : undefined,
727
+ clearInterval: window ? window.clearInterval.bind(window) : undefined,
728
+ setTimeout: window ? window.setTimeout.bind(window) : undefined,
729
+ clearTimeout: window ? window.clearTimeout.bind(window) : undefined,
730
+ })
716
731
  ).subscribe(it => {
717
732
  this.onRawSetRenderedDebounce(it);
718
733
  });
719
734
  this.onChildRawSetRenderedOtherDataSubjectSubscription = this.onChildRawSetRenderedOtherDataSubject.pipe(
720
- debounceTime(this.componentConfig?.onChildRawSetRenderedOtherDataDebounce??0)
735
+ MessageOperator.debounceTime(this.componentConfig?.onChildRawSetRenderedOtherDataDebounce??10, {
736
+ setTimeout: window ? window.setTimeout.bind(window) : undefined,
737
+ clearTimeout: window ? window.clearTimeout.bind(window) : undefined,
738
+ })
721
739
  ).subscribe(it => {
722
740
  this.onChildRawSetRenderedDebounce();
723
741
  });
@@ -755,6 +773,7 @@ getAttributeNames(attribute = this._attribute): string[] {
755
773
  this.createChildrenDebounceSubscription?.unsubscribe();
756
774
  this.onRawSetRenderedOtherDataSubjectSubscription?.unsubscribe();
757
775
  this.onChildRawSetRenderedOtherDataSubjectSubscription?.unsubscribe();
776
+ // console.log('ComponentBase onDestroy', this.constructor.name, this.onRawSetRenderedOtherDataSubjectSubscription.closed);
758
777
  }
759
778
 
760
779
  }