@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/components/select/Select.ts"],
4
- "sourcesContent": ["import {attribute, ChildrenSet, ComponentBase} from '../ComponentBase';\nimport {DomRender, DomRenderRunConfig} from '../../DomRender';\nimport {RawSet} from '../../rawsets/RawSet';\nimport {OnCreateRenderData} from '../../lifecycle/OnCreateRenderData';\nimport {OnInitRender} from '../../lifecycle/OnInitRender';\nimport {OnDestroyRender} from '../../lifecycle/OnDestroyRender';\nimport {EventUtils} from '@dooboostore/core-web/event/EventUtils';\nimport {type Subscription} from '@dooboostore/core/message/Subscription';\nimport {ValidUtils} from '@dooboostore/core-web/valid/ValidUtils';\nimport {DomRenderNoProxy} from '../../decorators/DomRenderNoProxy';\nimport {OnCreateRender} from '../../lifecycle/OnCreateRender';\nimport {DomRenderConfig} from '../../configs/DomRenderConfig';\nimport {WindowUtils} from '@dooboostore/core-web/window/WindowUtils';\nimport {OnRawSetRenderedOtherData} from '../../lifecycle';\n\n/** 사용법\n <dr-select class=\"card-select-container\" changeSelected=\"${(data) => @this@.changeSelected(data)}$\"> <!-- multiple attribute optional-->\n <dr-select-summary class=\"card-select-summary-container\">\n <dr-select-summary-placeholder>\n <div class=\"card-select-summary-placeholder-container\">카드사별 사용처 안내 페이지 선택</div>\n </dr-select-summary-placeholder>\n <dr-select-summary-selected>\n <div dr-if=\"@this@.selectedCard\" class=\"card-select-summary-selected-container\">\n <img dr-attr=\"{src:@this@.selectedCard?.iconImg}\"> ${@this@.selectedCard?.name}$\n </div>\n </dr-select-summary-selected>\n </dr-select-summary>\n\n <dr-select-body float=\"bottom-left\" class=\"card-select-body-container\">\n <dr-select-option dr-for-of=\"@this@.cards\" value=\"${#it#.name}$\" selected=\"${#nearForOfIndex# === 0}$\" class=\"card-select-body-option-container\">\n <img dr-attr=\"{src:#it#.iconImg}\"> ${#it#.name}$\n </dr-select-option>\n </dr-select-body>\n </dr-select>\n */\n\nexport namespace Select {\n export const selector = 'dr-select';\n\n // Base for simple hide/show components\n class StateComponent extends ComponentBase {\n public hidden = true;\n public value: string | null = null;\n\n constructor(config: any) {\n super(config);\n }\n\n setValue(value: string | null) {\n this.value = value;\n }\n }\n\n // --- Option Child Components ---\n export class OptionSelected extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n export class OptionUnselected extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n export class OptionDisabled extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n // --- Summary Child Components ---\n export class SummaryPlaceholder extends StateComponent {\n constructor() {\n super({onlyParentType: Summary});\n }\n }\n\n export class SummarySelected extends StateComponent {\n private selectedOptions: Select.Option[] = [];\n\n constructor() {\n super({onlyParentType: Summary});\n }\n\n setOptions(options: Option[] = []) {\n this.selectedOptions = options.filter(it => it.selected);\n }\n }\n\n export class SummaryDisabled extends StateComponent {\n private selectedOptions: Select.Option[] = [];\n\n constructor() {\n super({onlyParentType: Summary});\n }\n\n setOptions(options: Option[] = []) {\n this.selectedOptions = options.filter(it => it.selected);\n }\n }\n\n // --- Select Body Component ---\n export type SelectBodyAttribute = {\n float?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';\n class?: string;\n }\n // --- Option Component ---\n export type OptionAttribute = { value: string; selected?: boolean | null; disabled?: boolean | null; class?: string; };\n\n export class Option extends ComponentBase<OptionAttribute> implements OnInitRender {\n public hidden = true;\n @attribute({name: 'value'}) public value: string | null = null;\n @attribute({name: 'selected', converter: v => v !== null && v === true}) public selected = false;\n @attribute({name: 'disabled', converter: v => v !== null && v === true}) public disabled = false;\n @attribute({name: 'class', converter: v => (v ? v : null)}) public classAttr: string | null = null;\n\n // public status: 'selected' | 'unselected' | 'disabled' = 'unselected';\n\n constructor() {\n super({onlyParentType: SelectBody});\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // console.log('-----', this.value, this.selected)\n // this.getElement()?.addEventListener('click', (e) => {\n // e.stopPropagation();\n // if (!this.disabled) {\n // this.getParentThis<Select>().handleOptionClick(this);\n // }\n // });\n this.updateStatus();\n }\n\n // onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // super.onCreatedThisChild(child, data);\n // this.updateStatus();\n // }\n\n // async onRawSetRendered(rawSet:RawSet, otherData:OnRawSetRenderedOtherData):Promise<void>{\n // await super.onRawSetRendered(rawSet, otherData);\n // }\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n super.onCreatedThisChildDebounce(childrenSet);\n this.updateStatus();\n }\n\n toggleSelected(event: Event) {\n // console.log('isMultiple', this.isMultiple())\n if (!this.disabled) {\n this.selected = this.isMultiple() ? !this.selected : true;\n // this.selected = !this.selected;\n this.updateStatus();\n this.getParentThis<SelectBody>().changeOptionState(this);\n } else {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n isMultiple() {\n return this.getParentThis<Select.SelectBody>()?.getParentThis<Select.Select>().multiple;\n }\n\n updateStatus() {\n if (this.disabled) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n return;\n }\n\n if (this.selected) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n }\n\n if (!this.selected) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n }\n }\n }\n\n // --- Summary Component ---\n export class Summary extends ComponentBase implements OnInitRender {\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n private options: Select.Option[] = [];\n private disabled: boolean = false;\n public element?: HTMLElement;\n\n // constructor() {\n // super({ onlyParentType: Select });\n // }\n\n setDisabled(disabled: boolean) {\n this.disabled = disabled;\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));\n this.getChildren(SummarySelected).forEach(it => (it.hidden = true));\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = false));\n }\n\n setOptions(options: Option[] = []): void {\n this.options = options;\n\n const selectedOptions = this.options.filter(it => it.selected && !it.disabled);\n if (!this.disabled) {\n if (selectedOptions.length > 0) {\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));\n this.getChildren(SummarySelected).forEach(c => {\n c.setOptions(options);\n c.hidden = false;\n });\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));\n } else {\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = false));\n this.getChildren(SummarySelected).forEach(c => (c.hidden = true));\n }\n }\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // this.getElement()?.addEventListener('click', (e) => {\n // e.stopPropagation();\n // this.getParentThis<Select>().toggle();\n // });\n }\n\n onInitSummaryElement(element: HTMLElement, event: Event) {\n this.element = element;\n }\n\n updateView(hasSelection: boolean) {\n this.getChildren(SummaryPlaceholder).forEach(c => (c.hidden = hasSelection));\n this.getChildren(SummarySelected).forEach(c => (c.hidden = !hasSelection));\n }\n\n // onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // super.onCreatedThisChild(child, data);\n // }\n // async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n // await super.onRawSetRendered(rawSet, otherData);\n // }\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n super.onCreatedThisChildDebounce(childrenSet);\n this.updateView(this.getParentThis<Select>()?.selectedValues?.length > 0);\n }\n\n onSummaryClick(element: HTMLElement, event: Event) {\n if (this.getParentThis<Select>()?.disabled) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n }\n }\n\n\n export class SelectBody extends ComponentBase<SelectBodyAttribute> {\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n @attribute({name: 'float'}) public float: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | null = null;\n\n constructor() {\n super({onlyParentType: Select});\n }\n\n async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n await super.onRawSetRendered(rawSet, otherData);\n // }\n // onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n // super.onCreatedThisChildDebounce(childrenSet);\n this.changeOptionState();\n }\n\n changeOptionState(option?: Option) {\n const options = this.getChildren(Option);\n const select = this.getParentThis<Select>();\n // console.log('------opti',option, select);\n // // 멀티플이 아닐때에는 마지막 선택된값으로 처리\n if (!select.multiple) {\n // 내가 선택한게 있으면\n if (option && option.selected) {\n options.filter(it => it !== option).forEach(it => {\n it.selected = false;\n it.updateStatus();\n });\n } else {\n const selectedOptions = options.filter(it => it.selected && !it.disabled);\n selectedOptions.forEach((opt, idx) => {\n const isLast = idx === selectedOptions.length - 1;\n if (!isLast) {\n opt.selected = false;\n opt.updateStatus();\n }\n });\n }\n }\n // console.log('--------', options.map(it=>it.selected))\n select?.setOptions(options);\n }\n }\n\n\n // --- Main Select Component ---\n export type SelectAttribute = {\n multiple?: boolean | null; class?: string;\n onchange?: (value?: string) => void;\n onchangeValues?: (value: string[]) => void;\n name?: string;\n float?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';\n disableOtherClickClose?: boolean;\n toggle?: (open: boolean) => void;\n disabled?: boolean | null;\n };\n\n export class Select extends ComponentBase<SelectAttribute> implements OnInitRender, OnCreateRender, OnCreateRenderData, OnDestroyRender {\n @attribute({name: 'multiple', converter: v => v !== null}) public multiple = false;\n @attribute({name: 'disabled', converter: v => v !== null}) public disabled = false;\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n @attribute({name: 'name', converter: v => (v === '' ? null : v)}) public name: string | null = null;\n\n // public isOpen = false;\n public selectedValues: (string | null)[] = [];\n public selectedOptions: Option[] = [];\n private value: string | (string | null)[] | null | undefined;\n\n @DomRenderNoProxy private element?: HTMLDetailsElement;\n @DomRenderNoProxy private documentClickSubscription?: Subscription;\n @DomRenderNoProxy private windowBlurSubscription?: Subscription;\n @DomRenderNoProxy public summaryComponent?: Summary;\n @DomRenderNoProxy public selectBodyComponent?: SelectBody;\n private options?: Select.Option[];\n\n constructor(config?: DomRenderConfig) {\n super();\n // console.log('----Select constructor')\n }\n\n // get value(): string | (string | null)[] | null | undefined {\n // return this._value;\n // }\n // set value(val: string | (string | null)[] | null | undefined) {\n // console.log('value set', val)\n // this._value = val;\n // }\n\n get optionComponents(): Option[] {\n return this.getChildren(Option);\n }\n\n onCreateRender() {\n\n }\n\n onCreateRenderData() {\n\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // console.log('select onInitRender', this.multiple)\n\n if (ValidUtils.isBrowser() && this.rawSet?.dataSet.config.window) {\n const detailsElement = this.element;\n\n const window = this.rawSet.dataSet!.config!.window!;\n const document = window.document;\n this.documentClickSubscription = EventUtils.htmlElementEventObservable(document, 'click').subscribe(event => {\n const isSummaryClick = this.getChildren(Summary).some(it => event.target && it.element?.contains(event.target as Node) || it.element === event.target)\n if (!isSummaryClick && this.getAttribute('disableOtherClickClose')) {\n return;\n }\n if (!isSummaryClick && !this.multiple && detailsElement) {\n detailsElement.open = false;\n return;\n }\n if (!isSummaryClick && detailsElement && !detailsElement?.contains(event?.target as Node)) {\n detailsElement.open = false;\n }\n })\n\n this.windowBlurSubscription = WindowUtils.eventObservable(window, 'blur').subscribe(() => {\n if (detailsElement?.open && window.document.activeElement?.tagName === 'IFRAME') {\n detailsElement.open = false;\n }\n });\n }\n }\n\n\n toggle(element: HTMLDetailsElement, event: Event) {\n // console.log('------>', this.disabled, event)\n // if (this.disabled) {\n // event.stopPropagation();\n // event.preventDefault();\n // return;\n // }\n const toggleAttribute = this.getAttribute('toggle');\n if (toggleAttribute) {\n toggleAttribute?.(element.open);\n }\n }\n\n setOptions(options: Option[]) {\n const summaries = this.getChildren(Summary);\n\n this.options = options;\n\n const values = this.options.filter(it => it.selected && !it.disabled).map(it => it.value)\n summaries?.forEach(it => {\n it.setDisabled(this.disabled);\n if (!this.disabled) {\n it.setOptions(options);\n }\n });\n this.selectedValues = values;\n this.selectedOptions = this.options.filter(it => it.selected && !it.disabled);\n this.value = this.selectedValues[0];\n this.getAttribute('onchange')?.(this.value);\n this.getAttribute('onchangeValues')?.(values);\n }\n\n onInitDetailsElement(detailsElement: HTMLDetailsElement) {\n // console.log('detailsElement oninit', detailsElement);\n this.element = detailsElement;\n }\n\n onDrThisUnBind() {\n super.onDrThisUnBind();\n this.onDestroyRender();\n }\n\n onDestroyRender() {\n super.onDestroyRender();\n this.documentClickSubscription?.unsubscribe();\n this.windowBlurSubscription?.unsubscribe();\n }\n\n @attribute('value')\n setValue(value: string | null | undefined) {\n this.value = value;\n if (this.options) {\n\n // clear\n this.options.forEach(it=> {\n it.selected = false;\n it.updateStatus();\n });\n for (let option of this.options) {\n if (option.value === value) {\n option.selected = true;\n if (!this.multiple) {\n // 하나만 선택\n break;\n }\n } else {\n option.selected = false;\n }\n option.updateStatus()\n }\n }\n console.log('value set', value)\n }\n\n test() {\n console.log('tttttttt')\n }\n }\n}\n\nconst stateComponentFactory = (name: string, type: any) => {\n return (config?: DomRenderRunConfig) =>\n RawSet.createComponentTargetElement({\n name,\n template: '<div dr-if=\"!@this@.hidden\" dr-option-strip=\"true\">#innerHTML#</div>\\n',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new type(), config})\n });\n};\n\nexport default {\n select: (config?: DomRenderConfig) => {\n return RawSet.createComponentTargetElement({\n name: Select.selector,\n styles:\n '.dr-select-container {\\n' +\n ' position: relative;\\n' +\n '\\n' +\n '}\\n' +\n '.dr-select-options-container {\\n' +\n ' display: none;\\n' +\n ' position: absolute;\\n' +\n ' top: 100%;\\n' +\n ' left: 0;\\n' +\n ' right: 0;\\n' +\n ' z-index: 10;\\n' +\n '}\\n' +\n '.dr-select-container.is-open .dr-select-options-container {\\n' +\n ' display: block;\\n' +\n '}\\n' +\n 'summary::-webkit-details-marker {\\n' +\n ' display: none;\\n' +\n '}\\n' +\n '/* Floating styles for dr-select-body */\\n' +\n '.dr-select-body-container {\\n' +\n ' position: absolute;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-bottom-left-container {\\n' +\n ' position: absolute;\\n' +\n ' left: 0;\\n' +\n ' top: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-bottom-right-container {\\n' +\n ' position: absolute;\\n' +\n ' right: 0;\\n' +\n ' top: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-top-left-container {\\n' +\n ' position: absolute;\\n' +\n ' left: 0;\\n' +\n ' bottom: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-top-right-container {\\n' +\n ' position: absolute;\\n' +\n ' right: 0;\\n' +\n ' bottom: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '/* Reset default details/summary styles */\\n' +\n '.dr-select-container details {\\n' +\n ' display: block; /* Ensure it behaves like a block element */\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-container summary {\\n' +\n ' display: block; /* Ensure it behaves like a block element */\\n' +\n ' list-style: none; /* Remove default marker */\\n' +\n \" cursor: pointer; /* Indicate it's clickable */\\n\" +\n '}\\n' +\n '\\n' +\n '.dr-select-container summary::-webkit-details-marker,\\n' +\n '.dr-select-container summary::marker {\\n' +\n ' display: none; /* Hide marker for Webkit and standard */\\n' +\n '}',\n template:\n '<details dr-class=\"{\\n' +\n \" 'dr-select-container': true,\\n\" +\n \" 'is-open': @this@.isOpen,\\n\" +\n ' [@this@.classAttr]: @this@.classAttr\\n' +\n ' }\" dr-on-init=\"@this@.onInitDetailsElement($element)\" dr-option-complete=\"@this@.test()\" dr-event-toggle=\"@this@.toggle($element, $event)\">\\n' +\n '\\n' +\n ' #innerHTML#\\n' +\n '</details>\\n' +\n '<select hidden=\"hidden\" name=\"${@this@.name}$\" disabled=\"${@this@.disabled ? \\'disabled\\' : null}$\" style=\"width: 1500px; height:500px\" multiple>\\n' +\n ' <option dr-for-of=\"@this@.options\" value=\"${#it#.value}$\" selected=\"${#it#.selected ? \\'selected\\' : null}$\">#it# ${#it#.value}$</option>\\n' +\n '</select>',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Select(config), config})\n });\n },\n selectSummary: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-summary`,\n template:\n '<summary dr-class=\"{[@this@.classAttr]: @this@.classAttr}\"\\n' +\n ' dr-on-init=\"@this@.onInitSummaryElement($element, $event)\"\\n' +\n ' dr-event-click=\"@this@.onSummaryClick($element, $event)\"\\n' +\n '>\\n' +\n '#innerHTML#\\n' +\n '</summary>',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Summary(), config})\n });\n },\n selectSummaryPlaceholder: stateComponentFactory(`${Select.selector}-summary-placeholder`, Select.SummaryPlaceholder),\n selectSummarySelected: stateComponentFactory(`${Select.selector}-summary-selected`, Select.SummarySelected),\n selectSummaryDisabled: stateComponentFactory(`${Select.selector}-summary-disabled`, Select.SummaryDisabled),\n\n selectBody: (config?: DomRenderRunConfig) => { // New export\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-body`,\n template: '<div dr-class=\"{[@this@.classAttr]: @this@.classAttr, \\'dr-select-body-container\\': true, [\\'dr-select-body-\\'+@this@.float+\\'-container\\']: @this@.float}\">#innerHTML#</div>',\n objFactory: (e, o, r2, constructorParam) => {\n return DomRender.run({rootObject: new Select.SelectBody(), config: config});\n }\n })\n },\n\n selectOption: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-option`,\n template:\n '<a dr-class=\"{[@this@.classAttr]: @this@.classAttr}\" dr-event-click=\"@this@.toggleSelected($event)\">#innerHTML#</a>\\n',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Option(), config})\n });\n },\n selectOptionSelected: stateComponentFactory(`${Select.selector}-option-selected`, Select.OptionSelected),\n selectOptionUnselected: stateComponentFactory(`${Select.selector}-option-unselected`, Select.OptionUnselected),\n selectOptionDisabled: stateComponentFactory(`${Select.selector}-option-disabled`, Select.OptionDisabled),\n};"],
4
+ "sourcesContent": ["import {attribute, ChildrenSet, ComponentBase} from '../ComponentBase';\nimport {DomRender, DomRenderRunConfig} from '../../DomRender';\nimport {RawSet} from '../../rawsets/RawSet';\nimport {OnCreateRenderData} from '../../lifecycle/OnCreateRenderData';\nimport {OnInitRender} from '../../lifecycle/OnInitRender';\nimport {OnDestroyRender} from '../../lifecycle/OnDestroyRender';\nimport {EventUtils} from '@dooboostore/core-web';\nimport {type Subscription} from '@dooboostore/core';\nimport {ValidUtils} from '@dooboostore/core-web';\nimport {DomRenderNoProxy} from '../../decorators/DomRenderNoProxy';\nimport {OnCreateRender} from '../../lifecycle/OnCreateRender';\nimport {DomRenderConfig} from '../../configs/DomRenderConfig';\nimport {WindowUtils} from '@dooboostore/core-web';\nimport {OnRawSetRenderedOtherData} from '../../lifecycle';\n\n/** 사용법\n <dr-select class=\"card-select-container\" changeSelected=\"${(data) => @this@.changeSelected(data)}$\"> <!-- multiple attribute optional-->\n <dr-select-summary class=\"card-select-summary-container\">\n <dr-select-summary-placeholder>\n <div class=\"card-select-summary-placeholder-container\">카드사별 사용처 안내 페이지 선택</div>\n </dr-select-summary-placeholder>\n <dr-select-summary-selected>\n <div dr-if=\"@this@.selectedCard\" class=\"card-select-summary-selected-container\">\n <img dr-attr=\"{src:@this@.selectedCard?.iconImg}\"> ${@this@.selectedCard?.name}$\n </div>\n </dr-select-summary-selected>\n </dr-select-summary>\n\n <dr-select-body float=\"bottom-left\" class=\"card-select-body-container\">\n <dr-select-option dr-for-of=\"@this@.cards\" value=\"${#it#.name}$\" selected=\"${#nearForOfIndex# === 0}$\" class=\"card-select-body-option-container\">\n <img dr-attr=\"{src:#it#.iconImg}\"> ${#it#.name}$\n </dr-select-option>\n </dr-select-body>\n </dr-select>\n */\n\nexport namespace Select {\n export const selector = 'dr-select';\n\n // Base for simple hide/show components\n class StateComponent extends ComponentBase {\n public hidden = true;\n public value: string | null = null;\n\n constructor(config: any) {\n super(config);\n }\n\n setValue(value: string | null) {\n this.value = value;\n }\n }\n\n // --- Option Child Components ---\n export class OptionSelected extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n export class OptionUnselected extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n export class OptionDisabled extends StateComponent {\n constructor() {\n super({onlyParentType: Option});\n }\n }\n\n // --- Summary Child Components ---\n export class SummaryPlaceholder extends StateComponent {\n constructor() {\n super({onlyParentType: Summary});\n }\n }\n\n export class SummarySelected extends StateComponent {\n private selectedOptions: Select.Option[] = [];\n\n constructor() {\n super({onlyParentType: Summary});\n }\n\n setOptions(options: Option[] = []) {\n this.selectedOptions = options.filter(it => it.selected);\n }\n }\n\n export class SummaryDisabled extends StateComponent {\n private selectedOptions: Select.Option[] = [];\n\n constructor() {\n super({onlyParentType: Summary});\n }\n\n setOptions(options: Option[] = []) {\n this.selectedOptions = options.filter(it => it.selected);\n }\n }\n\n // --- Select Body Component ---\n export type SelectBodyAttribute = {\n float?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';\n class?: string;\n }\n // --- Option Component ---\n export type OptionAttribute = { value: string; selected?: boolean | null; disabled?: boolean | null; class?: string; };\n\n export class Option extends ComponentBase<OptionAttribute> implements OnInitRender {\n public hidden = true;\n @attribute({name: 'value'}) public value: string | null = null;\n @attribute({name: 'selected', converter: v => v !== null && v === true}) public selected = false;\n @attribute({name: 'disabled', converter: v => v !== null && v === true}) public disabled = false;\n @attribute({name: 'class', converter: v => (v ? v : null)}) public classAttr: string | null = null;\n\n // public status: 'selected' | 'unselected' | 'disabled' = 'unselected';\n\n constructor() {\n super({onlyParentType: SelectBody});\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // console.log('-----', this.value, this.selected)\n // this.getElement()?.addEventListener('click', (e) => {\n // e.stopPropagation();\n // if (!this.disabled) {\n // this.getParentThis<Select>().handleOptionClick(this);\n // }\n // });\n this.updateStatus();\n }\n\n // onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // super.onCreatedThisChild(child, data);\n // this.updateStatus();\n // }\n\n // async onRawSetRendered(rawSet:RawSet, otherData:OnRawSetRenderedOtherData):Promise<void>{\n // await super.onRawSetRendered(rawSet, otherData);\n // }\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n super.onCreatedThisChildDebounce(childrenSet);\n this.updateStatus();\n }\n\n toggleSelected(event: Event) {\n // console.log('isMultiple', this.isMultiple())\n if (!this.disabled) {\n this.selected = this.isMultiple() ? !this.selected : true;\n // this.selected = !this.selected;\n this.updateStatus();\n this.getParentThis<SelectBody>().changeOptionState(this);\n } else {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n isMultiple() {\n return this.getParentThis<Select.SelectBody>()?.getParentThis<Select.Select>().multiple;\n }\n\n updateStatus() {\n if (this.disabled) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n return;\n }\n\n if (this.selected) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n }\n\n if (!this.selected) {\n this.getChildren(OptionSelected).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n this.getChildren(OptionUnselected).forEach(c => {\n c.hidden = false;\n c.setValue(this.value)\n });\n this.getChildren(OptionDisabled).forEach(c => {\n c.hidden = true;\n c.setValue(this.value)\n });\n }\n }\n }\n\n // --- Summary Component ---\n export class Summary extends ComponentBase implements OnInitRender {\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n private options: Select.Option[] = [];\n private disabled: boolean = false;\n public element?: HTMLElement;\n\n // constructor() {\n // super({ onlyParentType: Select });\n // }\n\n setDisabled(disabled: boolean) {\n this.disabled = disabled;\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));\n this.getChildren(SummarySelected).forEach(it => (it.hidden = true));\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = false));\n }\n\n setOptions(options: Option[] = []): void {\n this.options = options;\n\n const selectedOptions = this.options.filter(it => it.selected && !it.disabled);\n if (!this.disabled) {\n if (selectedOptions.length > 0) {\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = true));\n this.getChildren(SummarySelected).forEach(c => {\n c.setOptions(options);\n c.hidden = false;\n });\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));\n } else {\n this.getChildren(SummaryDisabled).forEach(it => (it.hidden = true));\n this.getChildren(SummaryPlaceholder).forEach(it => (it.hidden = false));\n this.getChildren(SummarySelected).forEach(c => (c.hidden = true));\n }\n }\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // this.getElement()?.addEventListener('click', (e) => {\n // e.stopPropagation();\n // this.getParentThis<Select>().toggle();\n // });\n }\n\n onInitSummaryElement(element: HTMLElement, event: Event) {\n this.element = element;\n }\n\n updateView(hasSelection: boolean) {\n this.getChildren(SummaryPlaceholder).forEach(c => (c.hidden = hasSelection));\n this.getChildren(SummarySelected).forEach(c => (c.hidden = !hasSelection));\n }\n\n // onCreatedThisChild(child: any, data: OnCreateRenderDataParams) {\n // super.onCreatedThisChild(child, data);\n // }\n // async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n // await super.onRawSetRendered(rawSet, otherData);\n // }\n onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n super.onCreatedThisChildDebounce(childrenSet);\n this.updateView(this.getParentThis<Select>()?.selectedValues?.length > 0);\n }\n\n onSummaryClick(element: HTMLElement, event: Event) {\n if (this.getParentThis<Select>()?.disabled) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n }\n }\n\n\n export class SelectBody extends ComponentBase<SelectBodyAttribute> {\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n @attribute({name: 'float'}) public float: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | null = null;\n\n constructor() {\n super({onlyParentType: Select});\n }\n\n async onRawSetRendered(rawSet: RawSet, otherData: OnRawSetRenderedOtherData): Promise<void> {\n await super.onRawSetRendered(rawSet, otherData);\n // }\n // onCreatedThisChildDebounce(childrenSet: ChildrenSet[]) {\n // super.onCreatedThisChildDebounce(childrenSet);\n this.changeOptionState();\n }\n\n changeOptionState(option?: Option) {\n const options = this.getChildren(Option);\n const select = this.getParentThis<Select>();\n // console.log('------opti',option, select);\n // // 멀티플이 아닐때에는 마지막 선택된값으로 처리\n if (!select.multiple) {\n // 내가 선택한게 있으면\n if (option && option.selected) {\n options.filter(it => it !== option).forEach(it => {\n it.selected = false;\n it.updateStatus();\n });\n } else {\n const selectedOptions = options.filter(it => it.selected && !it.disabled);\n selectedOptions.forEach((opt, idx) => {\n const isLast = idx === selectedOptions.length - 1;\n if (!isLast) {\n opt.selected = false;\n opt.updateStatus();\n }\n });\n }\n }\n // console.log('--------', options.map(it=>it.selected))\n select?.setOptions(options);\n }\n }\n\n\n // --- Main Select Component ---\n export type SelectAttribute = {\n multiple?: boolean | null; class?: string;\n onchange?: (value?: string) => void;\n onchangeValues?: (value: string[]) => void;\n name?: string;\n float?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';\n disableOtherClickClose?: boolean;\n toggle?: (open: boolean) => void;\n disabled?: boolean | null;\n };\n\n export class Select extends ComponentBase<SelectAttribute> implements OnInitRender, OnCreateRender, OnCreateRenderData, OnDestroyRender {\n @attribute({name: 'multiple', converter: v => v !== null}) public multiple = false;\n @attribute({name: 'disabled', converter: v => v !== null}) public disabled = false;\n @attribute({name: 'class', converter: v => (v === '' ? null : v)}) public classAttr: string | null = null;\n @attribute({name: 'name', converter: v => (v === '' ? null : v)}) public name: string | null = null;\n\n // public isOpen = false;\n public selectedValues: (string | null)[] = [];\n public selectedOptions: Option[] = [];\n private value: string | (string | null)[] | null | undefined;\n\n @DomRenderNoProxy private element?: HTMLDetailsElement;\n @DomRenderNoProxy private documentClickSubscription?: Subscription;\n @DomRenderNoProxy private windowBlurSubscription?: Subscription;\n @DomRenderNoProxy public summaryComponent?: Summary;\n @DomRenderNoProxy public selectBodyComponent?: SelectBody;\n private options?: Select.Option[];\n\n constructor(config?: DomRenderConfig) {\n super();\n // console.log('----Select constructor')\n }\n\n // get value(): string | (string | null)[] | null | undefined {\n // return this._value;\n // }\n // set value(val: string | (string | null)[] | null | undefined) {\n // console.log('value set', val)\n // this._value = val;\n // }\n\n get optionComponents(): Option[] {\n return this.getChildren(Option);\n }\n\n onCreateRender() {\n\n }\n\n onCreateRenderData() {\n\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n // console.log('select onInitRender', this.multiple)\n\n if (ValidUtils.isBrowser() && this.rawSet?.dataSet.config.window) {\n const detailsElement = this.element;\n\n const window = this.rawSet.dataSet!.config!.window!;\n const document = window.document;\n this.documentClickSubscription = EventUtils.htmlElementEventObservable(document, 'click').subscribe(event => {\n const isSummaryClick = this.getChildren(Summary).some(it => event.target && it.element?.contains(event.target as Node) || it.element === event.target)\n if (!isSummaryClick && this.getAttribute('disableOtherClickClose')) {\n return;\n }\n if (!isSummaryClick && !this.multiple && detailsElement) {\n detailsElement.open = false;\n return;\n }\n if (!isSummaryClick && detailsElement && !detailsElement?.contains(event?.target as Node)) {\n detailsElement.open = false;\n }\n })\n\n this.windowBlurSubscription = WindowUtils.eventObservable(window, 'blur').subscribe(() => {\n if (detailsElement?.open && window.document.activeElement?.tagName === 'IFRAME') {\n detailsElement.open = false;\n }\n });\n }\n }\n\n\n toggle(element: HTMLDetailsElement, event: Event) {\n // console.log('------>', this.disabled, event)\n // if (this.disabled) {\n // event.stopPropagation();\n // event.preventDefault();\n // return;\n // }\n const toggleAttribute = this.getAttribute('toggle');\n if (toggleAttribute) {\n toggleAttribute?.(element.open);\n }\n }\n\n setOptions(options: Option[]) {\n const summaries = this.getChildren(Summary);\n\n this.options = options;\n\n const values = this.options.filter(it => it.selected && !it.disabled).map(it => it.value)\n summaries?.forEach(it => {\n it.setDisabled(this.disabled);\n if (!this.disabled) {\n it.setOptions(options);\n }\n });\n this.selectedValues = values;\n this.selectedOptions = this.options.filter(it => it.selected && !it.disabled);\n this.value = this.selectedValues[0];\n this.getAttribute('onchange')?.(this.value);\n this.getAttribute('onchangeValues')?.(values);\n }\n\n onInitDetailsElement(detailsElement: HTMLDetailsElement) {\n // console.log('detailsElement oninit', detailsElement);\n this.element = detailsElement;\n }\n\n onDrThisUnBind() {\n super.onDrThisUnBind();\n this.onDestroyRender();\n }\n\n onDestroyRender() {\n super.onDestroyRender();\n this.documentClickSubscription?.unsubscribe();\n this.windowBlurSubscription?.unsubscribe();\n }\n\n @attribute('value')\n setValue(value: string | null | undefined) {\n this.value = value;\n if (this.options) {\n\n // clear\n this.options.forEach(it=> {\n it.selected = false;\n it.updateStatus();\n });\n for (let option of this.options) {\n if (option.value === value) {\n option.selected = true;\n if (!this.multiple) {\n // 하나만 선택\n break;\n }\n } else {\n option.selected = false;\n }\n option.updateStatus()\n }\n }\n console.log('value set', value)\n }\n\n test() {\n console.log('tttttttt')\n }\n }\n}\n\nconst stateComponentFactory = (name: string, type: any) => {\n return (config?: DomRenderRunConfig) =>\n RawSet.createComponentTargetElement({\n name,\n template: '<div dr-if=\"!@this@.hidden\" dr-option-strip=\"true\">#innerHTML#</div>\\n',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new type(), config})\n });\n};\n\nexport default {\n select: (config?: DomRenderConfig) => {\n return RawSet.createComponentTargetElement({\n name: Select.selector,\n styles:\n '.dr-select-container {\\n' +\n ' position: relative;\\n' +\n '\\n' +\n '}\\n' +\n '.dr-select-options-container {\\n' +\n ' display: none;\\n' +\n ' position: absolute;\\n' +\n ' top: 100%;\\n' +\n ' left: 0;\\n' +\n ' right: 0;\\n' +\n ' z-index: 10;\\n' +\n '}\\n' +\n '.dr-select-container.is-open .dr-select-options-container {\\n' +\n ' display: block;\\n' +\n '}\\n' +\n 'summary::-webkit-details-marker {\\n' +\n ' display: none;\\n' +\n '}\\n' +\n '/* Floating styles for dr-select-body */\\n' +\n '.dr-select-body-container {\\n' +\n ' position: absolute;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-bottom-left-container {\\n' +\n ' position: absolute;\\n' +\n ' left: 0;\\n' +\n ' top: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-bottom-right-container {\\n' +\n ' position: absolute;\\n' +\n ' right: 0;\\n' +\n ' top: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-top-left-container {\\n' +\n ' position: absolute;\\n' +\n ' left: 0;\\n' +\n ' bottom: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-body-top-right-container {\\n' +\n ' position: absolute;\\n' +\n ' right: 0;\\n' +\n ' bottom: 100%;\\n' +\n '}\\n' +\n '\\n' +\n '/* Reset default details/summary styles */\\n' +\n '.dr-select-container details {\\n' +\n ' display: block; /* Ensure it behaves like a block element */\\n' +\n '}\\n' +\n '\\n' +\n '.dr-select-container summary {\\n' +\n ' display: block; /* Ensure it behaves like a block element */\\n' +\n ' list-style: none; /* Remove default marker */\\n' +\n \" cursor: pointer; /* Indicate it's clickable */\\n\" +\n '}\\n' +\n '\\n' +\n '.dr-select-container summary::-webkit-details-marker,\\n' +\n '.dr-select-container summary::marker {\\n' +\n ' display: none; /* Hide marker for Webkit and standard */\\n' +\n '}',\n template:\n '<details dr-class=\"{\\n' +\n \" 'dr-select-container': true,\\n\" +\n \" 'is-open': @this@.isOpen,\\n\" +\n ' [@this@.classAttr]: @this@.classAttr\\n' +\n ' }\" dr-on-init=\"@this@.onInitDetailsElement($element)\" dr-option-complete=\"@this@.test()\" dr-event-toggle=\"@this@.toggle($element, $event)\">\\n' +\n '\\n' +\n ' #innerHTML#\\n' +\n '</details>\\n' +\n '<select hidden=\"hidden\" name=\"${@this@.name}$\" disabled=\"${@this@.disabled ? \\'disabled\\' : null}$\" style=\"width: 1500px; height:500px\" multiple>\\n' +\n ' <option dr-for-of=\"@this@.options\" value=\"${#it#.value}$\" selected=\"${#it#.selected ? \\'selected\\' : null}$\">#it# ${#it#.value}$</option>\\n' +\n '</select>',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Select(config), config})\n });\n },\n selectSummary: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-summary`,\n template:\n '<summary dr-class=\"{[@this@.classAttr]: @this@.classAttr}\"\\n' +\n ' dr-on-init=\"@this@.onInitSummaryElement($element, $event)\"\\n' +\n ' dr-event-click=\"@this@.onSummaryClick($element, $event)\"\\n' +\n '>\\n' +\n '#innerHTML#\\n' +\n '</summary>',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Summary(), config})\n });\n },\n selectSummaryPlaceholder: stateComponentFactory(`${Select.selector}-summary-placeholder`, Select.SummaryPlaceholder),\n selectSummarySelected: stateComponentFactory(`${Select.selector}-summary-selected`, Select.SummarySelected),\n selectSummaryDisabled: stateComponentFactory(`${Select.selector}-summary-disabled`, Select.SummaryDisabled),\n\n selectBody: (config?: DomRenderRunConfig) => { // New export\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-body`,\n template: '<div dr-class=\"{[@this@.classAttr]: @this@.classAttr, \\'dr-select-body-container\\': true, [\\'dr-select-body-\\'+@this@.float+\\'-container\\']: @this@.float}\">#innerHTML#</div>',\n objFactory: (e, o, r2, constructorParam) => {\n return DomRender.run({rootObject: new Select.SelectBody(), config: config});\n }\n })\n },\n\n selectOption: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: `${Select.selector}-option`,\n template:\n '<a dr-class=\"{[@this@.classAttr]: @this@.classAttr}\" dr-event-click=\"@this@.toggleSelected($event)\">#innerHTML#</a>\\n',\n objFactory: (e, o, r2, constructorParam) => DomRender.run({rootObject: new Select.Option(), config})\n });\n },\n selectOptionSelected: stateComponentFactory(`${Select.selector}-option-selected`, Select.OptionSelected),\n selectOptionUnselected: stateComponentFactory(`${Select.selector}-option-unselected`, Select.OptionUnselected),\n selectOptionDisabled: stateComponentFactory(`${Select.selector}-option-disabled`, Select.OptionDisabled),\n};"],
5
5
  "mappings": "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",
