@dooboostore/dom-render 1.0.112 → 1.0.114

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 (520) hide show
  1. package/README.md +475 -0
  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 +4 -32
  7. package/dist/cjs/bundle-entry.js.map +2 -2
  8. package/dist/cjs/components/ComponentBase.js +49 -37
  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 +32 -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 +4 -32
  75. package/dist/esm/bundle-entry.js.map +2 -2
  76. package/dist/esm/components/ComponentBase.js +24 -12
  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 +3 -5
  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 +51 -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 +16586 -14250
  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 +3 -16
  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 +16575 -14239
  197. package/dist/umd-bundle/dooboostore-dom-render.umd.js.map +4 -4
  198. package/package.json +13 -7
  199. package/src/DomRender.ts +5 -5
  200. package/src/DomRenderProxy.ts +195 -124
  201. package/src/bundle-entry.ts +7 -18
  202. package/src/components/ComponentBase.ts +33 -14
  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 +4 -6
  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 +33 -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/README.MD +0 -42
  240. package/dist/cjs/iterators/Range.js +0 -85
  241. package/dist/cjs/iterators/Range.js.map +0 -7
  242. package/dist/cjs/iterators/index.js +0 -18
  243. package/dist/cjs/iterators/index.js.map +0 -7
  244. package/dist/cjs/routers/HashRouter.js +0 -110
  245. package/dist/cjs/routers/HashRouter.js.map +0 -7
  246. package/dist/cjs/routers/PathRouter.js +0 -102
  247. package/dist/cjs/routers/PathRouter.js.map +0 -7
  248. package/dist/cjs/routers/Router.js +0 -192
  249. package/dist/cjs/routers/Router.js.map +0 -7
  250. package/dist/cjs/routers/index.js +0 -20
  251. package/dist/cjs/routers/index.js.map +0 -7
  252. package/dist/cjs/validators/AllCheckedValidatorArray.js +0 -32
  253. package/dist/cjs/validators/AllCheckedValidatorArray.js.map +0 -7
  254. package/dist/cjs/validators/AllUnCheckedValidatorArray.js +0 -32
  255. package/dist/cjs/validators/AllUnCheckedValidatorArray.js.map +0 -7
  256. package/dist/cjs/validators/CheckedValidator.js +0 -32
  257. package/dist/cjs/validators/CheckedValidator.js.map +0 -7
  258. package/dist/cjs/validators/CountEqualsCheckedValidatorArray.js +0 -33
  259. package/dist/cjs/validators/CountEqualsCheckedValidatorArray.js.map +0 -7
  260. package/dist/cjs/validators/CountEqualsUnCheckedValidatorArray.js +0 -33
  261. package/dist/cjs/validators/CountEqualsUnCheckedValidatorArray.js.map +0 -7
  262. package/dist/cjs/validators/CountGreaterThanCheckedValidatorArray.js +0 -33
  263. package/dist/cjs/validators/CountGreaterThanCheckedValidatorArray.js.map +0 -7
  264. package/dist/cjs/validators/CountGreaterThanEqualsCheckedValidatorArray.js +0 -33
  265. package/dist/cjs/validators/CountGreaterThanEqualsCheckedValidatorArray.js.map +0 -7
  266. package/dist/cjs/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +0 -33
  267. package/dist/cjs/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js.map +0 -7
  268. package/dist/cjs/validators/CountGreaterThanUnCheckedValidatorArray.js +0 -33
  269. package/dist/cjs/validators/CountGreaterThanUnCheckedValidatorArray.js.map +0 -7
  270. package/dist/cjs/validators/CountLessThanCheckedValidatorArray.js +0 -33
  271. package/dist/cjs/validators/CountLessThanCheckedValidatorArray.js.map +0 -7
  272. package/dist/cjs/validators/CountLessThanEqualsCheckedValidatorArray.js +0 -33
  273. package/dist/cjs/validators/CountLessThanEqualsCheckedValidatorArray.js.map +0 -7
  274. package/dist/cjs/validators/CountLessThanEqualsUnCheckedValidatorArray.js +0 -33
  275. package/dist/cjs/validators/CountLessThanEqualsUnCheckedValidatorArray.js.map +0 -7
  276. package/dist/cjs/validators/CountLessThanUnCheckedValidatorArray.js +0 -33
  277. package/dist/cjs/validators/CountLessThanUnCheckedValidatorArray.js.map +0 -7
  278. package/dist/cjs/validators/CountUnCheckedValidatorArray.js +0 -33
  279. package/dist/cjs/validators/CountUnCheckedValidatorArray.js.map +0 -7
  280. package/dist/cjs/validators/EmptyValidator.js +0 -33
  281. package/dist/cjs/validators/EmptyValidator.js.map +0 -7
  282. package/dist/cjs/validators/ExcludeCheckedValidatorArray.js +0 -36
  283. package/dist/cjs/validators/ExcludeCheckedValidatorArray.js.map +0 -7
  284. package/dist/cjs/validators/FormValidator.js +0 -38
  285. package/dist/cjs/validators/FormValidator.js.map +0 -7
  286. package/dist/cjs/validators/IncludeCheckedValidatorArray.js +0 -36
  287. package/dist/cjs/validators/IncludeCheckedValidatorArray.js.map +0 -7
  288. package/dist/cjs/validators/MultipleValidator.js +0 -46
  289. package/dist/cjs/validators/MultipleValidator.js.map +0 -7
  290. package/dist/cjs/validators/NonPassValidator.js +0 -32
  291. package/dist/cjs/validators/NonPassValidator.js.map +0 -7
  292. package/dist/cjs/validators/NotEmptyValidator.js +0 -33
  293. package/dist/cjs/validators/NotEmptyValidator.js.map +0 -7
  294. package/dist/cjs/validators/NotRegExpTestValidator.js +0 -40
  295. package/dist/cjs/validators/NotRegExpTestValidator.js.map +0 -7
  296. package/dist/cjs/validators/PassValidator.js +0 -32
  297. package/dist/cjs/validators/PassValidator.js.map +0 -7
  298. package/dist/cjs/validators/RegExpTestValidator.js +0 -40
  299. package/dist/cjs/validators/RegExpTestValidator.js.map +0 -7
  300. package/dist/cjs/validators/RequiredValidator.js +0 -33
  301. package/dist/cjs/validators/RequiredValidator.js.map +0 -7
  302. package/dist/cjs/validators/UnCheckedValidator.js +0 -32
  303. package/dist/cjs/validators/UnCheckedValidator.js.map +0 -7
  304. package/dist/cjs/validators/ValidMultipleValidator.js +0 -34
  305. package/dist/cjs/validators/ValidMultipleValidator.js.map +0 -7
  306. package/dist/cjs/validators/ValidValidator.js +0 -33
  307. package/dist/cjs/validators/ValidValidator.js.map +0 -7
  308. package/dist/cjs/validators/ValidValidatorArray.js +0 -33
  309. package/dist/cjs/validators/ValidValidatorArray.js.map +0 -7
  310. package/dist/cjs/validators/Validator.js +0 -206
  311. package/dist/cjs/validators/Validator.js.map +0 -7
  312. package/dist/cjs/validators/ValidatorArray.js +0 -91
  313. package/dist/cjs/validators/ValidatorArray.js.map +0 -7
  314. package/dist/cjs/validators/ValueEqualsValidator.js +0 -33
  315. package/dist/cjs/validators/ValueEqualsValidator.js.map +0 -7
  316. package/dist/cjs/validators/ValueNotEqualsValidator.js +0 -33
  317. package/dist/cjs/validators/ValueNotEqualsValidator.js.map +0 -7
  318. package/dist/cjs/validators/index.js +0 -48
  319. package/dist/cjs/validators/index.js.map +0 -7
  320. package/dist/esm/iterators/Range.js +0 -66
  321. package/dist/esm/iterators/Range.js.map +0 -7
  322. package/dist/esm/iterators/index.js +0 -2
  323. package/dist/esm/iterators/index.js.map +0 -7
  324. package/dist/esm/routers/HashRouter.js +0 -91
  325. package/dist/esm/routers/HashRouter.js.map +0 -7
  326. package/dist/esm/routers/PathRouter.js +0 -83
  327. package/dist/esm/routers/PathRouter.js.map +0 -7
  328. package/dist/esm/routers/Router.js +0 -173
  329. package/dist/esm/routers/Router.js.map +0 -7
  330. package/dist/esm/routers/index.js +0 -4
  331. package/dist/esm/routers/index.js.map +0 -7
  332. package/dist/esm/validators/AllCheckedValidatorArray.js +0 -13
  333. package/dist/esm/validators/AllCheckedValidatorArray.js.map +0 -7
  334. package/dist/esm/validators/AllUnCheckedValidatorArray.js +0 -13
  335. package/dist/esm/validators/AllUnCheckedValidatorArray.js.map +0 -7
  336. package/dist/esm/validators/CheckedValidator.js +0 -13
  337. package/dist/esm/validators/CheckedValidator.js.map +0 -7
  338. package/dist/esm/validators/CountEqualsCheckedValidatorArray.js +0 -14
  339. package/dist/esm/validators/CountEqualsCheckedValidatorArray.js.map +0 -7
  340. package/dist/esm/validators/CountEqualsUnCheckedValidatorArray.js +0 -14
  341. package/dist/esm/validators/CountEqualsUnCheckedValidatorArray.js.map +0 -7
  342. package/dist/esm/validators/CountGreaterThanCheckedValidatorArray.js +0 -14
  343. package/dist/esm/validators/CountGreaterThanCheckedValidatorArray.js.map +0 -7
  344. package/dist/esm/validators/CountGreaterThanEqualsCheckedValidatorArray.js +0 -14
  345. package/dist/esm/validators/CountGreaterThanEqualsCheckedValidatorArray.js.map +0 -7
  346. package/dist/esm/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +0 -14
  347. package/dist/esm/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js.map +0 -7
  348. package/dist/esm/validators/CountGreaterThanUnCheckedValidatorArray.js +0 -14
  349. package/dist/esm/validators/CountGreaterThanUnCheckedValidatorArray.js.map +0 -7
  350. package/dist/esm/validators/CountLessThanCheckedValidatorArray.js +0 -14
  351. package/dist/esm/validators/CountLessThanCheckedValidatorArray.js.map +0 -7
  352. package/dist/esm/validators/CountLessThanEqualsCheckedValidatorArray.js +0 -14
  353. package/dist/esm/validators/CountLessThanEqualsCheckedValidatorArray.js.map +0 -7
  354. package/dist/esm/validators/CountLessThanEqualsUnCheckedValidatorArray.js +0 -14
  355. package/dist/esm/validators/CountLessThanEqualsUnCheckedValidatorArray.js.map +0 -7
  356. package/dist/esm/validators/CountLessThanUnCheckedValidatorArray.js +0 -14
  357. package/dist/esm/validators/CountLessThanUnCheckedValidatorArray.js.map +0 -7
  358. package/dist/esm/validators/CountUnCheckedValidatorArray.js +0 -14
  359. package/dist/esm/validators/CountUnCheckedValidatorArray.js.map +0 -7
  360. package/dist/esm/validators/EmptyValidator.js +0 -14
  361. package/dist/esm/validators/EmptyValidator.js.map +0 -7
  362. package/dist/esm/validators/ExcludeCheckedValidatorArray.js +0 -17
  363. package/dist/esm/validators/ExcludeCheckedValidatorArray.js.map +0 -7
  364. package/dist/esm/validators/FormValidator.js +0 -19
  365. package/dist/esm/validators/FormValidator.js.map +0 -7
  366. package/dist/esm/validators/IncludeCheckedValidatorArray.js +0 -17
  367. package/dist/esm/validators/IncludeCheckedValidatorArray.js.map +0 -7
  368. package/dist/esm/validators/MultipleValidator.js +0 -27
  369. package/dist/esm/validators/MultipleValidator.js.map +0 -7
  370. package/dist/esm/validators/NonPassValidator.js +0 -13
  371. package/dist/esm/validators/NonPassValidator.js.map +0 -7
  372. package/dist/esm/validators/NotEmptyValidator.js +0 -14
  373. package/dist/esm/validators/NotEmptyValidator.js.map +0 -7
  374. package/dist/esm/validators/NotRegExpTestValidator.js +0 -21
  375. package/dist/esm/validators/NotRegExpTestValidator.js.map +0 -7
  376. package/dist/esm/validators/PassValidator.js +0 -13
  377. package/dist/esm/validators/PassValidator.js.map +0 -7
  378. package/dist/esm/validators/RegExpTestValidator.js +0 -21
  379. package/dist/esm/validators/RegExpTestValidator.js.map +0 -7
  380. package/dist/esm/validators/RequiredValidator.js +0 -14
  381. package/dist/esm/validators/RequiredValidator.js.map +0 -7
  382. package/dist/esm/validators/UnCheckedValidator.js +0 -13
  383. package/dist/esm/validators/UnCheckedValidator.js.map +0 -7
  384. package/dist/esm/validators/ValidMultipleValidator.js +0 -15
  385. package/dist/esm/validators/ValidMultipleValidator.js.map +0 -7
  386. package/dist/esm/validators/ValidValidator.js +0 -14
  387. package/dist/esm/validators/ValidValidator.js.map +0 -7
  388. package/dist/esm/validators/ValidValidatorArray.js +0 -14
  389. package/dist/esm/validators/ValidValidatorArray.js.map +0 -7
  390. package/dist/esm/validators/Validator.js +0 -187
  391. package/dist/esm/validators/Validator.js.map +0 -7
  392. package/dist/esm/validators/ValidatorArray.js +0 -72
  393. package/dist/esm/validators/ValidatorArray.js.map +0 -7
  394. package/dist/esm/validators/ValueEqualsValidator.js +0 -14
  395. package/dist/esm/validators/ValueEqualsValidator.js.map +0 -7
  396. package/dist/esm/validators/ValueNotEqualsValidator.js +0 -14
  397. package/dist/esm/validators/ValueNotEqualsValidator.js.map +0 -7
  398. package/dist/esm/validators/index.js +0 -32
  399. package/dist/esm/validators/index.js.map +0 -7
  400. package/dist/types/iterators/Range.d.ts +0 -24
  401. package/dist/types/iterators/Range.d.ts.map +0 -1
  402. package/dist/types/iterators/index.d.ts +0 -2
  403. package/dist/types/iterators/index.d.ts.map +0 -1
  404. package/dist/types/routers/HashRouter.d.ts +0 -26
  405. package/dist/types/routers/HashRouter.d.ts.map +0 -1
  406. package/dist/types/routers/PathRouter.d.ts +0 -25
  407. package/dist/types/routers/PathRouter.d.ts.map +0 -1
  408. package/dist/types/routers/Router.d.ts +0 -83
  409. package/dist/types/routers/Router.d.ts.map +0 -1
  410. package/dist/types/routers/index.d.ts +0 -4
  411. package/dist/types/routers/index.d.ts.map +0 -1
  412. package/dist/types/validators/AllCheckedValidatorArray.d.ts +0 -7
  413. package/dist/types/validators/AllCheckedValidatorArray.d.ts.map +0 -1
  414. package/dist/types/validators/AllUnCheckedValidatorArray.d.ts +0 -7
  415. package/dist/types/validators/AllUnCheckedValidatorArray.d.ts.map +0 -1
  416. package/dist/types/validators/CheckedValidator.d.ts +0 -6
  417. package/dist/types/validators/CheckedValidator.d.ts.map +0 -1
  418. package/dist/types/validators/CountEqualsCheckedValidatorArray.d.ts +0 -8
  419. package/dist/types/validators/CountEqualsCheckedValidatorArray.d.ts.map +0 -1
  420. package/dist/types/validators/CountEqualsUnCheckedValidatorArray.d.ts +0 -8
  421. package/dist/types/validators/CountEqualsUnCheckedValidatorArray.d.ts.map +0 -1
  422. package/dist/types/validators/CountGreaterThanCheckedValidatorArray.d.ts +0 -8
  423. package/dist/types/validators/CountGreaterThanCheckedValidatorArray.d.ts.map +0 -1
  424. package/dist/types/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +0 -8
  425. package/dist/types/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts.map +0 -1
  426. package/dist/types/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +0 -8
  427. package/dist/types/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts.map +0 -1
  428. package/dist/types/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +0 -8
  429. package/dist/types/validators/CountGreaterThanUnCheckedValidatorArray.d.ts.map +0 -1
  430. package/dist/types/validators/CountLessThanCheckedValidatorArray.d.ts +0 -8
  431. package/dist/types/validators/CountLessThanCheckedValidatorArray.d.ts.map +0 -1
  432. package/dist/types/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +0 -8
  433. package/dist/types/validators/CountLessThanEqualsCheckedValidatorArray.d.ts.map +0 -1
  434. package/dist/types/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +0 -8
  435. package/dist/types/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts.map +0 -1
  436. package/dist/types/validators/CountLessThanUnCheckedValidatorArray.d.ts +0 -8
  437. package/dist/types/validators/CountLessThanUnCheckedValidatorArray.d.ts.map +0 -1
  438. package/dist/types/validators/CountUnCheckedValidatorArray.d.ts +0 -8
  439. package/dist/types/validators/CountUnCheckedValidatorArray.d.ts.map +0 -1
  440. package/dist/types/validators/EmptyValidator.d.ts +0 -6
  441. package/dist/types/validators/EmptyValidator.d.ts.map +0 -1
  442. package/dist/types/validators/ExcludeCheckedValidatorArray.d.ts +0 -9
  443. package/dist/types/validators/ExcludeCheckedValidatorArray.d.ts.map +0 -1
  444. package/dist/types/validators/FormValidator.d.ts +0 -8
  445. package/dist/types/validators/FormValidator.d.ts.map +0 -1
  446. package/dist/types/validators/IncludeCheckedValidatorArray.d.ts +0 -9
  447. package/dist/types/validators/IncludeCheckedValidatorArray.d.ts.map +0 -1
  448. package/dist/types/validators/MultipleValidator.d.ts +0 -9
  449. package/dist/types/validators/MultipleValidator.d.ts.map +0 -1
  450. package/dist/types/validators/NonPassValidator.d.ts +0 -6
  451. package/dist/types/validators/NonPassValidator.d.ts.map +0 -1
  452. package/dist/types/validators/NotEmptyValidator.d.ts +0 -6
  453. package/dist/types/validators/NotEmptyValidator.d.ts.map +0 -1
  454. package/dist/types/validators/NotRegExpTestValidator.d.ts +0 -7
  455. package/dist/types/validators/NotRegExpTestValidator.d.ts.map +0 -1
  456. package/dist/types/validators/PassValidator.d.ts +0 -6
  457. package/dist/types/validators/PassValidator.d.ts.map +0 -1
  458. package/dist/types/validators/RegExpTestValidator.d.ts +0 -7
  459. package/dist/types/validators/RegExpTestValidator.d.ts.map +0 -1
  460. package/dist/types/validators/RequiredValidator.d.ts +0 -6
  461. package/dist/types/validators/RequiredValidator.d.ts.map +0 -1
  462. package/dist/types/validators/UnCheckedValidator.d.ts +0 -6
  463. package/dist/types/validators/UnCheckedValidator.d.ts.map +0 -1
  464. package/dist/types/validators/ValidMultipleValidator.d.ts +0 -10
  465. package/dist/types/validators/ValidMultipleValidator.d.ts.map +0 -1
  466. package/dist/types/validators/ValidValidator.d.ts +0 -7
  467. package/dist/types/validators/ValidValidator.d.ts.map +0 -1
  468. package/dist/types/validators/ValidValidatorArray.d.ts +0 -8
  469. package/dist/types/validators/ValidValidatorArray.d.ts.map +0 -1
  470. package/dist/types/validators/Validator.d.ts +0 -58
  471. package/dist/types/validators/Validator.d.ts.map +0 -1
  472. package/dist/types/validators/ValidatorArray.d.ts +0 -18
  473. package/dist/types/validators/ValidatorArray.d.ts.map +0 -1
  474. package/dist/types/validators/ValueEqualsValidator.d.ts +0 -7
  475. package/dist/types/validators/ValueEqualsValidator.d.ts.map +0 -1
  476. package/dist/types/validators/ValueNotEqualsValidator.d.ts +0 -7
  477. package/dist/types/validators/ValueNotEqualsValidator.d.ts.map +0 -1
  478. package/dist/types/validators/index.d.ts +0 -32
  479. package/dist/types/validators/index.d.ts.map +0 -1
  480. package/src/DomRenderProxy.ts_cache_back +0 -1031
  481. package/src/iterators/Range.ts +0 -73
  482. package/src/iterators/index.ts +0 -1
  483. package/src/routers/HashRouter.ts +0 -110
  484. package/src/routers/PathRouter.ts +0 -105
  485. package/src/routers/Router.ts +0 -278
  486. package/src/routers/index.ts +0 -3
  487. package/src/validators/AllCheckedValidatorArray.ts +0 -12
  488. package/src/validators/AllUnCheckedValidatorArray.ts +0 -12
  489. package/src/validators/CheckedValidator.ts +0 -11
  490. package/src/validators/CountEqualsCheckedValidatorArray.ts +0 -12
  491. package/src/validators/CountEqualsUnCheckedValidatorArray.ts +0 -12
  492. package/src/validators/CountGreaterThanCheckedValidatorArray.ts +0 -12
  493. package/src/validators/CountGreaterThanEqualsCheckedValidatorArray.ts +0 -12
  494. package/src/validators/CountGreaterThanEqualsUnCheckedValidatorArray.ts +0 -12
  495. package/src/validators/CountGreaterThanUnCheckedValidatorArray.ts +0 -12
  496. package/src/validators/CountLessThanCheckedValidatorArray.ts +0 -12
  497. package/src/validators/CountLessThanEqualsCheckedValidatorArray.ts +0 -12
  498. package/src/validators/CountLessThanEqualsUnCheckedValidatorArray.ts +0 -12
  499. package/src/validators/CountLessThanUnCheckedValidatorArray.ts +0 -12
  500. package/src/validators/CountUnCheckedValidatorArray.ts +0 -12
  501. package/src/validators/EmptyValidator.ts +0 -12
  502. package/src/validators/ExcludeCheckedValidatorArray.ts +0 -16
  503. package/src/validators/FormValidator.ts +0 -19
  504. package/src/validators/IncludeCheckedValidatorArray.ts +0 -16
  505. package/src/validators/MultipleValidator.ts +0 -29
  506. package/src/validators/NonPassValidator.ts +0 -11
  507. package/src/validators/NotEmptyValidator.ts +0 -13
  508. package/src/validators/NotRegExpTestValidator.ts +0 -20
  509. package/src/validators/PassValidator.ts +0 -11
  510. package/src/validators/RegExpTestValidator.ts +0 -21
  511. package/src/validators/RequiredValidator.ts +0 -13
  512. package/src/validators/UnCheckedValidator.ts +0 -11
  513. package/src/validators/ValidMultipleValidator.ts +0 -14
  514. package/src/validators/ValidValidator.ts +0 -11
  515. package/src/validators/ValidValidatorArray.ts +0 -12
  516. package/src/validators/Validator.ts +0 -245
  517. package/src/validators/ValidatorArray.ts +0 -83
  518. package/src/validators/ValueEqualsValidator.ts +0 -11
  519. package/src/validators/ValueNotEqualsValidator.ts +0 -11
  520. package/src/validators/index.ts +0 -31
