@saolabs/client 1.0.0 → 1.1.0

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 (383) 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 +25 -15
  9. package/dist/src/core/app/Application.d.ts.map +1 -1
  10. package/dist/src/core/app/Application.js +55 -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 +77 -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 +129 -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 +15 -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/helpers/ApiClient.d.ts.map +1 -0
  178. package/dist/src/core/{hellpers → helpers}/ApiClient.js +10 -1
  179. package/dist/src/core/helpers/ApiClient.js.map +1 -0
  180. package/dist/src/core/helpers/app.d.ts +3 -0
  181. package/dist/src/core/helpers/app.d.ts.map +1 -0
  182. package/dist/src/core/{hellpers → helpers}/app.js +11 -1
  183. package/dist/src/core/helpers/app.js.map +1 -0
  184. package/dist/src/core/helpers/transition.d.ts +34 -0
  185. package/dist/src/core/helpers/transition.d.ts.map +1 -0
  186. package/dist/src/core/helpers/transition.js +118 -0
  187. package/dist/src/core/helpers/transition.js.map +1 -0
  188. package/dist/src/core/{hellpers → helpers}/utils.d.ts +2 -2
  189. package/dist/src/core/helpers/utils.d.ts.map +1 -0
  190. package/dist/src/core/{hellpers → helpers}/utils.js +4 -4
  191. package/dist/src/core/helpers/utils.js.map +1 -0
  192. package/dist/src/core/helpers/view.d.ts +39 -0
  193. package/dist/src/core/helpers/view.d.ts.map +1 -0
  194. package/dist/src/core/helpers/view.js +286 -0
  195. package/dist/src/core/helpers/view.js.map +1 -0
  196. package/dist/src/core/routers/Router.d.ts +108 -7
  197. package/dist/src/core/routers/Router.d.ts.map +1 -1
  198. package/dist/src/core/routers/Router.js +444 -68
  199. package/dist/src/core/routers/Router.js.map +1 -1
  200. package/dist/src/core/routers/index.d.ts +2 -2
  201. package/dist/src/core/routers/index.d.ts.map +1 -1
  202. package/dist/src/core/routers/index.js +1 -1
  203. package/dist/src/core/routers/index.js.map +1 -1
  204. package/dist/src/core/services/AssetManager.d.ts +112 -0
  205. package/dist/src/core/services/AssetManager.d.ts.map +1 -0
  206. package/dist/src/core/services/AssetManager.js +361 -0
  207. package/dist/src/core/services/AssetManager.js.map +1 -0
  208. package/dist/src/core/services/BlockManager.d.ts +73 -2
  209. package/dist/src/core/services/BlockManager.d.ts.map +1 -1
  210. package/dist/src/core/services/BlockManager.js +270 -48
  211. package/dist/src/core/services/BlockManager.js.map +1 -1
  212. package/dist/src/core/services/DomService.js +3 -3
  213. package/dist/src/core/services/DomService.js.map +1 -1
  214. package/dist/src/core/services/HeadService.d.ts +24 -0
  215. package/dist/src/core/services/HeadService.d.ts.map +1 -0
  216. package/dist/src/core/services/HeadService.js +120 -0
  217. package/dist/src/core/services/HeadService.js.map +1 -0
  218. package/dist/src/core/services/HelperService.d.ts +14 -3
  219. package/dist/src/core/services/HelperService.d.ts.map +1 -1
  220. package/dist/src/core/services/HelperService.js +32 -2
  221. package/dist/src/core/services/HelperService.js.map +1 -1
  222. package/dist/src/core/services/HttpService.d.ts +8 -0
  223. package/dist/src/core/services/HttpService.d.ts.map +1 -1
  224. package/dist/src/core/services/HttpService.js +121 -47
  225. package/dist/src/core/services/HttpService.js.map +1 -1
  226. package/dist/src/core/services/MarkerRegistry.d.ts +51 -8
  227. package/dist/src/core/services/MarkerRegistry.d.ts.map +1 -1
  228. package/dist/src/core/services/MarkerRegistry.js +135 -14
  229. package/dist/src/core/services/MarkerRegistry.js.map +1 -1
  230. package/dist/src/core/services/PageCache.d.ts +101 -0
  231. package/dist/src/core/services/PageCache.d.ts.map +1 -0
  232. package/dist/src/core/services/PageCache.js +184 -0
  233. package/dist/src/core/services/PageCache.js.map +1 -0
  234. package/dist/src/core/services/SectionManager.d.ts +100 -0
  235. package/dist/src/core/services/SectionManager.d.ts.map +1 -0
  236. package/dist/src/core/services/SectionManager.js +408 -0
  237. package/dist/src/core/services/SectionManager.js.map +1 -0
  238. package/dist/src/core/services/StorageService.js +1 -1
  239. package/dist/src/core/services/TranslationService.d.ts +21 -0
  240. package/dist/src/core/services/TranslationService.d.ts.map +1 -0
  241. package/dist/src/core/services/TranslationService.js +95 -0
  242. package/dist/src/core/services/TranslationService.js.map +1 -0
  243. package/dist/src/core/services/index.d.ts +11 -8
  244. package/dist/src/core/services/index.d.ts.map +1 -1
  245. package/dist/src/core/services/index.js +11 -8
  246. package/dist/src/core/services/index.js.map +1 -1
  247. package/dist/src/core/types/utils.d.ts +8 -8
  248. package/dist/src/core/types/utils.d.ts.map +1 -1
  249. package/dist/src/core/view/LoopContext.d.ts +21 -1
  250. package/dist/src/core/view/LoopContext.d.ts.map +1 -1
  251. package/dist/src/core/view/LoopContext.js +36 -0
  252. package/dist/src/core/view/LoopContext.js.map +1 -1
  253. package/dist/src/core/view/ResourceScope.d.ts +38 -0
  254. package/dist/src/core/view/ResourceScope.d.ts.map +1 -0
  255. package/dist/src/core/view/ResourceScope.js +167 -0
  256. package/dist/src/core/view/ResourceScope.js.map +1 -0
  257. package/dist/src/core/view/Section.d.ts +17 -32
  258. package/dist/src/core/view/Section.d.ts.map +1 -1
  259. package/dist/src/core/view/Section.js +14 -55
  260. package/dist/src/core/view/Section.js.map +1 -1
  261. package/dist/src/core/view/View.d.ts +43 -7
  262. package/dist/src/core/view/View.d.ts.map +1 -1
  263. package/dist/src/core/view/View.js +22 -4
  264. package/dist/src/core/view/View.js.map +1 -1
  265. package/dist/src/core/view/ViewController.d.ts +313 -40
  266. package/dist/src/core/view/ViewController.d.ts.map +1 -1
  267. package/dist/src/core/view/ViewController.js +1002 -147
  268. package/dist/src/core/view/ViewController.js.map +1 -1
  269. package/dist/src/core/view/ViewManager.d.ts +318 -27
  270. package/dist/src/core/view/ViewManager.d.ts.map +1 -1
  271. package/dist/src/core/view/ViewManager.js +1199 -258
  272. package/dist/src/core/view/ViewManager.js.map +1 -1
  273. package/dist/src/core/view/ViewState.d.ts +185 -6
  274. package/dist/src/core/view/ViewState.d.ts.map +1 -1
  275. package/dist/src/core/view/ViewState.js +851 -123
  276. package/dist/src/core/view/ViewState.js.map +1 -1
  277. package/dist/src/core/view/index.d.ts +5 -5
  278. package/dist/src/core/view/index.d.ts.map +1 -1
  279. package/dist/src/core/view/index.js +5 -5
  280. package/dist/src/core/view/index.js.map +1 -1
  281. package/dist/src/testing/index.d.ts +69 -0
  282. package/dist/src/testing/index.d.ts.map +1 -0
  283. package/dist/src/testing/index.js +140 -0
  284. package/dist/src/testing/index.js.map +1 -0
  285. package/index.ts +29 -5
  286. package/package.json +30 -21
  287. package/plugins.ts +2 -2
  288. package/src/core/app/Application.ts +72 -31
  289. package/src/core/bootstrap/app.ts +84 -6
  290. package/src/core/bootstrap/bundle.ts +101 -0
  291. package/src/core/bootstrap/providers/ApiServiceProvider.ts +4 -4
  292. package/src/core/bootstrap/providers/CoreServiceProvider.ts +14 -8
  293. package/src/core/bootstrap/providers/HelperServiceProvider.ts +8 -3
  294. package/src/core/bootstrap/providers/RouteServiceProvider.ts +15 -4
  295. package/src/core/bootstrap/providers/ServiceProvider.ts +8 -8
  296. package/src/core/bootstrap/providers/ViewServiceProvider.ts +3 -3
  297. package/src/core/bootstrap/providers/default-providers.ts +51 -16
  298. package/src/core/bootstrap/providers/index.ts +9 -9
  299. package/src/core/bootstrap/providers/provider-order.test.ts +16 -27
  300. package/src/core/bootstrap/providers/provider-order.ts +1 -1
  301. package/src/core/bootstrap/ssr.ts +141 -0
  302. package/src/core/cache/ViewCache.ts +1 -1
  303. package/src/core/cache/index.ts +1 -1
  304. package/src/core/contracts/ApplicationInterface.ts +15 -11
  305. package/src/core/contracts/BlockInterface.ts +18 -18
  306. package/src/core/contracts/BundleInterface.ts +40 -0
  307. package/src/core/contracts/ComponentInterface.ts +7 -6
  308. package/src/core/contracts/ElementInterface.ts +95 -27
  309. package/src/core/contracts/HeadServiceInterface.ts +41 -0
  310. package/src/core/contracts/HelperInterface.ts +9 -1
  311. package/src/core/contracts/HttpServiceInterface.ts +3 -0
  312. package/src/core/contracts/MarkerInterface.ts +22 -49
  313. package/src/core/contracts/ReactiveInterface.ts +9 -9
  314. package/src/core/contracts/RouterInterface.ts +5 -2
  315. package/src/core/contracts/SectionInterface.ts +49 -0
  316. package/src/core/contracts/ServiceProviderInterface.ts +3 -3
  317. package/src/core/contracts/ViewControllerInterface.ts +124 -16
  318. package/src/core/contracts/ViewInterface.ts +34 -5
  319. package/src/core/contracts/ViewManagerInterface.ts +40 -5
  320. package/src/core/contracts/ViewStateInterface.ts +39 -2
  321. package/src/core/contracts/common.ts +3 -3
  322. package/src/core/contracts/utils.ts +19 -19
  323. package/src/core/contracts/views.ts +2 -22
  324. package/src/core/devtools/hook.ts +142 -0
  325. package/src/core/devtools/index.ts +38 -0
  326. package/src/core/devtools/inspector.ts +270 -0
  327. package/src/core/elements/Block.ts +43 -21
  328. package/src/core/elements/BlockOutlet.ts +61 -21
  329. package/src/core/elements/Component.ts +352 -18
  330. package/src/core/elements/ElementManager.ts +9 -9
  331. package/src/core/elements/ForeachSlotCache.ts +170 -0
  332. package/src/core/elements/Fragment.ts +50 -32
  333. package/src/core/elements/Html.ts +696 -117
  334. package/src/core/elements/Output.ts +147 -30
  335. package/src/core/elements/Reactive.ts +329 -52
  336. package/src/core/elements/TextElement.ts +25 -16
  337. package/src/core/elements/Wrapper.ts +84 -18
  338. package/src/core/elements/Yield.ts +35 -24
  339. package/src/core/elements/helpers.ts +12 -12
  340. package/src/core/elements/index.ts +25 -24
  341. package/src/core/elements/reconcileChildren.ts +70 -0
  342. package/src/core/{hellpers → helpers}/ApiClient.ts +8 -1
  343. package/src/core/{hellpers → helpers}/app.ts +13 -2
  344. package/src/core/helpers/transition.ts +127 -0
  345. package/src/core/{hellpers → helpers}/utils.ts +4 -4
  346. package/src/core/helpers/view.ts +283 -0
  347. package/src/core/routers/Router.ts +458 -64
  348. package/src/core/routers/index.ts +2 -2
  349. package/src/core/services/AssetManager.ts +387 -0
  350. package/src/core/services/BlockManager.ts +272 -50
  351. package/src/core/services/DomService.ts +3 -3
  352. package/src/core/services/HeadService.ts +124 -0
  353. package/src/core/services/HelperService.ts +34 -4
  354. package/src/core/services/HttpService.ts +116 -55
  355. package/src/core/services/MarkerRegistry.ts +142 -16
  356. package/src/core/services/PageCache.ts +239 -0
  357. package/src/core/services/SectionManager.ts +387 -0
  358. package/src/core/services/StorageService.ts +1 -1
  359. package/src/core/services/TranslationService.ts +91 -0
  360. package/src/core/services/index.ts +11 -8
  361. package/src/core/types/utils.ts +8 -8
  362. package/src/core/view/LoopContext.ts +38 -1
  363. package/src/core/view/ResourceScope.ts +174 -0
  364. package/src/core/view/Section.ts +21 -68
  365. package/src/core/view/View.ts +57 -8
  366. package/src/core/view/ViewController.ts +1070 -186
  367. package/src/core/view/ViewManager.ts +1346 -272
  368. package/src/core/view/ViewState.ts +834 -116
  369. package/src/core/view/index.ts +5 -5
  370. package/src/testing/index.ts +184 -0
  371. package/dist/src/core/hellpers/ApiClient.d.ts.map +0 -1
  372. package/dist/src/core/hellpers/ApiClient.js.map +0 -1
  373. package/dist/src/core/hellpers/app.d.ts +0 -3
  374. package/dist/src/core/hellpers/app.d.ts.map +0 -1
  375. package/dist/src/core/hellpers/app.js.map +0 -1
  376. package/dist/src/core/hellpers/utils.d.ts.map +0 -1
  377. package/dist/src/core/hellpers/utils.js.map +0 -1
  378. package/dist/src/core/services/MarkerService.d.ts +0 -299
  379. package/dist/src/core/services/MarkerService.d.ts.map +0 -1
  380. package/dist/src/core/services/MarkerService.js +0 -723
  381. package/dist/src/core/services/MarkerService.js.map +0 -1
  382. package/src/core/services/MarkerService.ts +0 -923
  383. /package/dist/src/core/{hellpers → helpers}/ApiClient.d.ts +0 -0
