@saolabs/client 1.0.0 → 1.0.2

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 (378) hide show
  1. package/README.md +52 -195
  2. package/dist/index.d.ts +20 -5
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +14 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/plugins.d.ts +2 -2
  7. package/dist/plugins.js +2 -2
  8. package/dist/src/core/app/Application.d.ts +17 -15
  9. package/dist/src/core/app/Application.d.ts.map +1 -1
  10. package/dist/src/core/app/Application.js +41 -18
  11. package/dist/src/core/app/Application.js.map +1 -1
  12. package/dist/src/core/bootstrap/app.d.ts +1 -1
  13. package/dist/src/core/bootstrap/app.d.ts.map +1 -1
  14. package/dist/src/core/bootstrap/app.js +74 -4
  15. package/dist/src/core/bootstrap/app.js.map +1 -1
  16. package/dist/src/core/bootstrap/bundle.d.ts +41 -0
  17. package/dist/src/core/bootstrap/bundle.d.ts.map +1 -0
  18. package/dist/src/core/bootstrap/bundle.js +98 -0
  19. package/dist/src/core/bootstrap/bundle.js.map +1 -0
  20. package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts +1 -1
  21. package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts.map +1 -1
  22. package/dist/src/core/bootstrap/providers/ApiServiceProvider.js +3 -3
  23. package/dist/src/core/bootstrap/providers/ApiServiceProvider.js.map +1 -1
  24. package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts +1 -1
  25. package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts.map +1 -1
  26. package/dist/src/core/bootstrap/providers/CoreServiceProvider.js +11 -8
  27. package/dist/src/core/bootstrap/providers/CoreServiceProvider.js.map +1 -1
  28. package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts +3 -1
  29. package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts.map +1 -1
  30. package/dist/src/core/bootstrap/providers/HelperServiceProvider.js +8 -3
  31. package/dist/src/core/bootstrap/providers/HelperServiceProvider.js.map +1 -1
  32. package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts +2 -1
  33. package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts.map +1 -1
  34. package/dist/src/core/bootstrap/providers/RouteServiceProvider.js +14 -4
  35. package/dist/src/core/bootstrap/providers/RouteServiceProvider.js.map +1 -1
  36. package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts +4 -4
  37. package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts.map +1 -1
  38. package/dist/src/core/bootstrap/providers/ServiceProvider.js +5 -5
  39. package/dist/src/core/bootstrap/providers/ServiceProvider.js.map +1 -1
  40. package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts +1 -1
  41. package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts.map +1 -1
  42. package/dist/src/core/bootstrap/providers/ViewServiceProvider.js +3 -3
  43. package/dist/src/core/bootstrap/providers/ViewServiceProvider.js.map +1 -1
  44. package/dist/src/core/bootstrap/providers/default-providers.d.ts +1 -1
  45. package/dist/src/core/bootstrap/providers/default-providers.d.ts.map +1 -1
  46. package/dist/src/core/bootstrap/providers/default-providers.js +44 -11
  47. package/dist/src/core/bootstrap/providers/default-providers.js.map +1 -1
  48. package/dist/src/core/bootstrap/providers/index.d.ts +9 -9
  49. package/dist/src/core/bootstrap/providers/index.d.ts.map +1 -1
  50. package/dist/src/core/bootstrap/providers/index.js +8 -8
  51. package/dist/src/core/bootstrap/providers/index.js.map +1 -1
  52. package/dist/src/core/bootstrap/providers/provider-order.d.ts +1 -1
  53. package/dist/src/core/bootstrap/providers/provider-order.d.ts.map +1 -1
  54. package/dist/src/core/bootstrap/ssr.d.ts +47 -0
  55. package/dist/src/core/bootstrap/ssr.d.ts.map +1 -0
  56. package/dist/src/core/bootstrap/ssr.js +125 -0
  57. package/dist/src/core/bootstrap/ssr.js.map +1 -0
  58. package/dist/src/core/cache/ViewCache.d.ts +1 -1
  59. package/dist/src/core/cache/ViewCache.d.ts.map +1 -1
  60. package/dist/src/core/cache/index.d.ts +1 -1
  61. package/dist/src/core/cache/index.d.ts.map +1 -1
  62. package/dist/src/core/cache/index.js +1 -1
  63. package/dist/src/core/cache/index.js.map +1 -1
  64. package/dist/src/core/contracts/ApplicationInterface.d.ts +13 -11
  65. package/dist/src/core/contracts/ApplicationInterface.d.ts.map +1 -1
  66. package/dist/src/core/contracts/BlockInterface.d.ts +10 -10
  67. package/dist/src/core/contracts/BlockInterface.d.ts.map +1 -1
  68. package/dist/src/core/contracts/BundleInterface.d.ts +38 -0
  69. package/dist/src/core/contracts/BundleInterface.d.ts.map +1 -0
  70. package/dist/src/core/contracts/BundleInterface.js +2 -0
  71. package/dist/src/core/contracts/BundleInterface.js.map +1 -0
  72. package/dist/src/core/contracts/ComponentInterface.d.ts +7 -6
  73. package/dist/src/core/contracts/ComponentInterface.d.ts.map +1 -1
  74. package/dist/src/core/contracts/ElementInterface.d.ts +91 -27
  75. package/dist/src/core/contracts/ElementInterface.d.ts.map +1 -1
  76. package/dist/src/core/contracts/HeadServiceInterface.d.ts +37 -0
  77. package/dist/src/core/contracts/HeadServiceInterface.d.ts.map +1 -0
  78. package/dist/src/core/contracts/HeadServiceInterface.js +3 -0
  79. package/dist/src/core/contracts/HeadServiceInterface.js.map +1 -0
  80. package/dist/src/core/contracts/HelperInterface.d.ts +9 -1
  81. package/dist/src/core/contracts/HelperInterface.d.ts.map +1 -1
  82. package/dist/src/core/contracts/HttpServiceInterface.d.ts +3 -0
  83. package/dist/src/core/contracts/HttpServiceInterface.d.ts.map +1 -1
  84. package/dist/src/core/contracts/MarkerInterface.d.ts +29 -44
  85. package/dist/src/core/contracts/MarkerInterface.d.ts.map +1 -1
  86. package/dist/src/core/contracts/ReactiveInterface.d.ts +9 -9
  87. package/dist/src/core/contracts/ReactiveInterface.d.ts.map +1 -1
  88. package/dist/src/core/contracts/RouterInterface.d.ts +5 -2
  89. package/dist/src/core/contracts/RouterInterface.d.ts.map +1 -1
  90. package/dist/src/core/contracts/SectionInterface.d.ts +48 -0
  91. package/dist/src/core/contracts/SectionInterface.d.ts.map +1 -0
  92. package/dist/src/core/contracts/SectionInterface.js +2 -0
  93. package/dist/src/core/contracts/SectionInterface.js.map +1 -0
  94. package/dist/src/core/contracts/ServiceProviderInterface.d.ts +3 -3
  95. package/dist/src/core/contracts/ServiceProviderInterface.d.ts.map +1 -1
  96. package/dist/src/core/contracts/ViewControllerInterface.d.ts +116 -15
  97. package/dist/src/core/contracts/ViewControllerInterface.d.ts.map +1 -1
  98. package/dist/src/core/contracts/ViewInterface.d.ts +31 -5
  99. package/dist/src/core/contracts/ViewInterface.d.ts.map +1 -1
  100. package/dist/src/core/contracts/ViewManagerInterface.d.ts +47 -5
  101. package/dist/src/core/contracts/ViewManagerInterface.d.ts.map +1 -1
  102. package/dist/src/core/contracts/ViewStateInterface.d.ts +39 -2
  103. package/dist/src/core/contracts/ViewStateInterface.d.ts.map +1 -1
  104. package/dist/src/core/contracts/common.d.ts +3 -3
  105. package/dist/src/core/contracts/common.js +3 -3
  106. package/dist/src/core/contracts/utils.d.ts +19 -19
  107. package/dist/src/core/contracts/utils.d.ts.map +1 -1
  108. package/dist/src/core/contracts/views.d.ts +1 -22
  109. package/dist/src/core/contracts/views.d.ts.map +1 -1
  110. package/dist/src/core/devtools/hook.d.ts +66 -0
  111. package/dist/src/core/devtools/hook.d.ts.map +1 -0
  112. package/dist/src/core/devtools/hook.js +114 -0
  113. package/dist/src/core/devtools/hook.js.map +1 -0
  114. package/dist/src/core/devtools/index.d.ts +34 -0
  115. package/dist/src/core/devtools/index.d.ts.map +1 -0
  116. package/dist/src/core/devtools/index.js +33 -0
  117. package/dist/src/core/devtools/index.js.map +1 -0
  118. package/dist/src/core/devtools/inspector.d.ts +31 -0
  119. package/dist/src/core/devtools/inspector.d.ts.map +1 -0
  120. package/dist/src/core/devtools/inspector.js +249 -0
  121. package/dist/src/core/devtools/inspector.js.map +1 -0
  122. package/dist/src/core/elements/Block.d.ts +9 -7
  123. package/dist/src/core/elements/Block.d.ts.map +1 -1
  124. package/dist/src/core/elements/Block.js +33 -9
  125. package/dist/src/core/elements/Block.js.map +1 -1
  126. package/dist/src/core/elements/BlockOutlet.d.ts +19 -8
  127. package/dist/src/core/elements/BlockOutlet.d.ts.map +1 -1
  128. package/dist/src/core/elements/BlockOutlet.js +57 -13
  129. package/dist/src/core/elements/BlockOutlet.js.map +1 -1
  130. package/dist/src/core/elements/Component.d.ts +83 -11
  131. package/dist/src/core/elements/Component.d.ts.map +1 -1
  132. package/dist/src/core/elements/Component.js +334 -13
  133. package/dist/src/core/elements/Component.js.map +1 -1
  134. package/dist/src/core/elements/ForeachSlotCache.d.ts +95 -0
  135. package/dist/src/core/elements/ForeachSlotCache.d.ts.map +1 -0
  136. package/dist/src/core/elements/ForeachSlotCache.js +149 -0
  137. package/dist/src/core/elements/ForeachSlotCache.js.map +1 -0
  138. package/dist/src/core/elements/Fragment.d.ts +19 -13
  139. package/dist/src/core/elements/Fragment.d.ts.map +1 -1
  140. package/dist/src/core/elements/Fragment.js +43 -20
  141. package/dist/src/core/elements/Fragment.js.map +1 -1
  142. package/dist/src/core/elements/Html.d.ts +89 -12
  143. package/dist/src/core/elements/Html.d.ts.map +1 -1
  144. package/dist/src/core/elements/Html.js +707 -106
  145. package/dist/src/core/elements/Html.js.map +1 -1
  146. package/dist/src/core/elements/Output.d.ts +34 -10
  147. package/dist/src/core/elements/Output.d.ts.map +1 -1
  148. package/dist/src/core/elements/Output.js +141 -26
  149. package/dist/src/core/elements/Output.js.map +1 -1
  150. package/dist/src/core/elements/Reactive.d.ts +85 -14
  151. package/dist/src/core/elements/Reactive.d.ts.map +1 -1
  152. package/dist/src/core/elements/Reactive.js +315 -41
  153. package/dist/src/core/elements/Reactive.js.map +1 -1
  154. package/dist/src/core/elements/TextElement.d.ts +11 -7
  155. package/dist/src/core/elements/TextElement.d.ts.map +1 -1
  156. package/dist/src/core/elements/TextElement.js +18 -11
  157. package/dist/src/core/elements/TextElement.js.map +1 -1
  158. package/dist/src/core/elements/Wrapper.d.ts +24 -13
  159. package/dist/src/core/elements/Wrapper.d.ts.map +1 -1
  160. package/dist/src/core/elements/Wrapper.js +65 -8
  161. package/dist/src/core/elements/Wrapper.js.map +1 -1
  162. package/dist/src/core/elements/Yield.d.ts +10 -9
  163. package/dist/src/core/elements/Yield.d.ts.map +1 -1
  164. package/dist/src/core/elements/Yield.js +31 -19
  165. package/dist/src/core/elements/Yield.js.map +1 -1
  166. package/dist/src/core/elements/helpers.d.ts +7 -7
  167. package/dist/src/core/elements/helpers.d.ts.map +1 -1
  168. package/dist/src/core/elements/helpers.js +4 -4
  169. package/dist/src/core/elements/index.d.ts +12 -11
  170. package/dist/src/core/elements/index.d.ts.map +1 -1
  171. package/dist/src/core/elements/index.js +12 -11
  172. package/dist/src/core/elements/index.js.map +1 -1
  173. package/dist/src/core/elements/reconcileChildren.d.ts +7 -0
  174. package/dist/src/core/elements/reconcileChildren.d.ts.map +1 -0
  175. package/dist/src/core/elements/reconcileChildren.js +74 -0
  176. package/dist/src/core/elements/reconcileChildren.js.map +1 -0
  177. package/dist/src/core/hellpers/utils.d.ts +2 -2
  178. package/dist/src/core/hellpers/utils.js +4 -4
  179. package/dist/src/core/helpers/ApiClient.d.ts +58 -0
  180. package/dist/src/core/helpers/ApiClient.d.ts.map +1 -0
  181. package/dist/src/core/helpers/ApiClient.js +131 -0
  182. package/dist/src/core/helpers/ApiClient.js.map +1 -0
  183. package/dist/src/core/helpers/app.d.ts +3 -0
  184. package/dist/src/core/helpers/app.d.ts.map +1 -0
  185. package/dist/src/core/helpers/app.js +63 -0
  186. package/dist/src/core/helpers/app.js.map +1 -0
  187. package/dist/src/core/helpers/transition.d.ts +34 -0
  188. package/dist/src/core/helpers/transition.d.ts.map +1 -0
  189. package/dist/src/core/helpers/transition.js +118 -0
  190. package/dist/src/core/helpers/transition.js.map +1 -0
  191. package/dist/src/core/helpers/utils.d.ts +26 -0
  192. package/dist/src/core/helpers/utils.d.ts.map +1 -0
  193. package/dist/src/core/helpers/utils.js +96 -0
  194. package/dist/src/core/helpers/utils.js.map +1 -0
  195. package/dist/src/core/helpers/view.d.ts +39 -0
  196. package/dist/src/core/helpers/view.d.ts.map +1 -0
  197. package/dist/src/core/helpers/view.js +286 -0
  198. package/dist/src/core/helpers/view.js.map +1 -0
  199. package/dist/src/core/routers/Router.d.ts +108 -7
  200. package/dist/src/core/routers/Router.d.ts.map +1 -1
  201. package/dist/src/core/routers/Router.js +444 -68
  202. package/dist/src/core/routers/Router.js.map +1 -1
  203. package/dist/src/core/routers/index.d.ts +2 -2
  204. package/dist/src/core/routers/index.d.ts.map +1 -1
  205. package/dist/src/core/routers/index.js +1 -1
  206. package/dist/src/core/routers/index.js.map +1 -1
  207. package/dist/src/core/services/AssetManager.d.ts +112 -0
  208. package/dist/src/core/services/AssetManager.d.ts.map +1 -0
  209. package/dist/src/core/services/AssetManager.js +361 -0
  210. package/dist/src/core/services/AssetManager.js.map +1 -0
  211. package/dist/src/core/services/BlockManager.d.ts +73 -2
  212. package/dist/src/core/services/BlockManager.d.ts.map +1 -1
  213. package/dist/src/core/services/BlockManager.js +270 -48
  214. package/dist/src/core/services/BlockManager.js.map +1 -1
  215. package/dist/src/core/services/DomService.js +3 -3
  216. package/dist/src/core/services/DomService.js.map +1 -1
  217. package/dist/src/core/services/HeadService.d.ts +24 -0
  218. package/dist/src/core/services/HeadService.d.ts.map +1 -0
  219. package/dist/src/core/services/HeadService.js +120 -0
  220. package/dist/src/core/services/HeadService.js.map +1 -0
  221. package/dist/src/core/services/HelperService.d.ts +14 -3
  222. package/dist/src/core/services/HelperService.d.ts.map +1 -1
  223. package/dist/src/core/services/HelperService.js +32 -2
  224. package/dist/src/core/services/HelperService.js.map +1 -1
  225. package/dist/src/core/services/HttpService.d.ts +8 -0
  226. package/dist/src/core/services/HttpService.d.ts.map +1 -1
  227. package/dist/src/core/services/HttpService.js +121 -47
  228. package/dist/src/core/services/HttpService.js.map +1 -1
  229. package/dist/src/core/services/MarkerRegistry.d.ts +51 -8
  230. package/dist/src/core/services/MarkerRegistry.d.ts.map +1 -1
  231. package/dist/src/core/services/MarkerRegistry.js +135 -14
  232. package/dist/src/core/services/MarkerRegistry.js.map +1 -1
  233. package/dist/src/core/services/PageCache.d.ts +101 -0
  234. package/dist/src/core/services/PageCache.d.ts.map +1 -0
  235. package/dist/src/core/services/PageCache.js +184 -0
  236. package/dist/src/core/services/PageCache.js.map +1 -0
  237. package/dist/src/core/services/SectionManager.d.ts +100 -0
  238. package/dist/src/core/services/SectionManager.d.ts.map +1 -0
  239. package/dist/src/core/services/SectionManager.js +408 -0
  240. package/dist/src/core/services/SectionManager.js.map +1 -0
  241. package/dist/src/core/services/StorageService.js +1 -1
  242. package/dist/src/core/services/TranslationService.d.ts +21 -0
  243. package/dist/src/core/services/TranslationService.d.ts.map +1 -0
  244. package/dist/src/core/services/TranslationService.js +95 -0
  245. package/dist/src/core/services/TranslationService.js.map +1 -0
  246. package/dist/src/core/services/index.d.ts +11 -8
  247. package/dist/src/core/services/index.d.ts.map +1 -1
  248. package/dist/src/core/services/index.js +11 -8
  249. package/dist/src/core/services/index.js.map +1 -1
  250. package/dist/src/core/types/utils.d.ts +8 -8
  251. package/dist/src/core/types/utils.d.ts.map +1 -1
  252. package/dist/src/core/view/LoopContext.d.ts +21 -1
  253. package/dist/src/core/view/LoopContext.d.ts.map +1 -1
  254. package/dist/src/core/view/LoopContext.js +36 -0
  255. package/dist/src/core/view/LoopContext.js.map +1 -1
  256. package/dist/src/core/view/ResourceScope.d.ts +38 -0
  257. package/dist/src/core/view/ResourceScope.d.ts.map +1 -0
  258. package/dist/src/core/view/ResourceScope.js +167 -0
  259. package/dist/src/core/view/ResourceScope.js.map +1 -0
  260. package/dist/src/core/view/Section.d.ts +17 -32
  261. package/dist/src/core/view/Section.d.ts.map +1 -1
  262. package/dist/src/core/view/Section.js +14 -55
  263. package/dist/src/core/view/Section.js.map +1 -1
  264. package/dist/src/core/view/View.d.ts +43 -7
  265. package/dist/src/core/view/View.d.ts.map +1 -1
  266. package/dist/src/core/view/View.js +22 -4
  267. package/dist/src/core/view/View.js.map +1 -1
  268. package/dist/src/core/view/ViewController.d.ts +313 -40
  269. package/dist/src/core/view/ViewController.d.ts.map +1 -1
  270. package/dist/src/core/view/ViewController.js +1002 -147
  271. package/dist/src/core/view/ViewController.js.map +1 -1
  272. package/dist/src/core/view/ViewManager.d.ts +318 -27
  273. package/dist/src/core/view/ViewManager.d.ts.map +1 -1
  274. package/dist/src/core/view/ViewManager.js +1199 -258
  275. package/dist/src/core/view/ViewManager.js.map +1 -1
  276. package/dist/src/core/view/ViewState.d.ts +185 -6
  277. package/dist/src/core/view/ViewState.d.ts.map +1 -1
  278. package/dist/src/core/view/ViewState.js +851 -123
  279. package/dist/src/core/view/ViewState.js.map +1 -1
  280. package/dist/src/core/view/index.d.ts +5 -5
  281. package/dist/src/core/view/index.d.ts.map +1 -1
  282. package/dist/src/core/view/index.js +5 -5
  283. package/dist/src/core/view/index.js.map +1 -1
  284. package/dist/src/testing/index.d.ts +69 -0
  285. package/dist/src/testing/index.d.ts.map +1 -0
  286. package/dist/src/testing/index.js +140 -0
  287. package/dist/src/testing/index.js.map +1 -0
  288. package/index.ts +29 -5
  289. package/package.json +30 -21
  290. package/plugins.ts +2 -2
  291. package/src/core/app/Application.ts +58 -31
  292. package/src/core/bootstrap/app.ts +80 -6
  293. package/src/core/bootstrap/bundle.ts +101 -0
  294. package/src/core/bootstrap/providers/ApiServiceProvider.ts +4 -4
  295. package/src/core/bootstrap/providers/CoreServiceProvider.ts +14 -8
  296. package/src/core/bootstrap/providers/HelperServiceProvider.ts +8 -3
  297. package/src/core/bootstrap/providers/RouteServiceProvider.ts +15 -4
  298. package/src/core/bootstrap/providers/ServiceProvider.ts +8 -8
  299. package/src/core/bootstrap/providers/ViewServiceProvider.ts +3 -3
  300. package/src/core/bootstrap/providers/default-providers.ts +51 -16
  301. package/src/core/bootstrap/providers/index.ts +9 -9
  302. package/src/core/bootstrap/providers/provider-order.test.ts +16 -27
  303. package/src/core/bootstrap/providers/provider-order.ts +1 -1
  304. package/src/core/bootstrap/ssr.ts +136 -0
  305. package/src/core/cache/ViewCache.ts +1 -1
  306. package/src/core/cache/index.ts +1 -1
  307. package/src/core/contracts/ApplicationInterface.ts +13 -11
  308. package/src/core/contracts/BlockInterface.ts +18 -18
  309. package/src/core/contracts/BundleInterface.ts +40 -0
  310. package/src/core/contracts/ComponentInterface.ts +7 -6
  311. package/src/core/contracts/ElementInterface.ts +95 -27
  312. package/src/core/contracts/HeadServiceInterface.ts +41 -0
  313. package/src/core/contracts/HelperInterface.ts +9 -1
  314. package/src/core/contracts/HttpServiceInterface.ts +3 -0
  315. package/src/core/contracts/MarkerInterface.ts +22 -49
  316. package/src/core/contracts/ReactiveInterface.ts +9 -9
  317. package/src/core/contracts/RouterInterface.ts +5 -2
  318. package/src/core/contracts/SectionInterface.ts +49 -0
  319. package/src/core/contracts/ServiceProviderInterface.ts +3 -3
  320. package/src/core/contracts/ViewControllerInterface.ts +124 -16
  321. package/src/core/contracts/ViewInterface.ts +34 -5
  322. package/src/core/contracts/ViewManagerInterface.ts +40 -5
  323. package/src/core/contracts/ViewStateInterface.ts +39 -2
  324. package/src/core/contracts/common.ts +3 -3
  325. package/src/core/contracts/utils.ts +19 -19
  326. package/src/core/contracts/views.ts +2 -22
  327. package/src/core/devtools/hook.ts +142 -0
  328. package/src/core/devtools/index.ts +38 -0
  329. package/src/core/devtools/inspector.ts +270 -0
  330. package/src/core/elements/Block.ts +43 -21
  331. package/src/core/elements/BlockOutlet.ts +61 -21
  332. package/src/core/elements/Component.ts +352 -18
  333. package/src/core/elements/ElementManager.ts +9 -9
  334. package/src/core/elements/ForeachSlotCache.ts +170 -0
  335. package/src/core/elements/Fragment.ts +50 -32
  336. package/src/core/elements/Html.ts +696 -117
  337. package/src/core/elements/Output.ts +147 -30
  338. package/src/core/elements/Reactive.ts +329 -52
  339. package/src/core/elements/TextElement.ts +25 -16
  340. package/src/core/elements/Wrapper.ts +84 -18
  341. package/src/core/elements/Yield.ts +35 -24
  342. package/src/core/elements/helpers.ts +12 -12
  343. package/src/core/elements/index.ts +25 -24
  344. package/src/core/elements/reconcileChildren.ts +70 -0
  345. package/src/core/{hellpers → helpers}/ApiClient.ts +8 -1
  346. package/src/core/{hellpers → helpers}/app.ts +13 -2
  347. package/src/core/helpers/transition.ts +127 -0
  348. package/src/core/{hellpers → helpers}/utils.ts +4 -4
  349. package/src/core/helpers/view.ts +283 -0
  350. package/src/core/routers/Router.ts +458 -64
  351. package/src/core/routers/index.ts +2 -2
  352. package/src/core/services/AssetManager.ts +387 -0
  353. package/src/core/services/BlockManager.ts +272 -50
  354. package/src/core/services/DomService.ts +3 -3
  355. package/src/core/services/HeadService.ts +124 -0
  356. package/src/core/services/HelperService.ts +34 -4
  357. package/src/core/services/HttpService.ts +116 -55
  358. package/src/core/services/MarkerRegistry.ts +142 -16
  359. package/src/core/services/PageCache.ts +239 -0
  360. package/src/core/services/SectionManager.ts +387 -0
  361. package/src/core/services/StorageService.ts +1 -1
  362. package/src/core/services/TranslationService.ts +91 -0
  363. package/src/core/services/index.ts +11 -8
  364. package/src/core/types/utils.ts +8 -8
  365. package/src/core/view/LoopContext.ts +38 -1
  366. package/src/core/view/ResourceScope.ts +174 -0
  367. package/src/core/view/Section.ts +21 -68
  368. package/src/core/view/View.ts +57 -8
  369. package/src/core/view/ViewController.ts +1070 -186
  370. package/src/core/view/ViewManager.ts +1346 -272
  371. package/src/core/view/ViewState.ts +834 -116
  372. package/src/core/view/index.ts +5 -5
  373. package/src/testing/index.ts +184 -0
  374. package/dist/src/core/services/MarkerService.d.ts +0 -299
  375. package/dist/src/core/services/MarkerService.d.ts.map +0 -1
  376. package/dist/src/core/services/MarkerService.js +0 -723
  377. package/dist/src/core/services/MarkerService.js.map +0 -1
  378. package/src/core/services/MarkerService.ts +0 -923