package/README.md ADDED
@@ -0,0 +1,475 @@
1
+ # @dooboostore/dom-render
2
+
3
+ [![NPM version](https://img.shields.io/npm/v/@dooboostore/dom-render.svg?color=cb3837&style=flat-square)](https://www.npmjs.com/package/@dooboostore/dom-render)
4
+ [![Build and Test](https://github.com/dooboostore-develop/packages/actions/workflows/main.yaml/badge.svg?branch=main)](https://github.com/dooboostore-develop/packages/actions/workflows/main.yaml)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
6
+
7
+
8
+ A reactive and component-oriented DOM template engine for fine-grained rendering. `@dooboostore/dom-render` tracks state changes through proxy-based observation and updates only affected render units.
9
+
10
+ ---
11
+
12
+ ## Features
13
+
14
+ - Reactive object proxy rendering (`DomRender`, `DomRenderProxy`)
15
+ - HTML template bindings (`${...}$`, `#...#`, `@this@`)
16
+ - Structural directives (`dr-if`, `dr-for`, `dr-for-of`, `dr-repeat`, `dr-strip`, `dr-appender`)
17
+ - Event directives (`dr-event-*`, `dr-window-event-*`, `dr-on-init`, `dr-on-rendered-init`)
18
+ - Form directives (`dr-form` and validator integration)
19
+ - Component system (`ComponentBase`, `createComponent`, target elements/attrs)
20
+ - Lifecycle hooks (`onCreateRender`, `onInitRender`, `onRawSetRendered`, etc.)
21
+ - Built-in messenger for inter-component pub/sub
22
+ - Router integration (Path/Hash) via config
23
+
24
+ ## Installation
25
+
26
+ ```bash
27
+ pnpm add @dooboostore/dom-render
28
+ # or
29
+ npm install @dooboostore/dom-render
30
+ ```
31
+
32
+ ## Quick Start
33
+
34
+ ```typescript
35
+ import { DomRender } from '@dooboostore/dom-render';
36
+
37
+ const app = document.querySelector('#app')!;
38
+
39
+ let state = {
40
+ title: 'Hello DomRender',
41
+ count: 0,
42
+ increment() {
43
+ this.count += 1;
44
+ }
45
+ };
46
+
47
+ app.innerHTML = `
48
+ <h1>${@this@.title}$</h1>
49
+ <p>Count: ${@this@.count}$</p>
50
+ <button dr-event-click="@this@.increment()">+1</button>
51
+ `;
52
+
53
+ const result = new DomRender({
54
+ rootObject: state,
55
+ target: app,
56
+ config: { window }
57
+ });
58
+
59
+ state = result.rootObject;
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Public API (Root Export)
65
+
66
+ `@dooboostore/dom-render` now exposes modules from root entry:
67
+
68
+ - `components`
69
+ - `configs`
70
+ - `decorators`
71
+ - `events`
72
+ - `lifecycle`
73
+ - `messenger`
74
+ - `operators`
75
+ - `rawsets`
76
+ - `types`
77
+ - `DomRender`
78
+ - `DomRenderProxy`
79
+
80
+ This enables single-entry usage without relying on package subpath exports.
81
+
82
+ ---
83
+
84
+ ## Core Concepts
85
+
86
+ ### 1) Reactive Root Object
87
+
88
+ `DomRender` wraps your root object with a proxy. Mutating fields on `result.rootObject` triggers reactive rendering.
89
+
90
+ ```typescript
91
+ const result = new DomRender({
92
+ rootObject: { name: 'kim', age: 20 },
93
+ target: element,
94
+ config: { window }
95
+ });
96
+
97
+ const root = result.rootObject;
98
+ root.age = 21; // dependent template fragments update
99
+ ```
100
+
101
+ ### 2) Template Expressions
102
+
103
+ - `${expr}$`: evaluate JS expression in render context
104
+ - `#it#`, `#nearForOfIndex#`: loop context placeholders
105
+ - `@this@`: current render/component instance pointer
106
+
107
+ ```html
108
+ <div>${@this@.user.name}$</div>
109
+ <li dr-for-of="@this@.items">${#it#.title}$</li>
110
+ ```
111
+
112
+ ### 3) Incremental Render Units (`RawSet`)
113
+
114
+ DOM fragments are segmented into units with dependency tracking. When path changes, only connected units are re-executed.
115
+
116
+ ---
117
+
118
+ ## Structural Directives
119
+
120
+ ### `dr-if`
121
+
122
+ Conditional rendering based on expression truthiness.
123
+
124
+ ```html
125
+ <div dr-if="@this@.isLoggedIn">
126
+ Welcome, ${@this@.user.name}$
127
+ </div>
128
+ ```
129
+
130
+ ### `dr-for`
131
+
132
+ Classic loop-style directive.
133
+
134
+ ```html
135
+ <li dr-for="let i=0; i<@this@.items.length; i++" dr-option-it="@this@.items[i]">
136
+ ${destIt.name}$
137
+ </li>
138
+ ```
139
+
140
+ ### `dr-for-of`
141
+
142
+ Array/object iteration with `#it#` context replacement.
143
+
144
+ ```html
145
+ <ul>
146
+ <li dr-for-of="@this@.items">
147
+ ${#it#.name}$
148
+ </li>
149
+ </ul>
150
+ ```
151
+
152
+ ### `dr-repeat`
153
+
154
+ Repeat block by count/range expression.
155
+
156
+ ```html
157
+ <div dr-repeat="@this@.columns">Cell ${#it#}$</div>
158
+ ```
159
+
160
+ ### `dr-appender`
161
+
162
+ Optimized append/update/delete for list-like incremental data.
163
+
164
+ ```html
165
+ <ul>
166
+ <li dr-appender="@this@.rows">${#it#}$</li>
167
+ </ul>
168
+ ```
169
+
170
+ ### `dr-strip` / `dr-option-strip`
171
+
172
+ Strip wrapper element while preserving children.
173
+
174
+ ```html
175
+ <div dr-if="@this@.ok" dr-option-strip="true">#innerHTML#</div>
176
+ ```
177
+
178
+ ---
179
+
180
+ ## Template Utilities
181
+
182
+ ### Dynamic content directives
183
+
184
+ - `dr-inner-html`: bind `innerHTML`
185
+ - `dr-inner-text`: bind `innerText`
186
+ - `dr-attr`: bind attribute object
187
+ - `dr-this`, `dr-this-property`: bind target context object
188
+ - `dr-before`, `dr-after`: pre/post scripts around operator execution
189
+
190
+ ```html
191
+ <div dr-inner-text="@this@.plainText"></div>
192
+ <div dr-inner-html="@this@.trustedHtml"></div>
193
+ <img dr-attr="{ src: @this@.imageUrl, alt: @this@.alt }" />
194
+ ```
195
+
196
+ ### Form utility (`dr-form`)
197
+
198
+ `dr-form` wires fields and optional validator metadata.
199
+
200
+ ```html
201
+ <form dr-form="@this@.formState">
202
+ <input name="email" dr-form:name="'email'" dr-form:event="change" />
203
+ </form>
204
+ ```
205
+
206
+ ### Appender utility class
207
+
208
+ `Appender` supports keyed incremental collection updates.
209
+
210
+ ```typescript
211
+ import { Appender } from '@dooboostore/dom-render';
212
+
213
+ const state = {
214
+ rows: new Appender('A', 'B')
215
+ };
216
+
217
+ state.rows.set('key-1', 'Updated A');
218
+ state.rows.delete('key-1');
219
+ state.rows.clear();
220
+ ```
221
+
222
+ ---
223
+
224
+ ## Event System
225
+
226
+ ### `dr-event-*` directive
227
+
228
+ Bind DOM events declaratively.
229
+
230
+ ```html
231
+ <button dr-event-click="@this@.submit($event)">Submit</button>
232
+ <input dr-event-input="@this@.onInput($event)" />
233
+ ```
234
+
235
+ ### `dr-window-event-*` directive
236
+
237
+ Listen to window-scoped events.
238
+
239
+ ```html
240
+ <div dr-window-event-resize="@this@.onResize($event)"></div>
241
+ ```
242
+
243
+ ### EventManager behavior
244
+
245
+ - delegated listener strategy for common events
246
+ - direct attachment for non-delegatable events
247
+ - execution context variables: `$event`, `$target`, and render-bound objects
248
+
249
+ ---
250
+
251
+ ## Component Architecture
252
+
253
+ ## `ComponentBase`
254
+
255
+ `ComponentBase` provides:
256
+
257
+ - attribute binding (`@attribute`)
258
+ - query binding (`@query`)
259
+ - event binding (`@event`)
260
+ - child component tracking
261
+ - lifecycle integration
262
+ - decorator refresh APIs (`refreshDecorators`, `refreshQueryDecorators`, `refreshEventDecorators`)
263
+
264
+ ### `@attribute`
265
+
266
+ ```typescript
267
+ import { ComponentBase, attribute } from '@dooboostore/dom-render';
268
+
269
+ class Card extends ComponentBase {
270
+ @attribute('title')
271
+ title = '';
272
+
273
+ @attribute({ name: 'count', converter: (v) => Number(v ?? 0) })
274
+ count = 0;
275
+ }
276
+ ```
277
+
278
+ ### `@query`
279
+
280
+ ```typescript
281
+ import { ComponentBase, query } from '@dooboostore/dom-render';
282
+
283
+ class Panel extends ComponentBase {
284
+ @query('.title')
285
+ titleEl?: HTMLElement;
286
+
287
+ @query({ selector: '.row', refreshRawSetRendered: true })
288
+ rows: HTMLElement[] = [];
289
+ }
290
+ ```
291
+
292
+ ### `@event`
293
+
294
+ ```typescript
295
+ import { ComponentBase, event } from '@dooboostore/dom-render';
296
+
297
+ class Toolbar extends ComponentBase {
298
+ @event({ query: '.save-btn', name: 'click' })
299
+ onSave() {
300
+ console.log('saved');
301
+ }
302
+ }
303
+ ```
304
+
305
+ ### `createComponent`
306
+
307
+ ```typescript
308
+ import { DomRender } from '@dooboostore/dom-render';
309
+
310
+ class UserCard {
311
+ name = 'Anonymous';
312
+ }
313
+
314
+ const userCard = DomRender.createComponent({
315
+ type: UserCard,
316
+ tagName: 'user-card',
317
+ template: `<div>${@this@.name}$</div>`
318
+ });
319
+
320
+ const app = new DomRender({
321
+ rootObject: { users: [] },
322
+ target: document.querySelector('#app')!,
323
+ config: { window, targetElements: [userCard] }
324
+ });
325
+ ```
326
+
327
+ ---
328
+
329
+ ## Lifecycle Hooks
330
+
331
+ Implement interfaces to receive lifecycle callbacks:
332
+
333
+ - `onProxyDomRender(config)`
334
+ - `onCreateRender(...args)`
335
+ - `onCreateRenderData(data)`
336
+ - `onInitRender(param, rawSet)`
337
+ - `onRawSetRendered(rawSet, otherData)`
338
+ - `onChildRawSetRendered()`
339
+ - `onDestroyRender(params)`
340
+ - `onChangeAttrRender(name, value, other)`
341
+
342
+ ```typescript
343
+ class ViewModel {
344
+ onCreateRender() {
345
+ console.log('render create');
346
+ }
347
+
348
+ async onInitRender() {
349
+ console.log('render initialized');
350
+ }
351
+ }
352
+ ```
353
+
354
+ ---
355
+
356
+ ## Router Integration
357
+
358
+ `DomRender` can create router by `routerType`:
359
+
360
+ - `'hash'` -> `HashRouter`
361
+ - `'path'` -> `PathRouter`
362
+ - custom router object/factory
363
+
364
+ ```typescript
365
+ const app = new DomRender(
366
+ {
367
+ rootObject: { page: 'home' },
368
+ target: document.querySelector('#app')!,
369
+ config: { window, routerType: 'hash' }
370
+ },
371
+ { firstUrl: 'home' }
372
+ );
373
+
374
+ app.router.go('/about');
375
+ ```
376
+
377
+ ---
378
+
379
+ ## Messenger
380
+
381
+ `DefaultMessenger` and `Messenger` provide channel-based communication across render roots/components.
382
+
383
+ Use this when direct parent-child access is not suitable.
384
+
385
+ ---
386
+
387
+ ## Requested Decorator Mapping
388
+
389
+ This section is added for teams using both `dom-render` and `simple-web-component`.
390
+
391
+ ### `@addEventListener` (extended)
392
+
393
+ `@addEventListener` is a decorator from `@dooboostore/simple-web-component`, not from `dom-render` directly.
394
+
395
+ In `dom-render`, equivalent patterns are:
396
+
397
+ 1. Template directive: `dr-event-*`
398
+ 2. Class decorator in component: `@event({ query, name })`
399
+
400
+ ```html
401
+ <button dr-event-click="@this@.handleClick($event)">Click</button>
402
+ ```
403
+
404
+ ```typescript
405
+ class MyComp extends ComponentBase {
406
+ @event({ query: '.btn', name: 'click' })
407
+ onClick(e: Event) {}
408
+ }
409
+ ```
410
+
411
+ ### `@replaceChildren` (extended)
412
+
413
+ `@replaceChildren` is from `simple-web-component`.
414
+
415
+ `dom-render` alternatives:
416
+
417
+ 1. structural replacement via directives (`dr-if`, `dr-for-of`, `dr-appender`)
418
+ 2. explicit DOM strategy in component methods (`replaceChildren`) when needed
419
+
420
+ ```typescript
421
+ updateRows(container: HTMLElement, nodes: Node[]) {
422
+ container.replaceChildren(...nodes);
423
+ }
424
+ ```
425
+
426
+ For reactive templates, prefer declarative updates over manual replacement.
427
+
428
+ ### `@appendChild` (extended)
429
+
430
+ `@appendChild` is from `simple-web-component`.
431
+
432
+ `dom-render` alternatives:
433
+
434
+ 1. `dr-appender` + `Appender` for incremental append/delete
435
+ 2. direct `appendChild` in imperative setup code
436
+
437
+ ```typescript
438
+ state.rows.set('k1', 'first row'); // reactive append through dr-appender
439
+ ```
440
+
441
+ ---
442
+
443
+ ## Best Practices
444
+
445
+ 1. Always mutate `result.rootObject` (proxied object), not the original plain object.
446
+ 2. Prefer declarative directives over direct DOM mutation.
447
+ 3. Use `dr-appender` for large frequently changing collections.
448
+ 4. For dynamic component trees, call `refreshDecorators()` when bindings need explicit refresh.
449
+ 5. Use `DomRenderNoProxy` for fields that should never trigger proxy traversal.
450
+ 6. Keep heavy computations outside template expressions.
451
+
452
+ ---
453
+
454
+ ## Troubleshooting
455
+
456
+ ### UI not updating after mutation
457
+
458
+ - Check that you are mutating `result.rootObject`, not stale reference.
459
+ - Verify expression paths are valid (`@this@.x.y`).
460
+
461
+ ### Event not firing
462
+
463
+ - Confirm directive name (`dr-event-click`, `dr-event-input`, etc.).
464
+ - Check script context variables (`$event`, `$target`).
465
+
466
+ ### Render loop/performance drop
467
+
468
+ - Avoid expensive script evaluation in template.
469
+ - Prefer keyed `Appender` updates instead of full array replacement.
470
+
471
+ ---
472
+
473
+ ## License
474
+
475
+ This package is licensed under the [MIT License](https://opensource.org/licenses/MIT).
@@ -21,14 +21,14 @@ __export(DomRender_exports, {
21
21
  });
22
22
  module.exports = __toCommonJS(DomRender_exports);
23
23
  var import_DomRenderProxy = require("./DomRenderProxy");
24
- var import_PathRouter = require("./routers/PathRouter");
25
- var import_HashRouter = require("./routers/HashRouter");
24
+ var import_core_web = require("@dooboostore/core-web");
25
+ var import_core_web2 = require("@dooboostore/core-web");
26
26
  var import_Types = require("./types/Types");
27
27
  var import_RawSet = require("./rawsets/RawSet");
28
28
  var import_DefaultMessenger = require("./messenger/DefaultMessenger");
29
29
  var import_components = require("./components");
30
30
  var import_EventManager = require("./events/EventManager");
31
- var import_RandomUtils = require("@dooboostore/core/random/RandomUtils");
31
+ var import_core2 = require("@dooboostore/core");
32
32
  let eventManager = null;
33
33
  class DomRender {
34
34
  constructor(parameter, executeConfig) {
@@ -73,7 +73,7 @@ class DomRender {
73
73
  }
74
74
  const targetConfig = Object.assign({}, config);
75
75
  eventManager ?? (eventManager = new import_EventManager.EventManager(targetConfig.window));
76
- targetConfig.uuid = import_RandomUtils.RandomUtils.uuid4();
76
+ targetConfig.uuid = import_core2.RandomUtils.uuid4();
77
77
  targetConfig.messenger = import_Types.DomRenderFinalProxy.final(targetConfig.messenger ?? new import_DefaultMessenger.DefaultMessenger(targetConfig));
78
78
  targetConfig.proxyExcludeTyps = targetConfig.proxyExcludeTyps ?? [];
79
79
  targetConfig.targetElements ?? (targetConfig.targetElements = []);
@@ -128,9 +128,9 @@ class DomRender {
128
128
  if (!targetConfig.router) {
129
129
  let targetRouter;
130
130
  if ("routerType" in config && config?.routerType === "hash") {
131
- targetRouter = new import_HashRouter.HashRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });
131
+ targetRouter = new import_core_web2.HashRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });
132
132
  } else if ("routerType" in config && config?.routerType === "path") {
133
- targetRouter = new import_PathRouter.PathRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });
133
+ targetRouter = new import_core_web.PathRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });
134
134
  } else if ("routerType" in config && typeof config?.routerType === "function") {
135
135
  targetRouter = config.routerType(targetObject, targetConfig);
136
136
  } else if ("routerType" in config && typeof config?.routerType === "object") {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/DomRender.ts"],
4
- "sourcesContent": ["import { DomRenderProxy } from './DomRenderProxy';\nimport { DomRenderConfig } from './configs/DomRenderConfig';\nimport { PathRouter } from './routers/PathRouter';\nimport { HashRouter } from './routers/HashRouter';\nimport { ConstructorType } from '@dooboostore/core/types';\nimport { DomRenderFinalProxy } from './types/Types';\nimport { RawSet } from './rawsets/RawSet';\nimport { DefaultMessenger } from './messenger/DefaultMessenger';\nimport { Router } from './routers/Router';\nimport { drComponent } from './components';\nimport { EventManager } from './events/EventManager';\nimport { RandomUtils } from '@dooboostore/core/random/RandomUtils';\n\nexport type DomRenderRunConfig<T = any> = Omit<DomRenderConfig<T>, 'router' | 'uuid' | 'eventManager' | 'messenger' | 'root' | 'rootElement'> & { routerType?: 'path' | 'hash' | ((obj: T, targetConfig: DomRenderConfig) => Router) | Router };\nexport type CreateComponentParam = { type: ConstructorType<any> | any, tagName?: string, noStrip?: boolean, template?: string, styles?: string[] | string };\nlet eventManager: EventManager | null = null;\nexport type DomRenderRunParameter<T extends object> = { rootObject: T | (() => T), target?: Element | null, config?: DomRenderRunConfig | DomRenderConfig };\n\nexport type ExecuteConfig = { firstUrl?: string };\n\nexport class DomRender<T extends object = any> {\n private _config: DomRenderConfig;\n private _target: Element | null | undefined;\n private _rootObject: T;\n private _router: Router;\n private _eventManager: EventManager;\n\n constructor(parameter: DomRenderRunParameter<T>, executeConfig?: ExecuteConfig) {\n const s = DomRender.runSet(parameter,executeConfig);\n this._config = s.config;\n this._target = s.target;\n this._rootObject = s.rootObject;\n this._router = s.config.router;\n this._eventManager = s.config.eventManager;\n // if (executeConfig && executeConfig?.autoGo) {\n // this._config.router?.go(executeConfig.autoGo);\n // }\n }\n\n public get rootObject(): T {\n return this._rootObject;\n }\n\n public get config(): DomRenderConfig {\n return this._config;\n }\n public get router(): Router {\n return this._router;\n }\n\n public get eventManager(): EventManager {\n return this._eventManager;\n }\n public get target(): Element | null | undefined {\n return this._target;\n }\n\n public static run<T extends object>(data: DomRenderRunParameter<T>): T {\n return DomRender.runSet(data).rootObject;\n }\n\n public static runSet<T extends object>({\n rootObject,\n target,\n config\n }: DomRenderRunParameter<T>, executeConfig?: ExecuteConfig): { rootObject: T; target?: Element | null; config: DomRenderConfig } {\n // public static run<T extends object>({rootObject, target, config}: DomRenderRunParameter<T>): T {\n // console.log('runSet')\n rootObject = typeof rootObject === 'function' ? rootObject() : rootObject;\n let targetObject = rootObject;\n if ('_DomRender_isProxy' in rootObject) {\n if (target) {\n ((rootObject as any)._DomRender_proxy as DomRenderProxy<T>).initRender(target);\n }\n targetObject = rootObject;\n // return targetObject;\n return { rootObject: targetObject, target, config: (rootObject as any)._domRender_config };\n }\n const targetConfig = Object.assign({}, config) as DomRenderConfig;\n eventManager ??= new EventManager(targetConfig.window);\n\n targetConfig.uuid = RandomUtils.uuid4();\n targetConfig.messenger = DomRenderFinalProxy.final(targetConfig.messenger ?? new DefaultMessenger(targetConfig));\n targetConfig.proxyExcludeTyps = targetConfig.proxyExcludeTyps ?? [];\n targetConfig.targetElements ??= [];\n\n if (typeof Window !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Window)) {\n targetConfig.proxyExcludeTyps.push(Window);\n }\n if (typeof Map !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Map)) {\n targetConfig.proxyExcludeTyps.push(Map);\n }\n if (typeof Set !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Set)) {\n targetConfig.proxyExcludeTyps.push(Set);\n }\n if (typeof Promise !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Promise)) {\n targetConfig.proxyExcludeTyps.push(Promise);\n }\n if (typeof ResizeObserver !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === ResizeObserver)) {\n targetConfig.proxyExcludeTyps.push(ResizeObserver);\n }\n if (typeof ImageBitmap !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === ImageBitmap)) {\n targetConfig.proxyExcludeTyps.push(ImageBitmap);\n }\n if ( typeof CanvasRenderingContext2D !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === CanvasRenderingContext2D) ) {\n targetConfig.proxyExcludeTyps.push(CanvasRenderingContext2D);\n }\n if ( typeof CSSStyleDeclaration !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === CSSStyleDeclaration) ) {\n targetConfig.proxyExcludeTyps.push(CSSStyleDeclaration);\n }\n if ( typeof Date !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Date) ) {\n targetConfig.proxyExcludeTyps.push(Date);\n }\n if ( typeof MutationObserver !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === IntersectionObserver) ) {\n targetConfig.proxyExcludeTyps.push(IntersectionObserver);\n }\n if ( typeof IntersectionObserver !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === IntersectionObserver) ) {\n targetConfig.proxyExcludeTyps.push(IntersectionObserver);\n }\n if (typeof HTMLElement !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === HTMLElement)) {\n targetConfig.proxyExcludeTyps.push(HTMLElement);\n }\n // if (typeof HTMLCanvasElement !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === HTMLCanvasElement)) {\n // targetConfig.proxyExcludeTyps.push(HTMLCanvasElement);\n // }\n if (!targetConfig.proxyExcludeTyps.some(it => it === RawSet)) {\n targetConfig.proxyExcludeTyps.push(RawSet);\n }\n if (!targetConfig.proxyExcludeTyps.some(it => it === DomRender)) {\n targetConfig.proxyExcludeTyps.push(DomRender);\n }\n targetConfig.rootElement = target;\n targetConfig.eventManager = eventManager;\n // (targetConfig.window as any).domRender ??= {configs: []};\n // (targetConfig.window as any).domRender.configs.push(targetConfig);\n const domRender = new DomRenderProxy(rootObject, target, targetConfig);\n const dest = new Proxy(rootObject, domRender);\n targetObject = dest;\n targetConfig.root = targetObject;\n\n // proxy \uB41C targetObject\uB97C \uB123\uC5B4\uC918\uC57C\uB418\uC11C \uB4A4\uCABD\uC5D0\uC11C router\uB97C \uC0DD\uC131\uD574\uC57C\uD568\n if (!targetConfig.router) {\n let targetRouter: Router<any> | undefined;\n if ('routerType' in config && config?.routerType === 'hash') {\n targetRouter = new HashRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });\n } else if ('routerType' in config && config?.routerType === 'path') {\n targetRouter = new PathRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });\n } else if ('routerType' in config && typeof config?.routerType === 'function') {\n targetRouter = config.routerType(targetObject, targetConfig);\n } else if ('routerType' in config && typeof config?.routerType === 'object') {\n targetRouter = config.routerType;\n }\n targetConfig.router = targetRouter;\n }\n\n for (const value of Object.values(drComponent)) {\n const a = value(targetConfig, DomRender);\n if (!targetConfig.targetElements.some(it => it.name === a.name)) {\n targetConfig.targetElements.push(a);\n }\n }\n // console.log('cccccccccccccccccc', targetRouter)\n // targetRouter.go({path: targetRouter.getUrl()})\n // if (!config.router) {\n // if (config.routerType === 'path') {\n // config.router = new PathRouter(targetObject, config.window);\n // } else if (config.routerType === 'hash') {\n // config.router = new HashRouter(targetObject, config.window);\n // } else { // none\n // config.router = new HashRouter(targetObject, config.window);\n // }\n // }\n domRender.run(targetObject);\n return { rootObject: targetObject, config: targetConfig, target };\n // return targetObject;\n }\n\n public static createComponent(param: CreateComponentParam) {\n // console.log('===>', typeof param.type, param.type.name, param.type.constructor.name)\n const component = RawSet.createComponentTargetElement({\n name: param.tagName ?? (typeof param.type === 'function' ? param.type.name : param.type.constructor.name),\n objFactory: (e, o, r2, counstructorParam) => {\n return typeof param.type === 'function' ? new param.type(...counstructorParam) : param.type;\n },\n noStrip: param.noStrip,\n template: param.template ?? '',\n styles: Array.isArray(param.styles) ? param.styles : param.styles ? [param.styles] : undefined\n });\n return component;\n }\n\n // ?? \uC5B8\uC81C \uC4F0\uB294\uAC70\uC9C0?? \uD6D4..\n public static createAttribute(\n attrName: string,\n getThisObj: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => any,\n factory: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment\n ) {\n const targetAttribute = RawSet.createComponentTargetAttribute(attrName, getThisObj, factory);\n return targetAttribute;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["import { DomRenderProxy } from './DomRenderProxy';\nimport { DomRenderConfig } from './configs/DomRenderConfig';\nimport { PathRouter } from '@dooboostore/core-web';\nimport { HashRouter } from '@dooboostore/core-web';\nimport { ConstructorType } from '@dooboostore/core';\nimport { DomRenderFinalProxy } from './types/Types';\nimport { RawSet } from './rawsets/RawSet';\nimport { DefaultMessenger } from './messenger/DefaultMessenger';\nimport { Router } from '@dooboostore/core-web';\nimport { drComponent } from './components';\nimport { EventManager } from './events/EventManager';\nimport { RandomUtils } from '@dooboostore/core';\n\nexport type DomRenderRunConfig<T = any> = Omit<DomRenderConfig<T>, 'router' | 'uuid' | 'eventManager' | 'messenger' | 'root' | 'rootElement'> & { routerType?: 'path' | 'hash' | ((obj: T, targetConfig: DomRenderConfig) => Router) | Router };\nexport type CreateComponentParam = { type: ConstructorType<any> | any, tagName?: string, noStrip?: boolean, template?: string, styles?: string[] | string };\nlet eventManager: EventManager | null = null;\nexport type DomRenderRunParameter<T extends object> = { rootObject: T | (() => T), target?: Element | null, config?: DomRenderRunConfig | DomRenderConfig };\n\nexport type ExecuteConfig = { firstUrl?: string };\n\nexport class DomRender<T extends object = any> {\n private _config: DomRenderConfig;\n private _target: Element | null | undefined;\n private _rootObject: T;\n private _router: Router;\n private _eventManager: EventManager;\n\n constructor(parameter: DomRenderRunParameter<T>, executeConfig?: ExecuteConfig) {\n const s = DomRender.runSet(parameter,executeConfig);\n this._config = s.config;\n this._target = s.target;\n this._rootObject = s.rootObject;\n this._router = s.config.router;\n this._eventManager = s.config.eventManager;\n // if (executeConfig && executeConfig?.autoGo) {\n // this._config.router?.go(executeConfig.autoGo);\n // }\n }\n\n public get rootObject(): T {\n return this._rootObject;\n }\n\n public get config(): DomRenderConfig {\n return this._config;\n }\n public get router(): Router {\n return this._router;\n }\n\n public get eventManager(): EventManager {\n return this._eventManager;\n }\n public get target(): Element | null | undefined {\n return this._target;\n }\n\n public static run<T extends object>(data: DomRenderRunParameter<T>): T {\n return DomRender.runSet(data).rootObject;\n }\n\n public static runSet<T extends object>({\n rootObject,\n target,\n config\n }: DomRenderRunParameter<T>, executeConfig?: ExecuteConfig): { rootObject: T; target?: Element | null; config: DomRenderConfig } {\n // public static run<T extends object>({rootObject, target, config}: DomRenderRunParameter<T>): T {\n // console.log('runSet')\n rootObject = typeof rootObject === 'function' ? rootObject() : rootObject;\n let targetObject = rootObject;\n if ('_DomRender_isProxy' in rootObject) {\n if (target) {\n ((rootObject as any)._DomRender_proxy as DomRenderProxy<T>).initRender(target);\n }\n targetObject = rootObject;\n // return targetObject;\n return { rootObject: targetObject, target, config: (rootObject as any)._domRender_config };\n }\n const targetConfig = Object.assign({}, config) as DomRenderConfig;\n eventManager ??= new EventManager(targetConfig.window);\n\n targetConfig.uuid = RandomUtils.uuid4();\n targetConfig.messenger = DomRenderFinalProxy.final(targetConfig.messenger ?? new DefaultMessenger(targetConfig));\n targetConfig.proxyExcludeTyps = targetConfig.proxyExcludeTyps ?? [];\n targetConfig.targetElements ??= [];\n\n if (typeof Window !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Window)) {\n targetConfig.proxyExcludeTyps.push(Window);\n }\n if (typeof Map !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Map)) {\n targetConfig.proxyExcludeTyps.push(Map);\n }\n if (typeof Set !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Set)) {\n targetConfig.proxyExcludeTyps.push(Set);\n }\n if (typeof Promise !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Promise)) {\n targetConfig.proxyExcludeTyps.push(Promise);\n }\n if (typeof ResizeObserver !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === ResizeObserver)) {\n targetConfig.proxyExcludeTyps.push(ResizeObserver);\n }\n if (typeof ImageBitmap !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === ImageBitmap)) {\n targetConfig.proxyExcludeTyps.push(ImageBitmap);\n }\n if ( typeof CanvasRenderingContext2D !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === CanvasRenderingContext2D) ) {\n targetConfig.proxyExcludeTyps.push(CanvasRenderingContext2D);\n }\n if ( typeof CSSStyleDeclaration !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === CSSStyleDeclaration) ) {\n targetConfig.proxyExcludeTyps.push(CSSStyleDeclaration);\n }\n if ( typeof Date !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === Date) ) {\n targetConfig.proxyExcludeTyps.push(Date);\n }\n if ( typeof MutationObserver !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === IntersectionObserver) ) {\n targetConfig.proxyExcludeTyps.push(IntersectionObserver);\n }\n if ( typeof IntersectionObserver !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === IntersectionObserver) ) {\n targetConfig.proxyExcludeTyps.push(IntersectionObserver);\n }\n if (typeof HTMLElement !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === HTMLElement)) {\n targetConfig.proxyExcludeTyps.push(HTMLElement);\n }\n // if (typeof HTMLCanvasElement !== 'undefined' && !targetConfig.proxyExcludeTyps.some(it => it === HTMLCanvasElement)) {\n // targetConfig.proxyExcludeTyps.push(HTMLCanvasElement);\n // }\n if (!targetConfig.proxyExcludeTyps.some(it => it === RawSet)) {\n targetConfig.proxyExcludeTyps.push(RawSet);\n }\n if (!targetConfig.proxyExcludeTyps.some(it => it === DomRender)) {\n targetConfig.proxyExcludeTyps.push(DomRender);\n }\n targetConfig.rootElement = target;\n targetConfig.eventManager = eventManager;\n // (targetConfig.window as any).domRender ??= {configs: []};\n // (targetConfig.window as any).domRender.configs.push(targetConfig);\n const domRender = new DomRenderProxy(rootObject, target, targetConfig);\n const dest = new Proxy(rootObject, domRender);\n targetObject = dest;\n targetConfig.root = targetObject;\n\n // proxy \uB41C targetObject\uB97C \uB123\uC5B4\uC918\uC57C\uB418\uC11C \uB4A4\uCABD\uC5D0\uC11C router\uB97C \uC0DD\uC131\uD574\uC57C\uD568\n if (!targetConfig.router) {\n let targetRouter: Router<any> | undefined;\n if ('routerType' in config && config?.routerType === 'hash') {\n targetRouter = new HashRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });\n } else if ('routerType' in config && config?.routerType === 'path') {\n targetRouter = new PathRouter({ rootObject: targetObject, window: targetConfig.window, firstUrl: executeConfig?.firstUrl });\n } else if ('routerType' in config && typeof config?.routerType === 'function') {\n targetRouter = config.routerType(targetObject, targetConfig);\n } else if ('routerType' in config && typeof config?.routerType === 'object') {\n targetRouter = config.routerType;\n }\n targetConfig.router = targetRouter;\n }\n\n for (const value of Object.values(drComponent)) {\n const a = value(targetConfig, DomRender);\n if (!targetConfig.targetElements.some(it => it.name === a.name)) {\n targetConfig.targetElements.push(a);\n }\n }\n // console.log('cccccccccccccccccc', targetRouter)\n // targetRouter.go({path: targetRouter.getUrl()})\n // if (!config.router) {\n // if (config.routerType === 'path') {\n // config.router = new PathRouter(targetObject, config.window);\n // } else if (config.routerType === 'hash') {\n // config.router = new HashRouter(targetObject, config.window);\n // } else { // none\n // config.router = new HashRouter(targetObject, config.window);\n // }\n // }\n domRender.run(targetObject);\n return { rootObject: targetObject, config: targetConfig, target };\n // return targetObject;\n }\n\n public static createComponent(param: CreateComponentParam) {\n // console.log('===>', typeof param.type, param.type.name, param.type.constructor.name)\n const component = RawSet.createComponentTargetElement({\n name: param.tagName ?? (typeof param.type === 'function' ? param.type.name : param.type.constructor.name),\n objFactory: (e, o, r2, counstructorParam) => {\n return typeof param.type === 'function' ? new param.type(...counstructorParam) : param.type;\n },\n noStrip: param.noStrip,\n template: param.template ?? '',\n styles: Array.isArray(param.styles) ? param.styles : param.styles ? [param.styles] : undefined\n });\n return component;\n }\n\n // ?? \uC5B8\uC81C \uC4F0\uB294\uAC70\uC9C0?? \uD6D4..\n public static createAttribute(\n attrName: string,\n getThisObj: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => any,\n factory: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment\n ) {\n const targetAttribute = RawSet.createComponentTargetAttribute(attrName, getThisObj, factory);\n return targetAttribute;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_core_web", "import_core"]
7
7
  }