@@ -1,6 +1,6 @@
1
- import { ViewController } from "./ViewController";
1
+ import { ViewController } from "./ViewController.js";
2
2
  /**
3
- * View — the base class for all views in OneView.
3
+ * View — the base class for all views in SaoView.
4
4
  *
5
5
  * A View is the unit that the user writes. It contains:
6
6
  * - User-defined properties (reactive state, computed values)
@@ -48,6 +48,24 @@ export class View {
48
48
  $__setup__(__data__ = {}, systemData = {}) {
49
49
  // Override in subclass
50
50
  }
51
+ /**
52
+ * Phát sự kiện lên cha đã `@include` view này.
53
+ *
54
+ * Là method của View (không chỉ hàm trong scope compiled) để template gọi
55
+ * thẳng được: `@click(emit('edit', card['id']))` biên dịch thành
56
+ * `{ handler: 'emit' }`, và ViewController.addEventListener tra handler
57
+ * dạng chuỗi trên chính View.
58
+ */
59
+ emit(event, ...args) {
60
+ return this.__ctrl__.emit(event, ...args);
61
+ }
62
+ watch(keys, callback, options) {
63
+ return this.__ctrl__.scope.watch(keys, callback, options);
64
+ }
65
+ afterDom(callback) {
66
+ return this.__ctrl__.afterDom(callback);
67
+ }
68
+ get $scope() { return this.__ctrl__.scope; }
51
69
  // ─── Convenience Accessors ──────────────────────────────────