6
6
  "names": ["Select"]
7
7
  }
@@ -26,6 +26,9 @@ var This;
26
26
  onDestroyRender(data) {
27
27
  super.onDestroyRender(data);
28
28
  }
29
+ onDestroy() {
30
+ super.onDestroy();
31
+ }
29
32
  onChangeAttrRender(name, value, other) {
30
33
  super.onChangeAttrRender(name, value, other);
31
34
  if (this.equalsAttributeName(name, "value")) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/this/This.ts"],
4
- "sourcesContent": ["import { ComponentBase } from '../ComponentBase';\nimport { DomRender, DomRenderRunConfig } from '../../DomRender';\nimport { RawSet } from '../../rawsets/RawSet';\nimport { isOnChangeAttrRender, OtherData } from '../../lifecycle/OnChangeAttrRender';\nimport { OnInitRender } from '../../lifecycle/OnInitRender';\nimport { ComponentSet } from '../../components/ComponentSet';\nimport { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';\n\nexport namespace This {\n export const selector = 'dr-this';\n export type Attribute = {\n value: ComponentSet;\n if: boolean | null;\n createArguments: any[];\n onCreated?: (value: any) => void;\n onDestroyRender?: () => void;\n };\n\n export class This extends ComponentBase<Attribute> implements OnInitRender {\n private value?: ComponentSet;\n private if?: boolean | null = null;\n private createArguments?: any[];\n private childObject?: any;\n private childRawSet?: RawSet;\n private sw = false;\n\n setValue(value: ComponentSet) {\n this.sw = false;\n setTimeout(() => {\n this.value = value;\n }, 0)\n\n setTimeout(() => {\n this.sw = true;\n }, 0)\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n }\n\n onDestroyRender(data: OnDestroyRenderParams) {\n super.onDestroyRender(data);\n }\n\n onChangeAttrRender(name: string, value: any, other: OtherData) {\n super.onChangeAttrRender(name, value, other);\n if (this.equalsAttributeName(name, 'value')) {\n this.setValue(value);\n }\n if (this.equalsAttributeName(name, 'if')) {\n this.if = value;\n }\n if (this.equalsAttributeName(name, 'createArguments')) {\n this.createArguments = value;\n }\n }\n\n created($component: any, $rawSet: RawSet) {\n this.childObject = $component ??= this.value?.obj;\n this.childRawSet = $rawSet;\n \n if ($component) {\n this.getAttribute('onCreated')?.($component);\n \n // attribute \uC804\uB2EC \uCC98\uB9AC\n if (isOnChangeAttrRender($component)) {\n this.getAttributeNames()\n .filter(it => it.startsWith('attribute-'))\n .forEach(it => {\n const attrName = it.replace(/^attribute-/, '');\n const attrValue = this.getAttribute(it as any);\n $rawSet.dataSet.render.attribute ??= {};\n $rawSet.dataSet.render.attribute[attrName] = attrValue;\n $component.onChangeAttrRender(attrName, attrValue, {rawSet: $rawSet});\n });\n }\n }\n }\n }\n}\n\nexport default {\n this: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: This.selector,\n template:\n `\n <dr-if value=\"\\${@this@.sw}$\">\n <div dr-this=\"@this@.value\" dr-detect-option-if=\"@this@?.value && @this@?.if\" dr-option-strip=\"true\" dr-on-create:arguments=\"@this@.createArguments\" dr-on-create:callback=\"@this@?.created?.($component, $rawSet)\">#innerHTML#</div>\n </dr-if>\n `,\n objFactory: (e, o, r2, counstructorParam) => {\n return DomRender.run({ rootObject: new This.This(...counstructorParam), config: config });\n }\n });\n }\n};\n"],
5
- "mappings": "AAAA,SAAS,qBAAqB;AAC9B,SAAS,iBAAqC;AAC9C,SAAS,cAAc;AACvB,SAAS,4BAAuC;AAKzC,IAAU;AAAA,CAAV,CAAU,UAAV;AACE,EAAM,iBAAW;AAAA,EASjB,MAAMA,cAAa,cAAiD;AAAA,IAApE;AAAA;AAEL,WAAQ,KAAsB;AAI9B,WAAQ,KAAK;AAAA;AAAA,IAEb,SAAS,OAAqB;AAC5B,WAAK,KAAK;AACV,iBAAW,MAAM;AACf,aAAK,QAAQ;AAAA,MACf,GAAG,CAAC;AAEJ,iBAAW,MAAM;AACf,aAAK,KAAK;AAAA,MACZ,GAAG,CAAC;AAAA,IACN;AAAA,IAEA,MAAM,aAAa,OAAY,QAAgB;AAC7C,YAAM,MAAM,aAAa,OAAO,MAAM;AAAA,IACxC;AAAA,IAEA,gBAAgB,MAA6B;AAC3C,YAAM,gBAAgB,IAAI;AAAA,IAC5B;AAAA,IAEA,mBAAmB,MAAc,OAAY,OAAkB;AAC7D,YAAM,mBAAmB,MAAM,OAAO,KAAK;AAC3C,UAAI,KAAK,oBAAoB,MAAM,OAAO,GAAG;AAC3C,aAAK,SAAS,KAAK;AAAA,MACrB;AACA,UAAI,KAAK,oBAAoB,MAAM,IAAI,GAAG;AACxC,aAAK,KAAK;AAAA,MACZ;AACA,UAAI,KAAK,oBAAoB,MAAM,iBAAiB,GAAG;AACrD,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAAA,IAEA,QAAQ,YAAiB,SAAiB;AACxC,WAAK,cAAc,4BAAe,KAAK,OAAO;AAC9C,WAAK,cAAc;AAEnB,UAAI,YAAY;AACd,aAAK,aAAa,WAAW,IAAI,UAAU;AAG3C,YAAI,qBAAqB,UAAU,GAAG;AACpC,eAAK,kBAAkB,EACpB,OAAO,QAAM,GAAG,WAAW,YAAY,CAAC,EACxC,QAAQ,QAAM;AArE3B;AAsEc,kBAAM,WAAW,GAAG,QAAQ,eAAe,EAAE;AAC7C,kBAAM,YAAY,KAAK,aAAa,EAAS;AAC7C,0BAAQ,QAAQ,QAAO,cAAvB,GAAuB,YAAc,CAAC;AACtC,oBAAQ,QAAQ,OAAO,UAAU,QAAQ,IAAI;AAC7C,uBAAW,mBAAmB,UAAU,WAAW,EAAC,QAAQ,QAAO,CAAC;AAAA,UACtE,CAAC;AAAA,QACL;AAAA,MACF;AAAA,IACF;AAAA,EACF;AA7DO,QAAM,OAAAA;AAAA,GAVE;AA0EjB,IAAO,eAAQ;AAAA,EACb,MAAM,CAAC,WAAgC;AACrC,WAAO,OAAO,6BAA6B;AAAA,MACzC,MAAM,KAAK;AAAA,MACX,UACE;AAAA;AAAA;AAAA;AAAA;AAAA,MAKF,YAAY,CAAC,GAAG,GAAG,IAAI,sBAAsB;AAC3C,eAAO,UAAU,IAAI,EAAE,YAAY,IAAI,KAAK,KAAK,GAAG,iBAAiB,GAAG,OAAe,CAAC;AAAA,MAC1F;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
4
+ "sourcesContent": ["import { ComponentBase } from '../ComponentBase';\nimport { DomRender, DomRenderRunConfig } from '../../DomRender';\nimport { RawSet } from '../../rawsets/RawSet';\nimport { isOnChangeAttrRender, OtherData } from '../../lifecycle/OnChangeAttrRender';\nimport { OnInitRender } from '../../lifecycle/OnInitRender';\nimport { ComponentSet } from '../../components/ComponentSet';\nimport { OnDestroyRenderParams } from '../../lifecycle/OnDestroyRender';\n\nexport namespace This {\n export const selector = 'dr-this';\n export type Attribute = {\n value: ComponentSet;\n if: boolean | null;\n createArguments: any[];\n onCreated?: (value: any) => void;\n onDestroyRender?: () => void;\n };\n\n export class This extends ComponentBase<Attribute> implements OnInitRender {\n private value?: ComponentSet;\n private if?: boolean | null = null;\n private createArguments?: any[];\n private childObject?: any;\n private childRawSet?: RawSet;\n private sw = false;\n\n setValue(value: ComponentSet) {\n this.sw = false;\n setTimeout(() => {\n this.value = value;\n }, 0)\n\n setTimeout(() => {\n this.sw = true;\n }, 0)\n }\n\n async onInitRender(param: any, rawSet: RawSet) {\n await super.onInitRender(param, rawSet);\n }\n\n onDestroyRender(data: OnDestroyRenderParams) {\n super.onDestroyRender(data);\n }\n onDestroy() {\n super.onDestroy();\n }\n\n onChangeAttrRender(name: string, value: any, other: OtherData) {\n super.onChangeAttrRender(name, value, other);\n if (this.equalsAttributeName(name, 'value')) {\n this.setValue(value);\n }\n if (this.equalsAttributeName(name, 'if')) {\n this.if = value;\n }\n if (this.equalsAttributeName(name, 'createArguments')) {\n this.createArguments = value;\n }\n }\n\n created($component: any, $rawSet: RawSet) {\n this.childObject = $component ??= this.value?.obj;\n this.childRawSet = $rawSet;\n \n if ($component) {\n this.getAttribute('onCreated')?.($component);\n \n // attribute \uC804\uB2EC \uCC98\uB9AC\n if (isOnChangeAttrRender($component)) {\n this.getAttributeNames()\n .filter(it => it.startsWith('attribute-'))\n .forEach(it => {\n const attrName = it.replace(/^attribute-/, '');\n const attrValue = this.getAttribute(it as any);\n $rawSet.dataSet.render.attribute ??= {};\n $rawSet.dataSet.render.attribute[attrName] = attrValue;\n $component.onChangeAttrRender(attrName, attrValue, {rawSet: $rawSet});\n });\n }\n }\n }\n }\n}\n\nexport default {\n this: (config?: DomRenderRunConfig) => {\n return RawSet.createComponentTargetElement({\n name: This.selector,\n template:\n `\n <dr-if value=\"\\${@this@.sw}$\">\n <div dr-this=\"@this@.value\" dr-detect-option-if=\"@this@?.value && @this@?.if\" dr-option-strip=\"true\" dr-on-create:arguments=\"@this@.createArguments\" dr-on-create:callback=\"@this@?.created?.($component, $rawSet)\">#innerHTML#</div>\n </dr-if>\n `,\n objFactory: (e, o, r2, counstructorParam) => {\n return DomRender.run({ rootObject: new This.This(...counstructorParam), config: config });\n }\n });\n }\n};\n"],
5
+ "mappings": "AAAA,SAAS,qBAAqB;AAC9B,SAAS,iBAAqC;AAC9C,SAAS,cAAc;AACvB,SAAS,4BAAuC;AAKzC,IAAU;AAAA,CAAV,CAAU,UAAV;AACE,EAAM,iBAAW;AAAA,EASjB,MAAMA,cAAa,cAAiD;AAAA,IAApE;AAAA;AAEL,WAAQ,KAAsB;AAI9B,WAAQ,KAAK;AAAA;AAAA,IAEb,SAAS,OAAqB;AAC5B,WAAK,KAAK;AACV,iBAAW,MAAM;AACf,aAAK,QAAQ;AAAA,MACf,GAAG,CAAC;AAEJ,iBAAW,MAAM;AACf,aAAK,KAAK;AAAA,MACZ,GAAG,CAAC;AAAA,IACN;AAAA,IAEA,MAAM,aAAa,OAAY,QAAgB;AAC7C,YAAM,MAAM,aAAa,OAAO,MAAM;AAAA,IACxC;AAAA,IAEA,gBAAgB,MAA6B;AAC3C,YAAM,gBAAgB,IAAI;AAAA,IAC5B;AAAA,IACA,YAAY;AACV,YAAM,UAAU;AAAA,IAClB;AAAA,IAEA,mBAAmB,MAAc,OAAY,OAAkB;AAC7D,YAAM,mBAAmB,MAAM,OAAO,KAAK;AAC3C,UAAI,KAAK,oBAAoB,MAAM,OAAO,GAAG;AAC3C,aAAK,SAAS,KAAK;AAAA,MACrB;AACA,UAAI,KAAK,oBAAoB,MAAM,IAAI,GAAG;AACxC,aAAK,KAAK;AAAA,MACZ;AACA,UAAI,KAAK,oBAAoB,MAAM,iBAAiB,GAAG;AACrD,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAAA,IAEA,QAAQ,YAAiB,SAAiB;AACxC,WAAK,cAAc,4BAAe,KAAK,OAAO;AAC9C,WAAK,cAAc;AAEnB,UAAI,YAAY;AACd,aAAK,aAAa,WAAW,IAAI,UAAU;AAG3C,YAAI,qBAAqB,UAAU,GAAG;AACpC,eAAK,kBAAkB,EACpB,OAAO,QAAM,GAAG,WAAW,YAAY,CAAC,EACxC,QAAQ,QAAM;AAxE3B;AAyEc,kBAAM,WAAW,GAAG,QAAQ,eAAe,EAAE;AAC7C,kBAAM,YAAY,KAAK,aAAa,EAAS;AAC7C,0BAAQ,QAAQ,QAAO,cAAvB,GAAuB,YAAc,CAAC;AACtC,oBAAQ,QAAQ,OAAO,UAAU,QAAQ,IAAI;AAC7C,uBAAW,mBAAmB,UAAU,WAAW,EAAC,QAAQ,QAAO,CAAC;AAAA,UACtE,CAAC;AAAA,QACL;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAhEO,QAAM,OAAAA;AAAA,GAVE;AA6EjB,IAAO,eAAQ;AAAA,EACb,MAAM,CAAC,WAAgC;AACrC,WAAO,OAAO,6BAA6B;AAAA,MACzC,MAAM,KAAK;AAAA,MACX,UACE;AAAA;AAAA;AAAA;AAAA;AAAA,MAKF,YAAY,CAAC,GAAG,GAAG,IAAI,sBAAsB;AAC3C,eAAO,UAAU,IAAI,EAAE,YAAY,IAAI,KAAK,KAAK,GAAG,iBAAiB,GAAG,OAAe,CAAC;AAAA,MAC1F;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
6
6
  "names": ["This"]
7
7
  }