@@ -1 +1 @@
1
- {"version":3,"file":"Html.js","sourceRoot":"","sources":["../../../../src/core/elements/Html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Html.js","sourceRoot":"","sources":["../../../../src/core/elements/Html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAiB,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,EAAoB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;;;GAKG;AACH,SAAS,SAAS,CAAC,KAAa;IAC5B,MAAM,CAAC,GAAQ,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC9C,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,kFAAkF;IAClF,OAAO,KAAK;SACP,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;SACpC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,MAAM,GAAG,4BAA4B,CAAC;AAE5C;;;;;;;;;;;;;;;GAeG;AACH,SAAS,gBAAgB,CAAC,OAAe,EAAE,aAAoC;IAC3E,MAAM,MAAM,GAAG,aAAa,EAAE,OAAO,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK;WACxB,CAAC,MAAM,EAAE,YAAY,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC;IAE/E,OAAO,KAAK;QACR,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAA2B;QACrE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,qFAAqF;AACrF,SAAS,UAAU,CAAC,EAAW;IAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,OAAO,IAAI;IA4Bb,YAAY,EACR,GAAG,EACH,EAAE,GAAG,IAAI,EACT,aAAa,GAAG,IAAI,EACpB,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,IAAI,EACd,MAAM,GAAG,EAAE,EACX,eAAe,GAAG,IAAI,EACtB,QAAQ,GAAG,SAAS,CAAC,MAAM,GAU9B;QA7CD,YAAO,GAAkB,MAAM,CAAC;QAMxB,aAAQ,GAAuB,EAAE,CAAC;QAEnC,gBAAW,GAAW,EAAE,CAAC,CAAC,uFAAuF;QAChH,oBAAe,GAA8B,IAAI,CAAC;QAClD,oBAAe,GAAoB,IAAI,eAAe,EAAE,CAAC;QAEjE,yEAAyE;QACjE,wBAAmB,GAAmB,EAAE,CAAC;QACjD,kFAAkF;QAC1E,sBAAiB,GAAG,CAAC,CAAC;QACtB,uBAAkB,GAAwB,IAAI,CAAC;QACvD,gFAAgF;QACxE,0BAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,sBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,sBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,yBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QACjD,wFAAwF;QAChF,yBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,aAAQ,GAAa,SAAS,CAAC,MAAM,CAAC;QACrC,eAAU,GAAG,KAAK,CAAC;QA6nBnB,oBAAe,GAAG,KAAK,CAAC;QACxB,uBAAkB,GAAG,KAAK,CAAC;QAC3B,cAAS,GAAG,KAAK,CAAC;QAClB,cAAS,GAAG,KAAK,CAAC;QAqF1B,yDAAyD;QACjD,aAAQ,GAAG,KAAK,CAAC;QAmDzB,wFAAwF;QACjF,kBAAa,GAAY,KAAK,CAAC;QAnvBlC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,0EAA0E;QAC1E,gFAAgF;QAChF,2BAA2B;QAC3B,MAAM,aAAa,GAAG,OAAO,YAAY,WAAW;YAChD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEtE,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,MAAM,GAAI,GAAW,CAAC,MAAM,IAAI,IAAI,CAAC;QAC3C,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEnE,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,QAAQ,KAAK,SAAS,CAAC,OAAO,CAAC;QACrD,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YACxC,wEAAwE;YACxE,EAAE;YACF,kFAAkF;YAClF,qFAAqF;YACrF,EAAE;YACF,yBAAyB;YACzB,6EAA6E;YAC7E,mEAAmE;YACnE,4DAA4D;YAC5D,IAAI,KAAK,GAAuB,IAAI,CAAC;YAErC,IAAI,YAAY,EAAE,CAAC;gBACf,mEAAmE;gBACnE,0DAA0D;gBAC1D,kEAAkE;gBAClE,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzD,MAAM,WAAW,GAAmB,aAAa,EAAE,OAAO,IAAI,IAAI,CAAC;gBACnE,IAAI,WAAW,EAAE,CAAC;oBACd,2DAA2D;oBAC3D,yDAAyD;oBACzD,2DAA2D;oBAC3D,yDAAyD;oBACzD,6DAA6D;oBAC7D,6CAA6C;oBAC7C,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAuB,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACJ,6DAA6D;oBAC7D,yCAAyC;oBACzC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAuB,CAAC;gBACnE,CAAC;YACL,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACJ,gEAAgE;gBAChE,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACxD,IAAI,YAAY;oBAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,wEAAwE;YACxE,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC7D,IAAI,YAAY;gBAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/D,CAAC;QAID,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,SAAoC;QAC7C,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAE/B,0EAA0E;QAC1E,4EAA4E;QAC5E,qEAAqE;QACrE,oEAAoE;QACpE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,GAAG;YACV,GAAG,IAAI,CAAC,MAAM;YACd,GAAG,SAAS;YACZ,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,SAAS,CAAC,OAAO;SAC7B,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CAAC,UAAkB;QACvC,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,UAAU,KAAK,IAAI,CAAC,iBAAiB,CAAC;IACxE,CAAC;IAEO,uBAAuB,CAAC,uBAAgC,IAAI;QAChE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,oBAAoB,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QACjD,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjD,IAAI,CAAC;gBACD,WAAW,EAAE,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;YAC7E,CAAC;QACL,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAClC,CAAC;IAEO,oBAAoB,CAAC,OAAkC,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxH,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAEnC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClG,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,OAAc,CAAC;QACnC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC;gBACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;oBACvB,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACJ,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,iEAAiE;gBACjE,sEAAsE;gBACtE,IAAI,CAAC;oBAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAID;;;;;;;;;OASG;IACK,iBAAiB,CAAC,IAAY;QAClC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;OAWG;IACK,kBAAkB,CAAC,QAAgB;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,IAAI,CAAC,OAA2B,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC;QACzC,MAAM,UAAU,GAAG,QAAQ,IAAK,EAAmC,CAAC,QAAQ,CAAC;QAC7E,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC;QAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;QACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;QAE7D,MAAM,SAAS,GAAG,GAAQ,EAAE;YACxB,IAAI,UAAU;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAE,EAAmC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpH,IAAI,UAAU;gBAAE,OAAO,EAAE,CAAC,OAAO,CAAC;YAClC,IAAI,QAAQ;gBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC;YAClF,OAAO,EAAE,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;gBAAE,OAAO;YAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,OAAO,MAAM,KAAK,UAAU;gBAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;;gBACjD,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YACjE,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxE,KAAK,MAAM,MAAM,IAAK,EAAmC,CAAC,OAAO,EAAE,CAAC;oBAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACxC,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;wBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACzD,CAAC;YACL,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACpB,IAAI,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK;oBAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;YACrD,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;gBAC5D,IAAI,EAAE,CAAC,OAAO,KAAK,OAAO;oBAAE,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI;oBAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,kCAAkC;YAC9E,CAAC;QACL,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,sEAAsE;QACtE,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ;YACtE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAE,EAAmC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,eAAe,CAAC;YACrH,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,cAAc;gBAC1D,CAAC,CAAC,EAAE,CAAC,KAAK,KAAM,EAAqC,CAAC,YAAY,CAAC,CAAC;QACxE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,SAAS;YAAE,WAAW,EAAE,CAAC;aACxB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,QAAQ;gBAAE,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;gBAC3E,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAC3C,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE;YAClC,IAAI,IAAI,CAAC,SAAS,IAAK,KAAoB,CAAC,WAAW;gBAAE,OAAO;YAChE,WAAW,EAAE,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,UAAU,IAAI,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,EAAE;gBACjD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,WAAW,EAAE,CAAC;YAClB,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;IAEO,oBAAoB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAEhC,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;QAED,2EAA2E;QAC3E,wEAAwE;QACxE,6EAA6E;QAC7E,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,oEAAoE;QACpE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC9D,IAAK,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,KAAK;wBAAG,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;gBACjH,CAAC;qBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;wBAC3D,IAAK,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,KAAK,KAAK;4BAAG,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;oBAC3F,CAAC;yBAAM,CAAC;wBACH,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;wBACxC,OAAQ,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,CAAC;oBAC3C,CAAC;oBAED,kCAAkC;oBAClC,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;wBAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAC5C,UAAU,CAAC,SAAS,EACpB,GAAG,EAAE;4BACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;gCAAE,OAAO;4BAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAChE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gCACpE,IAAK,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,KAAK,QAAQ;oCAAG,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;4BACjG,CAAC;iCAAM,CAAC;gCACH,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gCACxC,OAAQ,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,CAAC;4BAC3C,CAAC;wBACL,CAAC,CACJ,CAAC;wBACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC/C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,QAAgB,EAAE,UAAe;QAChD,sDAAsD;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE/C,4FAA4F;QAC5F,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9D,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC5F,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;oBAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACpJ,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YACjD,CAAC;QACL,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC1C,MAAM,UAAU,GAAG,GAAG,EAAE;gBACpB,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;oBACpE,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC;wBAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpI,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC,CAAC;YACF,UAAU,EAAE,CAAC;YAEb,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;gBAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAC5C,UAAU,CAAC,SAAS,EACpB,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;oBAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CACjE,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/C,CAAC;YACD,2EAA2E;YAC3E,6EAA6E;YAC7E,2EAA2E;YAC3E,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CACxC,UAAU,CAAC,SAAS,EACpB,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;oBAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CACjE,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;IACL,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAEjC,0EAA0E;QAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5C,IAAI,CAAC,WAAW;oBAAE,SAAS;gBAE3B,qEAAqE;gBACrE,uEAAuE;gBACvE,0EAA0E;gBAC1E,uDAAuD;gBACvD,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBAC1C,IAAI,OAAO,GAAa,EAAE,CAAC;oBAC3B,MAAM,YAAY,GAAG,GAAG,EAAE;wBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BAChE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAClC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;4BACzB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gCAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gCACvB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BACxC,CAAC;wBACL,CAAC;wBACD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;4BACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BACpB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACrC,CAAC;wBACD,OAAO,GAAG,IAAI,CAAC;oBACnB,CAAC,CAAC;oBACF,YAAY,EAAE,CAAC;oBACf,IAAI,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;wBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAC5C,WAAW,CAAC,SAAS,EACrB,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;4BAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CACnE,CAAC;wBACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC/C,CAAC;oBACD,SAAS;gBACb,CAAC;gBAED,IAAI,CAAC,WAAW,CAAC,KAAK;oBAAE,SAAS;gBACjC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEtC,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAChC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACzB,SAAS;gBACb,CAAC;gBAED,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBAC1C,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;oBACzE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;oBAE5C,IAAI,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;wBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAC5C,WAAW,CAAC,SAAS,EACrB,GAAG,EAAE;4BACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;gCAAE,OAAO;4BAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;4BACrE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;wBAC5C,CAAC,CACJ,CAAC;wBACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC/C,CAAC;gBACL,CAAC;YACL,CAAC;YACD,OAAO;QACX,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;oBACpB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC7B,CAAC;YACL,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAC1C,gBAAgB;gBAChB,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;gBACvF,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;gBAE5C,iCAAiC;gBACjC,IAAI,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;oBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAC5C,WAAW,CAAC,SAAS,EACrB,GAAG,EAAE;wBACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;4BAAE,OAAO;wBAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;wBACrE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC5C,CAAC,CACJ,CAAC;oBACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,SAAiB;QAC9B,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1G,CAAC;YACD,OAAO;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3F,CAAC;IAEO,WAAW,CAAC,SAAiB;QACjC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5G,CAAC;YACD,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;IAEO,WAAW,CAAC,SAAiB,EAAE,KAAc;QACjD,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK;wBAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7H,CAAC;YACD,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9G,CAAC;IAEO,UAAU,CAAC,IAAY,EAAE,KAAU;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvG,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAEhC,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAChE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAC1C,gBAAgB;gBAChB,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC7F,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAEpC,iCAAiC;gBACjC,IAAI,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;oBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAC5C,WAAW,CAAC,SAAS,EACrB,GAAG,EAAE;wBACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;4BAAE,OAAO;wBAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBACpC,CAAC,CACJ,CAAC;oBACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CACrB,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EACjC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAC1C,CAAC;gBACF,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;IACL,CAAC;IAED,oBAAoB;QAChB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAChD,IAAI,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,SAAS,aAAa,EAAE,KAAK,CAAC,CAAC;YAC7E,CAAC;QACL,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,gBAAgB,CAAC,MAA4B;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,MAA4B;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,kBAAkB,CAAC,OAA2B;QAC1C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACnC,CAAC;IAED,eAAe;QACX,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,cAAc;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ;aACnB,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;aAC5F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACzD,OAAO,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAA8B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChJ,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAOD,MAAM;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;QACD,IAAI,QAAQ,GAAuB,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAuB,CAAC;QAErF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YACtC,gEAAgE;YAChE,6EAA6E;YAC7E,qEAAqE;YACrE,4DAA4D;YAC5D,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;YACjC,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpD,0EAA0E;QAC1E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,QAAiB,EAAE,CAAC;YACpC,MAAM,KAAK,GAAqB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;YAC/D,MAAM,IAAI,GAAqB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC;YAC/D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClB,IAAI,OAAO,KAAK,IAAI;oBAAE,MAAM;gBAC5B,OAAO,GAAG,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC;YAC/C,CAAC;QACL,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3F,IAAI,IAAI,CAAC,SAAS;YAAE,KAAK,MAAM,KAAK,IAAI,QAAiB;gBAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAC3E,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAQ,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,EAAE;YACf,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;gBAAE,OAAO;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,OAA8B,CAAC;gBACrD,0DAA0D;gBAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK;oBAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YAC9E,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;YACrC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,IAAI,CAAC,eAAe;YAAE,KAAK,EAAE,CAAC;aAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,OAA8B,CAAC;gBACrD,kEAAkE;gBAClE,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;oBAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;YACrC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,OAAO,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IAKD;;;;OAIG;IACK,aAAa;QACjB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,CAAG,4CAA4C;QACrF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,aAAa,CAAC,OAAqC;QAC/C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,6DAA6D;IAC7D,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,OAAO,IAAI,KAAK,IAAI,OAAQ,KAAa,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChE,KAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,IAAI;QACA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,MAAM,IAAI,KAAK,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9D,KAAa,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;QACL,CAAC;IACL,CAAC;IAID,SAAS;QACL,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,MAAM;QACF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAKD,OAAO;QACH,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,8EAA8E;QAC9E,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC;QACpD,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,sEAAsE;YACtE,oEAAoE;YACpE,oEAAoE;YACpE,yDAAyD;YACzD,EAAE;YACF,mEAAmE;YACnE,gEAAgE;YAChE,sEAAsE;YACtE,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,wCAAwC;YACxC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;YAC/E,OAAO;QACX,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,6CAA6C;QAC7C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACK,0BAA0B;QAC9B,MAAM,OAAO,GAAG,CAAC,IAAS,EAAQ,EAAE;YAChC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO;YAC9C,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,KAAK,MAAM,CAAC,IAAI,IAAI;oBAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,sEAAsE;IAC9D,eAAe;QACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC5D,KAAK,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;QAChC,CAAC;IACL,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,KAAc;QAC3B,wFAAwF;IAC5F,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,SAAS,CAAC,KAAc;QACxB,wFAAwF;IAC5F,CAAC;CACJ"}
@@ -1,7 +1,7 @@
1
- import { InitMode } from "../contracts/common";
2
- import type { HtmlInterface, OutputInterface } from "../contracts/ElementInterface";
3
- import type { ViewControllerInterface } from "../contracts/ViewControllerInterface";
4
- import type { OneObjectType } from "../types/utils";
1
+ import { InitMode } from "../contracts/common.js";
2
+ import type { HtmlInterface, OutputInterface } from "../contracts/ElementInterface.js";
3
+ import type { ViewControllerInterface } from "../contracts/ViewControllerInterface.js";
4
+ import type { SaoObjectType } from "../types/utils.js";
5
5
  /**
6
6
  * Output — reactive text output between comment markers.
7
7
  *
@@ -12,7 +12,7 @@ import type { OneObjectType } from "../types/utils";
12
12
  * Update: Khi stateKeys thay đổi → re-evaluate contentFactory → update textContent
13
13
  */
14
14
  export declare class Output implements OutputInterface {
15
- oneType: OneObjectType;
15
+ saoType: SaoObjectType;
16
16
  ctx: ViewControllerInterface;
17
17
  parent: HtmlInterface | null;
18
18
  openTag: Comment;
@@ -36,13 +36,34 @@ export declare class Output implements OutputInterface {
36
36
  isEscapeHTML?: boolean;
37
37
  initMode?: InitMode;
38
38
  });
39
+ /**
40
+ * Tìm cặp comment markers và text node từ server-rendered HTML.
41
+ *
42
+ * Duyệt comment nodes trong parent element, tìm cặp khớp format chuẩn §5.1:
43
+ * open: `s:o:{this.id}-s`
44
+ * close: `s:o:{this.id}-e`
45
+ *
46
+ * Nếu có text node giữa 2 markers → claim luôn để không tạo thừa.
47
+ */
48
+ private claimSSRMarkers;
39
49
  setParentElement(parent: HtmlInterface | null): void;
40
50
  setContentFactory(factory: () => string): void;
41
51
  setStateKeys(stateKeys: string[]): void;
52
+ /** Nodes của raw HTML mode ({!! !!}) — track để clear khi update */
53
+ private rawNodes;
42
54
  /**
43
- * Render — insert markers + initial text into parent element.
55
+ * Render — idempotent + position-aware (RUNTIME_CONTRACT.md §2):
56
+ * - Markers chưa nằm trong DOM → caller chưa đặt → tự append vào parent
57
+ * (đường mountElementList: thứ tự duyệt tuần tự nên vị trí đúng).
58
+ * - Markers ĐÃ nằm trong DOM (caller như Reactive đã chèn đúng chỗ)
59
+ * → chỉ render nội dung GIỮA markers. FIX(baseline#6).
44
60
  */
45
61
  render(): void;
62
+ /** Xoá toàn bộ nodes giữa open/close markers */
63
+ private clearContent;
64
+ private insertBeforeClose;
65
+ /** Parse HTML string → DOM nodes thật, chèn giữa markers */
66
+ private renderRaw;
46
67
  /**
47
68
  * Start — subscribe to state changes for reactive updates.
48
69
  * Called during START phase of view lifecycle.
@@ -53,16 +74,19 @@ export declare class Output implements OutputInterface {
53
74
  */
54
75
  stop(): void;
55
76
  /**
56
- * Update — re-evaluate contentFactory and update text node in-place.
57
- * O(1) — chỉ thay textContent, không tạo/xóa DOM nodes.
77
+ * Update — re-evaluate contentFactory.
78
+ * Escaped mode: O(1) — chỉ thay textContent.
79
+ * Raw mode: clear giữa markers → parse + chèn lại.
58
80
  */
59
81
  private update;
60
82
  /**
61
83
  * Destroy — cleanup everything.
62
84
  */
85
+ /** Registry guard — alias của _isDestroyed cho ViewController.aliveFromRegistry */
86
+ get __destroyed__(): boolean;
63
87
  destroy(): void;
64
- get isOneElement(): boolean;
65
- set isOneElement(_: boolean);
88
+ get isSaoElement(): boolean;
89
+ set isSaoElement(_: boolean);
66
90
  get isOneOutput(): boolean;
67
91
  set isOneOutput(_: boolean);
68
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../../../../src/core/elements/Output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAEpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;;;;;GAQG;AACH,qBAAa,MAAO,YAAW,eAAe;IAC1C,OAAO,EAAE,aAAa,CAAY;IAClC,GAAG,EAAE,uBAAuB,CAAC;IAC7B,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,IAAI,EAAE,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,EAAE,CAAS;IACnB,QAAQ,EAAE,QAAQ,CAAoB;gBAE1B,EACR,GAAG,EACH,EAAS,EACT,MAAa,EACb,SAAc,EACd,cAAyB,EACzB,YAAmB,EACnB,QAA2B,EAC9B,EAAE;QACC,GAAG,EAAE,uBAAuB,CAAC;QAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;QAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;QAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACvB;IAaD,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAGpD,iBAAiB,CAAC,OAAO,EAAE,MAAM,MAAM,GAAG,IAAI;IAG9C,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IASvC;;OAEG;IACH,MAAM,IAAI,IAAI;IAgBd;;;OAGG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,IAAI,IAAI,IAAI;IAUZ;;;OAGG;IACH,OAAO,CAAC,MAAM;IAWd;;OAEG;IACH,OAAO,IAAI,IAAI;IAoBf,IAAI,YAAY,IAAI,OAAO,CAAiB;IAC5C,IAAI,YAAY,CAAC,CAAC,EAAE,OAAO,EAAI;IAC/B,IAAI,WAAW,IAAI,OAAO,CAAiB;IAC3C,IAAI,WAAW,CAAC,CAAC,EAAE,OAAO,EAAI;CACjC"}
1
+ {"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../../../../src/core/elements/Output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAGvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;GAQG;AACH,qBAAa,MAAO,YAAW,eAAe;IAC1C,OAAO,EAAE,aAAa,CAAY;IAClC,GAAG,EAAE,uBAAuB,CAAC;IAC7B,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,IAAI,EAAE,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,EAAE,CAAS;IACnB,QAAQ,EAAE,QAAQ,CAAoB;gBAE1B,EACR,GAAG,EACH,EAAS,EACT,MAAa,EACb,SAAc,EACd,cAAyB,EACzB,YAAmB,EACnB,QAA2B,EAC9B,EAAE;QACC,GAAG,EAAE,uBAAuB,CAAC;QAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;QAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;QAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACvB;IA+BD;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAiBvB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAGpD,iBAAiB,CAAC,OAAO,EAAE,MAAM,MAAM,GAAG,IAAI;IAG9C,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IASvC,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAc;IAE9B;;;;;;OAMG;IACH,MAAM,IAAI,IAAI;IAgCd,gDAAgD;IAChD,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,iBAAiB;IAIzB,4DAA4D;IAC5D,OAAO,CAAC,SAAS;IAUjB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,IAAI,IAAI,IAAI;IAUZ;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAwBd;;OAEG;IACH,mFAAmF;IACnF,IAAW,aAAa,IAAI,OAAO,CAA8B;IAEjE,OAAO,IAAI,IAAI;IAyBf,IAAI,YAAY,IAAI,OAAO,CAAiB;IAC5C,IAAI,YAAY,CAAC,CAAC,EAAE,OAAO,EAAI;IAC/B,IAAI,WAAW,IAAI,OAAO,CAAiB;IAC3C,IAAI,WAAW,CAAC,CAAC,EAAE,OAAO,EAAI;CACjC"}
@@ -1,5 +1,6 @@
1
- import { InitModes } from "../contracts/common";
2
- import { escapeHTML, generateUUID } from "../hellpers/utils";
1
+ import { InitModes } from "../contracts/common.js";
2
+ import { generateUUID } from "../helpers/utils.js";
3
+ import markerRegistry from "../services/MarkerRegistry.js";
3
4
  /**
4
5
  * Output — reactive text output between comment markers.
5
6
  *
@@ -11,13 +12,15 @@ import { escapeHTML, generateUUID } from "../hellpers/utils";
11
12
  */
12
13
  export class Output {
13
14
  constructor({ ctx, id = null, parent = null, stateKeys = [], contentFactory = () => '', isEscapeHTML = true, initMode = InitModes.CREATE }) {
14
- this.oneType = 'Output';
15
+ this.saoType = 'Output';
15
16
  this.domChildren = []; // For compatibility with HtmlInterface; Output itself doesn't have a single root element
16
17
  this.textNode = null;
17
18
  this.unsubscribe = null;
18
19
  this._isStarted = false;
19
20
  this._isDestroyed = false;
20
21
  this.initMode = InitModes.CREATE;
22
+ /** Nodes của raw HTML mode ({!! !!}) — track để clear khi update */
23
+ this.rawNodes = [];
21
24
  this.ctx = ctx;
22
25
  this.parent = parent;
23
26
  this.stateKeys = stateKeys;
@@ -25,8 +28,52 @@ export class Output {
25
28
  this.isEscapeHTML = isEscapeHTML;
26
29
  this.id = `${ctx.viewId}-${id ?? generateUUID(8)}`;
27
30
  this.initMode = initMode;
28
- this.openTag = document.createComment(`o:${this.id}-s`);
29
- this.closeTag = document.createComment(`o:${this.id}-e`);
31
+ if (this.initMode === InitModes.HYDRATE) {
32
+ // ── SSR Hydration: tìm markers đã có trong DOM ──────────────────
33
+ // Blade emit: <!--o:{viewId}-{id}-s--> ... <!--o:{viewId}-{id}-e-->
34
+ // Nếu tìm thấy → claim, kèm text node giữa markers.
35
+ // Nếu không → tạo mới (partial hydration fallback).
36
+ const claimed = this.claimSSRMarkers();
37
+ if (claimed) {
38
+ this.openTag = claimed.open;
39
+ this.closeTag = claimed.close;
40
+ this.textNode = claimed.textNode;
41
+ }
42
+ else {
43
+ this.openTag = markerRegistry.createMarkerStart('output', this.id);
44
+ this.closeTag = markerRegistry.createMarkerEnd('output', this.id);
45
+ }
46
+ }
47
+ else {
48
+ // ── CSR: tạo markers mới ─────────────────────────────────────────
49
+ this.openTag = markerRegistry.createMarkerStart('output', this.id);
50
+ this.closeTag = markerRegistry.createMarkerEnd('output', this.id);
51
+ }
52
+ }
53
+ /**
54
+ * Tìm cặp comment markers và text node từ server-rendered HTML.
55
+ *
56
+ * Duyệt comment nodes trong parent element, tìm cặp khớp format chuẩn §5.1:
57
+ * open: `s:o:{this.id}-s`
58
+ * close: `s:o:{this.id}-e`
59
+ *
60
+ * Nếu có text node giữa 2 markers → claim luôn để không tạo thừa.
61
+ */
62
+ claimSSRMarkers() {
63
+ const pair = markerRegistry.claim('output', this.id, this.parent?.element ?? null);
64
+ if (!pair)
65
+ return null;
66
+ // Text node giữa 2 marker — claim luôn để không tạo thừa.
67
+ let textNode = null;
68
+ let sibling = pair.open.nextSibling;
69
+ while (sibling && sibling !== pair.close) {
70
+ if (sibling.nodeType === Node.TEXT_NODE) {
71
+ textNode = sibling;
72
+ break;
73
+ }
74
+ sibling = sibling.nextSibling;
75
+ }
76
+ return { open: pair.open, close: pair.close, textNode };
30
77
  }
31
78
  setParentElement(parent) {
32
79
  this.parent = parent;
@@ -43,19 +90,66 @@ export class Output {
43
90
  }
44
91
  }
45
92
  /**
46
- * Render — insert markers + initial text into parent element.
93
+ * Render — idempotent + position-aware (RUNTIME_CONTRACT.md §2):
94
+ * - Markers chưa nằm trong DOM → caller chưa đặt → tự append vào parent
95
+ * (đường mountElementList: thứ tự duyệt tuần tự nên vị trí đúng).
96
+ * - Markers ĐÃ nằm trong DOM (caller như Reactive đã chèn đúng chỗ)
97
+ * → chỉ render nội dung GIỮA markers. FIX(baseline#6).
47
98
  */
48
99
  render() {
49
- if (!this.parent?.element || this._isDestroyed)
100
+ if (this._isDestroyed)
101
+ return;
102
+ // ── Hydrate mode: markers đã trong DOM, text node đã claim ──────
103
+ // Chỉ cần đảm bảo markers có mặt và text đồng bộ với state hiện tại.
104
+ // Không tạo thêm node, không clear — giữ nguyên DOM server-rendered.
105
+ if (this.initMode === InitModes.HYDRATE && this.openTag.parentNode && this.textNode) {
106
+ return;
107
+ }
108
+ if (this.openTag.parentNode && this.textNode) {
109
+ this.update();
50
110
  return;
51
- const parentEl = this.parent.element;
52
- // Append markers + text node
53
- parentEl.appendChild(this.openTag);
111
+ }
112
+ if (!this.openTag.parentNode) {
113
+ const parentEl = this.parent?.element;
114
+ if (!parentEl)
115
+ return;
116
+ parentEl.appendChild(this.openTag);
117
+ parentEl.appendChild(this.closeTag);
118
+ }
119
+ this.clearContent();
54
120
  const rawText = String(this.contentFactory() ?? '');
55
- const displayText = this.isEscapeHTML ? escapeHTML(rawText) : rawText;
56
- this.textNode = document.createTextNode(displayText);
57
- parentEl.appendChild(this.textNode);
58
- parentEl.appendChild(this.closeTag);
121
+ if (this.isEscapeHTML) {
122
+ this.textNode = document.createTextNode(rawText);
123
+ this.insertBeforeClose(this.textNode);
124
+ }
125
+ else {
126
+ this.renderRaw(rawText);
127
+ }
128
+ }
129
+ /** Xoá toàn bộ nodes giữa open/close markers */
130
+ clearContent() {
131
+ let current = this.openTag.nextSibling;
132
+ while (current && current !== this.closeTag) {
133
+ const next = current.nextSibling;
134
+ current.remove();
135
+ current = next;
136
+ }
137
+ this.textNode = null;
138
+ this.rawNodes = [];
139
+ }
140
+ insertBeforeClose(node) {
141
+ this.closeTag.parentNode?.insertBefore(node, this.closeTag);
142
+ }
143
+ /** Parse HTML string → DOM nodes thật, chèn giữa markers */
144
+ renderRaw(html) {
145
+ if (!html)
146
+ return;
147
+ const range = document.createRange();
148
+ const container = this.closeTag.parentNode ?? document.body;
149
+ range.selectNodeContents(container);
150
+ const fragment = range.createContextualFragment(html);
151
+ this.rawNodes = Array.from(fragment.childNodes);
152
+ this.insertBeforeClose(fragment);
59
153
  }
60
154
  /**
61
155
  * Start — subscribe to state changes for reactive updates.
@@ -82,39 +176,60 @@ export class Output {
82
176
  }
83
177
  }
84
178
  /**
85
- * Update — re-evaluate contentFactory and update text node in-place.
86
- * O(1) — chỉ thay textContent, không tạo/xóa DOM nodes.
179
+ * Update — re-evaluate contentFactory.
180
+ * Escaped mode: O(1) — chỉ thay textContent.
181
+ * Raw mode: clear giữa markers → parse + chèn lại.
87
182
  */
88
183
  update() {
89
- if (!this.textNode || this._isDestroyed)
184
+ if (this._isDestroyed)
90
185
  return;
91
186
  const rawText = String(this.contentFactory() ?? '');
92
- const displayText = this.isEscapeHTML ? escapeHTML(rawText) : rawText;
93
- if (this.textNode.textContent !== displayText) {
94
- this.textNode.textContent = displayText;
187
+ if (this.isEscapeHTML && this.textNode) {
188
+ if (this.textNode.textContent !== rawText) {
189
+ this.textNode.textContent = rawText;
190
+ }
191
+ return;
192
+ }
193
+ // Raw mode hoặc textNode chưa tồn tại → render lại nội dung giữa markers
194
+ if (this.openTag.parentNode) {
195
+ this.clearContent();
196
+ if (this.isEscapeHTML) {
197
+ this.textNode = document.createTextNode(rawText);
198
+ this.insertBeforeClose(this.textNode);
199
+ }
200
+ else {
201
+ this.renderRaw(rawText);
202
+ }
95
203
  }
96
204
  }
97
205
  /**
98
206
  * Destroy — cleanup everything.
99
207
  */
208
+ /** Registry guard — alias của _isDestroyed cho ViewController.aliveFromRegistry */
209
+ get __destroyed__() { return this._isDestroyed; }
100
210
  destroy() {
101
211
  if (this._isDestroyed)
102
212
  return;
103
213
  this._isDestroyed = true;
214
+ this.ctx.releaseElement?.(this);
104
215
  this.stop();
105
- // Remove text node
106
- if (this.textNode) {
107
- this.textNode.remove();
108
- this.textNode = null;
216
+ // Remove mọi nội dung giữa markers (text node hoặc raw nodes)
217
+ let current = this.openTag.nextSibling;
218
+ while (current && current !== this.closeTag) {
219
+ const next = current.nextSibling;
220
+ current.remove();
221
+ current = next;
109
222
  }
223
+ this.textNode = null;
224
+ this.rawNodes = [];
110
225
  // Remove markers
111
226
  this.openTag.remove();
112
227
  this.closeTag.remove();
113
228
  this.parent = null;
114
229
  }
115
230
  // ─── OneElement markers ─────────────────────────────
116
- get isOneElement() { return true; }
117
- set isOneElement(_) { }
231
+ get isSaoElement() { return true; }
232
+ set isSaoElement(_) { }
118
233
  get isOneOutput() { return true; }
119
234
  set isOneOutput(_) { }
120
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Output.js","sourceRoot":"","sources":["../../../../src/core/elements/Output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Output.js","sourceRoot":"","sources":["../../../../src/core/elements/Output.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { InitMode } from "../contracts/common";
2
- import type { HtmlInterface, OneElementChildren } from "../contracts/ElementInterface";
3
- import type { ReactiveInterface, ReactiveChildrenFactory } from "../contracts/ReactiveInterface";
4
- import type { ViewControllerInterface } from "../contracts/ViewControllerInterface";
5
- import type { OneObjectType } from "../types/utils";
1
+ import { InitMode } from "../contracts/common.js";
2
+ import type { HtmlInterface, SaoElementChildren } from "../contracts/ElementInterface.js";
3
+ import type { ReactiveInterface, ReactiveChildrenFactory } from "../contracts/ReactiveInterface.js";
4
+ import type { ViewControllerInterface } from "../contracts/ViewControllerInterface.js";
5
+ import type { SaoObjectType } from "../types/utils.js";
6
6
  /**
7
7
  * Reactive — a region in the DOM bounded by comment markers that
8
8
  * can re-render its content when reactive dependencies change.
@@ -19,7 +19,7 @@ import type { OneObjectType } from "../types/utils";
19
19
  */
20
20
  export declare class Reactive implements ReactiveInterface {
21
21
  static class: string;
22
- oneType: OneObjectType;
22
+ saoType: SaoObjectType;
23
23
  id: string;
24
24
  type: string;
25
25
  openTag: Comment;
@@ -29,13 +29,23 @@ export declare class Reactive implements ReactiveInterface {
29
29
  parent: HtmlInterface | null;
30
30
  ctx: ViewControllerInterface;
31
31
  childrenFactory: ReactiveChildrenFactory;
32
- children: OneElementChildren;
32
+ children: SaoElementChildren;
33
33
  private mounted;
34
34
  stateKeys: string[];
35
35
  unsubscribe: () => void;
36
36
  private _isStarted;
37
+ /** Marker model (hydration) — gán bởi BlockManager/SSR khi cần; mặc định null. */
38
+ /** Key trả về bởi markerRegistry.register — destroy() dùng để gỡ lại */
39
+ private markerKey;
37
40
  domChildren: Node[];
38
41
  initMode: InitMode;
42
+ /**
43
+ * Slot cache cho @foreach reconciliation (Phase 5).
44
+ * Được tạo khi type === 'foreach', null cho tất cả các type khác.
45
+ * Cache maps item ref → Saola elements — cho phép reuse elements
46
+ * khi item object reference không thay đổi.
47
+ */
48
+ private _foreachCache;
39
49
  constructor({ type, id, ctx, parentElement, parentReactive, stateKeys, childrenFactory, initMode, }: {
40
50
  id?: string | null;
41
51
  type?: string;
@@ -46,11 +56,76 @@ export declare class Reactive implements ReactiveInterface {
46
56
  childrenFactory: ReactiveChildrenFactory;
47
57
  initMode?: InitMode;
48
58
  });
59
+ /**
60
+ * Tìm cặp comment markers từ server-rendered HTML.
61
+ * Format MarkerRegistry: open = `r:id`, close = `/r:id`
62
+ * (r = shortcut cho 'reactive').
63
+ */
64
+ private claimSSRMarkers;
49
65
  setParentElement(parent: HtmlInterface | null): void;
50
66
  setChildrenFactory(factory: ReactiveChildrenFactory): void;
51
67
  setStateKeys(stateKeys: string[]): void;
52
- /** Mount markers into parent and render content */
68
+ /** Registry guard — element đã destroy không được reuse */
69
+ __destroyed__: boolean;
70
+ /**
71
+ * Render — idempotent + position-aware (RUNTIME_CONTRACT.md §2):
72
+ * - Markers chưa trong DOM → đặt markers (trước closeTag của parentReactive
73
+ * nếu có, ngược lại append vào parentElement — đường mountElementList
74
+ * duyệt tuần tự nên vị trí đúng).
75
+ * - Markers đã trong DOM → chỉ thay nội dung GIỮA markers.
76
+ * Children loại marker-based (Output, nested Reactive, Fragment) được CALLER
77
+ * đặt markers vào đúng vị trí trước, rồi mới gọi child.render() — FIX(baseline#6).
78
+ * Children sinh ra khi đang active được start() ngay — FIX(baseline#7).
79
+ */
53
80
  render(): void;
81
+ private _render;
82
+ /**
83
+ * Phần render nội bộ: chạy childrenFactory, insert children vào DOM.
84
+ * Dùng cho initial render (mọi type) và re-render non-foreach.
85
+ * Precondition: markers đã trong DOM.
86
+ */
87
+ private _renderChildren;
88
+ /**
89
+ * Chạy childrenFactory với cửa sổ cache foreach (nếu có) mở đúng quanh
90
+ * factory call. beginPass reset occurrence counters + touched set.
91
+ */
92
+ private _runFactoryWithCache;
93
+ /**
94
+ * Hydrate children — tạo JS element objects từ factory nhưng KHÔNG insert DOM.
95
+ * Html children đã claim server DOM nodes trong constructor.
96
+ * Output/Reactive children gọi render() để claim markers.
97
+ * Sau hydrate, re-render tiếp theo dùng flow CSR bình thường.
98
+ */
99
+ private _hydrateChildren;
100
+ /**
101
+ * renderForeach — identity-keyed reconciliation cho @foreach (Phase 5).
102
+ *
103
+ * # Thuật toán
104
+ * 1. Snapshot cache hiện tại (prevSlots) — biết item nào đang hiển thị
105
+ * 2. Chạy childrenFactory với cache active → __foreach trả về:
106
+ * - cached elements nếu item ref giống (no DOM create)
107
+ * - elements mới nếu item mới (và lưu vào cache)
108
+ * 3. Diff: items nào KHÔNG xuất hiện trong kết quả mới → destroy + xoá cache
109
+ * 4. Reorder DOM: insertBefore(closeTag) cho tất cả elements mới (move hoặc append)
110
+ * 5. Cleanup orphan DOM nodes (nodes còn sót từ destroyed items)
111
+ * 6. Start elements mới nếu vùng đang active
112
+ *
113
+ * # Complexity
114
+ * - O(n) forEach pass trong __foreach
115
+ * - O(n) destroy pass cho removed items
116
+ * - O(n) DOM move pass (insertBefore là O(1) mỗi node)
117
+ * → Tổng O(n) so với O(2n) của clear+recreate, nhưng tiết kiệm DOM create/destroy
118
+ * cho unchanged items.
119
+ */
120
+ private renderForeach;
121
+ /**
122
+ * Xoá các DOM nodes "mồ côi" giữa openTag và closeTag của Reactive.
123
+ * Orphan = nodes không thuộc bất kỳ child nào trong newChildren.
124
+ *
125
+ * Build tập hợp "expected nodes" từ newChildren, sau đó scan DOM
126
+ * và remove nodes không nằm trong tập đó.
127
+ */
128
+ private _cleanOrphanNodes;
54
129
  /** Schedule a re-render through the ViewController */
55
130
  update(): void;
56
131
  /** Clear all DOM nodes between the open and close markers */
@@ -64,14 +139,10 @@ export declare class Reactive implements ReactiveInterface {
64
139
  start(): void;
65
140
  /** Stop — unsubscribe and recursively stop children. */
66
141
  stop(): void;
67
- /** Remove content but keep markers (for hide/show scenarios) */
68
- hide(): void;
69
- /** Re-render content (for show after hide) */
70
- show(): void;
71
142
  destroy(): void;
72
143
  get isOneReactive(): boolean;
73
144
  set isOneReactive(value: boolean);
74
- set isOneElement(value: boolean);
75
- get isOneElement(): boolean;
145
+ set isSaoElement(value: boolean);
146
+ get isSaoElement(): boolean;
76
147
  }
77
148
  //# sourceMappingURL=Reactive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Reactive.d.ts","sourceRoot":"","sources":["../../../../src/core/elements/Reactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAA4B,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACjH,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAoB,MAAM,gCAAgC,CAAC;AACnH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAGpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAC9C,MAAM,CAAC,KAAK,SAAc;IAC1B,OAAO,EAAE,aAAa,CAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAQ;IAEpC,GAAG,EAAE,uBAAuB,CAAC;IAC7B,eAAe,EAAE,uBAAuB,CAAC;IACzC,QAAQ,EAAE,kBAAkB,CAAM;IACzC,OAAO,CAAC,OAAO,CAAkB;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,IAAI,CAAY;IAC1C,OAAO,CAAC,UAAU,CAAS;IAI3B,WAAW,EAAE,IAAI,EAAE,CAAM;IACzB,QAAQ,EAAE,QAAQ,CAAoB;gBAC1B,EACR,IAAiB,EACjB,EAAS,EACT,GAAG,EACH,aAAoB,EACpB,cAAqB,EACrB,SAAc,EACd,eAA0B,EAC1B,QAA2B,GAC9B,EAAE;QACC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,uBAAuB,CAAC;QAC7B,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;QACrC,cAAc,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAC1C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,eAAe,EAAE,uBAAuB,CAAC;QACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACvB;IAmBD,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAIpD,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAI1D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IASvC,mDAAmD;IACnD,MAAM,IAAI,IAAI;IA4Cd,sDAAsD;IACtD,MAAM,IAAI,IAAI;IAId,6DAA6D;IAC7D,OAAO,CAAC,YAAY;IAkBpB,iDAAiD;IACjD,OAAO,CAAC,iBAAiB;IAIzB,sDAAsD;IACtD,OAAO,CAAC,kBAAkB;IAO1B;sDACkD;IAClD,KAAK,IAAI,IAAI;IAoBb,wDAAwD;IACxD,IAAI,IAAI,IAAI;IAiBZ,gEAAgE;IAChE,IAAI,IAAI,IAAI;IAIZ,8CAA8C;IAC9C,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,IAAI;IASf,IAAI,aAAa,IAAI,OAAO,CAE3B;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAE/B;IACD,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAE9B;IACD,IAAI,YAAY,IAAI,OAAO,CAE1B;CACJ"}
1
+ {"version":3,"file":"Reactive.d.ts","sourceRoot":"","sources":["../../../../src/core/elements/Reactive.ts"],"names":[],"mappings":"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"}