52
70
  get path() {
53
71
  return this.__ctrl__.path;
@@ -63,10 +81,10 @@ export class View {
63
81
  get $state() {
64
82
  return this.__ctrl__.states;
65
83
  }
66
- get oneType() {
84
+ get saoType() {
67
85
  return 'View';
68
86
  }
69
- set oneType(value) {
87
+ set saoType(value) {
70
88
  // No-op setter to satisfy the Interface; this property is always 'View'
71
89
  }
72
90
  get parent() {
@@ -1 +1 @@
1
- {"version":3,"file":"View.js","sourceRoot":"","sources":["../../../../src/core/view/View.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,IAAI;IAIb,YAAY,IAAY,EAAE,WAAqB,MAAM,EAAE,mBAAyB;QAC5E,MAAM,SAAS,GAAG,mBAAmB,IAAI,cAAc,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEvD,4DAA4D;QAC5D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;YACpC,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;SACtB,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,WAAgC,EAAE,EAAE,aAAkC,EAAE;QAC/E,uBAAuB;IAC3B,CAAC;IAYD,+DAA+D;IAE/D,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,6BAA6B;IAC7B,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;IACD,IAAI,OAAO;QACP,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,KAAoB;QAC5B,wEAAwE;IAC5E,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;CACJ"}
1
+ {"version":3,"file":"View.js","sourceRoot":"","sources":["../../../../src/core/view/View.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAWrD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,IAAI;IAIb,YAAY,IAAY,EAAE,WAAqB,MAAM,EAAE,mBAAyB;QAC5E,MAAM,SAAS,GAAG,mBAAmB,IAAI,cAAc,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEvD,4DAA4D;QAC5D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;YACpC,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;SACtB,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,WAAgC,EAAE,EAAE,aAAkC,EAAE;QAC/E,uBAAuB;IAC3B,CAAC;IA8BD;;;;;;;OAOG;IACH,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAuB,EAAE,QAAuB,EAAE,OAAsB;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,QAAQ,CAAC,QAAoB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5C,+DAA+D;IAE/D,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,6BAA6B;IAC7B,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;IACD,IAAI,OAAO;QACP,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,KAAoB;QAC5B,wEAAwE;IAC5E,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;CACJ"}
@@ -1,25 +1,29 @@
1
- import type { BlockInterface, BlockOutletInterface, BlockRenderFactory } from "../contracts/BlockInterface";
2
- import type { FragmentInterface, HtmlInterface, OneChildrenFactory, OneElementEventHandler, OneNodeInterface, OutputInterface, TextInterface, WrapperInterface, YieldInterface } from "../contracts/ElementInterface";
3
- import type { ReactiveChildrenFactory, ReactiveInterface } from "../contracts/ReactiveInterface";
4
- import type { ViewControllerInterface, ViewType, ViewConfig, ViewRuntimeConfig, ViewControllerConfig } from "../contracts/ViewControllerInterface";
5
- import type { ViewInterface, ViewRenderFactory } from "../contracts/ViewInterface";
6
- import type { OneObjectType } from "../types/utils";
7
- import { ViewState } from "./ViewState";
8
- import { LoopContext } from "./LoopContext";
9
- import { Component } from "../elements/Component";
10
- import { ApplicationInterface } from "../contracts/ApplicationInterface";
11
- import { SectionContentRenderer, SectionContentType, SectionInterface, SectionItemType } from "../contracts/views";
12
- import { InitMode } from "../contracts/common";
13
- import { BlockOutlet } from "../elements";
14
- import { ComponentInterface } from "../contracts/ComponentInterface";
15
- type ElementChild = ReactiveInterface | ComponentInterface | HtmlInterface | TextInterface | FragmentInterface | OutputInterface | BlockOutletInterface | YieldInterface | OneNodeInterface;
1
+ import type { BlockInterface, BlockOutletInterface, BlockRenderFactory } from "../contracts/BlockInterface.js";
2
+ import type { FragmentInterface, HtmlInterface, SaoChildrenFactory, SaoChildrenFactoryOutput, SaoChildrenSlotContent, SaoElementEventHandler, SaoNodeInterface, OutputInterface, TextInterface, WrapperInterface, YieldInterface, EventModifier } from "../contracts/ElementInterface.js";
3
+ import type { LoopContextInterface } from "../contracts/LoopContextInterface.js";
4
+ import type { ReactiveChildrenFactory, ReactiveInterface } from "../contracts/ReactiveInterface.js";
5
+ import type { ViewControllerInterface, ViewType, ViewConfig, ViewRuntimeConfig, ViewControllerConfig, ErrorInfo } from "../contracts/ViewControllerInterface.js";
6
+ import type { ViewInterface, ViewRenderFactory } from "../contracts/ViewInterface.js";
7
+ import type { SaoObjectType } from "../types/utils.js";
8
+ import { ViewState } from "./ViewState.js";
9
+ import { ResourceScope } from './ResourceScope.js';
10
+ import { LoopContext } from "./LoopContext.js";
11
+ import { Component } from "../elements/Component.js";
12
+ import type { ViewUserConfig } from "./View.js";
13
+ import { ApplicationInterface } from "../contracts/ApplicationInterface.js";
14
+ import { SectionContentRenderer, SectionContentType, SectionInterface, SectionItemType } from "../contracts/SectionInterface.js";
15
+ import { InitMode } from "../contracts/common.js";
16
+ import { ComponentInterface } from "../contracts/ComponentInterface.js";
17
+ import { ForeachSlotCache } from "../elements/ForeachSlotCache.js";
18
+ type ElementChild = ReactiveInterface | ComponentInterface | HtmlInterface | TextInterface | FragmentInterface | OutputInterface | BlockOutletInterface | YieldInterface | SaoNodeInterface;
16
19
  /**
17
20
  * ViewController — the brain behind a View.
18
21
  *
19
22
  * Manages:
20
23
  * - Reactive state (ViewState) — useState, subscribe, batch flush
21
24
  * - DOM element tree — via Html, Reactive, TextElement, Fragment
22
- * - Event delegation — addEventListener with centralized cleanup
25
+ * - Events — addEventListener TRỰC TIẾP trên từng element (KHÔNG delegation),
26
+ * dọn hàng loạt bằng một AbortController chung. Giống React 17+/Vue/Svelte.
23
27
  * - Loop contexts — @foreach, @for, @while with LoopContext stack
24
28
  * - Block management — for layout views with @useBlock
25
29
  * - Lifecycle — setup, render, destroy
@@ -35,7 +39,7 @@ type ElementChild = ReactiveInterface | ComponentInterface | HtmlInterface | Tex
35
39
  * this.__ctrl__.__foreach(items, (item, key, index, loop) => [...])
36
40
  */
37
41
  export declare class ViewController implements ViewControllerInterface {
38
- oneType: OneObjectType;
42
+ saoType: SaoObjectType;
39
43
  viewId: string;
40
44
  path: string;
41
45
  viewType: ViewType;
@@ -59,6 +63,13 @@ export declare class ViewController implements ViewControllerInterface {
59
63
  originView: ViewControllerInterface | null;
60
64
  /** Raw input data from route/parent */
61
65
  data: Record<string, any>;
66
+ /**
67
+ * Component (@include) đã dựng view này — null với view gốc của route.
68
+ *
69
+ * Đây là lớp trung gian cha↔con: cha khai báo listener tại thẻ, Component
70
+ * giữ bảng đó, con phát qua {@link emit}.
71
+ */
72
+ ownerComponent: ComponentInterface | null;
62
73
  /** User-defined config from setup() */
63
74
  private config;
64
75
  /** Typed runtime config from compiled $__setup__ */
@@ -74,7 +85,7 @@ export declare class ViewController implements ViewControllerInterface {
74
85
  private renderFactory;
75
86
  /** Compiled prerender factory — produces the prerender element tree */
76
87
  private prerenderFactory;
77
- childrenFactory: OneChildrenFactory | null;
88
+ childrenFactory: SaoChildrenFactory | null;
78
89
  /** Stored render output for lifecycle management */
79
90
  renderOutput: any;
80
91
  /** Stored prerender output for hydration or caching */
@@ -89,28 +100,62 @@ export declare class ViewController implements ViewControllerInterface {
89
100
  private hasScheduledUpdate;
90
101
  /** Centralized AbortController for all event listeners */
91
102
  private eventAbortController;
103
+ /** Exact listener references for cleanup when an individual Html node dies. */
104
+ elementEventHandlers: Map<HTMLElement, Map<string, EventListener[]>>;
92
105
  /** Current loop context stack (@foreach, @for, @while) */
93
106
  loopContext: LoopContext | null;
107
+ /**
108
+ * Active ForeachSlotCache — được set bởi Reactive.renderForeach() trước khi
109
+ * gọi childrenFactory. __foreach() đọc cache này để quyết định reuse hay create.
110
+ * Reset về null ngay sau khi childrenFactory trả về.
111
+ */
112
+ _currentForeachCache: ForeachSlotCache | null;
113
+ _foreachSkipRegistry: boolean;
114
+ private foreachRegistry;
115
+ private elementRegistries;
116
+ private inlineForeachCaches;
117
+ /** Deferred child factories retain the row scope in which they were created. */
118
+ private scopeFactory;
119
+ private inForeachScope;
94
120
  /** Section management across views */
95
121
  sections: Map<string, SectionInterface>;
96
122
  /** Block slots in layout views */
97
123
  blocks: Map<string, BlockInterface>;
98
124
  elements: Map<string, ElementChild>;
125
+ /** element → key của nó trong `elements` (xem registerElement/releaseElement) */
126
+ private elementKeys;
99
127
  preloadElement: WrapperInterface | null;
100
128
  mainElement: WrapperInterface | null;
129
+ /** Wrapper instance RIÊNG cho render/prerender — dùng chung sẽ làm
130
+ * preloadElement === mainElement → swap skeleton→main destroy nhầm chính nó */
131
+ private wrapperInstances;
101
132
  /** Whether this view is currently active (mounted in DOM) */
102
133
  isActive: boolean;
103
134
  /** Whether initial data has been committed */
104
135
  private _isDataCommitted;
105
136
  /** Whether the view has been mounted */
106
137
  private _isMounted;
138
+ /** Whether the reactive element tree has been started. */
139
+ private _isStarted;
107
140
  /** Whether the view has been fully destroyed */
108
141
  private _isDestroyed;
142
+ /** Whether this instance's styles/scripts are currently counted in AssetManager
143
+ * (true = đang góp 1 ref vào real DOM). Giữ acquire/release cân bằng. */
144
+ private _assetsLive;
109
145
  /** For future use: scanning DOM for bindings */
110
146
  protected isScanMode: boolean;
111
147
  urlPath: string | null;
112
148
  callingMethod: string | null;
113
149
  constructor(view: ViewInterface, path?: string, viewType?: ViewType, viewId?: string | null);
150
+ private _scope?;
151
+ get scope(): ResourceScope;
152
+ private afterDomCallbacks;
153
+ private afterDomRAF;
154
+ private afterDomRevision;
155
+ /** One-shot callback after this view's state and DOM queues settle. */
156
+ afterDom(callback: () => void): () => void;
157
+ private flushAfterDom;
158
+ private cancelAfterDom;
114
159
  /**
115
160
  * Setup — called by compiled $__setup__ with full config.
116
161
  *
@@ -121,8 +166,23 @@ export declare class ViewController implements ViewControllerInterface {
121
166
  getConfig(key?: string, defaultValue?: any): ViewControllerConfig | any;
122
167
  /** Set static view config shared by all instances of a compiled view class. */
123
168
  setStaticConfig(config: ViewConfig): void;
169
+ /** Đang chạy onError của chính controller này — chặn đệ quy nếu handler tự throw. */
170
+ private _handlingError;
171
+ /**
172
+ * Error boundary: tìm handler gần nhất theo chuỗi `parent`, gọi nó, trả fallback.
173
+ *
174
+ * Bất biến:
175
+ * - handler trả undefined → coi như KHÔNG xử lý, bubble tiếp lên cha
176
+ * (cho phép chỉ log mà không đổi UI).
177
+ * - handler tự throw → bỏ qua boundary đó, bubble tiếp (không lặp vô hạn).
178
+ * - không boundary nào xử lý → { handled:false }, caller giữ hành vi cũ.
179
+ */
180
+ handleError(err: unknown, info: ErrorInfo): {
181
+ handled: boolean;
182
+ fallback?: any;
183
+ };
124
184
  /** Set user-defined properties/methods on the View instance */
125
- setUserDefinedConfig(userConfig: Record<string, any>): void;
185
+ setUserDefinedConfig<T extends object>(userConfig: ViewUserConfig<T>): void;
126
186
  /** Set the compiled render factory */
127
187
  setRenderFactory(factory: ViewRenderFactory): void;
128
188
  /** Set root element — the container this view renders into */
@@ -140,8 +200,24 @@ export declare class ViewController implements ViewControllerInterface {
140
200
  hydrate(): any;
141
201
  hydrateRender(): any;
142
202
  hydratePrerender(): any;
143
- mount(root: HTMLElement): void;
203
+ /** Gọi an toàn một lifecycle hook nếu user có định nghĩa trên View. */
204
+ private callHook;
205
+ /**
206
+ * Mount — instance vào real DOM.
207
+ * - root != null: gắn DOM tree (mainElement/preloadElement) vào root.
208
+ * - root == null: nội dung đã được đặt sẵn (block outlets / component markers),
209
+ * chỉ fire hook + acquire asset.
210
+ * Fire mounting/mounted MỘT lần mỗi vòng đời; pause→resume dùng resuming/resumed.
211
+ */
212
+ mount(root?: HtmlInterface | null): void;
213
+ /** Unmount — gỡ instance khỏi real DOM (fire hook + release asset). */
144
214
  unmount(): void;
215
+ /** Đăng ký style/script của component vào real DOM (insert khi ref 0→1). */
216
+ private acquireAssets;
217
+ /** Gỡ đăng ký style/script (remove khi ref 1→0). */
218
+ private releaseAssets;
219
+ /** Các Element gốc của instance (giữa markers của Wrapper) — để tag scoped style. */
220
+ private getSubtreeRoots;
145
221
  /**
146
222
  * Start — activate reactive subscriptions throughout the element tree.
147
223
  * Called AFTER render() and commitData().
@@ -150,6 +226,29 @@ export declare class ViewController implements ViewControllerInterface {
150
226
  * This ensures initial state values are set before subscriptions fire.
151
227
  */
152
228
  start(): void;
229
+ private _lifecycleState;
230
+ /** Data nhận được trong lúc paused (async fetch về muộn) — apply khi resume */
231
+ private _bufferedData;
232
+ /** Only children paused by this controller may be resumed by it. */
233
+ private _pausedChildren;
234
+ get lifecycleState(): string;
235
+ /**
236
+ * Pause — tạm dừng để vào PageCache:
237
+ * 1. Flush nốt RAF pending (không mất update đang chờ)
238
+ * 2. State listeners → dirty-mode (KHÔNG unsubscribe — ghi sổ key đổi)
239
+ * 3. Hook onPause cho user dọn tài nguyên thô
240
+ * DOM event listeners giữ nguyên — DOM sẽ bị detach nên vô hại.
241
+ */
242
+ pause(): void;
243
+ /**
244
+ * Resume — khôi phục từ PageCache:
245
+ * 1. Apply buffered data (async về trong lúc paused)
246
+ * 2. Thoát dirty-mode → flush đúng các vùng phụ thuộc dirty keys
247
+ * 3. Hook onResume — nơi user quyết định refetch (theo TTL riêng...)
248
+ */
249
+ resume(): void;
250
+ /** Flush đồng bộ các reactive update đang chờ RAF */
251
+ flushReactiveUpdatesNow(): void;
153
252
  /**
154
253
  * Stop — deactivate reactive subscriptions (for caching/deactivation).
155
254
  * DOM stays intact but reactive updates are paused.
@@ -157,20 +256,52 @@ export declare class ViewController implements ViewControllerInterface {
157
256
  stop(): void;
158
257
  /** Full destroy — cleanup everything */
159
258
  destroy(): void;
259
+ active(): void;
260
+ deactive(): void;
261
+ /**
262
+ * `this` context cho các hàm compiled config (updateVariableData dùng
263
+ * this.config.updateVariableItemData và this.data).
264
+ */
265
+ private makeConfigThis;
160
266
  /**
161
267
  * Commit initial data — set initial state values.
162
268
  * Called by ViewManager AFTER render + block mounting.
163
269
  *
164
270
  * Flow: commitConstructorData() → update$xxx(initial) → lockUpdateRealState()
271
+ * FIX(Phase2): trước đây method này RỖNG — compiled commitConstructorData
272
+ * không bao giờ được gọi.
165
273
  */
166
274
  commitData(): void;
167
275
  /**
168
- * Update data from external source (navigate same view, different params).
169
- * Flow: unlock → updateVariableData(newData) → re-set states → lock
276
+ * Update data from external source (navigate same view, props từ parent...).
277
+ *
278
+ * Contract data vs state (mô hình React — data:props từ ngoài, state:của instance):
279
+ * - TRƯỚC commitData (constructor phase): chỉ merge vào this.data. Factory
280
+ * đã destructure __data__ lúc khởi tạo; state sẽ do commitData() init MỘT
281
+ * lần. KHÔNG chạy updateVariableData ở đây — nếu chạy, sequence
282
+ * unlock→lock của nó làm commitConstructorData về sau thành no-op
283
+ * (update$xxx bị lock chặn) → state init phụ thuộc data rỗng hay không.
284
+ * - SAU commitData: đường props-update chuẩn — unlock → updateVariableData
285
+ * (trait cập nhật biến data + notify các key dẫn xuất từ data) → lock.
286
+ * Instance state (init bằng literal) KHÔNG được reset ở đây — đó là
287
+ * trách nhiệm của compiled updateVariableData (COMPILER_CONTRACT).
288
+ * Khi paused: buffer lại, apply lúc resume (ROUTE_RENDER_FLOW §8.2).
170
289
  */
171
290
  updateData(newData: Record<string, any>): void;
172
291
  /**
173
- * Update single data item.
292
+ * Con phát sự kiện lên ĐÚNG cha đã include nó: `emit('edit', card['id'])`.
293
+ *
294
+ * Kênh trực tiếp, không qua App.Event — hai instance cùng view không nghe
295
+ * nhầm của nhau, và không có gì để gỡ đăng ký lúc destroy. Không ai lắng
296
+ * nghe thì im lặng, đúng như một DOM event không listener.
297
+ *
298
+ * Trả về giá trị handler trả về, nên con hỏi cha được (`if (!emit('close'))`).
299
+ */
300
+ emit(event: string, ...args: any[]): any;
301
+ /** Áp data vào biến data (trait) từng key — không đụng state, không đụng lock */
302
+ private applyDataTrait;
303
+ /**
304
+ * Update single data item — cùng contract với updateData (xem trên).
174
305
  */
175
306
  updateDataItem(key: string, value: any): void;
176
307
  /**
@@ -182,19 +313,44 @@ export declare class ViewController implements ViewControllerInterface {
182
313
  * - Object with handler + params: { handler: fn, params: [...] }
183
314
  * - Object with string handler (method name on view): { handler: 'handleClick' }
184
315
  */
185
- addEventListener(element: HTMLElement, event: string, handlers: OneElementEventHandler): void;
316
+ /**
317
+ * Bọc handler theo modifier của `@click.prevent.stop(...)`.
318
+ * `self` kiểm TRƯỚC: event từ element con thì coi như không xảy ra, nên
319
+ * cũng không được preventDefault/stopPropagation (giống Vue).
320
+ * `once` KHÔNG xử lý ở đây — nó là option của addEventListener.
321
+ */
322
+ private wrapEventModifiers;
323
+ addEventListener(element: HTMLElement, event: string, handlers: SaoElementEventHandler, modifiers?: EventModifier[]): void;
324
+ removeEventListener(element: HTMLElement, event: string): void;
186
325
  /**
187
326
  * Schedule a reactive region for re-render.
188
327
  * Multiple calls in the same frame are batched into a single RAF.
189
328
  */
190
329
  scheduleUpdate(reactive: ReactiveInterface): void;
330
+ /**
331
+ * Có vùng reactive nào đang chờ re-render trong frame này không?
332
+ *
333
+ * StateManager dùng để phân biệt "factory ném vì vùng bọc nó sắp bị dựng
334
+ * lại" với lỗi thật (xem StateManager.retryAfterReactiveFlush).
335
+ */
336
+ hasPendingReactiveUpdate(): boolean;
191
337
  private flushReactiveUpdates;
338
+ pushBlockAndSections(): void;
339
+ /**
340
+ * @section(name, ...) — registers content for a matching @yield(name) to
341
+ * consume (possibly in a different controller — page declares, layout
342
+ * yields, same cross-controller relationship as @block/@useBlock).
343
+ */
192
344
  section(name: string, config: {
193
345
  type: SectionItemType;
194
346
  contentType?: SectionContentType;
195
347
  stateKeys?: string[];
196
348
  [key: string]: any;
197
349
  }, contentRenderFactory: SectionContentRenderer): SectionInterface;
350
+ /** `this.yieldContent(name, default)` — synchronous resolve, used inside attribute/prop binding factories. */
351
+ yieldContent(name: string, defaultValue?: any): any;
352
+ /** Decode a raw SSR echo as RCDATA, preserving literal angle brackets. */
353
+ decodeTextContent(value: string): string;
198
354
  block(id: string | null, name: string, contentRenderFactory: BlockRenderFactory): BlockInterface;
199
355
  blockOutlet(id: string | null | undefined, name: string, parentElement: HtmlInterface | null): BlockOutletInterface;
200
356
  mountBlock(id: string | null | undefined, name: string, parent: HtmlInterface | null): BlockOutletInterface;
@@ -203,25 +359,68 @@ export declare class ViewController implements ViewControllerInterface {
203
359
  * Creates a Reactive region between markers that will hold the block content.
204
360
  * BlockManager.mountAll() later inserts the page view's block content here.
205
361
  */
206
- useBlock(id: string | null | undefined, name: string, parent: HtmlInterface): BlockOutlet;
362
+ useBlock(id: string | null | undefined, name: string, parent: HtmlInterface): BlockOutletInterface;
207
363
  yield(id: string, name: string, defaultValue?: any, parentElement?: HtmlInterface | null): YieldInterface;
208
- yieldContent(name: string, defaultValue?: any): any;
209
- wrapper(factory: OneChildrenFactory): WrapperInterface;
210
- fragment(id: string | null | undefined, parentElement: HtmlInterface | null, childrenFactory: OneChildrenFactory): FragmentInterface;
364
+ wrapper(factory: SaoChildrenFactory): WrapperInterface;
365
+ fragment(id: string | null | undefined, parentElement: HtmlInterface | null, childrenFactory: SaoChildrenFactory): FragmentInterface;
211
366
  /**
212
367
  * Template and Directive Helpers
213
368
  * These methods are called by the compiled output for loops, conditionals, and other directives.
214
369
  */
215
- html(id: string | null | undefined, tagName: string, parentElement: HtmlInterface | null, config: any, childrenFactory?: OneChildrenFactory): OneNodeInterface;
370
+ html(id: string | null | undefined, tagName: string, parentElement: HtmlInterface | null, config: any, childrenFactory?: SaoChildrenFactory): SaoNodeInterface;
216
371
  reactive(id: string | null, type: string, parentReactive: ReactiveInterface | null, parentElement: HtmlInterface | null, stateKeys: string[], childrenFactory: ReactiveChildrenFactory): ReactiveInterface;
217
372
  output(id: string | null, parent: HtmlInterface | null, isEscapeHTML?: boolean, stateKeys?: string[], contentFactory?: () => string): OutputInterface;
218
- text(text: string): Text;
219
- include(id: string | null | undefined, path: string | undefined, parentElement: HtmlInterface | null, stateKeys: string[], dataFactory: (parentElement: HtmlInterface | null) => Record<string, any>): Component;
220
- includeIf(id: string | null | undefined, path: string, parentElement: HtmlInterface | null, stateKeys: string[], dataFactory: (parentElement: HtmlInterface | null) => Record<string, any>): Component;
373
+ /**
374
+ * FIX(baseline#2): trả về TextElement (có saoType) thay vì raw Text node.
375
+ * Raw Text node bị mountElementList/Reactive.render bỏ qua → text tĩnh biến mất.
376
+ */
377
+ text(text: string): TextInterface;
378
+ /**
379
+ * Ghi element vào registry + nhớ key để destroy() gỡ lại được.
380
+ * Key là id THÔ; `element.id` phần lớn đã prefix viewId (`${viewId}-${id}`)
381
+ * nên element KHÔNG tự suy ra key được — WeakMap giữ ánh xạ, không giữ
382
+ * element sống.
383
+ */
384
+ private registerElement;
385
+ /**
386
+ * Element tự gỡ khỏi registry trong destroy() — nếu không, `elements` chỉ
387
+ * co lại lúc destroy view, còn id sinh theo item (`{hash}-${item.id}`) thì
388
+ * mỗi trang/mỗi lần refresh lại thêm một corpse vĩnh viễn (đo được:
389
+ * 32 → 182 entry sau 6 trang trong khi DOM vẫn 10 item).
390
+ *
391
+ * Guard `=== el` là bắt buộc: pass mới đã ghi element MỚI vào cùng id TRƯỚC
392
+ * khi prunePass destroy element cũ — xoá vô điều kiện sẽ gỡ nhầm bản mới.
393
+ */
394
+ releaseElement(el: object): void;
395
+ /**
396
+ * Registry guard: element đã destroy không được reuse — trả về corpse
397
+ * (events đã abort, markers đã gỡ) gây render rỗng / stale closure.
398
+ * Xem docs/RUNTIME_CONTRACT.md §2.
399
+ */
400
+ private aliveFromRegistry;
401
+ /** Deterministic fallback counter for the (contract-violating) missing-id path. */
402
+ private _missingIncludeIdCounter;
403
+ /**
404
+ * Resolve the hydrate id for an @include component.
405
+ *
406
+ * The compiler ALWAYS emits a deterministic id (md5[:8] of the position-based
407
+ * base id) so the client marker `s:c:{viewId}-{id}` matches the server-rendered
408
+ * one. A missing id therefore means a compiler/runtime contract violation — and
409
+ * in HYDRATE mode it guarantees a marker mismatch (claimSSRMarkers finds nothing
410
+ * → silent CSR re-render / duplicated DOM).
411
+ *
412
+ * Never invent a RANDOM id here: a random id also makes every `elements.get(id)`
413
+ * lookup miss, so the component is recreated on each render (cache broken). We
414
+ * surface the violation loudly and fall back to a render-stable deterministic id
415
+ * so behaviour stays idempotent even in the broken case.
416
+ */
417
+ private resolveIncludeId;
418
+ include(id: string | null | undefined, path: string | undefined, parentElement: HtmlInterface | null, stateKeys: string[], dataFactory: (parentElement: HtmlInterface | null) => Record<string, any>, listeners?: Record<string, (...args: any[]) => any>): Component;
419
+ includeIf(id: string | null | undefined, path: string, parentElement: HtmlInterface | null, stateKeys: string[], dataFactory: (parentElement: HtmlInterface | null) => Record<string, any>, listeners?: Record<string, (...args: any[]) => any>): Component;
221
420
  includeWhen(id: string | null, condition: {
222
421
  stateKeys: string[];
223
422
  checker: () => any;
224
- }, path: string, parentElement: HtmlInterface | null, stateKeys: string[], dataFactory: (parentElement: HtmlInterface | null) => Record<string, any>): Component;
423
+ }, path: string, parentElement: HtmlInterface | null, stateKeys: string[], dataFactory: (parentElement: HtmlInterface | null) => Record<string, any>, listeners?: Record<string, (...args: any[]) => any>): Component;
225
424
  extendView(path: string, data?: Record<string, any>): ViewInterface | null;
226
425
  /** Create and push a new LoopContext onto the stack */
227
426
  __setLoopContext(length: number): LoopContext;
@@ -231,14 +430,40 @@ export declare class ViewController implements ViewControllerInterface {
231
430
  * @foreach directive — iterate over array or object.
232
431
  * Returns array of children (not HTML string like the old system).
233
432
  *
234
- * @example Compiled output:
433
+ * # Cache-aware re-render (Phase 5 + 5b)
434
+ * Khi `_currentForeachCache` được set (bởi Reactive), __foreach claim slot
435
+ * cho từng item:
436
+ * - Hit (key khớp + item ref giống) → reuse elements cũ (không recreate DOM)
437
+ * - Miss → gọi callback → tạo elements mới → store vào cache
438
+ *
439
+ * Cache key:
440
+ * - `keyFn` (compiler emit từ @key(expr)) → field keying (`item.id`)
441
+ * - không có → object reference của item (identity keying)
442
+ * Duplicate keys/primitive items phân biệt bằng occurrence (ForeachSlotCache).
443
+ * Ref đổi nhưng key trùng → recreate (closure đóng gói item cũ) — slot cũ
444
+ * được Reactive.prunePass destroy.
445
+ *
446
+ * @example Compiled output (@key(item.id)):
235
447
  * ctrl.__foreach(items, (item, key, index, loop) => [
236
- * em.h(ctrl, parent, 'div', {}, () => [em.t(`Item: ${item}`)])
237
- * ])
448
+ * this.html(`id-${item.id}`, 'div', p, {}, () => [this.text(item.name)])
449
+ * ], (item) => item.id)
238
450
  */
239
- __foreach<T>(list: T[] | Record<string, T>, callback: (item: T, key: string, index: number, loop: LoopContext) => any): any[];
240
- __forelse<T>(list: T[], callback: (item: T, key: string, index: number, loop: LoopContext) => any, emptyCallback?: () => any): any[];
241
- __each<T>(list: T[], callback: (item: T, key: string, index: number, loop: LoopContext) => any): any[];
451
+ /**
452
+ * @children / {{ $children }} — materialize slot content from the parent
453
+ * include only when render traversal reaches ChildrenNode (compiler emit:
454
+ * `...this.__children(__ONE_CHILDREN_CONTENT__, parentElement)`).
455
+ *
456
+ * content có 2 dạng (xem COMPILER _gen_children_slot):
457
+ * - function `(parentElement) => elements` — element factory từ
458
+ * @importInclude/custom tag phía parent. Factory đóng gói `this` của
459
+ * PARENT ctrl → elements thuộc parent scope (state/registry parent),
460
+ * giống React children.
461
+ * - string — SSR data hoặc default '' → render text tĩnh (rỗng → []).
462
+ */
463
+ __children(content: SaoChildrenSlotContent, parentElement: HtmlInterface | null): SaoChildrenFactoryOutput;
464
+ __foreach<T>(list: T[] | Record<string, T>, callback: (item: T, key: string, index: number, loop: LoopContextInterface, identity: number) => any, keyFn?: (item: T, index: number) => any, reconcile?: boolean, scopeId?: string): any[];
465
+ __forelse<T>(list: T[], callback: (item: T, key: string, index: number, loop: LoopContextInterface) => any, emptyCallback?: () => any): any[];
466
+ __each<T>(list: T[], callback: (item: T, key: string, index: number, loop: LoopContextInterface) => any): any[];
242
467
  /**
243
468
  * @for directive
244
469
  */
@@ -247,6 +472,53 @@ export declare class ViewController implements ViewControllerInterface {
247
472
  * @while directive
248
473
  */
249
474
  __while(execute: (loop: LoopContext) => any, maxIterations?: number): any;
475
+ /**
476
+ * __styleBinding — tính inline CSS style string cho @style directive.
477
+ *
478
+ * Compiler emit (pre-process trước AST):
479
+ * @style(['color' => $textColor, 'font-size' => $fontSize])
480
+ * → ${this.__styleBinding(['textColor', 'fontSize'], [['color', textColor], ['font-size', fontSize]])}
481
+ *
482
+ * Hành vi:
483
+ * - Lọc bỏ entries có value null / undefined / false / '' (không set prop đó)
484
+ * - Join thành "prop: value; prop: value" string
485
+ *
486
+ * @param _stateKeys - Danh sách state keys (đã encode trong config, không dùng ở đây)
487
+ * @param styles - Mảng [cssProperty, value] pairs
488
+ *
489
+ * @example
490
+ * __styleBinding([], [['color', 'red'], ['font-size', null], ['display', 'block']])
491
+ * // → "color: red; display: block"
492
+ */
493
+ __styleBinding(_stateKeys: string[], styles: [string, any][]): string;
494
+ /**
495
+ * __classBinding — tính CSS class string cho @class binding (legacy template path).
496
+ *
497
+ * Chỉ được gọi bởi OLD template_processor (flat compiler) fallback path.
498
+ * New AST path (RenderGenerator) emit class config trực tiếp vào options.classes[]
499
+ * → Html.initializeClasses() xử lý, KHÔNG dùng __classBinding.
500
+ *
501
+ * Format input (từ class_binding_handler.py):
502
+ * [{ type: 'static', value: 'foo' },
503
+ * { type: 'binding', value: 'is-active', states: ['isActive'], checker: () => isActive }]
504
+ *
505
+ * @param configs - Mảng class config objects
506
+ * @returns Space-joined class string
507
+ *
508
+ * @example
509
+ * __classBinding([
510
+ * { type: 'static', value: 'btn' },
511
+ * { type: 'binding', value: 'btn-primary', checker: () => isPrimary }
512
+ * ])
513
+ * // isPrimary = true → "btn btn-primary"
514
+ * // isPrimary = false → "btn"
515
+ */
516
+ __classBinding(configs: Array<{
517
+ type: 'static' | 'binding';
518
+ value: string;
519
+ states?: string[];
520
+ checker?: () => any;
521
+ }>): string;
250
522
  setApp(app: ApplicationInterface): void;
251
523
  getParentView(): ViewInterface | null;
252
524
  getChildrenViews(): ViewInterface[];
@@ -255,8 +527,9 @@ export declare class ViewController implements ViewControllerInterface {
255
527
  setOriginView(origin: ViewControllerInterface): void;
256
528
  setSuperView(superView: ViewControllerInterface): void;
257
529
  setIsSuperView(isSuper: boolean): void;
258
- setParent(parent: ViewControllerInterface): void;
530
+ setParent(parent: ViewControllerInterface | null): void;
259
531
  addChild(child: ViewControllerInterface): void;
532
+ removeChild(child: ViewControllerInterface): void;
260
533
  /**
261
534
  * For nested views: set the chain of super views up to the root, so each view has a reference to its layout parents.
262
535
  * Called by ViewManager after creating the view and its super view(s).
@@ -1 +1 @@
1
- {"version":3,"file":"ViewController.d.ts","sourceRoot":"","sources":["../../../../src/core/view/ViewController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewController.d.ts","sourceRoot":"","sources":["../../../../src/core/view/ViewController.ts"],"names":[],"mappings":"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"}