@@ -1,5 +1,5 @@
1
- import { ValidUtils } from "@dooboostore/core/valid/ValidUtils";
2
- import { ReflectUtils } from "@dooboostore/core/reflect/ReflectUtils";
1
+ import { ValidUtils } from "@dooboostore/core";
2
+ import { ReflectUtils } from "@dooboostore/core";
3
3
  const DomRenderNoProxyKey = "DomRender:NoProxy";
4
4
  const DomRenderNoProxy = (target, propertyKey) => {
5
5
  ReflectUtils.defineMetadata(DomRenderNoProxyKey, true, target, propertyKey);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/DomRenderNoProxy.ts"],
4
- "sourcesContent": ["import { ValidUtils } from '@dooboostore/core/valid/ValidUtils';\nimport {ReflectUtils} from \"@dooboostore/core/reflect/ReflectUtils\";\n\nexport const DomRenderNoProxyKey = 'DomRender:NoProxy'\nexport const DomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {\n ReflectUtils.defineMetadata(DomRenderNoProxyKey, true, target, propertyKey);\n // \uD074\uB798\uC2A4 \uB370\uCF54\uB808\uC774\uD130\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0\n // if (propertyKey === undefined) {\n // // target\uC740 \uD074\uB798\uC2A4 \uC0DD\uC131\uC790\n // Reflect.defineMetadata(DomRenderNoProxyKey, true, target);\n // return;\n // }\n //\n // // \uD504\uB85C\uD37C\uD2F0 \uB370\uCF54\uB808\uC774\uD130\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0\n // // target\uC740 \uD504\uB85C\uD1A0\uD0C0\uC785, propertyKey\uB294 \uD504\uB85C\uD37C\uD2F0 \uC774\uB984\n // Reflect.defineMetadata(DomRenderNoProxyKey, true, target, propertyKey);\n};\n\nexport const getDomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {\n // if (ValidUtils.isNotNullUndefined(target)) {\n return ReflectUtils.getMetadata(DomRenderNoProxyKey, target, propertyKey);\n // \uD074\uB798\uC2A4 \uB370\uCF54\uB808\uC774\uD130\n // if (propertyKey === undefined) {\n // return Reflect.getMetadata(DomRenderNoProxyKey, target);\n // }\n // // \uD504\uB85C\uD37C\uD2F0 \uB370\uCF54\uB808\uC774\uD130\n // return Reflect.getMetadata(DomRenderNoProxyKey, target, propertyKey);\n // } else {\n // return undefined;\n // }\n}\n\nexport const isDomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {\n return ValidUtils.isNullOrUndefined(target) || getDomRenderNoProxy(target, propertyKey) === true;\n}"],
4
+ "sourcesContent": ["import { ValidUtils } from '@dooboostore/core';\nimport {ReflectUtils} from \"@dooboostore/core\";\n\nexport const DomRenderNoProxyKey = 'DomRender:NoProxy'\nexport const DomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {\n ReflectUtils.defineMetadata(DomRenderNoProxyKey, true, target, propertyKey);\n // \uD074\uB798\uC2A4 \uB370\uCF54\uB808\uC774\uD130\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0\n // if (propertyKey === undefined) {\n // // target\uC740 \uD074\uB798\uC2A4 \uC0DD\uC131\uC790\n // Reflect.defineMetadata(DomRenderNoProxyKey, true, target);\n // return;\n // }\n //\n // // \uD504\uB85C\uD37C\uD2F0 \uB370\uCF54\uB808\uC774\uD130\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0\n // // target\uC740 \uD504\uB85C\uD1A0\uD0C0\uC785, propertyKey\uB294 \uD504\uB85C\uD37C\uD2F0 \uC774\uB984\n // Reflect.defineMetadata(DomRenderNoProxyKey, true, target, propertyKey);\n};\n\nexport const getDomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {\n // if (ValidUtils.isNotNullUndefined(target)) {\n return ReflectUtils.getMetadata(DomRenderNoProxyKey, target, propertyKey);\n // \uD074\uB798\uC2A4 \uB370\uCF54\uB808\uC774\uD130\n // if (propertyKey === undefined) {\n // return Reflect.getMetadata(DomRenderNoProxyKey, target);\n // }\n // // \uD504\uB85C\uD37C\uD2F0 \uB370\uCF54\uB808\uC774\uD130\n // return Reflect.getMetadata(DomRenderNoProxyKey, target, propertyKey);\n // } else {\n // return undefined;\n // }\n}\n\nexport const isDomRenderNoProxy = (target: any, propertyKey?: string | symbol) => {\n return ValidUtils.isNullOrUndefined(target) || getDomRenderNoProxy(target, propertyKey) === true;\n}"],
5
5
  "mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAQ,oBAAmB;AAEpB,MAAM,sBAAsB;AAC5B,MAAM,mBAAmB,CAAC,QAAa,gBAAkC;AAC5E,eAAa,eAAe,qBAAqB,MAAM,QAAQ,WAAW;AAW9E;AAEO,MAAM,sBAAsB,CAAC,QAAa,gBAAkC;AAE/E,SAAO,aAAa,YAAY,qBAAqB,QAAQ,WAAW;AAU5E;AAEO,MAAM,qBAAqB,CAAC,QAAa,gBAAkC;AAChF,SAAO,WAAW,kBAAkB,MAAM,KAAK,oBAAoB,QAAQ,WAAW,MAAM;AAC9F;",
6
6
  "names": []
7
7
  }
