@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
@@ -0,0 +1,408 @@
1
+ import HeadService from "./HeadService.js";
2
+ const HEAD_SECTION_PREFIX = 'meta:';
3
+ /**
4
+ * SectionManager — connects `@section(name, ...)` declarations to `@yield(name, ...)`
5
+ * markers, cross-controller (a page declares a section, a layout — or nothing —
6
+ * yields it), mirroring how BlockManager connects Block ↔ BlockOutlet.
7
+ *
8
+ * Two content shapes (RUNTIME_CONTRACT):
9
+ * - contentType 'text' (short `@section(name, value)`) — resolves to a plain
10
+ * string. Used as: (a) a single text node between the yield's markers,
11
+ * (b) the `.value` of a `<textarea>` when the yield's immediate DOM parent
12
+ * is a textarea (mutating child text nodes of a live textarea does not
13
+ * reliably update what's displayed once the dirty-value flag is set — every
14
+ * framework sets `.value` directly instead), (c) resolved synchronously via
15
+ * `resolve()` for `this.yieldContent()` used inside an attribute/prop factory.
16
+ * - contentType 'html' (long `@section(name) ... @endsection`) — a children
17
+ * array, mounted between the yield's markers the same way BlockManager
18
+ * mounts block content into an outlet.
19
+ *
20
+ * Head metadata (`meta:title`, `meta:description`, ...): the app shell's
21
+ * `<head>` is plain Laravel Blade (native `@yield`), entirely outside the
22
+ * client's mounted tree — SSR already gets it right for free. SPA navigation
23
+ * bypasses Blade though, so `syncHeadSections()` pushes any `meta:*` section
24
+ * straight to `document.title` / `<meta>` on every mount and on every reactive
25
+ * update, keeping the tab title and metadata "live" across client-side routes.
26
+ */
27
+ export class SectionManagerService {
28
+ constructor() {
29
+ this.sections = new Map(); // key: name + viewId
30
+ this.activeSections = new Map(); // key: name
31
+ this.yields = new Map(); // key: yield element id
32
+ this.subscribers = new Map();
33
+ /** name+viewId -> unsubscribe fn (only for reactive sections, active while started) */
34
+ this.unsubscribers = new Map();
35
+ /** yield id -> tracked nodes/elements mounted between its markers (for clear/start/stop) */
36
+ this.mounted = new Map();
37
+ /** Owners in the current route chain; cached pages retain their sections. */
38
+ this.headViewIds = new Set();
39
+ }
40
+ add(section) {
41
+ const key = section.name + (section.viewId ?? '');
42
+ if (!this.sections.has(key)) {
43
+ this.sections.set(key, section);
44
+ }
45
+ this.active(section.name, section.viewId ?? '');
46
+ }
47
+ active(name, viewId) {
48
+ const key = name + viewId;
49
+ const section = this.sections.get(key);
50
+ if (!section)
51
+ return;
52
+ this.activeSections.set(name, section);
53
+ this.notify(section);
54
+ }
55
+ subscribe(name, callback) {
56
+ if (!this.subscribers.has(name))
57
+ this.subscribers.set(name, []);
58
+ this.subscribers.get(name).push(callback);
59
+ return () => this.unsubscribe(name, callback);
60
+ }
61
+ unsubscribe(name, callback) {
62
+ if (!this.subscribers.has(name))
63
+ return;
64
+ if (!callback) {
65
+ this.subscribers.delete(name);
66
+ return;
67
+ }
68
+ const listeners = this.subscribers.get(name).filter(fn => fn !== callback);
69
+ if (listeners.length === 0)
70
+ this.subscribers.delete(name);
71
+ else
72
+ this.subscribers.set(name, listeners);
73
+ }
74
+ addYield(id, yieldEl) {
75
+ this.yields.set(id, yieldEl);
76
+ }
77
+ /** XOÁ THẬT yields của một view bị destroy — destroy rồi mới rời Map. */
78
+ removeYieldsOfView(viewId) {
79
+ for (const [id, y] of Array.from(this.yields)) {
80
+ if (y.ctx?.viewId === viewId) {
81
+ this.clearYield(y);
82
+ y.destroy?.(); // idempotent — gỡ khỏi ctrl.elements
83
+ this.yields.delete(id);
84
+ }
85
+ }
86
+ }
87
+ /** Resolve the current value of a named section — for `this.yieldContent()` in attrs/props. */
88
+ resolve(name, defaultValue = null) {
89
+ const section = this.activeSections.get(name);
90
+ if (!section?.renderFactory)
91
+ return defaultValue;
92
+ const value = section.renderFactory(null);
93
+ return value === undefined || value === null ? defaultValue : value;
94
+ }
95
+ /**
96
+ * Mount every yield owned by one controller (page or layout — matches the
97
+ * controller Router/ViewManager is currently activating).
98
+ *
99
+ * Render happens for the whole chain before any mounting does (page
100
+ * registers its sections while building its tree, THEN returns
101
+ * `extendView(layout)`, whose own render builds the yields) — so by mount
102
+ * time `activeSections` already holds every section in the chain
103
+ * regardless of call order. Only the yield side needs to be scoped to
104
+ * `viewId`, so each controller's own markers get touched exactly once,
105
+ * mirroring BlockManagerService.mountViewBlocks()'s per-owner pass.
106
+ */
107
+ mountViewSections(viewId) {
108
+ this.activateHeadSections(viewId);
109
+ for (const [, yieldEl] of this.yields) {
110
+ if (yieldEl.ctx?.viewId !== viewId)
111
+ continue;
112
+ this.mountSectionIntoYield(this.activeSections.get(yieldEl.name) ?? null, yieldEl);
113
+ }
114
+ this.syncHeadSections();
115
+ }
116
+ /** Hydrate counterpart: trust server-rendered content, only let nested elements self-claim. */
117
+ hydrateViewSections(viewId) {
118
+ this.activateHeadSections(viewId);
119
+ for (const [, yieldEl] of this.yields) {
120
+ if (yieldEl.ctx?.viewId !== viewId)
121
+ continue;
122
+ const section = this.activeSections.get(yieldEl.name) ?? null;
123
+ if (section)
124
+ this.hydrateApplyToYield(section, yieldEl);
125
+ }
126
+ this.syncHeadSections();
127
+ }
128
+ findYieldsByName(name) {
129
+ const found = [];
130
+ for (const [, y] of this.yields)
131
+ if (y.name === name)
132
+ found.push(y);
133
+ return found;
134
+ }
135
+ /** Re-apply every yield bound to `name` — used after a reactive section change. */
136
+ applyByName(name) {
137
+ const section = this.activeSections.get(name) ?? null;
138
+ for (const yieldEl of this.findYieldsByName(name)) {
139
+ this.mountSectionIntoYield(section, yieldEl);
140
+ }
141
+ }
142
+ mountSectionIntoYield(section, yieldEl) {
143
+ this.clearYield(yieldEl);
144
+ if (!yieldEl.openTag?.parentNode)
145
+ return; // outlet not in DOM yet
146
+ const isTextarea = yieldEl.parent?.element?.tagName === 'TEXTAREA';
147
+ if (!section) {
148
+ this.applyText(yieldEl, isTextarea, String(yieldEl.defaultValue ?? ''));
149
+ return;
150
+ }
151
+ if (section.contentType === 'html') {
152
+ this.mountHtml(section, yieldEl);
153
+ }
154
+ else {
155
+ const raw = section.renderFactory ? section.renderFactory(null) : undefined;
156
+ const text = raw === undefined || raw === null ? String(yieldEl.defaultValue ?? '') : String(raw);
157
+ this.applyText(yieldEl, isTextarea, text);
158
+ }
159
+ }
160
+ applyText(yieldEl, isTextarea, text) {
161
+ if (isTextarea) {
162
+ // Mutating a live textarea's child text nodes does not reliably repaint
163
+ // its displayed value once the browser's dirty-value flag is set — set
164
+ // `.value` directly instead, the same way every DOM framework does.
165
+ yieldEl.parent.element.value = text;
166
+ return;
167
+ }
168
+ if (!text)
169
+ return;
170
+ const node = document.createTextNode(text);
171
+ yieldEl.closeTag.parentNode?.insertBefore(node, yieldEl.closeTag);
172
+ this.mounted.set(yieldEl.id, [node]);
173
+ }
174
+ /** Same insertion pattern as BlockManagerService.mountBlockIntoOutlet(). */
175
+ mountHtml(section, yieldEl) {
176
+ const insertBeforeClose = (node) => yieldEl.closeTag.parentNode?.insertBefore(node, yieldEl.closeTag);
177
+ const content = section.renderFactory(yieldEl.parent);
178
+ if (!Array.isArray(content))
179
+ return;
180
+ const children = [];
181
+ for (const child of content) {
182
+ if (child === null || child === undefined)
183
+ continue;
184
+ if (typeof child === 'string' || typeof child === 'number') {
185
+ insertBeforeClose(document.createTextNode(String(child)));
186
+ }
187
+ else if (child instanceof Node) {
188
+ insertBeforeClose(child);
189
+ }
190
+ else if (typeof child === 'object') {
191
+ if ('element' in child && child.element) {
192
+ insertBeforeClose(child.element);
193
+ children.push(child);
194
+ child.render();
195
+ }
196
+ else if ('openTag' in child) {
197
+ if ('parent' in child)
198
+ child.parent = yieldEl.parent;
199
+ if ('parentElement' in child)
200
+ child.parentElement = yieldEl.parent;
201
+ insertBeforeClose(child.openTag);
202
+ insertBeforeClose(child.closeTag);
203
+ children.push(child);
204
+ child.render();
205
+ }
206
+ }
207
+ }
208
+ this.mounted.set(yieldEl.id, children);
209
+ }
210
+ /** Hydrate: claim only — DOM already there from SSR, never insert/clear. */
211
+ hydrateApplyToYield(section, yieldEl) {
212
+ if (section.contentType !== 'html')
213
+ return; // text: leave server's text node as-is
214
+ const content = section.renderFactory ? section.renderFactory(yieldEl.parent) : null;
215
+ if (!Array.isArray(content))
216
+ return;
217
+ const children = [];
218
+ for (const child of content) {
219
+ if (child === null || child === undefined)
220
+ continue;
221
+ if (typeof child === 'string' || typeof child === 'number')
222
+ continue; // text: server already has it
223
+ if (child instanceof Node)
224
+ continue;
225
+ if (typeof child === 'object') {
226
+ if ('element' in child && child.element) {
227
+ children.push(child);
228
+ child.render();
229
+ }
230
+ else if ('openTag' in child) {
231
+ if ('parent' in child)
232
+ child.parent = yieldEl.parent;
233
+ if ('parentElement' in child)
234
+ child.parentElement = yieldEl.parent;
235
+ children.push(child);
236
+ child.render();
237
+ }
238
+ }
239
+ }
240
+ this.mounted.set(yieldEl.id, children);
241
+ }
242
+ clearYield(yieldEl) {
243
+ const children = this.mounted.get(yieldEl.id) ?? [];
244
+ for (const child of children) {
245
+ if (child && typeof child.destroy === 'function')
246
+ child.destroy();
247
+ }
248
+ this.mounted.delete(yieldEl.id);
249
+ if (yieldEl.openTag?.parentNode) {
250
+ let current = yieldEl.openTag.nextSibling;
251
+ while (current && current !== yieldEl.closeTag) {
252
+ const next = current.nextSibling;
253
+ current.remove();
254
+ current = next;
255
+ }
256
+ }
257
+ }
258
+ /** Activate reactive sections (subscribe) + start any mounted html-content children. Call after mount/hydrate. */
259
+ startAll() {
260
+ for (const section of this.activeSections.values()) {
261
+ this.subscribeIfReactive(section);
262
+ }
263
+ for (const children of this.mounted.values()) {
264
+ for (const child of children) {
265
+ if (child && typeof child.start === 'function')
266
+ child.start();
267
+ }
268
+ }
269
+ }
270
+ /** Deactivate — unsubscribe + stop mounted children. */
271
+ stopAll() {
272
+ for (const unsub of this.unsubscribers.values())
273
+ unsub();
274
+ this.unsubscribers.clear();
275
+ for (const children of this.mounted.values()) {
276
+ for (const child of children) {
277
+ if (child && typeof child.stop === 'function')
278
+ child.stop();
279
+ }
280
+ }
281
+ }
282
+ subscribeIfReactive(section) {
283
+ const key = section.name + (section.viewId ?? '');
284
+ if (this.unsubscribers.has(key))
285
+ return;
286
+ if ((section.type === 'reactive' || section.type === 'dynamic')
287
+ && section.stateKeys?.length && section.ctx) {
288
+ const unsub = section.ctx.states.__.subscribe(section.stateKeys, () => {
289
+ this.applyByName(section.name);
290
+ this.syncHeadSections();
291
+ this.notify(section);
292
+ });
293
+ this.unsubscribers.set(key, unsub);
294
+ }
295
+ }
296
+ /** Notify `subscribe(name, cb)` listeners — both when a different section becomes active
297
+ * (see `active()`) and when the currently active section's own value changes. Consumers:
298
+ * `Html.ts` attribute/prop bindings built from `@yield(...)` (no stateKeys of their own —
299
+ * the section they depend on is only known at runtime), subscribed via `yieldName`. */
300
+ notify(section) {
301
+ const listeners = this.subscribers.get(section.name);
302
+ if (listeners)
303
+ listeners.forEach(fn => fn(section));
304
+ }
305
+ unmountView(viewId) {
306
+ this.headViewIds.delete(viewId);
307
+ for (const [name, section] of Array.from(this.activeSections)) {
308
+ if (section.viewId === viewId)
309
+ this.activeSections.delete(name);
310
+ }
311
+ for (const [key, section] of Array.from(this.sections)) {
312
+ if (section.viewId !== viewId)
313
+ continue;
314
+ const unsub = this.unsubscribers.get(key);
315
+ if (unsub) {
316
+ unsub();
317
+ this.unsubscribers.delete(key);
318
+ }
319
+ this.sections.delete(key);
320
+ }
321
+ }
322
+ /**
323
+ * Push `meta:*` sections to HeadService — SPA navigation never runs Blade,
324
+ * so nothing else keeps `<title>`/`<meta>` (outside the client's mounted
325
+ * tree entirely) in sync with the active page after the first load. This
326
+ * is the declarative convenience layer over HeadService: a page can
327
+ * either call `@section('meta:title', ...)` in its template, or reach
328
+ * `app('Head')` directly (e.g. from an async data callback) — both end up
329
+ * writing through the same service, so they never fight each other.
330
+ */
331
+ activateHeadSections(viewId) {
332
+ this.headViewIds.add(viewId);
333
+ for (const section of this.sections.values()) {
334
+ if (section.viewId === viewId && section.name.startsWith(HEAD_SECTION_PREFIX)) {
335
+ this.activeSections.set(section.name, section);
336
+ }
337
+ }
338
+ }
339
+ syncHeadSections() {
340
+ for (const [name, section] of this.activeSections) {
341
+ if (!name.startsWith(HEAD_SECTION_PREFIX) || !section.renderFactory)
342
+ continue;
343
+ if (!this.headViewIds.has(section.viewId ?? ''))
344
+ continue;
345
+ const raw = section.renderFactory(null);
346
+ if (raw === undefined || raw === null)
347
+ continue;
348
+ const value = String(raw);
349
+ const key = name.slice(HEAD_SECTION_PREFIX.length);
350
+ if (key === 'title') {
351
+ HeadService.setTitle(value);
352
+ HeadService.setMetaProperty('og:title', value);
353
+ HeadService.setMeta('twitter:title', value);
354
+ }
355
+ else if (key === 'description') {
356
+ HeadService.setMeta('description', value);
357
+ HeadService.setMetaProperty('og:description', value);
358
+ HeadService.setMeta('twitter:description', value);
359
+ }
360
+ else if (key.startsWith('og:')) {
361
+ HeadService.setMetaProperty(key, value);
362
+ }
363
+ else if (key.startsWith('twitter:')) {
364
+ HeadService.setMeta(key, value);
365
+ }
366
+ else if (key === 'canonical') {
367
+ HeadService.setLink('canonical', value);
368
+ }
369
+ else if (key.startsWith('jsonld:')) {
370
+ if (!value.trim())
371
+ continue; // Async page data has not arrived yet.
372
+ try {
373
+ const data = JSON.parse(value);
374
+ if (data && typeof data === 'object' && !Array.isArray(data)) {
375
+ HeadService.setJsonLd(key.slice('jsonld:'.length), data);
376
+ }
377
+ }
378
+ catch {
379
+ console.warn(`[SectionManager] Invalid JSON-LD in section "${name}".`);
380
+ }
381
+ }
382
+ else {
383
+ HeadService.setMeta(key, value);
384
+ }
385
+ }
386
+ }
387
+ /** Revert every page-scoped head tag before mounting a new page's chain. Call once per navigation. */
388
+ resetPageHead() {
389
+ HeadService.resetPage();
390
+ this.headViewIds.clear();
391
+ }
392
+ destroy() {
393
+ this.headViewIds.clear();
394
+ for (const unsub of this.unsubscribers.values())
395
+ unsub();
396
+ this.unsubscribers.clear();
397
+ for (const [, y] of this.yields)
398
+ this.clearYield(y);
399
+ this.sections.clear();
400
+ this.activeSections.clear();
401
+ this.yields.clear();
402
+ this.subscribers.clear();
403
+ this.mounted.clear();
404
+ }
405
+ }
406
+ export const SectionManager = new SectionManagerService();
407
+ export default SectionManager;
408
+ //# sourceMappingURL=SectionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionManager.js","sourceRoot":"","sources":["../../../../src/core/services/SectionManager.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export class StorageService {
24
24
  static removeInstance(key = 'default') {
25
25
  StorageService.instances.delete(key);
26
26
  }
