@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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/events/EventManager.ts"],
4
- "sourcesContent": ["import { DomRenderConfig } from '../configs/DomRenderConfig';\nimport { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';\nimport { ElementUtils } from '@dooboostore/core-web/element/ElementUtils';\nimport { Range } from '../iterators/Range';\nimport { getDomRenderConfig } from '../DomRenderProxy';\nimport { ObjectUtils } from '@dooboostore/core/object/ObjectUtils';\n\ntype HandlerInfo = {\n element: HTMLElement;\n attr: string;\n type: 'link' | 'event' | 'event-param';\n priority: number;\n property?: string; // for link type\n};\nexport type NormalAttrDataType = {\n originalAttrValue: string;\n isStringTemplate: boolean;\n variablePaths: { origin: string, inner: string }[];\n}\nexport class EventManager {\n public static readonly attrPrefix = 'dr-';\n public readonly eventNames = [\n 'click', 'mousedown', 'mouseup', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mouseenter', 'mouseleave', 'contextmenu',\n 'keyup', 'keydown', 'keypress', 'toggle',\n 'change', 'input', 'submit', 'resize', 'focus', 'blur',\n 'close', 'cancel'\n ];\n\n private readonly delegatableEventMap: { [key: string]: string } = {\n mouseleave: 'mouseout',\n mouseenter: 'mouseover',\n focus: 'focusin',\n blur: 'focusout',\n };\n private readonly directAttachEvents = new Set(['close']);\n\n public static ownerVariablePathAttrName = EventManager.attrPrefix + 'owner-variable-path';\n\n public static readonly eventParam = EventManager.attrPrefix + 'event';\n public static readonly onInitAttrName = EventManager.attrPrefix + 'on-init';\n public static readonly valueAttrName = EventManager.attrPrefix + 'value';\n public static readonly checkedAttrName = EventManager.attrPrefix + 'checked';\n public static readonly selectedAttrName = EventManager.attrPrefix + 'selected';\n public static readonly readonlyAttrName = EventManager.attrPrefix + 'readonly';\n public static readonly disabledAttrName = EventManager.attrPrefix + 'disabled';\n public static readonly hiddenAttrName = EventManager.attrPrefix + 'hidden';\n public static readonly requiredAttrName = EventManager.attrPrefix + 'required';\n public static readonly openAttrName = EventManager.attrPrefix + 'open';\n\n // link\uB294 \uC4F0\uC9C0 \uC54A\uB294\uAC78 \uCD94\uCC9C\uD55C\uB2E4 \uB77C\uC774\uD504 \uC0AC\uC774\uD074 \uAF2C\uC778\uB2E4 \uB2E4\uB978 \uD504\uB808\uC784\uC6CC\uD06C\uC5D0\uC11C\uB3C4 \uC591\uBC29\uD5A5\uC740 \uC9C0\uC591 \uD55C\uB2E4\n public static linkAttrs = [\n { name: EventManager.attrPrefix + 'value-link', property: 'value', event: 'input' },\n { name: EventManager.attrPrefix + 'hidden-link', property: 'value', event: 'input' },\n { name: EventManager.attrPrefix + 'required-link', property: 'value', event: 'input' },\n { name: EventManager.attrPrefix + 'checked-link', property: 'checked', event: 'change' },\n { name: EventManager.attrPrefix + 'open-link', property: 'open', event: 'toggle' },\n ]\n // @ts-ignore \uD569\uC131\uC774\uBCA4\uD2B8(Synthetic) \uCC98\uB9AC\uD558\uBA74\uC11C \uC758\uBBF8\uAC00 \uC5C6\uC5B4\uC84C\uB2E4\n public static readonly linkTargetMapAttrName = EventManager.attrPrefix + 'link-variables';\n\n public static readonly onRenderedInitAttrName = EventManager.attrPrefix + 'on-rendered-init';\n\n public static readonly attrAttrName = EventManager.attrPrefix + 'attr';\n public static readonly normalAttrMapAttrName = EventManager.attrPrefix + 'normal-attr-map';\n public static readonly styleAttrName = EventManager.attrPrefix + 'style';\n public static readonly classAttrName = EventManager.attrPrefix + 'class';\n\n public static readonly VALUE_VARNAME = '$value';\n public static readonly SCRIPTS_VARNAME = '$scripts';\n public static readonly FAG_VARNAME = '$fag';\n public static readonly RAWSET_VARNAME = '$rawSet';\n public static readonly RENDER_VARNAME = '$render';\n public static readonly NEAR_THIS_VARNAME = '$nearThis';\n public static readonly PARENT_THIS_VARNAME = '$parentThis';\n public static readonly ROOT_OBJECT_VARNAME = '$rootObject';\n public static readonly SCRIPT_UTILS_VARNAME = '$scriptUtils';\n public static readonly RANGE_VARNAME = '$range';\n public static readonly ROUTER_VARNAME = '$router';\n public static readonly INNER_HTML_VARNAME = '$innerHTML';\n public static readonly ELEMENT_VARNAME = '$element';\n public static readonly TARGET_VARNAME = '$target';\n public static readonly EVENT_VARNAME = '$event';\n public static readonly COMPONENT_VARNAME = '$component';\n public static readonly INNERHTML_VARNAME = '$innerHTML';\n public static readonly ATTRIBUTE_VARNAME = '$attribute';\n public static readonly CREATOR_META_DATA_VARNAME = '$creatorMetaData';\n public static readonly PARENT_THIS_PATH_VARNAME = '$parentPath';\n public static readonly CURRENT_THIS_VARNAME = '$currentThis';\n public static readonly CURRENT_THIS_PATH_VARNAME = '$currentThisPath';\n public static readonly NEAR_THIS_PATH_VARNAME = '$nearThisPath';\n public static readonly VARNAMES = [EventManager.SCRIPTS_VARNAME, EventManager.FAG_VARNAME, EventManager.RAWSET_VARNAME, EventManager.RANGE_VARNAME, EventManager.ROUTER_VARNAME, EventManager.ELEMENT_VARNAME, EventManager.TARGET_VARNAME, EventManager.EVENT_VARNAME, EventManager.COMPONENT_VARNAME, EventManager.INNERHTML_VARNAME, EventManager.ATTRIBUTE_VARNAME, EventManager.ATTRIBUTE_VARNAME, EventManager.CREATOR_META_DATA_VARNAME, EventManager.PARENT_THIS_PATH_VARNAME, EventManager.PARENT_THIS_VARNAME];\n\n public static readonly WINDOW_EVENT_POPSTATE = 'popstate';\n public static readonly WINDOW_EVENT_RESIZE = 'resize';\n public static readonly WINDOW_EVENTS = [EventManager.WINDOW_EVENT_POPSTATE, EventManager.WINDOW_EVENT_RESIZE];\n public static readonly noDetectAttr = [EventManager.normalAttrMapAttrName]\n public static readonly attrNames = [\n EventManager.valueAttrName,\n EventManager.checkedAttrName,\n EventManager.selectedAttrName,\n EventManager.readonlyAttrName,\n EventManager.disabledAttrName,\n EventManager.hiddenAttrName,\n EventManager.requiredAttrName,\n EventManager.openAttrName,\n EventManager.attrAttrName,\n EventManager.normalAttrMapAttrName,\n EventManager.styleAttrName,\n EventManager.classAttrName,\n EventManager.attrPrefix + 'window-event-' + EventManager.WINDOW_EVENT_POPSTATE,\n EventManager.attrPrefix + 'window-event-' + EventManager.WINDOW_EVENT_RESIZE,\n EventManager.onInitAttrName,\n ...EventManager.linkAttrs.map(it => it.name),\n this.eventParam\n ];\n readonly bindScript = `\n const ${EventManager.VALUE_VARNAME} = this.__render.value;\n const ${EventManager.SCRIPTS_VARNAME} = this.__render.scripts;\n const ${EventManager.RANGE_VARNAME} = this.__render.range;\n const ${EventManager.ROUTER_VARNAME} = this.__render.router;\n const ${EventManager.ATTRIBUTE_VARNAME} = this.__render.attribute;\n const ${EventManager.ELEMENT_VARNAME} = this.__render.element;\n const ${EventManager.COMPONENT_VARNAME} = this.__render.element.component;\n const ${EventManager.TARGET_VARNAME} = this.__render.target;\n const ${EventManager.EVENT_VARNAME} = this.__render.event;\n `;\n\n constructor(private window: Window) {\n this.eventNames.forEach(it => {\n EventManager.attrNames.push(EventManager.attrPrefix + 'event-' + it);\n });\n EventManager.attrNames.push(EventManager.onRenderedInitAttrName);\n\n if (typeof window !== 'undefined') {\n EventManager.WINDOW_EVENTS.forEach(eventName => {\n window?.addEventListener(eventName, (event) => {\n const targetAttr = `dr-window-event-${eventName}`;\n document.querySelectorAll(`[${targetAttr}]`).forEach(it => {\n const script = it.getAttribute(targetAttr);\n if (script) {\n const obj = this.findComponentInstance(it as HTMLElement);\n const config = getDomRenderConfig(obj);\n ScriptUtils.evaluate(`${this.bindScript} ${script} `, this.createExecutionContext(event, it as HTMLElement, obj, config));\n }\n });\n });\n });\n\n const rootElement = this.window.document;\n const listeningEvents = new Set<string>();\n this.eventNames.forEach(eventName => {\n if (this.directAttachEvents.has(eventName)) {\n return;\n }\n const delegatedEventName = this.delegatableEventMap[eventName] || eventName;\n\n if (listeningEvents.has(delegatedEventName)) {\n return;\n }\n listeningEvents.add(delegatedEventName);\n rootElement.addEventListener(delegatedEventName, this.handleEvent.bind(this), true);\n });\n }\n }\n\n private handleEvent(event: Event) {\n const handlers = this.collectHandlers(event);\n // console.log('handlers', handlers, event);\n for (const handler of handlers) {\n if (event.cancelBubble) {\n break;\n }\n\n const componentInstance = this.findComponentInstance(handler.element);\n if (!componentInstance) {\n continue;\n }\n // console.log('executeHandler', event,handler,componentInstance)\n this.executeHandler(event, handler, componentInstance);\n }\n }\n\n private collectHandlers(event: Event): HandlerInfo[] {\n const handlers: HandlerInfo[] = [];\n const root = this.window.document;\n if (!root) return handlers;\n\n const initialTarget = event.target as Node;\n let currentTarget: HTMLElement | null = (initialTarget.nodeType === 1)\n ? (initialTarget as HTMLElement)\n : initialTarget.parentElement;\n const collectedElements = new Set<HTMLElement>();\n\n const eventMap: { [key: string]: string } = {\n mouseout: 'mouseleave',\n mouseover: 'mouseenter',\n focusout: 'blur',\n focusin: 'focus'\n };\n const mappedEventName = eventMap[event.type] || event.type;\n\n while (currentTarget) {\n if (collectedElements.has(currentTarget)) {\n break;\n }\n\n // Priority 1: Link attributes\n const matchingLinkAttr = EventManager.linkAttrs.find(la => la.event === mappedEventName && currentTarget?.hasAttribute(la.name));\n if (matchingLinkAttr) {\n handlers.push({\n element: currentTarget,\n attr: matchingLinkAttr.name,\n type: 'link',\n priority: 1,\n property: matchingLinkAttr.property\n });\n }\n\n // Priority 2: dr-event-* attributes\n const eventAttr = `${EventManager.attrPrefix}event-${mappedEventName}`;\n if (currentTarget.hasAttribute(eventAttr)) {\n handlers.push({\n element: currentTarget,\n attr: eventAttr,\n type: 'event',\n priority: 2\n });\n }\n\n // Priority 3: dr-event with params\n const eventParamAttr = EventManager.eventParam;\n if (currentTarget.hasAttribute(eventParamAttr)) {\n const bindEvents = currentTarget.getAttribute(`${eventParamAttr}:bind`);\n if (bindEvents && bindEvents.split(',').map(s => s.trim()).includes(mappedEventName)) {\n handlers.push({\n element: currentTarget,\n attr: eventParamAttr,\n type: 'event-param',\n priority: 3\n });\n }\n }\n\n collectedElements.add(currentTarget);\n\n if (currentTarget === root.documentElement) {\n break;\n }\n\n currentTarget = currentTarget.parentElement;\n }\n\n return handlers.sort((a, b) => a.priority - b.priority);\n }\n\n private findComponentInstance(element: HTMLElement | null): any {\n let current = element;\n const root = this.window.document;\n while (current) {\n if ((current as any).obj) {\n return (current as any).obj;\n }\n if (current === root.documentElement) {\n break;\n }\n current = current.parentElement;\n }\n return this.window;\n }\n\n private createExecutionContext(event: Event, element: HTMLElement, componentInstance: any, config: DomRenderConfig | undefined, extraVars = {}) {\n // console.log('---------->', config?.eventVariables)\n return Object.assign(componentInstance, {\n __render: Object.freeze({\n event,\n element,\n target: event.target,\n attribute: ElementUtils.getAttributeToObject(element),\n router: config?.router,\n range: Range.range,\n scripts: EventManager.setBindProperty(config?.scripts, componentInstance),\n ...config?.eventVariables,\n ...extraVars\n })\n });\n }\n\n private executeHandler(event: Event, handler: HandlerInfo, componentInstance: any) {\n const { element, type, attr } = handler;\n const config = getDomRenderConfig(componentInstance);\n\n switch (type) {\n case 'link':\n const varName = element.getAttribute(attr);\n if (!varName || !handler.property) return;\n\n if (attr.includes('leave') || attr.includes('enter') || attr.includes('focus') || attr.includes('blur')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const ownerVariablePath = element.getAttribute(EventManager.ownerVariablePathAttrName);\n let bindObj = componentInstance;\n if (ownerVariablePath) {\n bindObj = ScriptUtils.evaluateReturn(ownerVariablePath, componentInstance);\n }\n\n const mapScript = element.getAttribute(`${attr}:map`);\n let value = (element as any)[handler.property];\n\n if (mapScript) {\n const context = this.createExecutionContext(event, element, bindObj, config, { value });\n value = ScriptUtils.evaluate(`return ${mapScript}`, context);\n }\n\n if (typeof this.getValue(componentInstance, varName, bindObj) === 'function') {\n this.getValue(componentInstance, varName, bindObj)(value, event);\n } else {\n this.setValue(componentInstance, varName, value);\n }\n break;\n\n case 'event':\n const script = element.getAttribute(attr);\n if (!script) return;\n\n if (attr.endsWith('mouseleave') || attr.endsWith('mouseenter') || attr.endsWith('blur') || attr.endsWith('focus')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const context = this.createExecutionContext(event, element, componentInstance, config);\n const filterScript = element.getAttribute(`${attr}:filter`);\n let filter = true;\n // \uAC1C\uBC1C\uC790\uAC00 \uC0AC\uC6A9\uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uB420(\uB514\uBC84\uAE45) \uBC84\uADF8\uB97C \uC720\uBC1C\uD560\uC218\uC788\uB294 \uAE30\uB2A5 \uD750\uB984\uC81C\uC5B4\uAC00 \uC548\uB420\uC218\uC788\uC5B4 \uAE30\uB2A5\uC744 \uC81C\uAC70\uD55C\uB2E4.\n // if (filterScript) {\n // filter = ScriptUtils.eval<boolean>(`${this.getBindScript(config)} return ${filterScript}`, context) ?? false;\n // }\n\n if (filter) {\n ScriptUtils.evaluate(`${this.getBindScript(config)} ${script}`, context);\n }\n\n // \uAC1C\uBC1C\uC790\uAC00 \uC0AC\uC6A9\uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uB420(\uB514\uBC84\uAE45) \uBC84\uADF8\uB97C \uC720\uBC1C\uD560\uC218\uC788\uB294 \uAE30\uB2A5 \uD750\uB984\uC81C\uC5B4\uAC00 \uC548\uB420\uC218\uC788\uC5B4 \uAE30\uB2A5\uC744 \uC81C\uAC70\uD55C\uB2E4.\n // const hasDispatch = element.hasAttribute(`${attr}:dispatch`);\n // if (hasDispatch) {\n // element.dispatchEvent(new Event(event.type));\n // }\n break;\n\n case 'event-param':\n const paramScript = element.getAttribute(attr);\n if (!paramScript) return;\n\n if (attr.endsWith('mouseleave') || attr.endsWith('mouseenter') || attr.endsWith('blur') || attr.endsWith('focus')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const attributes = ElementUtils.getAttributeToObject(element);\n const params = {} as any;\n const prefix = attr + ':';\n Object.entries(attributes).filter(([k, v]) => k.startsWith(prefix)).forEach(([k, v]) => {\n params[k.slice(prefix.length)] = v;\n });\n\n const paramContext = this.createExecutionContext(event, element, componentInstance, config, { params });\n ScriptUtils.evaluate(`${this.getBindScript(config)} ${paramScript}`, paramContext);\n break;\n }\n }\n\n public findAttrElements(fragment: DocumentFragment | Element, config?: DomRenderConfig): Set<Element> {\n // const t0 = performance.now();\n const elements = new Set<Element>();\n const addAttributes = config?.applyEvents?.map(it => it.attrName) ?? [];\n const attrs = addAttributes.concat([...EventManager.attrNames]).filter(Boolean);\n if (attrs.length) {\n const selector = attrs.map(a => `[${a}]`).join(',');\n fragment?.querySelectorAll(selector).forEach(it => elements.add(it));\n }\n // console.log('findAttrElements time', performance.now() - t0);\n return elements;\n }\n\n public applyEvent(obj: any, childNodes: Set<ChildNode> | Set<Element>, config?: DomRenderConfig) {\n childNodes.forEach(node => {\n if (node.nodeType === 1) {\n (node as any).obj = obj;\n }\n });\n\n // let t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.valueAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.value !== data) {\n it.value = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.checkedAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.checked !== data) {\n it.checked = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLOptionElement>(childNodes, EventManager.selectedAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.selected !== data) {\n it.selected = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.readonlyAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.readOnly !== data) {\n it.readOnly = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.disabledAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.disabled !== data) {\n it.disabled = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLElement>(childNodes, EventManager.hiddenAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.hidden !== data) {\n it.hidden = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.requiredAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.required !== data) {\n it.required = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLDialogElement>(childNodes, EventManager.openAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.open !== data) {\n it.open = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr(childNodes, EventManager.normalAttrMapAttrName, (it, attribute) => {\n const map = new Map<string, NormalAttrDataType>(JSON.parse(attribute));\n map.forEach((v, k) => {\n\n const variablePaths = v.variablePaths;\n let targetScript = v.originalAttrValue;//typeof v.originalAttrValue === 'string' ? JSON.parse(v.originalAttrValue) : v.originalAttrValue;\n let script: string;\n if (v.isStringTemplate) {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `\\${${r}}`);\n })\n script = '`' + targetScript + '`';\n } else {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `${r}`);\n })\n script = targetScript;\n }\n const data = ObjectUtils.Script.evaluate(`const $element = this.element; return ${script}`, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n }));\n // console.log('!!!!!!!!!!!', k, data, script, variablePaths, v)\n if (data === null || data === undefined) {\n it.removeAttribute(k);\n } else {\n it.setAttribute(k, data);\n }\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n\n EventManager.WINDOW_EVENTS.forEach(it => {\n this.procAttr<HTMLInputElement>(childNodes, EventManager.attrPrefix + 'window-event-' + it, (it, attribute) => {\n (it as any).obj = obj;\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n EventManager.linkAttrs.forEach(linkInfo => {\n this.procAttr<HTMLElement>(childNodes, linkInfo.name, (it, varName) => {\n if (varName) {\n const ownerVariablePathName = it.getAttribute(EventManager.ownerVariablePathAttrName);\n const mapScript = it.getAttribute(`${linkInfo.name}:map`);\n let bindObj = obj;\n if (ownerVariablePathName) {\n bindObj = ObjectUtils.Script.evaluateReturn(ownerVariablePathName, obj);\n }\n const getValue = this.getValue(obj, varName, bindObj);\n if (typeof getValue === 'function' && getValue) {\n let setValue = (it as any)[linkInfo.property];\n if (mapScript) {\n setValue = ObjectUtils.Script.evaluate(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, { __render: Object.freeze({ element: it, target: bindObj, range: Range.range, value: setValue, scripts: EventManager.setBindProperty(config?.scripts, obj), ...config?.eventVariables }) }));\n }\n getValue(setValue);\n } else if (getValue) {\n let setValue = getValue;\n if (mapScript) {\n setValue = ObjectUtils.Script.evaluate(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, { __render: Object.freeze({ element: it, target: bindObj, range: Range.range, value: setValue, scripts: EventManager.setBindProperty(config?.scripts, obj), ...config?.eventVariables }) }));\n }\n if (setValue === null) {\n it.removeAttribute(linkInfo.property);\n } else {\n (it as any)[linkInfo.property] = setValue;\n }\n } else if (getValue === undefined) {\n this.setValue(obj, varName, (it as any)[linkInfo.property]);\n }\n }\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.directAttachEvents.forEach(eventName => {\n const attr = `${EventManager.attrPrefix}event-${eventName}`;\n this.procAttr<HTMLElement>(childNodes, attr, (element, script) => {\n const handler = (event: Event) => {\n const componentInstance = this.findComponentInstance(element);\n if (!componentInstance) return;\n\n const context = this.createExecutionContext(event, element, componentInstance, config);\n const filterScript = element.getAttribute(`${attr}:filter`);\n let filter = true;\n if (filterScript) {\n filter = ObjectUtils.Script.evaluate<boolean>(`${this.getBindScript(config)} return ${filterScript}`, context) ?? false;\n }\n if (filter) {\n ObjectUtils.Script.evaluate(`${this.getBindScript(config)} ${script}`, context);\n }\n };\n element.addEventListener(eventName, handler);\n // TODO: Add logic to remove this listener when the element is destroyed.\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLElement>(childNodes, EventManager.onInitAttrName, (it, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (script) {\n ObjectUtils.Script.evaluate(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it),\n ...config?.eventVariables\n })\n }));\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.onRenderedEvent(obj, childNodes, config);\n this.changeVar(obj, childNodes, undefined, config);\n const elements = Array.from(childNodes).filter(it => it.nodeType === 1).map(it => it as Element);\n elements.forEach(it => {\n config?.applyEvents?.filter(ta => it.getAttribute(ta.attrName) !== null).forEach(ta => ta.callBack(it, it.getAttribute(ta.attrName)!, obj));\n });\n }\n\n public onRenderedEvent(obj: any, childNodes: Set<ChildNode> | Set<Element> | Node[], config?: DomRenderConfig) {\n this.procAttr<HTMLInputElement>(childNodes, EventManager.onRenderedInitAttrName, (it, attribute) => {\n if (!it.isConnected) {\n return;\n }\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (script) {\n ObjectUtils.Script.evaluate(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it),\n ...config?.eventVariables\n })\n }));\n }\n });\n }\n\n public changeVar(obj: any, elements: Set<Element> | Set<ChildNode>, varName?: string, config?: DomRenderConfig) {\n // console.log('changeVar', obj, elements, varName)\n this.procAttr(elements, EventManager.styleAttrName, (it: HTMLElement, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (EventManager.isUsingThisVar(script, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluate(`const $element = this.__render.element; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n }));\n if (typeof data === 'string') {\n data.split(';').forEach(sit => {\n const [key, value] = sit.split(':').map(s => s.trim());\n if (key && value) {\n (it.style as any)[key] = value;\n }\n })\n // it.setAttribute('style', data);\n } else if (Array.isArray(data)) {\n data.forEach(sit => {\n const [key, value] = sit.split(':').map(s => s.trim());\n if (key && value) {\n (it.style as any)[key] = value;\n }\n })\n\n // it.setAttribute('style', data.join(';'));\n } else {\n for (const [key, value] of Object.entries(data)) {\n // if (it instanceof HTMLElement) {\n (it.style as any)[key] = value === null ? null : String(value);\n // }\n }\n }\n }\n });\n\n this.procAttr(elements, EventManager.classAttrName, (it, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (EventManager.isUsingThisVar(script, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluate(`const $element = this.element; ${script} `, Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n }));\n\n // alert(1)\n if (typeof data === 'string') {\n data.split(' ').forEach(cit => it.classList.add(cit.trim()));\n } else if (Array.isArray(data)) {\n data.forEach(cit => it.classList.add(cit.trim()));\n } else {\n for (const [key, value] of Object.entries(data)) {\n if (it instanceof HTMLElement) {\n if (value) {\n it.classList.add(key.trim());\n } else {\n it.classList.remove(key.trim());\n }\n }\n }\n }\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.valueAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.value !== data) it.value = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.checkedAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.checked !== data) it.checked = data;\n }\n });\n\n this.procAttr<HTMLOptionElement>(elements, EventManager.selectedAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.selected !== data) it.selected = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.readonlyAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.readOnly !== data) it.readOnly = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.disabledAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.disabled !== data) it.disabled = data;\n }\n });\n\n this.procAttr<HTMLElement>(elements, EventManager.hiddenAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.hidden !== data) it.hidden = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.requiredAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.required !== data) it.required = data;\n }\n });\n\n this.procAttr<HTMLDialogElement>(elements, EventManager.openAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.open !== data) it.open = data;\n }\n });\n }\n\n public procAttr<T extends Element = Element>(elements: Set<Element> | Set<ChildNode> | Node[] = new Set(), attrName: string, callBack: (h: T, value: string, attributes: any) => void) {\n const sets = new Set<Element>();\n elements.forEach(it => {\n if (!it) {\n return;\n }\n if (it.nodeType === 1) {\n const e = it as Element;\n sets.add(e);\n e.querySelectorAll<T>(`[${attrName}]`).forEach(it => {\n sets.add(it);\n });\n }\n });\n sets.forEach(it => {\n const attr = it.getAttribute(attrName);\n const attrs = ElementUtils.getAttributeToObject(it);\n if (attr) {\n callBack(it as T, attr, attrs);\n }\n });\n }\n\n public getValue<T = any>(obj: any, name: string, bindObj?: any): T {\n let r = ObjectUtils.Script.evaluateReturn(name, obj);\n if (typeof r === 'function') {\n r = r.bind(bindObj ?? obj);\n }\n return r;\n }\n\n public setValue(obj: any, name: string, value?: any) {\n name = name.replaceAll('this.', 'this.this.');\n ScriptUtils.evaluate(`${name} = this.value;`, {\n this: obj,\n value: value\n });\n }\n\n public static isUsingThisVar(raws: string | null | undefined, varName: string | null | undefined): boolean {\n if (varName && raws) {\n if (varName.startsWith('this.')) {\n varName = varName.replace(/this\\./, '');\n }\n // TODO: \uD6D4.. \uAF2D\uD544\uC694\uD55C\uAC00..? \uD2B8\uB9AC\uAC70\uB420\uB54C \uC2A4\uD06C\uB9BD\uD2B8\uBCC0\uC218 \uAE4C\uC9C0 \uAC10\uC9C0\uD574\uC57C\uB420\uAE4C?\n EventManager.VARNAMES.forEach(it => {\n // raws = raws!.replace(RegExp(it.replace('$', '\\\\$'), 'g'), `this?.___${it}`);\n raws = raws!.replace(RegExp(it.replace('$', '\\\\$'), 'g'), `this.___${it}`);\n });\n const variablePaths = ObjectUtils.Path.detectPathFromScript(raws ?? '', { excludeThis: true });\n return variablePaths.has(varName);\n }\n return false;\n }\n\n public static setBindProperty(scripts: { [p: string]: any } | undefined, obj: any): { [p: string]: any } | undefined {\n if (scripts) {\n const newScripts = Object.assign({}, scripts);\n for (const [key, value] of Object.entries(newScripts)) {\n if (typeof value === 'function') {\n newScripts[key] = value.bind(obj);\n }\n }\n return newScripts;\n }\n }\n\n getBindScript(config?: DomRenderConfig) {\n if (config?.eventVariables) {\n const bindScript = Object.entries(config.eventVariables).filter(([key, value]) => !this.bindScript.includes(`const ${key}`)).map(([key, value]) => {\n return `const ${key} = this.__render.${key};`;\n }).join(';');\n return this.bindScript + '' + bindScript;\n } else {\n return this.bindScript;\n }\n }\n}\n\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { DomRenderConfig } from '../configs/DomRenderConfig';\nimport { ScriptUtils } from '@dooboostore/core-web';\nimport { ElementUtils } from '@dooboostore/core-web';\nimport { Range } from '@dooboostore/core';\nimport { getDomRenderConfig } from '../DomRenderProxy';\nimport { ObjectUtils } from '@dooboostore/core';\n\ntype HandlerInfo = {\n element: HTMLElement;\n attr: string;\n type: 'link' | 'event' | 'event-param';\n priority: number;\n property?: string; // for link type\n};\nexport type NormalAttrDataType = {\n originalAttrValue: string;\n isStringTemplate: boolean;\n variablePaths: { origin: string; inner: string }[];\n};\n\nexport class EventManager {\n public static readonly attrPrefix = 'dr-';\n public readonly eventNames = ['click', 'mousedown', 'mouseup', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mouseenter', 'mouseleave', 'contextmenu', 'keyup', 'keydown', 'keypress', 'toggle', 'change', 'input', 'submit', 'resize', 'focus', 'blur', 'close', 'cancel', 'scroll'];\n\n private readonly delegatableEventMap: { [key: string]: string } = {\n mouseleave: 'mouseout',\n mouseenter: 'mouseover',\n focus: 'focusin',\n blur: 'focusout'\n };\n private readonly directAttachEvents = new Set(['close', 'scroll']);\n\n public static ownerVariablePathAttrName = EventManager.attrPrefix + 'owner-variable-path';\n\n public static readonly eventParam = EventManager.attrPrefix + 'event';\n public static readonly onInitAttrName = EventManager.attrPrefix + 'on-init';\n public static readonly valueAttrName = EventManager.attrPrefix + 'value';\n public static readonly srcAttrName = EventManager.attrPrefix + 'src';\n public static readonly checkedAttrName = EventManager.attrPrefix + 'checked';\n public static readonly selectedAttrName = EventManager.attrPrefix + 'selected';\n public static readonly readonlyAttrName = EventManager.attrPrefix + 'readonly';\n public static readonly disabledAttrName = EventManager.attrPrefix + 'disabled';\n public static readonly hiddenAttrName = EventManager.attrPrefix + 'hidden';\n public static readonly requiredAttrName = EventManager.attrPrefix + 'required';\n public static readonly openAttrName = EventManager.attrPrefix + 'open';\n\n // link\uB294 \uC4F0\uC9C0 \uC54A\uB294\uAC78 \uCD94\uCC9C\uD55C\uB2E4 \uB77C\uC774\uD504 \uC0AC\uC774\uD074 \uAF2C\uC778\uB2E4 \uB2E4\uB978 \uD504\uB808\uC784\uC6CC\uD06C\uC5D0\uC11C\uB3C4 \uC591\uBC29\uD5A5\uC740 \uC9C0\uC591 \uD55C\uB2E4\n public static linkAttrs = [\n { name: EventManager.attrPrefix + 'value-link', property: 'value', event: 'input' },\n { name: EventManager.attrPrefix + 'hidden-link', property: 'value', event: 'input' },\n { name: EventManager.attrPrefix + 'required-link', property: 'value', event: 'input' },\n { name: EventManager.attrPrefix + 'checked-link', property: 'checked', event: 'change' },\n { name: EventManager.attrPrefix + 'open-link', property: 'open', event: 'toggle' }\n ];\n // @ts-ignore \uD569\uC131\uC774\uBCA4\uD2B8(Synthetic) \uCC98\uB9AC\uD558\uBA74\uC11C \uC758\uBBF8\uAC00 \uC5C6\uC5B4\uC84C\uB2E4\n public static readonly linkTargetMapAttrName = EventManager.attrPrefix + 'link-variables';\n\n public static readonly onRenderedInitAttrName = EventManager.attrPrefix + 'on-rendered-init';\n\n public static readonly attrAttrName = EventManager.attrPrefix + 'attr';\n public static readonly normalAttrMapAttrName = EventManager.attrPrefix + 'normal-attr-map';\n public static readonly styleAttrName = EventManager.attrPrefix + 'style';\n public static readonly classAttrName = EventManager.attrPrefix + 'class';\n\n public static readonly VALUE_VARNAME = '$value';\n public static readonly SCRIPTS_VARNAME = '$scripts';\n public static readonly FAG_VARNAME = '$fag';\n public static readonly RAWSET_VARNAME = '$rawSet';\n public static readonly RENDER_VARNAME = '$render';\n public static readonly NEAR_THIS_VARNAME = '$nearThis';\n public static readonly PARENT_THIS_VARNAME = '$parentThis';\n public static readonly ROOT_OBJECT_VARNAME = '$rootObject';\n public static readonly SCRIPT_UTILS_VARNAME = '$scriptUtils';\n public static readonly RANGE_VARNAME = '$range';\n public static readonly ROUTER_VARNAME = '$router';\n public static readonly INNER_HTML_VARNAME = '$innerHTML';\n public static readonly ELEMENT_VARNAME = '$element';\n public static readonly TARGET_VARNAME = '$target';\n public static readonly EVENT_VARNAME = '$event';\n public static readonly COMPONENT_VARNAME = '$component';\n public static readonly INNERHTML_VARNAME = '$innerHTML';\n public static readonly ATTRIBUTE_VARNAME = '$attribute';\n public static readonly CREATOR_META_DATA_VARNAME = '$creatorMetaData';\n public static readonly PARENT_THIS_PATH_VARNAME = '$parentPath';\n public static readonly CURRENT_THIS_VARNAME = '$currentThis';\n public static readonly CURRENT_THIS_PATH_VARNAME = '$currentThisPath';\n public static readonly NEAR_THIS_PATH_VARNAME = '$nearThisPath';\n public static readonly VARNAMES = [EventManager.SCRIPTS_VARNAME, EventManager.FAG_VARNAME, EventManager.RAWSET_VARNAME, EventManager.RANGE_VARNAME, EventManager.ROUTER_VARNAME, EventManager.ELEMENT_VARNAME, EventManager.TARGET_VARNAME, EventManager.EVENT_VARNAME, EventManager.COMPONENT_VARNAME, EventManager.INNERHTML_VARNAME, EventManager.ATTRIBUTE_VARNAME, EventManager.ATTRIBUTE_VARNAME, EventManager.CREATOR_META_DATA_VARNAME, EventManager.PARENT_THIS_PATH_VARNAME, EventManager.PARENT_THIS_VARNAME];\n\n public static readonly WINDOW_EVENT_POPSTATE = 'popstate';\n public static readonly WINDOW_EVENT_RESIZE = 'resize';\n public static readonly WINDOW_EVENT_SCROLL = 'scroll';\n public static readonly WINDOW_EVENTS = [EventManager.WINDOW_EVENT_POPSTATE, EventManager.WINDOW_EVENT_RESIZE, EventManager.WINDOW_EVENT_SCROLL];\n public static readonly noDetectAttr = [EventManager.normalAttrMapAttrName];\n public static readonly attrNames = [EventManager.valueAttrName, EventManager.srcAttrName, EventManager.checkedAttrName, EventManager.selectedAttrName, EventManager.readonlyAttrName, EventManager.disabledAttrName, EventManager.hiddenAttrName, EventManager.requiredAttrName, EventManager.openAttrName, EventManager.attrAttrName, EventManager.normalAttrMapAttrName, EventManager.styleAttrName, EventManager.classAttrName, EventManager.attrPrefix + 'window-event-' + EventManager.WINDOW_EVENT_POPSTATE, EventManager.attrPrefix + 'window-event-' + EventManager.WINDOW_EVENT_RESIZE, EventManager.attrPrefix + 'window-event-' + EventManager.WINDOW_EVENT_SCROLL, EventManager.onInitAttrName, ...EventManager.linkAttrs.map(it => it.name), this.eventParam];\n readonly bindScript = `\n const ${EventManager.VALUE_VARNAME} = this.__render.value;\n const ${EventManager.SCRIPTS_VARNAME} = this.__render.scripts;\n const ${EventManager.RANGE_VARNAME} = this.__render.range;\n const ${EventManager.ROUTER_VARNAME} = this.__render.router;\n const ${EventManager.ATTRIBUTE_VARNAME} = this.__render.attribute;\n const ${EventManager.ELEMENT_VARNAME} = this.__render.element;\n const ${EventManager.COMPONENT_VARNAME} = this.__render.element.component;\n const ${EventManager.TARGET_VARNAME} = this.__render.target;\n const ${EventManager.EVENT_VARNAME} = this.__render.event;\n `;\n\n constructor(private window: Window) {\n this.eventNames.forEach(it => {\n EventManager.attrNames.push(EventManager.attrPrefix + 'event-' + it);\n });\n EventManager.attrNames.push(EventManager.onRenderedInitAttrName);\n\n if (typeof window !== 'undefined') {\n EventManager.WINDOW_EVENTS.forEach(eventName => {\n window?.addEventListener(eventName, event => {\n const targetAttr = `dr-window-event-${eventName}`;\n document.querySelectorAll(`[${targetAttr}]`).forEach(it => {\n const script = it.getAttribute(targetAttr);\n if (script) {\n const obj = this.findComponentInstance(it as HTMLElement);\n const config = getDomRenderConfig(obj);\n ScriptUtils.evaluate(`${this.bindScript} ${script} `, this.createExecutionContext(event, it as HTMLElement, obj, config));\n }\n });\n });\n });\n\n const rootElement = this.window.document;\n const listeningEvents = new Set<string>();\n this.eventNames.forEach(eventName => {\n if (this.directAttachEvents.has(eventName)) {\n return;\n }\n const delegatedEventName = this.delegatableEventMap[eventName] || eventName;\n\n if (listeningEvents.has(delegatedEventName)) {\n return;\n }\n listeningEvents.add(delegatedEventName);\n rootElement.addEventListener(delegatedEventName, this.handleEvent.bind(this), true);\n });\n }\n }\n\n private handleEvent(event: Event) {\n const handlers = this.collectHandlers(event);\n // console.log('handlers', handlers, event);\n for (const handler of handlers) {\n if (event.cancelBubble) {\n break;\n }\n\n const componentInstance = this.findComponentInstance(handler.element);\n if (!componentInstance) {\n continue;\n }\n // console.log('executeHandler', event,handler,componentInstance)\n this.executeHandler(event, handler, componentInstance);\n }\n }\n\n private collectHandlers(event: Event): HandlerInfo[] {\n const handlers: HandlerInfo[] = [];\n const root = this.window.document;\n if (!root) return handlers;\n\n const initialTarget = event.target as Node;\n let currentTarget: HTMLElement | null = initialTarget.nodeType === 1 ? (initialTarget as HTMLElement) : initialTarget.parentElement;\n const collectedElements = new Set<HTMLElement>();\n\n const eventMap: { [key: string]: string } = {\n mouseout: 'mouseleave',\n mouseover: 'mouseenter',\n focusout: 'blur',\n focusin: 'focus'\n };\n const mappedEventName = eventMap[event.type] || event.type;\n\n while (currentTarget) {\n if (collectedElements.has(currentTarget)) {\n break;\n }\n\n // Priority 1: Link attributes\n const matchingLinkAttr = EventManager.linkAttrs.find(la => la.event === mappedEventName && currentTarget?.hasAttribute(la.name));\n if (matchingLinkAttr) {\n handlers.push({\n element: currentTarget,\n attr: matchingLinkAttr.name,\n type: 'link',\n priority: 1,\n property: matchingLinkAttr.property\n });\n }\n\n // Priority 2: dr-event-* attributes\n const eventAttr = `${EventManager.attrPrefix}event-${mappedEventName}`;\n if (currentTarget.hasAttribute(eventAttr)) {\n handlers.push({\n element: currentTarget,\n attr: eventAttr,\n type: 'event',\n priority: 2\n });\n }\n\n // Priority 3: dr-event with params\n const eventParamAttr = EventManager.eventParam;\n if (currentTarget.hasAttribute(eventParamAttr)) {\n const bindEvents = currentTarget.getAttribute(`${eventParamAttr}:bind`);\n if (\n bindEvents &&\n bindEvents\n .split(',')\n .map(s => s.trim())\n .includes(mappedEventName)\n ) {\n handlers.push({\n element: currentTarget,\n attr: eventParamAttr,\n type: 'event-param',\n priority: 3\n });\n }\n }\n\n collectedElements.add(currentTarget);\n\n if (currentTarget === root.documentElement) {\n break;\n }\n\n currentTarget = currentTarget.parentElement;\n }\n\n return handlers.sort((a, b) => a.priority - b.priority);\n }\n\n private findComponentInstance(element: HTMLElement | null): any {\n let current = element;\n const root = this.window.document;\n while (current) {\n if ((current as any).obj) {\n return (current as any).obj;\n }\n if (current === root.documentElement) {\n break;\n }\n current = current.parentElement;\n }\n return this.window;\n }\n\n private createExecutionContext(event: Event, element: HTMLElement, componentInstance: any, config: DomRenderConfig | undefined, extraVars = {}) {\n // console.log('---------->', config?.eventVariables)\n return Object.assign(componentInstance, {\n __render: Object.freeze({\n event,\n element,\n target: event.target,\n attribute: ElementUtils.getAttributeToObject(element),\n router: config?.router,\n range: Range.range,\n scripts: EventManager.setBindProperty(config?.scripts, componentInstance),\n ...config?.eventVariables,\n ...extraVars\n })\n });\n }\n\n private executeHandler(event: Event, handler: HandlerInfo, componentInstance: any) {\n const { element, type, attr } = handler;\n const config = getDomRenderConfig(componentInstance);\n\n switch (type) {\n case 'link':\n const varName = element.getAttribute(attr);\n if (!varName || !handler.property) return;\n\n if (attr.includes('leave') || attr.includes('enter') || attr.includes('focus') || attr.includes('blur')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const ownerVariablePath = element.getAttribute(EventManager.ownerVariablePathAttrName);\n let bindObj = componentInstance;\n if (ownerVariablePath) {\n bindObj = ScriptUtils.evaluateReturn(ownerVariablePath, componentInstance);\n }\n\n const mapScript = element.getAttribute(`${attr}:map`);\n let value = (element as any)[handler.property];\n\n if (mapScript) {\n const context = this.createExecutionContext(event, element, bindObj, config, { value });\n value = ScriptUtils.evaluate(`return ${mapScript}`, context);\n }\n\n if (typeof this.getValue(componentInstance, varName, bindObj) === 'function') {\n this.getValue(componentInstance, varName, bindObj)(value, event);\n } else {\n this.setValue(componentInstance, varName, value);\n }\n break;\n\n case 'event':\n const script = element.getAttribute(attr);\n if (!script) return;\n\n if (attr.endsWith('mouseleave') || attr.endsWith('mouseenter') || attr.endsWith('blur') || attr.endsWith('focus')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const context = this.createExecutionContext(event, element, componentInstance, config);\n const filterScript = element.getAttribute(`${attr}:filter`);\n let filter = true;\n // \uAC1C\uBC1C\uC790\uAC00 \uC0AC\uC6A9\uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uB420(\uB514\uBC84\uAE45) \uBC84\uADF8\uB97C \uC720\uBC1C\uD560\uC218\uC788\uB294 \uAE30\uB2A5 \uD750\uB984\uC81C\uC5B4\uAC00 \uC548\uB420\uC218\uC788\uC5B4 \uAE30\uB2A5\uC744 \uC81C\uAC70\uD55C\uB2E4.\n // if (filterScript) {\n // filter = ScriptUtils.eval<boolean>(`${this.getBindScript(config)} return ${filterScript}`, context) ?? false;\n // }\n\n if (filter) {\n ScriptUtils.evaluate(`${this.getBindScript(config)} ${script}`, context);\n }\n\n // \uAC1C\uBC1C\uC790\uAC00 \uC0AC\uC6A9\uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uB420(\uB514\uBC84\uAE45) \uBC84\uADF8\uB97C \uC720\uBC1C\uD560\uC218\uC788\uB294 \uAE30\uB2A5 \uD750\uB984\uC81C\uC5B4\uAC00 \uC548\uB420\uC218\uC788\uC5B4 \uAE30\uB2A5\uC744 \uC81C\uAC70\uD55C\uB2E4.\n // const hasDispatch = element.hasAttribute(`${attr}:dispatch`);\n // if (hasDispatch) {\n // element.dispatchEvent(new Event(event.type));\n // }\n break;\n\n case 'event-param':\n const paramScript = element.getAttribute(attr);\n if (!paramScript) return;\n\n if (attr.endsWith('mouseleave') || attr.endsWith('mouseenter') || attr.endsWith('blur') || attr.endsWith('focus')) {\n const relatedTarget = (event as MouseEvent).relatedTarget as Node;\n if (relatedTarget && element.contains(relatedTarget)) {\n return;\n }\n }\n\n const attributes = ElementUtils.getAttributeToObject(element);\n const params = {} as any;\n const prefix = attr + ':';\n Object.entries(attributes)\n .filter(([k, v]) => k.startsWith(prefix))\n .forEach(([k, v]) => {\n params[k.slice(prefix.length)] = v;\n });\n\n const paramContext = this.createExecutionContext(event, element, componentInstance, config, { params });\n ScriptUtils.evaluate(`${this.getBindScript(config)} ${paramScript}`, paramContext);\n break;\n }\n }\n\n public findAttrElements(fragment: DocumentFragment | Element, config?: DomRenderConfig): Set<Element> {\n // const t0 = performance.now();\n const elements = new Set<Element>();\n const addAttributes = config?.applyEvents?.map(it => it.attrName) ?? [];\n const attrs = addAttributes.concat([...EventManager.attrNames]).filter(Boolean);\n if (attrs.length) {\n const selector = attrs.map(a => `[${a}]`).join(',');\n fragment?.querySelectorAll(selector).forEach(it => elements.add(it));\n }\n // console.log('findAttrElements time', performance.now() - t0);\n return elements;\n }\n\n public applyEvent(obj: any, childNodes: Set<ChildNode> | Set<Element>, config?: DomRenderConfig) {\n childNodes.forEach(node => {\n if (node.nodeType === 1) {\n (node as any).obj = obj;\n }\n });\n\n // let t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.valueAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.value !== data) {\n it.value = data;\n }\n }\n });\n this.procAttr<HTMLInputElement>(childNodes, EventManager.srcAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.src !== data) {\n it.src = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.checkedAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (it.checked !== data) {\n it.checked = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLOptionElement>(childNodes, EventManager.selectedAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (data) {\n it.setAttribute('selected', 'selected');\n } else {\n it.removeAttribute('selected');\n }\n if (it.selected !== data) {\n it.selected = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.readonlyAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (data) {\n it.setAttribute('readonly', 'readonly');\n } else {\n it.removeAttribute('readonly');\n }\n if (it.readOnly !== data) {\n it.readOnly = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.disabledAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (data) {\n it.setAttribute('disabled', 'disabled');\n } else {\n it.removeAttribute('disabled');\n }\n if (it.disabled !== data) {\n it.disabled = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLElement>(childNodes, EventManager.hiddenAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (data) {\n it.setAttribute('hidden', 'hidden');\n } else {\n it.removeAttribute('hidden');\n }\n if (it.hidden !== data) {\n it.hidden = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLInputElement>(childNodes, EventManager.requiredAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (data) {\n it.setAttribute('required', 'required');\n } else {\n it.removeAttribute('required');\n }\n if (it.required !== data) {\n it.required = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLDialogElement>(childNodes, EventManager.openAttrName, (it, attribute) => {\n const script = attribute;\n if (script) {\n const data = ObjectUtils.Script.evaluateReturn(script, obj);\n if (data) {\n it.setAttribute('open', 'open');\n } else {\n it.removeAttribute('open');\n }\n if (it.open !== data) {\n it.open = data;\n }\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr(childNodes, EventManager.normalAttrMapAttrName, (it, attribute) => {\n const map = new Map<string, NormalAttrDataType>(JSON.parse(attribute));\n map.forEach((v, k) => {\n const variablePaths = v.variablePaths;\n let targetScript = v.originalAttrValue; //typeof v.originalAttrValue === 'string' ? JSON.parse(v.originalAttrValue) : v.originalAttrValue;\n let script: string;\n if (v.isStringTemplate) {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `\\${${r}}`);\n });\n script = '`' + targetScript + '`';\n } else {\n variablePaths.forEach(it => {\n let r = ObjectUtils.Path.toOptionalChainPath(it.inner);\n targetScript = targetScript.replaceAll(it.origin, `${r}`);\n });\n script = targetScript;\n }\n const data = ObjectUtils.Script.evaluate(\n `const $element = this.element; return ${script}`,\n Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n })\n );\n // console.log('!!!!!!!!!!!', k, data, script, variablePaths, v)\n if (data === null || data === undefined) {\n it.removeAttribute(k);\n } else {\n it.setAttribute(k, data);\n }\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n\n EventManager.WINDOW_EVENTS.forEach(it => {\n this.procAttr<HTMLInputElement>(childNodes, EventManager.attrPrefix + 'window-event-' + it, (it, attribute) => {\n (it as any).obj = obj;\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n EventManager.linkAttrs.forEach(linkInfo => {\n this.procAttr<HTMLElement>(childNodes, linkInfo.name, (it, varName) => {\n if (varName) {\n const ownerVariablePathName = it.getAttribute(EventManager.ownerVariablePathAttrName);\n const mapScript = it.getAttribute(`${linkInfo.name}:map`);\n let bindObj = obj;\n if (ownerVariablePathName) {\n bindObj = ObjectUtils.Script.evaluateReturn(ownerVariablePathName, obj);\n }\n const getValue = this.getValue(obj, varName, bindObj);\n if (typeof getValue === 'function' && getValue) {\n let setValue = (it as any)[linkInfo.property];\n if (mapScript) {\n setValue = ObjectUtils.Script.evaluate(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, { __render: Object.freeze({ element: it, target: bindObj, range: Range.range, value: setValue, scripts: EventManager.setBindProperty(config?.scripts, obj), ...config?.eventVariables }) }));\n }\n getValue(setValue);\n } else if (getValue) {\n let setValue = getValue;\n if (mapScript) {\n setValue = ObjectUtils.Script.evaluate(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, { __render: Object.freeze({ element: it, target: bindObj, range: Range.range, value: setValue, scripts: EventManager.setBindProperty(config?.scripts, obj), ...config?.eventVariables }) }));\n }\n if (setValue === null) {\n it.removeAttribute(linkInfo.property);\n } else {\n (it as any)[linkInfo.property] = setValue;\n }\n } else if (getValue === undefined) {\n this.setValue(obj, varName, (it as any)[linkInfo.property]);\n }\n }\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.directAttachEvents.forEach(eventName => {\n const attr = `${EventManager.attrPrefix}event-${eventName}`;\n this.procAttr<HTMLElement>(childNodes, attr, (element, script) => {\n const handler = (event: Event) => {\n const componentInstance = this.findComponentInstance(element);\n if (!componentInstance) return;\n\n const context = this.createExecutionContext(event, element, componentInstance, config);\n const filterScript = element.getAttribute(`${attr}:filter`);\n let filter = true;\n if (filterScript) {\n filter = ObjectUtils.Script.evaluate<boolean>(`${this.getBindScript(config)} return ${filterScript}`, context) ?? false;\n }\n if (filter) {\n ObjectUtils.Script.evaluate(`${this.getBindScript(config)} ${script}`, context);\n }\n };\n element.addEventListener(eventName, handler);\n // TODO: Add logic to remove this listener when the element is destroyed.\n });\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.procAttr<HTMLElement>(childNodes, EventManager.onInitAttrName, (it, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (script) {\n ObjectUtils.Script.evaluate(\n `${this.getBindScript(config)}; ${script} `,\n Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it),\n ...config?.eventVariables\n })\n })\n );\n }\n });\n // console.log('applyEvent value time', performance.now() - t0);\n // t0 = performance.now();\n this.onRenderedEvent(obj, childNodes, config);\n this.changeVar(obj, childNodes, undefined, config);\n const elements = Array.from(childNodes)\n .filter(it => it.nodeType === 1)\n .map(it => it as Element);\n elements.forEach(it => {\n config?.applyEvents?.filter(ta => it.getAttribute(ta.attrName) !== null).forEach(ta => ta.callBack(it, it.getAttribute(ta.attrName)!, obj));\n });\n }\n\n public onRenderedEvent(obj: any, childNodes: Set<ChildNode> | Set<Element> | Node[], config?: DomRenderConfig) {\n this.procAttr<HTMLInputElement>(childNodes, EventManager.onRenderedInitAttrName, (it, attribute) => {\n if (!it.isConnected) {\n return;\n }\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (script) {\n ObjectUtils.Script.evaluate(\n `${this.getBindScript(config)}; ${script} `,\n Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it),\n ...config?.eventVariables\n })\n })\n );\n }\n });\n }\n\n public changeVar(obj: any, elements: Set<Element> | Set<ChildNode>, varName?: string, config?: DomRenderConfig) {\n // \uC544\uB798 \uC774\uBD80\uBD84\uC744 \uC801\uC6A9\uD574\uC57C\uB420\uC9C0 \uB9D0\uC544\uC57C\uB420\uC9C0....\uC131\uB2A5\uC774\uC288\uAC00.. \uADF8\uB798\uC11C \uC6B0\uC120 timeout\uC73C\uB85C \uD14C\uC2A4\uD06C\uD050\uB85C.. \uC6B0\uC120..\n\n // console.log('changeVar', obj, elements, varName)\n this.procAttr(elements, EventManager.styleAttrName, (it: HTMLElement, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (EventManager.isUsingThisVar(script, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluate(\n `const $element = this.__render.element; ${script} `,\n Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n })\n );\n if (typeof data === 'string') {\n data.split(';').forEach(sit => {\n const [key, value] = sit.split(':').map(s => s.trim());\n if (key && value) {\n (it.style as any)[key] = value;\n }\n });\n // it.setAttribute('style', data);\n } else if (Array.isArray(data)) {\n data.forEach(sit => {\n const [key, value] = sit.split(':').map(s => s.trim());\n if (key && value) {\n (it.style as any)[key] = value;\n }\n });\n\n // it.setAttribute('style', data.join(';'));\n } else if (data) {\n for (const [key, value] of Object.entries(data)) {\n // if (it instanceof HTMLElement) {\n (it.style as any)[key] = value === null ? null : String(value);\n // }\n }\n }\n }\n });\n\n this.procAttr(elements, EventManager.classAttrName, (it, attribute) => {\n let script = attribute;\n if (script) {\n script = 'return ' + script;\n }\n if (EventManager.isUsingThisVar(script, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluate(\n `const $element = this.element; ${script} `,\n Object.assign(obj, {\n __render: Object.freeze({\n element: it,\n attribute: ElementUtils.getAttributeToObject(it)\n })\n })\n );\n\n // alert(1)\n if (typeof data === 'string') {\n data\n .split(' ')\n .map(it => it.trim())\n .filter(it => it.length > 0)\n .forEach(cit => it.classList.add(cit.trim()));\n } else if (Array.isArray(data)) {\n data\n .map(it => it.trim())\n .filter(it => it.length > 0)\n .forEach(cit => it.classList.add(cit.trim()));\n } else if (data) {\n for (const [key, value] of Object.entries(data)) {\n if (it instanceof HTMLElement) {\n const v = key.trim();\n if (value && v) {\n it.classList.add(v);\n } else if (v) {\n it.classList.remove(v);\n }\n }\n }\n }\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.valueAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.value !== data) it.value = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.checkedAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.checked !== data) it.checked = data;\n }\n });\n\n this.procAttr<HTMLOptionElement>(elements, EventManager.selectedAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.selected !== data) it.selected = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.readonlyAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.readOnly !== data) it.readOnly = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.disabledAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.disabled !== data) it.disabled = data;\n }\n });\n\n this.procAttr<HTMLElement>(elements, EventManager.hiddenAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.hidden !== data) it.hidden = data;\n }\n });\n\n this.procAttr<HTMLInputElement>(elements, EventManager.requiredAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.required !== data) it.required = data;\n }\n });\n\n this.procAttr<HTMLDialogElement>(elements, EventManager.openAttrName, (it, attribute) => {\n if (EventManager.isUsingThisVar(attribute, varName) || varName === undefined) {\n const data = ObjectUtils.Script.evaluateReturn(attribute, obj);\n if (it.open !== data) it.open = data;\n }\n });\n }\n\n public deepAttributeElements(elements: Set<Element> | Set<ChildNode> | Node[] = new Set(), attrName: string): Set<Element> {\n const sets = new Set<Element>();\n elements.forEach(it => {\n if (!it) {\n return;\n }\n if (it.nodeType === 1) {\n const e = it as Element;\n if (e.hasAttribute(attrName)) {\n sets.add(e);\n }\n e.querySelectorAll<Element>(`[${attrName}]`).forEach(it => {\n sets.add(it);\n });\n }\n });\n return sets;\n }\n\n public procAttr<T extends Element = Element>(elements: Set<Element> | Set<ChildNode> | Node[] = new Set(), attrName: string, callBack: (h: T, value: string, attributes: any) => void) {\n const sets = this.deepAttributeElements(elements, attrName);\n sets.forEach(it => {\n const attr = it.getAttribute(attrName);\n const attrs = ElementUtils.getAttributeToObject(it);\n if (attr) {\n // setTimeout(() => {\n callBack(it as T, attr, attrs);\n // }, 0)\n }\n });\n }\n\n public getValue<T = any>(obj: any, name: string, bindObj?: any): T {\n let r = ObjectUtils.Script.evaluateReturn(name, obj);\n if (typeof r === 'function') {\n r = r.bind(bindObj ?? obj);\n }\n return r;\n }\n\n public setValue(obj: any, name: string, value?: any) {\n name = name.replaceAll('this.', 'this.this.');\n ObjectUtils.Script.evaluate(`${name} = this.value;`, {\n this: obj,\n value: value\n });\n }\n\n public static decodeScriptVar(raws: string | null | undefined): string | undefined {\n if (raws) {\n // TODO: \uD6D4.. \uAF2D\uD544\uC694\uD55C\uAC00..? \uD2B8\uB9AC\uAC70\uB420\uB54C \uC2A4\uD06C\uB9BD\uD2B8\uBCC0\uC218 \uAE4C\uC9C0 \uAC10\uC9C0\uD574\uC57C\uB420\uAE4C?\n EventManager.VARNAMES.forEach(it => {\n // raws = raws!.replace(RegExp(it.replace('$', '\\\\$'), 'g'), `this?.___${it}`);\n raws = raws!.replace(RegExp(it.replace('$', '\\\\$'), 'g'), `this.___${it}`);\n });\n return raws;\n }\n return undefined;\n }\n\n public static isUsingThisVar(raws: string | null | undefined, varName: string | null | undefined): boolean {\n raws = EventManager.decodeScriptVar(raws);\n if (varName && raws) {\n if (varName.startsWith('this.')) {\n varName = varName.replace(/this\\./, '');\n }\n const variablePaths = ObjectUtils.Path.detectPathFromScript(raws, { excludeThis: true });\n return variablePaths.has(varName);\n }\n return false;\n }\n\n public static setBindProperty(scripts: { [p: string]: any } | undefined, obj: any): { [p: string]: any } | undefined {\n if (scripts) {\n const newScripts = Object.assign({}, scripts);\n for (const [key, value] of Object.entries(newScripts)) {\n if (typeof value === 'function') {\n newScripts[key] = value.bind(obj);\n }\n }\n return newScripts;\n }\n }\n\n getBindScript(config?: DomRenderConfig) {\n if (config?.eventVariables) {\n const bindScript = Object.entries(config.eventVariables)\n .filter(([key, value]) => !this.bindScript.includes(`const ${key}`))\n .map(([key, value]) => {\n return `const ${key} = this.__render.${key};`;\n })\n .join(';');\n return this.bindScript + '' + bindScript;\n } else {\n return this.bindScript;\n }\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["context", "it"]
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,5 +1,55 @@
1
+ import {
2
+ drComponent,
3
+ If,
4
+ This,
5
+ Appender,
6
+ PromiseSwitch,
7
+ Choose,
8
+ CheckBox,
9
+ Radio,
10
+ Select,
11
+ Timer,
12
+ Details,
13
+ Input,
14
+ Route,
15
+ RouterOutlet,
16
+ A,
17
+ ComponentSet,
18
+ ComponentRouterBase,
19
+ attribute,
20
+ ComponentBase
21
+ } from "./components/index.js";
22
+ export * from "./configs/index.js";
23
+ export * from "./decorators/index.js";
24
+ export * from "./events/index.js";
25
+ export * from "./lifecycle/index.js";
26
+ export * from "./messenger/index.js";
27
+ export * from "./operators/index.js";
28
+ export * from "./rawsets/index.js";
29
+ export * from "./types/index.js";
30
+ export * from "./DomRender.js";
31
+ export * from "./DomRenderProxy.js";
1
32
  var src_default = {};
2
33
  export {
3
- src_default as default
34
+ A,
35
+ Appender as AppenderComponent,
36
+ CheckBox,
37
+ Choose,
38
+ ComponentBase,
39
+ ComponentRouterBase,
40
+ ComponentSet,
41
+ Details,
42
+ If,
43
+ Input,
44
+ PromiseSwitch,
45
+ Radio,
46
+ Route,
47
+ RouterOutlet,
48
+ Select,
49
+ This,
50
+ Timer,
51
+ attribute,
52
+ src_default as default,
53
+ drComponent
4
54
  };
5
55
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["//\n// export * from './components';\n// export * from './configs';\n// export * from './decorators';\n// export * from './events';\n// export * from './iterators';\n// export * from './lifecycle';\n// export * from './messenger';\n// // export * from './operators';\n// export { Appender as AppenderArray, Dr, DrAppender, DrFor, DrForOf, DrForm, DrIf, DrInnerHTML, DrInnerText, DrPre, DrRepeat, DrStripElement, DrTargetAttr, DrTargetElement, DrTargetElementIsElement, DrThis, DrThisProperty, OperatorExecuter, OperatorExecuterAttrRequire } from './operators';\n// export * from './rawsets';\n// export * from './routers';\n// export * from './types';\n// export * from './validators';\n// export * from './DomRender';\n// export * from './DomRenderProxy';\nexport default {}"],
5
- "mappings": "AAgBA,IAAO,cAAQ,CAAC;",
4
+ "sourcesContent": ["export {\n\tdrComponent,\n\tIf,\n\tThis,\n\tAppender as AppenderComponent,\n\tPromiseSwitch,\n\tChoose,\n\tCheckBox,\n\tRadio,\n\tSelect,\n\tTimer,\n\tDetails,\n\tInput,\n\tRoute,\n\tRouterOutlet,\n\tA,\n\tComponentSet,\n\tComponentRouterBase,\n\tattribute,\n\tComponentBase\n} from './components';\nexport type { ComponentBaseConfig, ChildrenSet, ComponentRouterBaseConfig } from './components';\nexport * from './configs';\nexport * from './decorators';\nexport * from './events';\nexport * from './lifecycle';\nexport * from './messenger';\nexport * from './operators';\nexport * from './rawsets';\nexport * from './types';\nexport * from './DomRender';\nexport * from './DomRenderProxy';\nexport default {};\n"],
5
+ "mappings": "AAAA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,IAAO,cAAQ,CAAC;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/messenger/Messenger.ts"],
4
- "sourcesContent": ["import { ConstructorType } from '@dooboostore/core/types';\nimport {DomRenderFinalProxy} from '../types/Types';\nimport {DomRenderConfig} from '../configs/DomRenderConfig';\n\nenum CallBackType {\n FILTER,\n MAP,\n SUBSCRIBE\n}\n\nexport type ChannelData = {\n channel: Channel;\n data?: (any | undefined);\n}\nexport type ChannelMetaData = {\n channel?: Channel;\n action?: string;\n}\n\nexport class ChannelSubscription {\n constructor(public channel: Channel, public subscriber: ChannelSubscriber) {\n }\n\n unsubscribe() {\n this.subscriber.unsubscribe();\n }\n}\n\nexport class ChannelSubscriber<SD = any> {\n public parentSubscriber?: ChannelSubscriber;\n public callbacks: ({ type: CallBackType, callback: (data: any, metaData: ChannelMetaData) => any | undefined })[] = [];\n\n constructor(public channel: Channel) {\n }\n\n exeCallback(data: any, metaData: ChannelMetaData) {\n for (const callback of this.callbacks) {\n if (callback.type === CallBackType.FILTER && !callback.callback(data, metaData)) {\n break;\n } else if (callback.type === CallBackType.MAP) {\n data = callback.callback(data, metaData);\n } else if (callback.type === CallBackType.SUBSCRIBE) {\n data = callback.callback(data, metaData);\n break;\n }\n }\n return data;\n }\n\n // chaining point\n filter<D = SD>(callback: (data: D, meta: ChannelMetaData) => boolean): ChannelSubscriber<SD> {\n this.callbacks.push({type: CallBackType.FILTER, callback});\n return this;\n }\n\n map<D = SD, R = any>(callback: (data: D, meta: ChannelMetaData) => R): ChannelSubscriber<R> {\n this.callbacks.push({type: CallBackType.MAP, callback});\n return this as unknown as ChannelSubscriber<R>;\n }\n\n subscribe(callback: (data: SD, metaData: ChannelMetaData) => any | undefined) {\n this.callbacks.push({type: CallBackType.SUBSCRIBE, callback});\n this.channel.subscribers.add(this);\n return new ChannelSubscription(this.channel, this);\n }\n\n unsubscribe() {\n this.channel.subscribers.delete(this);\n }\n\n deleteSubscriber() {\n this.unsubscribe();\n this.channel.subscribers.delete(this);\n }\n}\n\nexport class Channel {\n public subscribers = new Set<ChannelSubscriber>();\n\n constructor(private messenger: Messenger, public obj: object, public key: string) {\n }\n\n publish(key: string | object | ConstructorType<any>, data: any, action?: string) {\n const rtns: ChannelData[] = [];\n this.messenger.getChannels(key)?.forEach(it => {\n try {\n it.subscribers.forEach(its => {\n const rdata = its.exeCallback(data, {channel: this, action});\n rtns.push({channel: it, data: rdata});\n });\n } catch (e) {\n console.error(e);\n }\n });\n return rtns;\n }\n\n allPublish(data: any, action: string) {\n const rtns: (any | undefined)[][] = [];\n this.messenger.getAllChannelKeys().forEach(it => {\n rtns.push(this.publish(it, data));\n });\n return rtns.flat();\n }\n\n // string point\n filter<D = any>(filterF: (data: D, meta: ChannelMetaData) => boolean) {\n const subscriber = new ChannelSubscriber<D>(this);\n subscriber.filter(filterF);\n return subscriber;\n }\n\n map<D = any, R = any>(filterF: (data: D, meta: ChannelMetaData) => R): ChannelSubscriber<R> {\n const subscriber = new ChannelSubscriber<R>(this);\n subscriber.map(filterF);\n return subscriber;\n }\n\n subscribe<D = any>(subscribeCallback: (data: D, meta: ChannelMetaData) => any | void | undefined) {\n const subscriber = new ChannelSubscriber<D>(this);\n return subscriber.subscribe(subscribeCallback);\n };\n\n deleteChannel() {\n this.messenger.deleteChannel(this);\n };\n}\n\ntype MessengerEventDetail = {\n key: string | object | ConstructorType<any>;\n data?: any;\n action?: string;\n result?: (c: ChannelData[]) => void;\n}\n\ntype MessengerSubscribeEventDetail = {\n obj: any;\n key?: string | object | ConstructorType<any>;\n init: (channel: Channel, subscription: ChannelSubscription) => void;\n subscribe: (data: any, meta: ChannelMetaData) => void;\n}\n\nexport abstract class Messenger {\n private channels = new Set<Channel>();\n static readonly EVENT_PUBLISH_KEY = 'domRenderMessenger_publish';\n static readonly EVENT_SUBSCRIBE_KEY = 'domRenderMessenger_subscribe';\n constructor(private config: DomRenderConfig) {\n this.config.window.addEventListener(Messenger.EVENT_PUBLISH_KEY, (e: Event) => {\n const detail = ((e as CustomEvent).detail as MessengerEventDetail);\n // console.log('--->', detail)\n const rtns: ChannelData[] = [];\n this.getChannels(detail.key)?.forEach(it => {\n try {\n it.subscribers.forEach(its => {\n const rdata = its.exeCallback(detail.data, {action: detail.action});\n rtns.push({channel: it, data: rdata});\n });\n } catch (e) {\n console.error(e);\n }\n });\n detail.result?.(rtns);\n });\n this.config.window.addEventListener(Messenger.EVENT_SUBSCRIBE_KEY, (e: Event) => {\n const detail = ((e as CustomEvent).detail as MessengerSubscribeEventDetail);\n // console.log('--->', detail)\n const channel = this.createChannel(detail.obj, detail.key);\n detail.init(channel, channel.subscribe(detail.subscribe));\n });\n }\n\n public static publish(window: Window, detail: MessengerEventDetail) {\n window.dispatchEvent(new CustomEvent(Messenger.EVENT_PUBLISH_KEY, {detail}));\n }\n\n public static subscribe(window: Window, detail: MessengerSubscribeEventDetail) {\n window.dispatchEvent(new CustomEvent(Messenger.EVENT_SUBSCRIBE_KEY, {detail}));\n }\n\n createChannel(obj: any, key = obj.constructor.name): Channel {\n const channel = DomRenderFinalProxy.final(new Channel(this, obj, key)) as Channel;\n this.channels.add(channel);\n // this.channels.get(key) ? this.channels.get(key)!.push(channel) : this.channels.set(key, [channel]);\n return channel;\n }\n\n deleteChannel(channel: Channel) {\n this.channels.delete(channel);\n }\n\n deleteChannelFromObj(obj: any) {\n if (obj) {\n this.channels.forEach(it => {\n if (it.obj === obj) {\n // console.log('dddddddddddd', obj)\n this.deleteChannel(it);\n }\n });\n }\n }\n\n addChannel(channel: Channel) {\n this.channels.add(channel);\n }\n\n getChannels(key: string | object | ConstructorType<any>): Channel[] {\n if (typeof key === 'object') {\n key = key.constructor.name;\n } else if (typeof key === 'function') {\n key = key.name;\n }\n return Array.from(this.channels.values()).filter(it => it.key === key);\n }\n\n getAllChannels(): Channel[] {\n return Array.from(this.channels.values());\n }\n\n getAllChannelKeys(): string[] {\n return Array.from(this.channels.values()).map(it => it.key);\n }\n}\n"],
4
+ "sourcesContent": ["import { ConstructorType } from '@dooboostore/core';\nimport {DomRenderFinalProxy} from '../types/Types';\nimport {DomRenderConfig} from '../configs/DomRenderConfig';\n\nenum CallBackType {\n FILTER,\n MAP,\n SUBSCRIBE\n}\n\nexport type ChannelData = {\n channel: Channel;\n data?: (any | undefined);\n}\nexport type ChannelMetaData = {\n channel?: Channel;\n action?: string;\n}\n\nexport class ChannelSubscription {\n constructor(public channel: Channel, public subscriber: ChannelSubscriber) {\n }\n\n unsubscribe() {\n this.subscriber.unsubscribe();\n }\n}\n\nexport class ChannelSubscriber<SD = any> {\n public parentSubscriber?: ChannelSubscriber;\n public callbacks: ({ type: CallBackType, callback: (data: any, metaData: ChannelMetaData) => any | undefined })[] = [];\n\n constructor(public channel: Channel) {\n }\n\n exeCallback(data: any, metaData: ChannelMetaData) {\n for (const callback of this.callbacks) {\n if (callback.type === CallBackType.FILTER && !callback.callback(data, metaData)) {\n break;\n } else if (callback.type === CallBackType.MAP) {\n data = callback.callback(data, metaData);\n } else if (callback.type === CallBackType.SUBSCRIBE) {\n data = callback.callback(data, metaData);\n break;\n }\n }\n return data;\n }\n\n // chaining point\n filter<D = SD>(callback: (data: D, meta: ChannelMetaData) => boolean): ChannelSubscriber<SD> {\n this.callbacks.push({type: CallBackType.FILTER, callback});\n return this;\n }\n\n map<D = SD, R = any>(callback: (data: D, meta: ChannelMetaData) => R): ChannelSubscriber<R> {\n this.callbacks.push({type: CallBackType.MAP, callback});\n return this as unknown as ChannelSubscriber<R>;\n }\n\n subscribe(callback: (data: SD, metaData: ChannelMetaData) => any | undefined) {\n this.callbacks.push({type: CallBackType.SUBSCRIBE, callback});\n this.channel.subscribers.add(this);\n return new ChannelSubscription(this.channel, this);\n }\n\n unsubscribe() {\n this.channel.subscribers.delete(this);\n }\n\n deleteSubscriber() {\n this.unsubscribe();\n this.channel.subscribers.delete(this);\n }\n}\n\nexport class Channel {\n public subscribers = new Set<ChannelSubscriber>();\n\n constructor(private messenger: Messenger, public obj: object, public key: string) {\n }\n\n publish(key: string | object | ConstructorType<any>, data: any, action?: string) {\n const rtns: ChannelData[] = [];\n this.messenger.getChannels(key)?.forEach(it => {\n try {\n it.subscribers.forEach(its => {\n const rdata = its.exeCallback(data, {channel: this, action});\n rtns.push({channel: it, data: rdata});\n });\n } catch (e) {\n console.error(e);\n }\n });\n return rtns;\n }\n\n allPublish(data: any, action: string) {\n const rtns: (any | undefined)[][] = [];\n this.messenger.getAllChannelKeys().forEach(it => {\n rtns.push(this.publish(it, data));\n });\n return rtns.flat();\n }\n\n // string point\n filter<D = any>(filterF: (data: D, meta: ChannelMetaData) => boolean) {\n const subscriber = new ChannelSubscriber<D>(this);\n subscriber.filter(filterF);\n return subscriber;\n }\n\n map<D = any, R = any>(filterF: (data: D, meta: ChannelMetaData) => R): ChannelSubscriber<R> {\n const subscriber = new ChannelSubscriber<R>(this);\n subscriber.map(filterF);\n return subscriber;\n }\n\n subscribe<D = any>(subscribeCallback: (data: D, meta: ChannelMetaData) => any | void | undefined) {\n const subscriber = new ChannelSubscriber<D>(this);\n return subscriber.subscribe(subscribeCallback);\n };\n\n deleteChannel() {\n this.messenger.deleteChannel(this);\n };\n}\n\ntype MessengerEventDetail = {\n key: string | object | ConstructorType<any>;\n data?: any;\n action?: string;\n result?: (c: ChannelData[]) => void;\n}\n\ntype MessengerSubscribeEventDetail = {\n obj: any;\n key?: string | object | ConstructorType<any>;\n init: (channel: Channel, subscription: ChannelSubscription) => void;\n subscribe: (data: any, meta: ChannelMetaData) => void;\n}\n\nexport abstract class Messenger {\n private channels = new Set<Channel>();\n static readonly EVENT_PUBLISH_KEY = 'domRenderMessenger_publish';\n static readonly EVENT_SUBSCRIBE_KEY = 'domRenderMessenger_subscribe';\n constructor(private config: DomRenderConfig) {\n this.config.window.addEventListener(Messenger.EVENT_PUBLISH_KEY, (e: Event) => {\n const detail = ((e as CustomEvent).detail as MessengerEventDetail);\n // console.log('--->', detail)\n const rtns: ChannelData[] = [];\n this.getChannels(detail.key)?.forEach(it => {\n try {\n it.subscribers.forEach(its => {\n const rdata = its.exeCallback(detail.data, {action: detail.action});\n rtns.push({channel: it, data: rdata});\n });\n } catch (e) {\n console.error(e);\n }\n });\n detail.result?.(rtns);\n });\n this.config.window.addEventListener(Messenger.EVENT_SUBSCRIBE_KEY, (e: Event) => {\n const detail = ((e as CustomEvent).detail as MessengerSubscribeEventDetail);\n // console.log('--->', detail)\n const channel = this.createChannel(detail.obj, detail.key);\n detail.init(channel, channel.subscribe(detail.subscribe));\n });\n }\n\n public static publish(window: Window, detail: MessengerEventDetail) {\n window.dispatchEvent(new CustomEvent(Messenger.EVENT_PUBLISH_KEY, {detail}));\n }\n\n public static subscribe(window: Window, detail: MessengerSubscribeEventDetail) {\n window.dispatchEvent(new CustomEvent(Messenger.EVENT_SUBSCRIBE_KEY, {detail}));\n }\n\n createChannel(obj: any, key = obj.constructor.name): Channel {\n const channel = DomRenderFinalProxy.final(new Channel(this, obj, key)) as Channel;\n this.channels.add(channel);\n // this.channels.get(key) ? this.channels.get(key)!.push(channel) : this.channels.set(key, [channel]);\n return channel;\n }\n\n deleteChannel(channel: Channel) {\n this.channels.delete(channel);\n }\n\n deleteChannelFromObj(obj: any) {\n if (obj) {\n this.channels.forEach(it => {\n if (it.obj === obj) {\n // console.log('dddddddddddd', obj)\n this.deleteChannel(it);\n }\n });\n }\n }\n\n addChannel(channel: Channel) {\n this.channels.add(channel);\n }\n\n getChannels(key: string | object | ConstructorType<any>): Channel[] {\n if (typeof key === 'object') {\n key = key.constructor.name;\n } else if (typeof key === 'function') {\n key = key.name;\n }\n return Array.from(this.channels.values()).filter(it => it.key === key);\n }\n\n getAllChannels(): Channel[] {\n return Array.from(this.channels.values());\n }\n\n getAllChannelKeys(): string[] {\n return Array.from(this.channels.values()).map(it => it.key);\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["CallBackType", "e"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { OperatorExecuterAttrRequire } from "./OperatorExecuterAttrRequire.js";
2
2
  import { RawSet } from "../rawsets/RawSet.js";
3
3
  import { ExecuteState } from "./OperatorExecuter.js";
4
- import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
4
+ import { ObjectUtils } from "@dooboostore/core";
5
5
  class Dr extends OperatorExecuterAttrRequire {
6
6
  constructor(rawSet, render, returnContainer, elementSource, source, afterCallBack) {
7
7
  super(rawSet, render, returnContainer, elementSource, source, afterCallBack);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operators/Dr.ts"],
4
- "sourcesContent": ["import {OperatorExecuterAttrRequire} from './OperatorExecuterAttrRequire';\nimport {ScriptUtils} from '@dooboostore/core-web/script/ScriptUtils';\nimport {RawSet} from '../rawsets/RawSet';\nimport {Render} from '../rawsets/Render';\nimport {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';\nimport {ObjectUtils} from \"@dooboostore/core/object/ObjectUtils\";\n\nexport class Dr extends OperatorExecuterAttrRequire<null> {\n constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {\n super(rawSet, render, returnContainer, elementSource, source, afterCallBack);\n }\n\n async executeAttrRequire(data: null): Promise<ExecuteState> {\n const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);\n const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');\n const newTemp = this.source.config.window.document.createElement('temp');\n ObjectUtils.Script.evaluate(`\n ${this.render.bindScript}\n const n = $element.cloneNode(true);\n var destIt = ${this.elementSource.attrs.drItOption};\n if (destIt !== undefined) {\n n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replace(/\\\\#it\\\\#/g, destIt)))\n // console.log('----', n.innerHTML);\n n.innerHTML = n.innerHTML.replace(/\\\\#it\\\\#/g, destIt);\n // console.log('----', n.innerHTML);\n }\n if (this.__render.drStripOption === 'true') {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__render.fag.append(n);\n }`, Object.assign(this.source.obj, {\n __render: Object.freeze({\n fag: newTemp,\n drStripOption: this.elementSource.attrs.drStripOption,\n ...this.render\n } as Render)\n }));\n RawSet.drVarDecoding(newTemp, vars);\n RawSet.drItOtherDecoding(newTemp, itRandom);\n const tempalte = this.source.config.window.document.createElement('template');\n tempalte.innerHTML = newTemp.innerHTML;\n this.returnContainer.fag.append(tempalte.content)\n const rr = RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config)\n this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);\n this.returnContainer.raws.push(...rr);\n return ExecuteState.EXECUTE;\n }\n}\n"],
5
- "mappings": "AAAA,SAAQ,mCAAkC;AAE1C,SAAQ,cAAa;AAErB,SAAsC,oBAA4C;AAClF,SAAQ,mBAAkB;AAEnB,MAAM,WAAW,4BAAkC;AAAA,EACtD,YAAY,QAAgB,QAAgB,iBAAkC,eAA8B,QAAgB,eAA8B;AACtJ,UAAM,QAAQ,QAAQ,iBAAiB,eAAe,QAAQ,aAAa;AAAA,EAC/E;AAAA,EAEA,MAAM,mBAAmB,MAAmC;AACxD,UAAM,WAAW,OAAO,kBAAkB,KAAK,cAAc,OAAO;AACpE,UAAM,OAAO,OAAO,cAAc,KAAK,cAAc,SAAS,KAAK,cAAc,MAAM,eAAe,EAAE;AACxG,UAAM,UAAU,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,MAAM;AACvE,gBAAY,OAAO,SAAS;AAAA,sBACd,KAAK,OAAO,UAAU;AAAA;AAAA,mCAET,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAW9C,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,MAC3C,UAAU,OAAO,OAAO;AAAA,QACpB,KAAK;AAAA,QACL,eAAe,KAAK,cAAc,MAAM;AAAA,QACxC,GAAG,KAAK;AAAA,MACZ,CAAW;AAAA,IACf,CAAC,CAAC;AACF,WAAO,cAAc,SAAS,IAAI;AAClC,WAAO,kBAAkB,SAAS,QAAQ;AAC1C,UAAM,WAAW,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,UAAU;AAC5E,aAAS,YAAY,QAAQ;AAC7B,SAAK,gBAAgB,IAAI,OAAO,SAAS,OAAO;AAChD,UAAM,KAAK,OAAO,kBAAkB,KAAK,gBAAgB,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AACjG,SAAK,cAAc,QAAQ,YAAY,aAAa,KAAK,gBAAgB,KAAK,KAAK,cAAc,OAAO;AACxG,SAAK,gBAAgB,KAAK,KAAK,GAAG,EAAE;AACpC,WAAO,aAAa;AAAA,EACxB;AACJ;",
4
+ "sourcesContent": ["import {OperatorExecuterAttrRequire} from './OperatorExecuterAttrRequire';\nimport {RawSet} from '../rawsets/RawSet';\nimport {Render} from '../rawsets/Render';\nimport {AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source} from './OperatorExecuter';\nimport {ObjectUtils} from \"@dooboostore/core\";\n\nexport class Dr extends OperatorExecuterAttrRequire<null> {\n constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack) {\n super(rawSet, render, returnContainer, elementSource, source, afterCallBack);\n }\n\n async executeAttrRequire(data: null): Promise<ExecuteState> {\n const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);\n const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? '');\n const newTemp = this.source.config.window.document.createElement('temp');\n ObjectUtils.Script.evaluate(`\n ${this.render.bindScript}\n const n = $element.cloneNode(true);\n var destIt = ${this.elementSource.attrs.drItOption};\n if (destIt !== undefined) {\n n.getAttributeNames().forEach(it => n.setAttribute(it, n.getAttribute(it).replace(/\\\\#it\\\\#/g, destIt)))\n // console.log('----', n.innerHTML);\n n.innerHTML = n.innerHTML.replace(/\\\\#it\\\\#/g, destIt);\n // console.log('----', n.innerHTML);\n }\n if (this.__render.drStripOption === 'true') {\n Array.from(n.childNodes).forEach(it => this.__fag.append(it));\n } else {\n this.__render.fag.append(n);\n }`, Object.assign(this.source.obj, {\n __render: Object.freeze({\n fag: newTemp,\n drStripOption: this.elementSource.attrs.drStripOption,\n ...this.render\n } as Render)\n }));\n RawSet.drVarDecoding(newTemp, vars);\n RawSet.drItOtherDecoding(newTemp, itRandom);\n const tempalte = this.source.config.window.document.createElement('template');\n tempalte.innerHTML = newTemp.innerHTML;\n this.returnContainer.fag.append(tempalte.content)\n const rr = RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config)\n this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);\n this.returnContainer.raws.push(...rr);\n return ExecuteState.EXECUTE;\n }\n}\n"],
5
+ "mappings": "AAAA,SAAQ,mCAAkC;AAC1C,SAAQ,cAAa;AAErB,SAAsC,oBAA4C;AAClF,SAAQ,mBAAkB;AAEnB,MAAM,WAAW,4BAAkC;AAAA,EACtD,YAAY,QAAgB,QAAgB,iBAAkC,eAA8B,QAAgB,eAA8B;AACtJ,UAAM,QAAQ,QAAQ,iBAAiB,eAAe,QAAQ,aAAa;AAAA,EAC/E;AAAA,EAEA,MAAM,mBAAmB,MAAmC;AACxD,UAAM,WAAW,OAAO,kBAAkB,KAAK,cAAc,OAAO;AACpE,UAAM,OAAO,OAAO,cAAc,KAAK,cAAc,SAAS,KAAK,cAAc,MAAM,eAAe,EAAE;AACxG,UAAM,UAAU,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,MAAM;AACvE,gBAAY,OAAO,SAAS;AAAA,sBACd,KAAK,OAAO,UAAU;AAAA;AAAA,mCAET,KAAK,cAAc,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAW9C,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,MAC3C,UAAU,OAAO,OAAO;AAAA,QACpB,KAAK;AAAA,QACL,eAAe,KAAK,cAAc,MAAM;AAAA,QACxC,GAAG,KAAK;AAAA,MACZ,CAAW;AAAA,IACf,CAAC,CAAC;AACF,WAAO,cAAc,SAAS,IAAI;AAClC,WAAO,kBAAkB,SAAS,QAAQ;AAC1C,UAAM,WAAW,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,UAAU;AAC5E,aAAS,YAAY,QAAQ;AAC7B,SAAK,gBAAgB,IAAI,OAAO,SAAS,OAAO;AAChD,UAAM,KAAK,OAAO,kBAAkB,KAAK,gBAAgB,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM;AACjG,SAAK,cAAc,QAAQ,YAAY,aAAa,KAAK,gBAAgB,KAAK,KAAK,cAAc,OAAO;AACxG,SAAK,gBAAgB,KAAK,KAAK,GAAG,EAAE;AACpC,WAAO,aAAa;AAAA,EACxB;AACJ;",
6
6
  "names": []
7
7
  }
@@ -1,57 +1,120 @@
1
1
  import { OperatorExecuterAttrRequire } from "./OperatorExecuterAttrRequire.js";
2
2
  import { RawSet } from "../rawsets/RawSet.js";
3
3
  import { ExecuteState } from "./OperatorExecuter.js";
4
- import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
4
+ import { ObjectUtils } from "@dooboostore/core";
5
5
  class DrAppender extends OperatorExecuterAttrRequire {
6
6
  constructor(rawSet, render, returnContainer, elementSource, source, afterCallBack) {
7
7
  source.operatorAround = void 0;
8
8
  super(rawSet, render, returnContainer, elementSource, source, afterCallBack, false);
9
9
  }
10
10
  async executeAttrRequire(attr) {
11
- const itRandom = RawSet.drItOtherEncoding(this.elementSource.element);
11
+ const itRandom = RawSet.drItOtherEncoding(this.elementSource.element, "DrAppender");
12
12
  const vars = RawSet.drVarEncoding(this.elementSource.element, this.elementSource.attrs.drVarOption ?? "");
13
13
  const newTemp = this.source.config.window.document.createElement("temp");
14
- ObjectUtils.Script.evaluate(`
14
+ const variableName = this.elementSource.attrs.drVariableNameOption;
15
+ const itemVariableName = this.elementSource.attrs.drItemVariableNameOption;
16
+ const itemIndexVariableName = this.elementSource.attrs.drItemIndexVariableNameOption;
17
+ const itemOffsetIndexVariableName = this.elementSource.attrs.drItemOffsetIndexVariableNameOption;
18
+ const hasVariableName = !!variableName;
19
+ const hasItemVariableName = !!itemVariableName;
20
+ const hasItemIndexVariableName = !!itemIndexVariableName;
21
+ const hasItemOffsetIndexVariableName = !!itemOffsetIndexVariableName;
22
+ const indexOffsetOption = this.elementSource.attrs.drItemIndexOffsetOption;
23
+ const hasIndexOffsetOption = !!indexOffsetOption;
24
+ ObjectUtils.Script.evaluate(
25
+ `
15
26
  try{
16
27
  ${this.render.bindScript}
17
28
  ${this.elementSource.attrs.drBeforeOption ?? ""}
18
- const ifWrap = document.createElement('div');
19
- // ifWrap.setAttribute('${RawSet.DR_STRIP_OPTIONNAME}', 'true');
20
- // ifWrap.setAttribute('${RawSet.DR_IF_NAME}', '${this.elementSource.attrs.drAppender} && ${this.elementSource.attrs.drAppender}.length > 0');
21
- const n = this.__render.element.cloneNode(true);
22
- Object.entries(this.__render.drAttr).filter(([k,v]) => k !== 'drAppender' && v).forEach(([k, v]) => n.setAttribute(this.__render.drAttrsOriginName[k], v));
23
- const length = ${this.elementSource.attrs.drAppender}.length;
24
- if (length > 0) {
25
- n.setAttribute('${RawSet.DR_FOR_OF_NAME}', '${this.elementSource.attrs.drAppender}[' + (length-1) + ']');
26
- n.setAttribute('${RawSet.DR_NEXT_OPTIONNAME}', '${this.elementSource.attrs.drAppender},' + length);
27
- } else {
28
- n.setAttribute('${RawSet.DR_FOR_OF_NAME}', '${this.elementSource.attrs.drAppender}[0]');
29
- n.setAttribute('${RawSet.DR_NEXT_OPTIONNAME}', '${this.elementSource.attrs.drAppender},' + 1);
29
+ const offset = ${hasIndexOffsetOption ? Number(indexOffsetOption) : 0};
30
+ const data = ${ObjectUtils.Path.toOptionalChainPath(attr)};
31
+ const attrStr = \`${attr}\`.trim();
32
+ const isChunkPath = /\\[\\d+\\]$/.test(attrStr);
33
+
34
+ if (data !== undefined && data !== null) {
35
+ // SSR \uD638\uD658\uC131\uC744 \uC704\uD574 Array.from \uC0AC\uC6A9
36
+ const items = isChunkPath ? (Array.isArray(data) ? data : [data]) : (typeof data.getAll === 'function' ? data.getAll().slice(offset) : Array.from(data).slice(offset));
37
+ var i = -1;
38
+
39
+ for(const it of items) {
40
+ i++;
41
+ const userIdx = i + offset;
42
+
43
+ // \uC544\uC774\uD15C \uC811\uADFC \uACBD\uB85C \uC0DD\uC131
44
+ let destItStr = attrStr + '[' + (isChunkPath ? i : userIdx) + ']';
45
+ if (!isChunkPath && typeof data.getAll === 'function') {
46
+ destItStr = '(' + attrStr + '.getAll()[' + userIdx + '])';
47
+ } else {
48
+ destItStr = '(' + destItStr + ')';
49
+ }
50
+
51
+ const n = this.__render.element.cloneNode(true);
52
+ // \uC635\uC158 \uBCF5\uC6D0 \uBC0F \uC815\uC81C
53
+ Object.entries(this.__render.drAttr).filter(([k,v]) => k !== 'drAppender' && k !== 'drNextOption' && v).forEach(([k, v]) => n.setAttribute(this.__render.drAttrsOriginName[k], v));
54
+
55
+ // \uC815\uAD50\uD55C \uCE58\uD658 \uB85C\uC9C1 (\uC18D\uC131)
56
+ n.getAttributeNames().forEach(itName => {
57
+ let attrVal = n.getAttribute(itName);
58
+ attrVal = attrVal.replace(/\\#it\\#/g, destItStr)
59
+ .replace(/\\#nearForOfIt\\#/g, destItStr)
60
+ .replace(/\\#index\\#/g, String(i))
61
+ .replace(/\\#offsetIndex\\#/g, String(userIdx))
62
+ .replace(/\\#nearForOfIndex\\#/g, String(i));
63
+
64
+ if (${hasVariableName} && '${variableName}') attrVal = attrVal.replaceAll('#${variableName}#', attrStr);
65
+ if (${hasItemVariableName} && '${itemVariableName}') attrVal = attrVal.replaceAll('#${itemVariableName}#', destItStr);
66
+ if (${hasItemIndexVariableName} && '${itemIndexVariableName}') attrVal = attrVal.replaceAll('#${itemIndexVariableName}#', String(i));
67
+ if (${hasItemOffsetIndexVariableName} && '${itemOffsetIndexVariableName}') attrVal = attrVal.replaceAll('#${itemOffsetIndexVariableName}#', String(userIdx));
68
+ n.setAttribute(itName, attrVal);
69
+ });
70
+
71
+ // \uC815\uAD50\uD55C \uCE58\uD658 \uB85C\uC9C1 (InnerHTML)
72
+ n.innerHTML = n.innerHTML.replace(/\\#it\\#/g, destItStr)
73
+ .replace(/\\#index\\#/g, String(i))
74
+ .replace(/\\#offsetIndex\\#/g, String(userIdx));
75
+
76
+ if (${hasVariableName} && '${variableName}') n.innerHTML = n.innerHTML.replaceAll('#${variableName}#', attrStr);
77
+ if (${hasItemVariableName} && '${itemVariableName}') n.innerHTML = n.innerHTML.replaceAll('#${itemVariableName}#', destItStr);
78
+ if (${hasItemIndexVariableName} && '${itemIndexVariableName}') n.innerHTML = n.innerHTML.replaceAll('#${itemIndexVariableName}#', String(i));
79
+ if (${hasItemOffsetIndexVariableName} && '${itemOffsetIndexVariableName}') n.innerHTML = n.innerHTML.replaceAll('#${itemOffsetIndexVariableName}#', String(userIdx));
80
+
81
+ if (this.__render.drStripOption === 'true') {
82
+ Array.from(n.childNodes).forEach(it => this.__render.fag.append(it));
83
+ } else {
84
+ this.__render.fag.append(n);
85
+ }
86
+ }
87
+
88
+ // \uB2E4\uC74C \uC138\uB300 \uC13C\uD2F0\uB12C \uC0DD\uC131 (\uC815\uC11D \uCCB4\uC774\uB2DD)
89
+ const nextN = this.__render.element.cloneNode(true);
90
+ Object.entries(this.__render.drAttr).filter(([k,v]) => v).forEach(([k, v]) => nextN.setAttribute(this.__render.drAttrsOriginName[k], v));
91
+
92
+ const basePath = attrStr.replace(/\\[\\d+\\]$/, '');
93
+ const appenderObj = ${ObjectUtils.Path.toOptionalChainPath(attr.replace(/\\[\\d+\\]$/, ""))};
94
+ const nextChunkIdx = isChunkPath ? Number(attrStr.match(/\\[(\\d+)\\]$/)[1]) + 1 : (appenderObj?.length ?? 0);
95
+
96
+ nextN.setAttribute('${RawSet.DR_APPENDER_NAME}', basePath + '[' + nextChunkIdx + ']');
97
+ nextN.setAttribute('${RawSet.DR_ITEM_INDEX_OFFSET_OPTIONNAME}', (offset + items.length));
98
+ this.__render.fag.append(nextN);
30
99
  }
31
- // console.log('appender--->', Array.from(n.getAttributeNames()).map(it=>({name:it,attr: n.getAttribute(it)})));
32
- // const drOptionThis = n.getAttribute('${RawSet.DR_THIS_OPTIONNAME}');
33
- // if (drOptionThis) {
34
- // }
35
- // ifWrap.append(n);
36
- // this.__render.fag.append(ifWrap);
37
- this.__render.fag.append(n);
38
100
  ${this.elementSource.attrs.drAfterOption ?? ""}
39
- }catch(e){}
40
- `, Object.assign(this.source.obj, {
41
- __render: Object.freeze({
42
- drStripOption: this.elementSource.attrs.drStripOption,
43
- drAttr: this.elementSource.attrs,
44
- drAttrsOriginName: RawSet.drAttrsOriginName,
45
- fag: newTemp,
46
- ...this.render
47
- // eslint-disable-next-line no-use-before-define
101
+ }catch(e){console.error('DrAppender Error:', e);}
102
+ `,
103
+ Object.assign(this.source.obj, {
104
+ __render: Object.freeze({
105
+ drStripOption: this.elementSource.attrs.drStripOption,
106
+ drAttr: this.elementSource.attrs,
107
+ drAttrsOriginName: RawSet.drAttrsOriginName,
108
+ fag: newTemp,
109
+ ...this.render
110
+ })
48
111
  })
49
- }));
112
+ );
50
113
  RawSet.drVarDecoding(newTemp, vars);
51
114
  RawSet.drItOtherDecoding(newTemp, itRandom);
52
- const tempalte = this.source.config.window.document.createElement("template");
53
- tempalte.innerHTML = newTemp.innerHTML;
54
- this.returnContainer.fag.append(tempalte.content);
115
+ const template = this.source.config.window.document.createElement("template");
116
+ template.innerHTML = newTemp.innerHTML;
117
+ this.returnContainer.fag.append(template.content);
55
118
  const rr = RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config);
56
119
  this.elementSource.element.parentNode?.replaceChild(this.returnContainer.fag, this.elementSource.element);
57
120
  this.returnContainer.raws.push(...rr);