@@ -1,42 +1,19 @@
1
- import { ScriptUtils } from "@dooboostore/core-web/script/ScriptUtils";
2
- import { ElementUtils } from "@dooboostore/core-web/element/ElementUtils";
3
- import { Range } from "../iterators/Range.js";
1
+ import { ScriptUtils } from "@dooboostore/core-web";
2
+ import { ElementUtils } from "@dooboostore/core-web";
3
+ import { Range } from "@dooboostore/core";
4
4
  import { getDomRenderConfig } from "../DomRenderProxy.js";
5
- import { ObjectUtils } from "@dooboostore/core/object/ObjectUtils";
5
+ import { ObjectUtils } from "@dooboostore/core";
6
6
  const _EventManager = class _EventManager {
7
7
  constructor(window) {
8
8
  this.window = window;
9
- this.eventNames = [
10
- "click",
11
- "mousedown",
12
- "mouseup",
13
- "dblclick",
14
- "mouseover",
15
- "mouseout",
16
- "mousemove",
17
- "mouseenter",
18
- "mouseleave",
19
- "contextmenu",
20
- "keyup",
21
- "keydown",
22
- "keypress",
23
- "toggle",
24
- "change",
25
- "input",
26
- "submit",
27
- "resize",
28
- "focus",
29
- "blur",
30
- "close",
31
- "cancel"
32
- ];
9
+ this.eventNames = ["click", "mousedown", "mouseup", "dblclick", "mouseover", "mouseout", "mousemove", "mouseenter", "mouseleave", "contextmenu", "keyup", "keydown", "keypress", "toggle", "change", "input", "submit", "resize", "focus", "blur", "close", "cancel", "scroll"];
33
10
  this.delegatableEventMap = {
34
11
  mouseleave: "mouseout",
35
12
  mouseenter: "mouseover",
36
13
  focus: "focusin",
37
14
  blur: "focusout"
38
15
  };
39
- this.directAttachEvents = /* @__PURE__ */ new Set(["close"]);
16
+ this.directAttachEvents = /* @__PURE__ */ new Set(["close", "scroll"]);
40
17
  this.bindScript = `
41
18
  const ${_EventManager.VALUE_VARNAME} = this.__render.value;
42
19
  const ${_EventManager.SCRIPTS_VARNAME} = this.__render.scripts;
@@ -271,6 +248,15 @@ const _EventManager = class _EventManager {
271
248
  }
272
249
  }
273
250
  });
251
+ this.procAttr(childNodes, _EventManager.srcAttrName, (it, attribute) => {
252
+ const script = attribute;
253
+ if (script) {
254
+ const data = ObjectUtils.Script.evaluateReturn(script, obj);
255
+ if (it.src !== data) {
256
+ it.src = data;
257
+ }
258
+ }
259
+ });
274
260
  this.procAttr(childNodes, _EventManager.checkedAttrName, (it, attribute) => {
275
261
  const script = attribute;
276
262
  if (script) {
@@ -284,6 +270,11 @@ const _EventManager = class _EventManager {
284
270
  const script = attribute;
285
271
  if (script) {
286
272
  const data = ObjectUtils.Script.evaluateReturn(script, obj);
273
+ if (data) {
274
+ it.setAttribute("selected", "selected");
275
+ } else {
276
+ it.removeAttribute("selected");
277
+ }
287
278
  if (it.selected !== data) {
288
279
  it.selected = data;
289
280
  }
@@ -293,6 +284,11 @@ const _EventManager = class _EventManager {
293
284
  const script = attribute;
294
285
  if (script) {
295
286
  const data = ObjectUtils.Script.evaluateReturn(script, obj);
287
+ if (data) {
288
+ it.setAttribute("readonly", "readonly");
289
+ } else {
290
+ it.removeAttribute("readonly");
291
+ }
296
292
  if (it.readOnly !== data) {
297
293
  it.readOnly = data;
298
294
  }
@@ -302,6 +298,11 @@ const _EventManager = class _EventManager {
302
298
  const script = attribute;
303
299
  if (script) {
304
300
  const data = ObjectUtils.Script.evaluateReturn(script, obj);
301
+ if (data) {
302
+ it.setAttribute("disabled", "disabled");
303
+ } else {
304
+ it.removeAttribute("disabled");
305
+ }
305
306
  if (it.disabled !== data) {
306
307
  it.disabled = data;
307
308
  }
@@ -311,6 +312,11 @@ const _EventManager = class _EventManager {
311
312
  const script = attribute;
312
313
  if (script) {
313
314
  const data = ObjectUtils.Script.evaluateReturn(script, obj);
315
+ if (data) {
316
+ it.setAttribute("hidden", "hidden");
317
+ } else {
318
+ it.removeAttribute("hidden");
319
+ }
314
320
  if (it.hidden !== data) {
315
321
  it.hidden = data;
316
322
  }
@@ -320,6 +326,11 @@ const _EventManager = class _EventManager {
320
326
  const script = attribute;
321
327
  if (script) {
322
328
  const data = ObjectUtils.Script.evaluateReturn(script, obj);
329
+ if (data) {
330
+ it.setAttribute("required", "required");
331
+ } else {
332
+ it.removeAttribute("required");
333
+ }
323
334
  if (it.required !== data) {
324
335
  it.required = data;
325
336
  }
@@ -329,6 +340,11 @@ const _EventManager = class _EventManager {
329
340
  const script = attribute;
330
341
  if (script) {
331
342
  const data = ObjectUtils.Script.evaluateReturn(script, obj);
343
+ if (data) {
344
+ it.setAttribute("open", "open");
345
+ } else {
346
+ it.removeAttribute("open");
347
+ }
332
348
  if (it.open !== data) {
333
349
  it.open = data;
334
350
  }
@@ -353,12 +369,15 @@ const _EventManager = class _EventManager {
353
369
  });
354
370
  script = targetScript;
355
371
  }
356
- const data = ObjectUtils.Script.evaluate(`const $element = this.element; return ${script}`, Object.assign(obj, {
357
- __render: Object.freeze({
358
- element: it,
359
- attribute: ElementUtils.getAttributeToObject(it)
372
+ const data = ObjectUtils.Script.evaluate(
373
+ `const $element = this.element; return ${script}`,
374
+ Object.assign(obj, {
375
+ __render: Object.freeze({
376
+ element: it,
377
+ attribute: ElementUtils.getAttributeToObject(it)
378
+ })
360
379
  })
361
- }));
380
+ );
362
381
  if (data === null || data === void 0) {
363
382
  it.removeAttribute(k);
364
383
  } else {
@@ -428,13 +447,16 @@ const _EventManager = class _EventManager {
428
447
  script = "return " + script;
429
448
  }
430
449
  if (script) {
431
- ObjectUtils.Script.evaluate(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {
432
- __render: Object.freeze({
433
- element: it,
434
- attribute: ElementUtils.getAttributeToObject(it),
435
- ...config?.eventVariables
450
+ ObjectUtils.Script.evaluate(
451
+ `${this.getBindScript(config)}; ${script} `,
452
+ Object.assign(obj, {
453
+ __render: Object.freeze({
454
+ element: it,
455
+ attribute: ElementUtils.getAttributeToObject(it),
456
+ ...config?.eventVariables
457
+ })
436
458
  })
437
- }));
459
+ );
438
460
  }
439
461
  });
440
462
  this.onRenderedEvent(obj, childNodes, config);
@@ -454,13 +476,16 @@ const _EventManager = class _EventManager {
454
476
  script = "return " + script;
455
477
  }
456
478
  if (script) {
457
- ObjectUtils.Script.evaluate(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {
458
- __render: Object.freeze({
459
- element: it,
460
- attribute: ElementUtils.getAttributeToObject(it),
461
- ...config?.eventVariables
479
+ ObjectUtils.Script.evaluate(
480
+ `${this.getBindScript(config)}; ${script} `,
481
+ Object.assign(obj, {
482
+ __render: Object.freeze({
483
+ element: it,
484
+ attribute: ElementUtils.getAttributeToObject(it),
485
+ ...config?.eventVariables
486
+ })
462
487
  })
463
- }));
488
+ );
464
489
  }
465
490
  });
466
491
  }
@@ -471,12 +496,15 @@ const _EventManager = class _EventManager {
471
496
  script = "return " + script;
472
497
  }
473
498
  if (_EventManager.isUsingThisVar(script, varName) || varName === void 0) {
474
- const data = ObjectUtils.Script.evaluate(`const $element = this.__render.element; ${script} `, Object.assign(obj, {
475
- __render: Object.freeze({
476
- element: it,
477
- attribute: ElementUtils.getAttributeToObject(it)
499
+ const data = ObjectUtils.Script.evaluate(
500
+ `const $element = this.__render.element; ${script} `,
501
+ Object.assign(obj, {
502
+ __render: Object.freeze({
503
+ element: it,
504
+ attribute: ElementUtils.getAttributeToObject(it)
505
+ })
478
506
  })
479
- }));
507
+ );
480
508
  if (typeof data === "string") {
481
509
  data.split(";").forEach((sit) => {
482
510
  const [key, value] = sit.split(":").map((s) => s.trim());
@@ -491,7 +519,7 @@ const _EventManager = class _EventManager {
491
519
  it.style[key] = value;
492
520
  }
493
521
  });
494
- } else {
522
+ } else if (data) {
495
523
  for (const [key, value] of Object.entries(data)) {
496
524
  it.style[key] = value === null ? null : String(value);
497
525
  }
@@ -504,23 +532,27 @@ const _EventManager = class _EventManager {
504
532
  script = "return " + script;
505
533
  }
506
534
  if (_EventManager.isUsingThisVar(script, varName) || varName === void 0) {
507
- const data = ObjectUtils.Script.evaluate(`const $element = this.element; ${script} `, Object.assign(obj, {
508
- __render: Object.freeze({
509
- element: it,
510
- attribute: ElementUtils.getAttributeToObject(it)
535
+ const data = ObjectUtils.Script.evaluate(
536
+ `const $element = this.element; ${script} `,
537
+ Object.assign(obj, {
538
+ __render: Object.freeze({
539
+ element: it,
540
+ attribute: ElementUtils.getAttributeToObject(it)
541
+ })
511
542
  })
512
- }));
543
+ );
513
544
  if (typeof data === "string") {
514
- data.split(" ").forEach((cit) => it.classList.add(cit.trim()));
545
+ data.split(" ").map((it2) => it2.trim()).filter((it2) => it2.length > 0).forEach((cit) => it.classList.add(cit.trim()));
515
546
  } else if (Array.isArray(data)) {
516
- data.forEach((cit) => it.classList.add(cit.trim()));
517
- } else {
547
+ data.map((it2) => it2.trim()).filter((it2) => it2.length > 0).forEach((cit) => it.classList.add(cit.trim()));
548
+ } else if (data) {
518
549
  for (const [key, value] of Object.entries(data)) {
519
550
  if (it instanceof HTMLElement) {
520
- if (value) {
521
- it.classList.add(key.trim());
522
- } else {
523
- it.classList.remove(key.trim());
551
+ const v = key.trim();
552
+ if (value && v) {
553
+ it.classList.add(v);
554
+ } else if (v) {
555
+ it.classList.remove(v);
524
556
  }
525
557
  }
526
558
  }
@@ -576,7 +608,7 @@ const _EventManager = class _EventManager {
576
608
  }
577
609
  });
578
610
  }
579
- procAttr(elements = /* @__PURE__ */ new Set(), attrName, callBack) {
611
+ deepAttributeElements(elements = /* @__PURE__ */ new Set(), attrName) {
580
612
  const sets = /* @__PURE__ */ new Set();
581
613
  elements.forEach((it) => {
582
614
  if (!it) {
@@ -584,12 +616,18 @@ const _EventManager = class _EventManager {
584
616
  }
585
617
  if (it.nodeType === 1) {
586
618
  const e = it;
587
- sets.add(e);
619
+ if (e.hasAttribute(attrName)) {
620
+ sets.add(e);
621
+ }
588
622
  e.querySelectorAll(`[${attrName}]`).forEach((it2) => {
589
623
  sets.add(it2);
590
624
  });
591
625
  }
592
626
  });
627
+ return sets;
628
+ }
629
+ procAttr(elements = /* @__PURE__ */ new Set(), attrName, callBack) {
630
+ const sets = this.deepAttributeElements(elements, attrName);
593
631
  sets.forEach((it) => {
594
632
  const attr = it.getAttribute(attrName);
595
633
  const attrs = ElementUtils.getAttributeToObject(it);
@@ -607,20 +645,27 @@ const _EventManager = class _EventManager {
607
645
  }
608
646
  setValue(obj, name, value) {
609
647
  name = name.replaceAll("this.", "this.this.");
610
- ScriptUtils.evaluate(`${name} = this.value;`, {
648
+ ObjectUtils.Script.evaluate(`${name} = this.value;`, {
611
649
  this: obj,
612
650
  value
613
651
  });
614
652
  }
653
+ static decodeScriptVar(raws) {
654
+ if (raws) {
655
+ _EventManager.VARNAMES.forEach((it) => {
656
+ raws = raws.replace(RegExp(it.replace("$", "\\$"), "g"), `this.___${it}`);
657
+ });
658
+ return raws;
659
+ }
660
+ return void 0;
661
+ }
615
662
  static isUsingThisVar(raws, varName) {
663
+ raws = _EventManager.decodeScriptVar(raws);
616
664
  if (varName && raws) {
617
665
  if (varName.startsWith("this.")) {
618
666
  varName = varName.replace(/this\./, "");
619
667
  }
620
- _EventManager.VARNAMES.forEach((it) => {
621
- raws = raws.replace(RegExp(it.replace("$", "\\$"), "g"), `this.___${it}`);
622
- });
623
- const variablePaths = ObjectUtils.Path.detectPathFromScript(raws ?? "", { excludeThis: true });
668
+ const variablePaths = ObjectUtils.Path.detectPathFromScript(raws, { excludeThis: true });
624
669
  return variablePaths.has(varName);
625
670
  }
626
671
  return false;
@@ -652,6 +697,7 @@ _EventManager.ownerVariablePathAttrName = _EventManager.attrPrefix + "owner-vari
652
697
  _EventManager.eventParam = _EventManager.attrPrefix + "event";
653
698
  _EventManager.onInitAttrName = _EventManager.attrPrefix + "on-init";
654
699
  _EventManager.valueAttrName = _EventManager.attrPrefix + "value";
700
+ _EventManager.srcAttrName = _EventManager.attrPrefix + "src";
655
701
  _EventManager.checkedAttrName = _EventManager.attrPrefix + "checked";
656
702
  _EventManager.selectedAttrName = _EventManager.attrPrefix + "selected";
657
703
  _EventManager.readonlyAttrName = _EventManager.attrPrefix + "readonly";
@@ -700,27 +746,10 @@ _EventManager.NEAR_THIS_PATH_VARNAME = "$nearThisPath";
700
746
  _EventManager.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];
701
747
  _EventManager.WINDOW_EVENT_POPSTATE = "popstate";
702
748
  _EventManager.WINDOW_EVENT_RESIZE = "resize";
703
- _EventManager.WINDOW_EVENTS = [_EventManager.WINDOW_EVENT_POPSTATE, _EventManager.WINDOW_EVENT_RESIZE];
749
+ _EventManager.WINDOW_EVENT_SCROLL = "scroll";
750
+ _EventManager.WINDOW_EVENTS = [_EventManager.WINDOW_EVENT_POPSTATE, _EventManager.WINDOW_EVENT_RESIZE, _EventManager.WINDOW_EVENT_SCROLL];
704
751
  _EventManager.noDetectAttr = [_EventManager.normalAttrMapAttrName];
705
- _EventManager.attrNames = [
706
- _EventManager.valueAttrName,
707
- _EventManager.checkedAttrName,
708
- _EventManager.selectedAttrName,
709
- _EventManager.readonlyAttrName,
710
- _EventManager.disabledAttrName,
711
- _EventManager.hiddenAttrName,
712
- _EventManager.requiredAttrName,
713
- _EventManager.openAttrName,
714
- _EventManager.attrAttrName,
715
- _EventManager.normalAttrMapAttrName,
716
- _EventManager.styleAttrName,
717
- _EventManager.classAttrName,
718
- _EventManager.attrPrefix + "window-event-" + _EventManager.WINDOW_EVENT_POPSTATE,
719
- _EventManager.attrPrefix + "window-event-" + _EventManager.WINDOW_EVENT_RESIZE,
720
- _EventManager.onInitAttrName,
721
- ..._EventManager.linkAttrs.map((it) => it.name),
722
- _EventManager.eventParam
723
- ];
752
+ _EventManager.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), _EventManager.eventParam];
724
753
  let EventManager = _EventManager;
725
754
  export {
726
755
  EventManager