27
- constructor(storageKey = 'oneview_storage') {
27
+ constructor(storageKey = 'saoview_storage') {
28
28
  this.data = {};
29
29
  this.listeners = new Map();
30
30
  this.storageKey = storageKey;
@@ -0,0 +1,21 @@
1
+ export interface TranslationConfig {
2
+ locale?: string;
3
+ fallbackLocale?: string;
4
+ messages?: Record<string, {
5
+ json?: Record<string, string>;
6
+ groups?: Record<string, any>;
7
+ }>;
8
+ }
9
+ /** Synchronous lookup of dictionaries already present in the application bundle. */
10
+ export declare class TranslationService {
11
+ locale: string;
12
+ fallbackLocale: string;
13
+ private messages;
14
+ init(config: TranslationConfig): void;
15
+ setLocale(locale: string): boolean;
16
+ trans(key: string, replace?: Record<string, any>, locale?: string): string;
17
+ choice(key: string, count: number, replace?: Record<string, any>, locale?: string): string;
18
+ private lookup;
19
+ private interpolate;
20
+ }
21
+ //# sourceMappingURL=TranslationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranslationService.d.ts","sourceRoot":"","sources":["../../../../src/core/services/TranslationService.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC;CAC9F;AAED,oFAAoF;AACpF,qBAAa,kBAAkB;IAC3B,MAAM,SAAQ;IACd,cAAc,SAAQ;IACtB,OAAO,CAAC,QAAQ,CAAkD;IAElE,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAMrC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAOlC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,MAAM,SAAc,GAAG,MAAM;IAKnF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,MAAM,SAAc,GAAG,MAAM;IAgCnG,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,WAAW;CAYtB"}
@@ -0,0 +1,95 @@
1
+ /** Synchronous lookup of dictionaries already present in the application bundle. */
2
+ export class TranslationService {
3
+ constructor() {
4
+ this.locale = 'en';
5
+ this.fallbackLocale = 'en';
6
+ this.messages = {};
7
+ }
8
+ init(config) {
9
+ this.locale = config.locale || 'en';
10
+ this.fallbackLocale = config.fallbackLocale || 'en';
11
+ this.messages = config.messages || {};
12
+ }
13
+ setLocale(locale) {
14
+ if (!Object.prototype.hasOwnProperty.call(this.messages, locale))
15
+ throw new Error(`Locale is not bundled: ${locale}`);
16
+ if (locale === this.locale)
17
+ return false;
18
+ this.locale = locale;
19
+ return true;
20
+ }
21
+ trans(key, replace = {}, locale = this.locale) {
22
+ const value = this.lookup(key, locale) ?? this.lookup(key, this.fallbackLocale) ?? key;
23
+ return this.interpolate(value, replace);
24
+ }
25
+ choice(key, count, replace = {}, locale = this.locale) {
26
+ const local = this.lookup(key, locale);
27
+ const value = local ?? this.lookup(key, this.fallbackLocale) ?? key;
28
+ const pluralLocale = local === undefined ? this.fallbackLocale : locale;
29
+ const options = value.split('|');
30
+ let selected;
31
+ for (const option of options) {
32
+ const exact = option.match(/^\s*\{([^}]+)\}\s*(.*)$/s);
33
+ if (exact && exact[1].split(',').some(n => Number(n.trim()) === count))
34
+ selected = exact[2];
35
+ const range = option.match(/^\s*\[([^,]+),([^\]]+)\]\s*(.*)$/s);
36
+ if (range) {
37
+ const min = range[1].trim() === '*' ? -Infinity : Number(range[1]);
38
+ const max = range[2].trim() === '*' ? Infinity : Number(range[2]);
39
+ if (count >= min && count <= max)
40
+ selected = range[3];
41
+ }
42
+ if (selected !== undefined)
43
+ break;
44
+ }
45
+ if (selected === undefined) {
46
+ const forms = options.filter(option => !/^\s*[\{\[]/.test(option));
47
+ let index = 0;
48
+ try {
49
+ const rule = new Intl.PluralRules(pluralLocale.replace('_', '-'));
50
+ const category = rule.select(count);
51
+ const order = ['zero', 'one', 'two', 'few', 'many', 'other'];
52
+ const categories = rule.resolvedOptions().pluralCategories;
53
+ index = order.filter(c => categories.includes(c)).indexOf(category);
54
+ }
55
+ catch {
56
+ index = count === 1 ? 0 : 1;
57
+ }
58
+ selected = forms[Math.min(Math.max(index, 0), forms.length - 1)] ?? options[0];
59
+ }
60
+ return this.interpolate(selected.trim(), { ...replace, count });
61
+ }
62
+ lookup(key, locale) {
63
+ const catalog = this.messages[locale];
64
+ if (!catalog)
65
+ return undefined;
66
+ if (catalog.json && Object.prototype.hasOwnProperty.call(catalog.json, key))
67
+ return catalog.json[key];
68
+ const groups = catalog.groups || {};
69
+ // Longest group match also supports package::group.item and nested group paths.
70
+ const group = Object.keys(groups).filter(name => key.startsWith(name + '.')).sort((a, b) => b.length - a.length)[0];
71
+ if (!group)
72
+ return undefined;
73
+ let value = groups[group];
74
+ for (const part of key.slice(group.length + 1).split('.')) {
75
+ if (!value || !Object.prototype.hasOwnProperty.call(value, part))
76
+ return undefined;
77
+ value = value[part];
78
+ }
79
+ return typeof value === 'string' ? value : undefined;
80
+ }
81
+ interpolate(value, replace) {
82
+ const keys = Object.keys(replace).sort((a, b) => b.length - a.length);
83
+ for (const key of keys) {
84
+ const text = String(replace[key]);
85
+ const variants = {
86
+ [key]: text, [key.toUpperCase()]: text.toUpperCase(),
87
+ [key.charAt(0).toUpperCase() + key.slice(1)]: text.charAt(0).toUpperCase() + text.slice(1),
88
+ };
89
+ for (const [name, content] of Object.entries(variants))
90
+ value = value.split(':' + name).join(content);
91
+ }
92
+ return value;
93
+ }
94
+ }
95
+ //# sourceMappingURL=TranslationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranslationService.js","sourceRoot":"","sources":["../../../../src/core/services/TranslationService.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
- export * from "./BlockManager";
2
- export * from "./EventService";
3
- export * from "./LoggerService";
4
- export * from './HelperService';
5
- export * from './HttpService';
6
- export * from './MarkerRegistry';
7
- export * from "./StoreService";
8
- export * from "./StorageService";
1
+ export * from "./AssetManager.js";
2
+ export * from "./BlockManager.js";
3
+ export * from "./EventService.js";
4
+ export * from "./HeadService.js";
5
+ export * from "./SectionManager.js";
6
+ export * from "./LoggerService.js";
7
+ export * from './HelperService.js';
8
+ export * from './HttpService.js';
9
+ export * from './MarkerRegistry.js';
10
+ export * from "./StoreService.js";
11
+ export * from "./StorageService.js";
9
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
@@ -1,9 +1,12 @@
1
- export * from "./BlockManager";
2
- export * from "./EventService";
3
- export * from "./LoggerService";
4
- export * from './HelperService';
5
- export * from './HttpService';
6
- export * from './MarkerRegistry';
7
- export * from "./StoreService";
8
- export * from "./StorageService";
1
+ export * from "./AssetManager.js";
2
+ export * from "./BlockManager.js";
3
+ export * from "./EventService.js";
4
+ export * from "./HeadService.js";
5
+ export * from "./SectionManager.js";
6
+ export * from "./LoggerService.js";
7
+ export * from './HelperService.js';
8
+ export * from './HttpService.js';
9
+ export * from './MarkerRegistry.js';
10
+ export * from "./StoreService.js";
11
+ export * from "./StorageService.js";
9
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}