@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.
- package/README.md +52 -195
- package/dist/index.d.ts +20 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/plugins.d.ts +2 -2
- package/dist/plugins.js +2 -2
- package/dist/src/core/app/Application.d.ts +25 -15
- package/dist/src/core/app/Application.d.ts.map +1 -1
- package/dist/src/core/app/Application.js +55 -18
- package/dist/src/core/app/Application.js.map +1 -1
- package/dist/src/core/bootstrap/app.d.ts +1 -1
- package/dist/src/core/bootstrap/app.d.ts.map +1 -1
- package/dist/src/core/bootstrap/app.js +77 -4
- package/dist/src/core/bootstrap/app.js.map +1 -1
- package/dist/src/core/bootstrap/bundle.d.ts +41 -0
- package/dist/src/core/bootstrap/bundle.d.ts.map +1 -0
- package/dist/src/core/bootstrap/bundle.js +98 -0
- package/dist/src/core/bootstrap/bundle.js.map +1 -0
- package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts +1 -1
- package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts.map +1 -1
- package/dist/src/core/bootstrap/providers/ApiServiceProvider.js +3 -3
- package/dist/src/core/bootstrap/providers/ApiServiceProvider.js.map +1 -1
- package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts +1 -1
- package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts.map +1 -1
- package/dist/src/core/bootstrap/providers/CoreServiceProvider.js +11 -8
- package/dist/src/core/bootstrap/providers/CoreServiceProvider.js.map +1 -1
- package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts +3 -1
- package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts.map +1 -1
- package/dist/src/core/bootstrap/providers/HelperServiceProvider.js +8 -3
- package/dist/src/core/bootstrap/providers/HelperServiceProvider.js.map +1 -1
- package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts +2 -1
- package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts.map +1 -1
- package/dist/src/core/bootstrap/providers/RouteServiceProvider.js +14 -4
- package/dist/src/core/bootstrap/providers/RouteServiceProvider.js.map +1 -1
- package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts +4 -4
- package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts.map +1 -1
- package/dist/src/core/bootstrap/providers/ServiceProvider.js +5 -5
- package/dist/src/core/bootstrap/providers/ServiceProvider.js.map +1 -1
- package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts +1 -1
- package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts.map +1 -1
- package/dist/src/core/bootstrap/providers/ViewServiceProvider.js +3 -3
- package/dist/src/core/bootstrap/providers/ViewServiceProvider.js.map +1 -1
- package/dist/src/core/bootstrap/providers/default-providers.d.ts +1 -1
- package/dist/src/core/bootstrap/providers/default-providers.d.ts.map +1 -1
- package/dist/src/core/bootstrap/providers/default-providers.js +44 -11
- package/dist/src/core/bootstrap/providers/default-providers.js.map +1 -1
- package/dist/src/core/bootstrap/providers/index.d.ts +9 -9
- package/dist/src/core/bootstrap/providers/index.d.ts.map +1 -1
- package/dist/src/core/bootstrap/providers/index.js +8 -8
- package/dist/src/core/bootstrap/providers/index.js.map +1 -1
- package/dist/src/core/bootstrap/providers/provider-order.d.ts +1 -1
- package/dist/src/core/bootstrap/providers/provider-order.d.ts.map +1 -1
- package/dist/src/core/bootstrap/ssr.d.ts +47 -0
- package/dist/src/core/bootstrap/ssr.d.ts.map +1 -0
- package/dist/src/core/bootstrap/ssr.js +129 -0
- package/dist/src/core/bootstrap/ssr.js.map +1 -0
- package/dist/src/core/cache/ViewCache.d.ts +1 -1
- package/dist/src/core/cache/ViewCache.d.ts.map +1 -1
- package/dist/src/core/cache/index.d.ts +1 -1
- package/dist/src/core/cache/index.d.ts.map +1 -1
- package/dist/src/core/cache/index.js +1 -1
- package/dist/src/core/cache/index.js.map +1 -1
- package/dist/src/core/contracts/ApplicationInterface.d.ts +15 -11
- package/dist/src/core/contracts/ApplicationInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/BlockInterface.d.ts +10 -10
- package/dist/src/core/contracts/BlockInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/BundleInterface.d.ts +38 -0
- package/dist/src/core/contracts/BundleInterface.d.ts.map +1 -0
- package/dist/src/core/contracts/BundleInterface.js +2 -0
- package/dist/src/core/contracts/BundleInterface.js.map +1 -0
- package/dist/src/core/contracts/ComponentInterface.d.ts +7 -6
- package/dist/src/core/contracts/ComponentInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/ElementInterface.d.ts +91 -27
- package/dist/src/core/contracts/ElementInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/HeadServiceInterface.d.ts +37 -0
- package/dist/src/core/contracts/HeadServiceInterface.d.ts.map +1 -0
- package/dist/src/core/contracts/HeadServiceInterface.js +3 -0
- package/dist/src/core/contracts/HeadServiceInterface.js.map +1 -0
- package/dist/src/core/contracts/HelperInterface.d.ts +9 -1
- package/dist/src/core/contracts/HelperInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/HttpServiceInterface.d.ts +3 -0
- package/dist/src/core/contracts/HttpServiceInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/MarkerInterface.d.ts +29 -44
- package/dist/src/core/contracts/MarkerInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/ReactiveInterface.d.ts +9 -9
- package/dist/src/core/contracts/ReactiveInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/RouterInterface.d.ts +5 -2
- package/dist/src/core/contracts/RouterInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/SectionInterface.d.ts +48 -0
- package/dist/src/core/contracts/SectionInterface.d.ts.map +1 -0
- package/dist/src/core/contracts/SectionInterface.js +2 -0
- package/dist/src/core/contracts/SectionInterface.js.map +1 -0
- package/dist/src/core/contracts/ServiceProviderInterface.d.ts +3 -3
- package/dist/src/core/contracts/ServiceProviderInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/ViewControllerInterface.d.ts +116 -15
- package/dist/src/core/contracts/ViewControllerInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/ViewInterface.d.ts +31 -5
- package/dist/src/core/contracts/ViewInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/ViewManagerInterface.d.ts +47 -5
- package/dist/src/core/contracts/ViewManagerInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/ViewStateInterface.d.ts +39 -2
- package/dist/src/core/contracts/ViewStateInterface.d.ts.map +1 -1
- package/dist/src/core/contracts/common.d.ts +3 -3
- package/dist/src/core/contracts/common.js +3 -3
- package/dist/src/core/contracts/utils.d.ts +19 -19
- package/dist/src/core/contracts/utils.d.ts.map +1 -1
- package/dist/src/core/contracts/views.d.ts +1 -22
- package/dist/src/core/contracts/views.d.ts.map +1 -1
- package/dist/src/core/devtools/hook.d.ts +66 -0
- package/dist/src/core/devtools/hook.d.ts.map +1 -0
- package/dist/src/core/devtools/hook.js +114 -0
- package/dist/src/core/devtools/hook.js.map +1 -0
- package/dist/src/core/devtools/index.d.ts +34 -0
- package/dist/src/core/devtools/index.d.ts.map +1 -0
- package/dist/src/core/devtools/index.js +33 -0
- package/dist/src/core/devtools/index.js.map +1 -0
- package/dist/src/core/devtools/inspector.d.ts +31 -0
- package/dist/src/core/devtools/inspector.d.ts.map +1 -0
- package/dist/src/core/devtools/inspector.js +249 -0
- package/dist/src/core/devtools/inspector.js.map +1 -0
- package/dist/src/core/elements/Block.d.ts +9 -7
- package/dist/src/core/elements/Block.d.ts.map +1 -1
- package/dist/src/core/elements/Block.js +33 -9
- package/dist/src/core/elements/Block.js.map +1 -1
- package/dist/src/core/elements/BlockOutlet.d.ts +19 -8
- package/dist/src/core/elements/BlockOutlet.d.ts.map +1 -1
- package/dist/src/core/elements/BlockOutlet.js +57 -13
- package/dist/src/core/elements/BlockOutlet.js.map +1 -1
- package/dist/src/core/elements/Component.d.ts +83 -11
- package/dist/src/core/elements/Component.d.ts.map +1 -1
- package/dist/src/core/elements/Component.js +334 -13
- package/dist/src/core/elements/Component.js.map +1 -1
- package/dist/src/core/elements/ForeachSlotCache.d.ts +95 -0
- package/dist/src/core/elements/ForeachSlotCache.d.ts.map +1 -0
- package/dist/src/core/elements/ForeachSlotCache.js +149 -0
- package/dist/src/core/elements/ForeachSlotCache.js.map +1 -0
- package/dist/src/core/elements/Fragment.d.ts +19 -13
- package/dist/src/core/elements/Fragment.d.ts.map +1 -1
- package/dist/src/core/elements/Fragment.js +43 -20
- package/dist/src/core/elements/Fragment.js.map +1 -1
- package/dist/src/core/elements/Html.d.ts +89 -12
- package/dist/src/core/elements/Html.d.ts.map +1 -1
- package/dist/src/core/elements/Html.js +707 -106
- package/dist/src/core/elements/Html.js.map +1 -1
- package/dist/src/core/elements/Output.d.ts +34 -10
- package/dist/src/core/elements/Output.d.ts.map +1 -1
- package/dist/src/core/elements/Output.js +141 -26
- package/dist/src/core/elements/Output.js.map +1 -1
- package/dist/src/core/elements/Reactive.d.ts +85 -14
- package/dist/src/core/elements/Reactive.d.ts.map +1 -1
- package/dist/src/core/elements/Reactive.js +315 -41
- package/dist/src/core/elements/Reactive.js.map +1 -1
- package/dist/src/core/elements/TextElement.d.ts +11 -7
- package/dist/src/core/elements/TextElement.d.ts.map +1 -1
- package/dist/src/core/elements/TextElement.js +18 -11
- package/dist/src/core/elements/TextElement.js.map +1 -1
- package/dist/src/core/elements/Wrapper.d.ts +24 -13
- package/dist/src/core/elements/Wrapper.d.ts.map +1 -1
- package/dist/src/core/elements/Wrapper.js +65 -8
- package/dist/src/core/elements/Wrapper.js.map +1 -1
- package/dist/src/core/elements/Yield.d.ts +10 -9
- package/dist/src/core/elements/Yield.d.ts.map +1 -1
- package/dist/src/core/elements/Yield.js +31 -19
- package/dist/src/core/elements/Yield.js.map +1 -1
- package/dist/src/core/elements/helpers.d.ts +7 -7
- package/dist/src/core/elements/helpers.d.ts.map +1 -1
- package/dist/src/core/elements/helpers.js +4 -4
- package/dist/src/core/elements/index.d.ts +12 -11
- package/dist/src/core/elements/index.d.ts.map +1 -1
- package/dist/src/core/elements/index.js +12 -11
- package/dist/src/core/elements/index.js.map +1 -1
- package/dist/src/core/elements/reconcileChildren.d.ts +7 -0
- package/dist/src/core/elements/reconcileChildren.d.ts.map +1 -0
- package/dist/src/core/elements/reconcileChildren.js +74 -0
- package/dist/src/core/elements/reconcileChildren.js.map +1 -0
- package/dist/src/core/helpers/ApiClient.d.ts.map +1 -0
- package/dist/src/core/{hellpers → helpers}/ApiClient.js +10 -1
- package/dist/src/core/helpers/ApiClient.js.map +1 -0
- package/dist/src/core/helpers/app.d.ts +3 -0
- package/dist/src/core/helpers/app.d.ts.map +1 -0
- package/dist/src/core/{hellpers → helpers}/app.js +11 -1
- package/dist/src/core/helpers/app.js.map +1 -0
- package/dist/src/core/helpers/transition.d.ts +34 -0
- package/dist/src/core/helpers/transition.d.ts.map +1 -0
- package/dist/src/core/helpers/transition.js +118 -0
- package/dist/src/core/helpers/transition.js.map +1 -0
- package/dist/src/core/{hellpers → helpers}/utils.d.ts +2 -2
- package/dist/src/core/helpers/utils.d.ts.map +1 -0
- package/dist/src/core/{hellpers → helpers}/utils.js +4 -4
- package/dist/src/core/helpers/utils.js.map +1 -0
- package/dist/src/core/helpers/view.d.ts +39 -0
- package/dist/src/core/helpers/view.d.ts.map +1 -0
- package/dist/src/core/helpers/view.js +286 -0
- package/dist/src/core/helpers/view.js.map +1 -0
- package/dist/src/core/routers/Router.d.ts +108 -7
- package/dist/src/core/routers/Router.d.ts.map +1 -1
- package/dist/src/core/routers/Router.js +444 -68
- package/dist/src/core/routers/Router.js.map +1 -1
- package/dist/src/core/routers/index.d.ts +2 -2
- package/dist/src/core/routers/index.d.ts.map +1 -1
- package/dist/src/core/routers/index.js +1 -1
- package/dist/src/core/routers/index.js.map +1 -1
- package/dist/src/core/services/AssetManager.d.ts +112 -0
- package/dist/src/core/services/AssetManager.d.ts.map +1 -0
- package/dist/src/core/services/AssetManager.js +361 -0
- package/dist/src/core/services/AssetManager.js.map +1 -0
- package/dist/src/core/services/BlockManager.d.ts +73 -2
- package/dist/src/core/services/BlockManager.d.ts.map +1 -1
- package/dist/src/core/services/BlockManager.js +270 -48
- package/dist/src/core/services/BlockManager.js.map +1 -1
- package/dist/src/core/services/DomService.js +3 -3
- package/dist/src/core/services/DomService.js.map +1 -1
- package/dist/src/core/services/HeadService.d.ts +24 -0
- package/dist/src/core/services/HeadService.d.ts.map +1 -0
- package/dist/src/core/services/HeadService.js +120 -0
- package/dist/src/core/services/HeadService.js.map +1 -0
- package/dist/src/core/services/HelperService.d.ts +14 -3
- package/dist/src/core/services/HelperService.d.ts.map +1 -1
- package/dist/src/core/services/HelperService.js +32 -2
- package/dist/src/core/services/HelperService.js.map +1 -1
- package/dist/src/core/services/HttpService.d.ts +8 -0
- package/dist/src/core/services/HttpService.d.ts.map +1 -1
- package/dist/src/core/services/HttpService.js +121 -47
- package/dist/src/core/services/HttpService.js.map +1 -1
- package/dist/src/core/services/MarkerRegistry.d.ts +51 -8
- package/dist/src/core/services/MarkerRegistry.d.ts.map +1 -1
- package/dist/src/core/services/MarkerRegistry.js +135 -14
- package/dist/src/core/services/MarkerRegistry.js.map +1 -1
- package/dist/src/core/services/PageCache.d.ts +101 -0
- package/dist/src/core/services/PageCache.d.ts.map +1 -0
- package/dist/src/core/services/PageCache.js +184 -0
- package/dist/src/core/services/PageCache.js.map +1 -0
- package/dist/src/core/services/SectionManager.d.ts +100 -0
- package/dist/src/core/services/SectionManager.d.ts.map +1 -0
- package/dist/src/core/services/SectionManager.js +408 -0
- package/dist/src/core/services/SectionManager.js.map +1 -0
- package/dist/src/core/services/StorageService.js +1 -1
- package/dist/src/core/services/TranslationService.d.ts +21 -0
- package/dist/src/core/services/TranslationService.d.ts.map +1 -0
- package/dist/src/core/services/TranslationService.js +95 -0
- package/dist/src/core/services/TranslationService.js.map +1 -0
- package/dist/src/core/services/index.d.ts +11 -8
- package/dist/src/core/services/index.d.ts.map +1 -1
- package/dist/src/core/services/index.js +11 -8
- package/dist/src/core/services/index.js.map +1 -1
- package/dist/src/core/types/utils.d.ts +8 -8
- package/dist/src/core/types/utils.d.ts.map +1 -1
- package/dist/src/core/view/LoopContext.d.ts +21 -1
- package/dist/src/core/view/LoopContext.d.ts.map +1 -1
- package/dist/src/core/view/LoopContext.js +36 -0
- package/dist/src/core/view/LoopContext.js.map +1 -1
- package/dist/src/core/view/ResourceScope.d.ts +38 -0
- package/dist/src/core/view/ResourceScope.d.ts.map +1 -0
- package/dist/src/core/view/ResourceScope.js +167 -0
- package/dist/src/core/view/ResourceScope.js.map +1 -0
- package/dist/src/core/view/Section.d.ts +17 -32
- package/dist/src/core/view/Section.d.ts.map +1 -1
- package/dist/src/core/view/Section.js +14 -55
- package/dist/src/core/view/Section.js.map +1 -1
- package/dist/src/core/view/View.d.ts +43 -7
- package/dist/src/core/view/View.d.ts.map +1 -1
- package/dist/src/core/view/View.js +22 -4
- package/dist/src/core/view/View.js.map +1 -1
- package/dist/src/core/view/ViewController.d.ts +313 -40
- package/dist/src/core/view/ViewController.d.ts.map +1 -1
- package/dist/src/core/view/ViewController.js +1002 -147
- package/dist/src/core/view/ViewController.js.map +1 -1
- package/dist/src/core/view/ViewManager.d.ts +318 -27
- package/dist/src/core/view/ViewManager.d.ts.map +1 -1
- package/dist/src/core/view/ViewManager.js +1199 -258
- package/dist/src/core/view/ViewManager.js.map +1 -1
- package/dist/src/core/view/ViewState.d.ts +185 -6
- package/dist/src/core/view/ViewState.d.ts.map +1 -1
- package/dist/src/core/view/ViewState.js +851 -123
- package/dist/src/core/view/ViewState.js.map +1 -1
- package/dist/src/core/view/index.d.ts +5 -5
- package/dist/src/core/view/index.d.ts.map +1 -1
- package/dist/src/core/view/index.js +5 -5
- package/dist/src/core/view/index.js.map +1 -1
- package/dist/src/testing/index.d.ts +69 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +140 -0
- package/dist/src/testing/index.js.map +1 -0
- package/index.ts +29 -5
- package/package.json +30 -21
- package/plugins.ts +2 -2
- package/src/core/app/Application.ts +72 -31
- package/src/core/bootstrap/app.ts +84 -6
- package/src/core/bootstrap/bundle.ts +101 -0
- package/src/core/bootstrap/providers/ApiServiceProvider.ts +4 -4
- package/src/core/bootstrap/providers/CoreServiceProvider.ts +14 -8
- package/src/core/bootstrap/providers/HelperServiceProvider.ts +8 -3
- package/src/core/bootstrap/providers/RouteServiceProvider.ts +15 -4
- package/src/core/bootstrap/providers/ServiceProvider.ts +8 -8
- package/src/core/bootstrap/providers/ViewServiceProvider.ts +3 -3
- package/src/core/bootstrap/providers/default-providers.ts +51 -16
- package/src/core/bootstrap/providers/index.ts +9 -9
- package/src/core/bootstrap/providers/provider-order.test.ts +16 -27
- package/src/core/bootstrap/providers/provider-order.ts +1 -1
- package/src/core/bootstrap/ssr.ts +141 -0
- package/src/core/cache/ViewCache.ts +1 -1
- package/src/core/cache/index.ts +1 -1
- package/src/core/contracts/ApplicationInterface.ts +15 -11
- package/src/core/contracts/BlockInterface.ts +18 -18
- package/src/core/contracts/BundleInterface.ts +40 -0
- package/src/core/contracts/ComponentInterface.ts +7 -6
- package/src/core/contracts/ElementInterface.ts +95 -27
- package/src/core/contracts/HeadServiceInterface.ts +41 -0
- package/src/core/contracts/HelperInterface.ts +9 -1
- package/src/core/contracts/HttpServiceInterface.ts +3 -0
- package/src/core/contracts/MarkerInterface.ts +22 -49
- package/src/core/contracts/ReactiveInterface.ts +9 -9
- package/src/core/contracts/RouterInterface.ts +5 -2
- package/src/core/contracts/SectionInterface.ts +49 -0
- package/src/core/contracts/ServiceProviderInterface.ts +3 -3
- package/src/core/contracts/ViewControllerInterface.ts +124 -16
- package/src/core/contracts/ViewInterface.ts +34 -5
- package/src/core/contracts/ViewManagerInterface.ts +40 -5
- package/src/core/contracts/ViewStateInterface.ts +39 -2
- package/src/core/contracts/common.ts +3 -3
- package/src/core/contracts/utils.ts +19 -19
- package/src/core/contracts/views.ts +2 -22
- package/src/core/devtools/hook.ts +142 -0
- package/src/core/devtools/index.ts +38 -0
- package/src/core/devtools/inspector.ts +270 -0
- package/src/core/elements/Block.ts +43 -21
- package/src/core/elements/BlockOutlet.ts +61 -21
- package/src/core/elements/Component.ts +352 -18
- package/src/core/elements/ElementManager.ts +9 -9
- package/src/core/elements/ForeachSlotCache.ts +170 -0
- package/src/core/elements/Fragment.ts +50 -32
- package/src/core/elements/Html.ts +696 -117
- package/src/core/elements/Output.ts +147 -30
- package/src/core/elements/Reactive.ts +329 -52
- package/src/core/elements/TextElement.ts +25 -16
- package/src/core/elements/Wrapper.ts +84 -18
- package/src/core/elements/Yield.ts +35 -24
- package/src/core/elements/helpers.ts +12 -12
- package/src/core/elements/index.ts +25 -24
- package/src/core/elements/reconcileChildren.ts +70 -0
- package/src/core/{hellpers → helpers}/ApiClient.ts +8 -1
- package/src/core/{hellpers → helpers}/app.ts +13 -2
- package/src/core/helpers/transition.ts +127 -0
- package/src/core/{hellpers → helpers}/utils.ts +4 -4
- package/src/core/helpers/view.ts +283 -0
- package/src/core/routers/Router.ts +458 -64
- package/src/core/routers/index.ts +2 -2
- package/src/core/services/AssetManager.ts +387 -0
- package/src/core/services/BlockManager.ts +272 -50
- package/src/core/services/DomService.ts +3 -3
- package/src/core/services/HeadService.ts +124 -0
- package/src/core/services/HelperService.ts +34 -4
- package/src/core/services/HttpService.ts +116 -55
- package/src/core/services/MarkerRegistry.ts +142 -16
- package/src/core/services/PageCache.ts +239 -0
- package/src/core/services/SectionManager.ts +387 -0
- package/src/core/services/StorageService.ts +1 -1
- package/src/core/services/TranslationService.ts +91 -0
- package/src/core/services/index.ts +11 -8
- package/src/core/types/utils.ts +8 -8
- package/src/core/view/LoopContext.ts +38 -1
- package/src/core/view/ResourceScope.ts +174 -0
- package/src/core/view/Section.ts +21 -68
- package/src/core/view/View.ts +57 -8
- package/src/core/view/ViewController.ts +1070 -186
- package/src/core/view/ViewManager.ts +1346 -272
- package/src/core/view/ViewState.ts +834 -116
- package/src/core/view/index.ts +5 -5
- package/src/testing/index.ts +184 -0
- package/dist/src/core/hellpers/ApiClient.d.ts.map +0 -1
- package/dist/src/core/hellpers/ApiClient.js.map +0 -1
- package/dist/src/core/hellpers/app.d.ts +0 -3
- package/dist/src/core/hellpers/app.d.ts.map +0 -1
- package/dist/src/core/hellpers/app.js.map +0 -1
- package/dist/src/core/hellpers/utils.d.ts.map +0 -1
- package/dist/src/core/hellpers/utils.js.map +0 -1
- package/dist/src/core/services/MarkerService.d.ts +0 -299
- package/dist/src/core/services/MarkerService.d.ts.map +0 -1
- package/dist/src/core/services/MarkerService.js +0 -723
- package/dist/src/core/services/MarkerService.js.map +0 -1
- package/src/core/services/MarkerService.ts +0 -923
- /package/dist/src/core/{hellpers → helpers}/ApiClient.d.ts +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type SaoObjectType = 'Application' | 'App' | 'ServiceProvider' | 'Html' | 'Reactive' | 'TextElement' | 'Fragment' | 'Wrapper' | 'Block' | 'BlockOutlet' | 'Output' | 'ViewController' | 'View' | 'Service' | 'Router' | 'App' | 'Component' | 'Unknown' | 'Yield' | '' | null;
|
|
2
2
|
export declare enum OOTEnum {
|
|
3
3
|
APPLICATION = "Application",
|
|
4
4
|
HTML = "Html",
|
|
@@ -19,11 +19,11 @@ export declare enum OOTEnum {
|
|
|
19
19
|
UNKNOWN = "Unknown",
|
|
20
20
|
YIELD = "Yield"
|
|
21
21
|
}
|
|
22
|
-
export type {
|
|
23
|
-
export type { ReactiveRenderFn, ReactiveChildrenFactory, ReactiveConfig } from "../contracts/ReactiveInterface";
|
|
24
|
-
export type { BlockRenderFactory } from "../contracts/BlockInterface";
|
|
25
|
-
export type { ViewRenderFactory, ViewConstructor, ViewLifecycleHooks } from "../contracts/ViewInterface";
|
|
26
|
-
export type { StateListener, MultiKeyStateListener, StateItem } from "../contracts/ViewStateInterface";
|
|
27
|
-
export type { ServiceKey, ServiceFactory, ServiceBinding } from "../contracts/ApplicationInterface";
|
|
28
|
-
export type { ViewConfig, ViewRuntimeConfig } from "../contracts/ViewControllerInterface";
|
|
22
|
+
export type { SaoElementConfig, HtmlElementConfig, SaoElementEventHandler, SaoElementChildren, SaoChildrenFactoryOutput, SaoChildrenFactory } from "../contracts/ElementInterface.js";
|
|
23
|
+
export type { ReactiveRenderFn, ReactiveChildrenFactory, ReactiveConfig } from "../contracts/ReactiveInterface.js";
|
|
24
|
+
export type { BlockRenderFactory } from "../contracts/BlockInterface.js";
|
|
25
|
+
export type { ViewRenderFactory, ViewConstructor, ViewLifecycleHooks } from "../contracts/ViewInterface.js";
|
|
26
|
+
export type { StateListener, MultiKeyStateListener, StateItem } from "../contracts/ViewStateInterface.js";
|
|
27
|
+
export type { ServiceKey, ServiceFactory, ServiceBinding } from "../contracts/ApplicationInterface.js";
|
|
28
|
+
export type { ViewConfig, ViewRuntimeConfig } from "../contracts/ViewControllerInterface.js";
|
|
29
29
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/types/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,KAAK,GAAG,iBAAiB,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;AACrR,oBAAY,OAAO;IACf,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,YAAY,gBAAgB;IAC5B,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,YAAY,gBAAgB;IAC5B,MAAM,WAAW;IACjB,eAAe,mBAAmB;IAClC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,gBAAgB,oBAAoB;IACpC,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,KAAK,UAAU;CAClB;AAGD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/types/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,KAAK,GAAG,iBAAiB,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;AACrR,oBAAY,OAAO;IACf,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,YAAY,gBAAgB;IAC5B,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,YAAY,gBAAgB;IAC5B,MAAM,WAAW;IACjB,eAAe,mBAAmB;IAClC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,gBAAgB,oBAAoB;IACpC,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,KAAK,UAAU;CAClB;AAGD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtL,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnH,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC5G,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC1G,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACvG,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LoopContextInterface } from "../contracts/LoopContextInterface";
|
|
1
|
+
import type { LoopContextInterface } from "../contracts/LoopContextInterface.js";
|
|
2
2
|
/**
|
|
3
3
|
* LoopContext — provides loop metadata for @foreach, @for, @while directives.
|
|
4
4
|
*
|
|
@@ -31,6 +31,26 @@ export declare class LoopContext implements LoopContextInterface {
|
|
|
31
31
|
setCount(count: number): void;
|
|
32
32
|
setCurrentTimes(index: number): void;
|
|
33
33
|
next(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Bản chụp BẤT BIẾN của trạng thái hiện tại — dùng cho `loop` mà template
|
|
36
|
+
* nhìn thấy trong `@foreach`.
|
|
37
|
+
*
|
|
38
|
+
* Vì sao cần: LoopContext là MỘT object dùng chung, bị mutate qua từng vòng
|
|
39
|
+
* (`setCurrentTimes`). Trong khi đó element con được tạo bởi
|
|
40
|
+
* `childrenFactory` — closure chạy MUỘN (lúc Html.renderChildren), SAU khi
|
|
41
|
+
* vòng lặp đã kết thúc. Closure bắt `loop` theo THAM CHIẾU nên mọi hàng đọc
|
|
42
|
+
* ra cùng một giá trị: trạng thái CUỐI cùng.
|
|
43
|
+
* Đo được: list 6 phần tử, `@click(remove(loop.index))` ở mọi hàng đều nhận
|
|
44
|
+
* index = 5 → bấm hàng nào cũng xoá phần tử cuối, rồi tắc hẳn.
|
|
45
|
+
* `__loopIndex` không dính vì nó là tham số theo từng lần gọi callback (mỗi
|
|
46
|
+
* closure một binding riêng), không phải object chia sẻ.
|
|
47
|
+
*
|
|
48
|
+
* `parent` cũng chụp đệ quy: loop lồng nhau có cùng vấn đề ở mức ngoài.
|
|
49
|
+
* Trả về plain object đã freeze — chỉ đọc, không có `next()` (không ai gọi
|
|
50
|
+
* `next()` trên `loop` của `@foreach`; `@for`/`@while` vẫn nhận context
|
|
51
|
+
* MUTABLE vì codegen của chúng cần `setCurrentTimes`/`next`).
|
|
52
|
+
*/
|
|
53
|
+
snapshot(): LoopContextInterface;
|
|
34
54
|
reset(): void;
|
|
35
55
|
private increment;
|
|
36
56
|
private decrement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoopContext.d.ts","sourceRoot":"","sources":["../../../../src/core/view/LoopContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LoopContext.d.ts","sourceRoot":"","sources":["../../../../src/core/view/LoopContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEjF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAY,YAAW,oBAAoB;IAC7C,KAAK,EAAE,MAAM,CAAK;IAClB,SAAS,EAAE,MAAM,CAAK;IACtB,KAAK,EAAE,MAAM,CAAK;IAClB,SAAS,EAAE,MAAM,CAAM;IACvB,KAAK,EAAE,OAAO,CAAS;IACvB,IAAI,EAAE,OAAO,CAAS;IACtB,GAAG,EAAE,OAAO,CAAQ;IACpB,IAAI,EAAE,OAAO,CAAS;IACtB,KAAK,EAAE,MAAM,CAAK;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAElC,OAAO,CAAC,IAAI,CAA0C;gBAE1C,MAAM,GAAE,WAAW,GAAG,IAAW;IAO7C,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IAM9C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW7B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAYpC,IAAI,IAAI,IAAI;IAQZ;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,IAAI,oBAAoB;IAkBhC,KAAK,IAAI,IAAI;IAWb,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,SAAS;CAUpB"}
|
|
@@ -65,6 +65,42 @@ export class LoopContext {
|
|
|
65
65
|
this.decrement();
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Bản chụp BẤT BIẾN của trạng thái hiện tại — dùng cho `loop` mà template
|
|
70
|
+
* nhìn thấy trong `@foreach`.
|
|
71
|
+
*
|
|
72
|
+
* Vì sao cần: LoopContext là MỘT object dùng chung, bị mutate qua từng vòng
|
|
73
|
+
* (`setCurrentTimes`). Trong khi đó element con được tạo bởi
|
|
74
|
+
* `childrenFactory` — closure chạy MUỘN (lúc Html.renderChildren), SAU khi
|
|
75
|
+
* vòng lặp đã kết thúc. Closure bắt `loop` theo THAM CHIẾU nên mọi hàng đọc
|
|
76
|
+
* ra cùng một giá trị: trạng thái CUỐI cùng.
|
|
77
|
+
* Đo được: list 6 phần tử, `@click(remove(loop.index))` ở mọi hàng đều nhận
|
|
78
|
+
* index = 5 → bấm hàng nào cũng xoá phần tử cuối, rồi tắc hẳn.
|
|
79
|
+
* `__loopIndex` không dính vì nó là tham số theo từng lần gọi callback (mỗi
|
|
80
|
+
* closure một binding riêng), không phải object chia sẻ.
|
|
81
|
+
*
|
|
82
|
+
* `parent` cũng chụp đệ quy: loop lồng nhau có cùng vấn đề ở mức ngoài.
|
|
83
|
+
* Trả về plain object đã freeze — chỉ đọc, không có `next()` (không ai gọi
|
|
84
|
+
* `next()` trên `loop` của `@foreach`; `@for`/`@while` vẫn nhận context
|
|
85
|
+
* MUTABLE vì codegen của chúng cần `setCurrentTimes`/`next`).
|
|
86
|
+
*/
|
|
87
|
+
snapshot() {
|
|
88
|
+
return Object.freeze({
|
|
89
|
+
index: this.index,
|
|
90
|
+
iteration: this.iteration,
|
|
91
|
+
count: this.count,
|
|
92
|
+
remaining: this.remaining,
|
|
93
|
+
first: this.first,
|
|
94
|
+
last: this.last,
|
|
95
|
+
odd: this.odd,
|
|
96
|
+
even: this.even,
|
|
97
|
+
depth: this.depth,
|
|
98
|
+
parent: this.parent ? this.parent.snapshot() : null,
|
|
99
|
+
next() {
|
|
100
|
+
console.warn('[LoopContext] `loop` trong @foreach là bản chụp chỉ đọc — next() không có tác dụng.');
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
}
|
|
68
104
|
reset() {
|
|
69
105
|
this.iteration = 0;
|
|
70
106
|
this.index = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoopContext.js","sourceRoot":"","sources":["../../../../src/core/view/LoopContext.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LoopContext.js","sourceRoot":"","sources":["../../../../src/core/view/LoopContext.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,WAAW;IAcpB,YAAY,SAA6B,IAAI;QAbtC,UAAK,GAAW,CAAC,CAAC;QAClB,cAAS,GAAW,CAAC,CAAC;QACtB,UAAK,GAAW,CAAC,CAAC;QAClB,cAAS,GAAW,CAAC,CAAC,CAAC;QACvB,UAAK,GAAY,KAAK,CAAC;QACvB,SAAI,GAAY,KAAK,CAAC;QACtB,QAAG,GAAY,IAAI,CAAC;QACpB,SAAI,GAAY,KAAK,CAAC;QACtB,UAAK,GAAW,CAAC,CAAC;QAGjB,SAAI,GAA8B,WAAW,CAAC;QAGlD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAA+B;QACnC,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,qDAAqD;YACrD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,eAAe,CAAC,KAAa;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9D,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACjD,CAAC;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ;QACJ,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;YACnD,IAAI;gBACA,OAAO,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;YACxG,CAAC;SACJ,CAAyB,CAAC;IAC/B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC;IAEO,SAAS;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B,CAAC;IAEO,SAAS;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B,CAAC;CACJ"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { StateManagerInterface } from '../contracts/ViewStateInterface.js';
|
|
2
|
+
export type Cleanup = () => void;
|
|
3
|
+
export interface WatchContext {
|
|
4
|
+
readonly signal: AbortSignal;
|
|
5
|
+
/** False after a dependency change, pause, stop, or destroy. */
|
|
6
|
+
readonly current: boolean;
|
|
7
|
+
onCleanup(cleanup: Cleanup): void;
|
|
8
|
+
/** Apply an async result only while this run still owns the scope. */
|
|
9
|
+
commit(update: () => void): boolean;
|
|
10
|
+
}
|
|
11
|
+
export type WatchCallback = (values: Readonly<Record<string, any>>, context: WatchContext) => void | Cleanup | Promise<void | Cleanup>;
|
|
12
|
+
export interface WatchOptions {
|
|
13
|
+
immediate?: boolean;
|
|
14
|
+
/** dom (default) runs after bindings/regions; state runs before regions. */
|
|
15
|
+
flush?: 'state' | 'dom';
|
|
16
|
+
}
|
|
17
|
+
/** Explicit dependencies and ownership; no global hook order or implicit tracking. */
|
|
18
|
+
export declare class ResourceScope {
|
|
19
|
+
private states;
|
|
20
|
+
private afterDom;
|
|
21
|
+
private reportError;
|
|
22
|
+
private records;
|
|
23
|
+
private cleanups;
|
|
24
|
+
private active;
|
|
25
|
+
private destroyed;
|
|
26
|
+
constructor(states: StateManagerInterface, afterDom: (callback: () => void) => Cleanup, reportError?: (error: unknown) => void);
|
|
27
|
+
watch(keys: readonly string[], callback: WatchCallback, options?: WatchOptions): Cleanup;
|
|
28
|
+
/** Own a resource until scope destruction (pause-safe resources only). */
|
|
29
|
+
defer(cleanup: Cleanup): Cleanup;
|
|
30
|
+
resume(): void;
|
|
31
|
+
pause(): void;
|
|
32
|
+
destroy(): void;
|
|
33
|
+
private invalidate;
|
|
34
|
+
private schedule;
|
|
35
|
+
private run;
|
|
36
|
+
private safely;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ResourceScope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceScope.d.ts","sourceRoot":"","sources":["../../../../src/core/view/ResourceScope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEhF,MAAM,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;AACjC,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,sEAAsE;IACtE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CACvC;AACD,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,KACrF,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AAC7C,MAAM,WAAW,YAAY;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CAC3B;AAYD,sFAAsF;AACtF,qBAAa,aAAa;IAOlB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IARvB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;gBAGd,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,OAAO,EAC3C,WAAW,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAuD;IAGpG,KAAK,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO;IAuB5F,0EAA0E;IAC1E,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAahC,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IASb,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,GAAG;IA8CX,OAAO,CAAC,MAAM;CAGjB"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/** Explicit dependencies and ownership; no global hook order or implicit tracking. */
|
|
2
|
+
export class ResourceScope {
|
|
3
|
+
constructor(states, afterDom, reportError = error => console.error('[ResourceScope]', error)) {
|
|
4
|
+
this.states = states;
|
|
5
|
+
this.afterDom = afterDom;
|
|
6
|
+
this.reportError = reportError;
|
|
7
|
+
this.records = new Set();
|
|
8
|
+
this.cleanups = new Set();
|
|
9
|
+
this.active = false;
|
|
10
|
+
this.destroyed = false;
|
|
11
|
+
}
|
|
12
|
+
watch(keys, callback, options = {}) {
|
|
13
|
+
if (this.destroyed)
|
|
14
|
+
return () => { };
|
|
15
|
+
const record = {
|
|
16
|
+
keys: [...new Set(keys)], callback, options: { ...options },
|
|
17
|
+
live: true, dirty: options.immediate !== false, off: () => { },
|
|
18
|
+
};
|
|
19
|
+
record.off = this.states.subscribe(record.keys, () => {
|
|
20
|
+
// Abort stale work immediately, even when the next run waits for DOM.
|
|
21
|
+
this.invalidate(record);
|
|
22
|
+
record.dirty = true;
|
|
23
|
+
this.schedule(record);
|
|
24
|
+
});
|
|
25
|
+
this.records.add(record);
|
|
26
|
+
this.schedule(record);
|
|
27
|
+
return () => {
|
|
28
|
+
if (!record.live)
|
|
29
|
+
return;
|
|
30
|
+
record.live = false;
|
|
31
|
+
record.off();
|
|
32
|
+
this.invalidate(record);
|
|
33
|
+
this.records.delete(record);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** Own a resource until scope destruction (pause-safe resources only). */
|
|
37
|
+
defer(cleanup) {
|
|
38
|
+
let live = true;
|
|
39
|
+
const dispose = () => {
|
|
40
|
+
if (!live)
|
|
41
|
+
return;
|
|
42
|
+
live = false;
|
|
43
|
+
this.cleanups.delete(dispose);
|
|
44
|
+
this.safely(cleanup);
|
|
45
|
+
};
|
|
46
|
+
if (this.destroyed)
|
|
47
|
+
dispose();
|
|
48
|
+
else
|
|
49
|
+
this.cleanups.add(dispose);
|
|
50
|
+
return dispose;
|
|
51
|
+
}
|
|
52
|
+
resume() {
|
|
53
|
+
if (this.destroyed || this.active)
|
|
54
|
+
return;
|
|
55
|
+
this.active = true;
|
|
56
|
+
for (const record of this.records)
|
|
57
|
+
this.schedule(record);
|
|
58
|
+
}
|
|
59
|
+
pause() {
|
|
60
|
+
if (!this.active)
|
|
61
|
+
return;
|
|
62
|
+
this.active = false;
|
|
63
|
+
for (const record of this.records) {
|
|
64
|
+
if (record.disposeRun || record.cancelQueued)
|
|
65
|
+
record.dirty = true;
|
|
66
|
+
this.invalidate(record);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
destroy() {
|
|
70
|
+
if (this.destroyed)
|
|
71
|
+
return;
|
|
72
|
+
this.destroyed = true;
|
|
73
|
+
this.active = false;
|
|
74
|
+
for (const record of this.records) {
|
|
75
|
+
record.live = false;
|
|
76
|
+
record.off();
|
|
77
|
+
this.invalidate(record);
|
|
78
|
+
}
|
|
79
|
+
this.records.clear();
|
|
80
|
+
for (const cleanup of Array.from(this.cleanups).reverse())
|
|
81
|
+
cleanup();
|
|
82
|
+
}
|
|
83
|
+
invalidate(record) {
|
|
84
|
+
record.cancelQueued?.();
|
|
85
|
+
record.cancelQueued = undefined;
|
|
86
|
+
const dispose = record.disposeRun;
|
|
87
|
+
record.disposeRun = undefined;
|
|
88
|
+
dispose?.();
|
|
89
|
+
}
|
|
90
|
+
schedule(record) {
|
|
91
|
+
if (!this.active || !record.live || !record.dirty || record.cancelQueued)
|
|
92
|
+
return;
|
|
93
|
+
if (record.options.flush === 'state')
|
|
94
|
+
this.run(record);
|
|
95
|
+
else
|
|
96
|
+
record.cancelQueued = this.afterDom(() => {
|
|
97
|
+
record.cancelQueued = undefined;
|
|
98
|
+
this.run(record);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
run(record) {
|
|
102
|
+
if (!this.active || !record.live || !record.dirty)
|
|
103
|
+
return;
|
|
104
|
+
record.dirty = false;
|
|
105
|
+
const controller = new AbortController();
|
|
106
|
+
const cleanups = [];
|
|
107
|
+
const versions = record.keys.map(key => this.states.getStateVersion(key));
|
|
108
|
+
let current = true;
|
|
109
|
+
const isCurrent = () => current && record.keys.every((key, i) => this.states.getStateVersion(key) === versions[i]);
|
|
110
|
+
const onCleanup = (cleanup) => {
|
|
111
|
+
if (isCurrent())
|
|
112
|
+
cleanups.push(cleanup);
|
|
113
|
+
else
|
|
114
|
+
this.safely(cleanup);
|
|
115
|
+
};
|
|
116
|
+
record.disposeRun = () => {
|
|
117
|
+
if (!current)
|
|
118
|
+
return;
|
|
119
|
+
current = false;
|
|
120
|
+
controller.abort();
|
|
121
|
+
for (const cleanup of cleanups.splice(0).reverse())
|
|
122
|
+
this.safely(cleanup);
|
|
123
|
+
};
|
|
124
|
+
const context = {
|
|
125
|
+
signal: controller.signal,
|
|
126
|
+
get current() { return isCurrent(); },
|
|
127
|
+
onCleanup,
|
|
128
|
+
commit: update => {
|
|
129
|
+
if (!isCurrent())
|
|
130
|
+
return false;
|
|
131
|
+
update();
|
|
132
|
+
return true;
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
const values = {};
|
|
136
|
+
try {
|
|
137
|
+
for (const key of record.keys)
|
|
138
|
+
values[key] = this.states.getStateByKey(key);
|
|
139
|
+
const result = record.callback(Object.freeze(values), context);
|
|
140
|
+
if (typeof result === 'function')
|
|
141
|
+
onCleanup(result);
|
|
142
|
+
else if (result)
|
|
143
|
+
Promise.resolve(result).then(cleanup => {
|
|
144
|
+
if (typeof cleanup === 'function')
|
|
145
|
+
onCleanup(cleanup);
|
|
146
|
+
}, error => {
|
|
147
|
+
if (isCurrent() && !controller.signal.aborted)
|
|
148
|
+
this.reportError(error);
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
const dispose = record.disposeRun;
|
|
153
|
+
record.disposeRun = undefined;
|
|
154
|
+
dispose?.();
|
|
155
|
+
this.reportError(error);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
safely(cleanup) {
|
|
159
|
+
try {
|
|
160
|
+
cleanup();
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
this.reportError(error);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=ResourceScope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceScope.js","sourceRoot":"","sources":["../../../../src/core/view/ResourceScope.ts"],"names":[],"mappings":"AA6BA,sFAAsF;AACtF,MAAM,OAAO,aAAa;IAMtB,YACY,MAA6B,EAC7B,QAA2C,EAC3C,cAAwC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC;QAFxF,WAAM,GAAN,MAAM,CAAuB;QAC7B,aAAQ,GAAR,QAAQ,CAAmC;QAC3C,gBAAW,GAAX,WAAW,CAA6E;QAR5F,YAAO,GAAG,IAAI,GAAG,EAAe,CAAC;QACjC,aAAQ,GAAG,IAAI,GAAG,EAAW,CAAC;QAC9B,WAAM,GAAG,KAAK,CAAC;QACf,cAAS,GAAG,KAAK,CAAC;IAMvB,CAAC;IAEJ,KAAK,CAAC,IAAuB,EAAE,QAAuB,EAAE,UAAwB,EAAE;QAC9E,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QACpC,MAAM,MAAM,GAAgB;YACxB,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE;YAC3D,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;SAChE,CAAC;QACF,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACjD,sEAAsE;YACtE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,OAAO;YACzB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC;IACN,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,OAAgB;QAClB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,IAAI,GAAG,KAAK,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;;YACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,YAAY;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,CAAC;IACzE,CAAC;IAEO,UAAU,CAAC,MAAmB;QAClC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;QACxB,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;QAClC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,MAAmB;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY;YAAE,OAAO;QACjF,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;YAClD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAC1C,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,GAAG,CAAC,MAAmB;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO;QAC1D,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;YACnC,IAAI,SAAS,EAAE;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;gBACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,OAAO,GAAG,KAAK,CAAC;YAChB,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC,CAAC;QACF,MAAM,OAAO,GAAiB;YAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,IAAI,OAAO,KAAK,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC;YACrC,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,CAAC,SAAS,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAC/B,MAAM,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC;QACF,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,IAAI,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/D,IAAI,OAAO,MAAM,KAAK,UAAU;gBAAE,SAAS,CAAC,MAAM,CAAC,CAAC;iBAC/C,IAAI,MAAM;gBAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oBACpD,IAAI,OAAO,OAAO,KAAK,UAAU;wBAAE,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC1D,CAAC,EAAE,KAAK,CAAC,EAAE;oBACP,IAAI,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;wBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC3E,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;YAClC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;YAC9B,OAAO,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,OAAgB;QAC3B,IAAI,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC;CACJ"}
|
|
@@ -1,41 +1,26 @@
|
|
|
1
|
-
import { HtmlInterface } from "../contracts/ElementInterface";
|
|
2
|
-
import { ViewControllerInterface } from "../contracts/ViewControllerInterface";
|
|
3
|
-
import { SectionConstruvtorArgs, SectionContentRenderer, SectionContentType, SectionInterface, SectionItemType } from "../contracts/
|
|
1
|
+
import { HtmlInterface } from "../contracts/ElementInterface.js";
|
|
2
|
+
import { ViewControllerInterface } from "../contracts/ViewControllerInterface.js";
|
|
3
|
+
import { SectionConstruvtorArgs, SectionContentRenderer, SectionContentType, SectionInterface, SectionItemType } from "../contracts/SectionInterface.js";
|
|
4
|
+
/**
|
|
5
|
+
* Section — a `@section(name, ...)` declaration.
|
|
6
|
+
*
|
|
7
|
+
* A thin data holder: it does NOT render or subscribe itself. Sections are
|
|
8
|
+
* declared by a page/layout (often before its matching @yield even exists —
|
|
9
|
+
* same cross-controller ordering as Block/BlockOutlet), so SectionManager
|
|
10
|
+
* owns evaluation, DOM insertion, and reactive re-apply (mirrors how
|
|
11
|
+
* BlockManager owns Block/BlockOutlet mounting instead of Block itself).
|
|
12
|
+
*/
|
|
4
13
|
export declare class Section implements SectionInterface {
|
|
5
14
|
ctx: ViewControllerInterface | undefined | null;
|
|
15
|
+
/** Owning view instance — keys this section as `name + viewId` in SectionManager, same as Block. */
|
|
16
|
+
viewId: string;
|
|
6
17
|
name: string;
|
|
7
18
|
type: SectionItemType;
|
|
8
19
|
contentType: SectionContentType;
|
|
9
|
-
stateKeys
|
|
20
|
+
stateKeys: string[];
|
|
10
21
|
renderFactory: SectionContentRenderer;
|
|
11
|
-
subscribeFn: (() => void) | null;
|
|
12
|
-
unsubscribeFn: (() => void) | null;
|
|
13
|
-
content: any;
|
|
14
|
-
parentElement: HtmlInterface | undefined | null;
|
|
15
|
-
isStarted: boolean;
|
|
16
22
|
constructor({ ctx, name, type, contentType, stateKeys, renderFactory }: SectionConstruvtorArgs);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
start(): void;
|
|
20
|
-
stop(): void;
|
|
23
|
+
/** Evaluate current content. `parentElement` only meaningful for contentType 'html'. */
|
|
24
|
+
evaluate(parentElement?: HtmlInterface | null): string | import("../contracts/ElementInterface.js").SaoElementChildren;
|
|
21
25
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Note: The "Section" concept is being phased out in favor of a more flexible Block/BlockOutlet system.
|
|
24
|
-
* Sections are still supported for backward compatibility but may be deprecated in future versions.
|
|
25
|
-
* For new development, consider using Blocks instead of Sections for better flexibility and composability.
|
|
26
|
-
*
|
|
27
|
-
* --- CHANGELOG ---
|
|
28
|
-
* vX.X.X - Introduced Block/BlockOutlet system as a more flexible alternative to Sections.
|
|
29
|
-
* - Sections are now considered legacy and may be deprecated in future versions.
|
|
30
|
-
* - ViewController's section management is being refactored to support Blocks instead of Sections.
|
|
31
|
-
* - Updated documentation and examples to encourage use of Blocks over Sections.
|
|
32
|
-
*
|
|
33
|
-
* --- FUTURE PLANS ---
|
|
34
|
-
* - Phase out Sections entirely in favor of Blocks, which offer more composability and dynamic capabilities.
|
|
35
|
-
* - Provide migration guides for existing users to transition from Sections to Blocks.
|
|
36
|
-
* - Enhance Block system with features like nested blocks, dynamic block registration, and improved lifecycle management.
|
|
37
|
-
*
|
|
38
|
-
* --- CURRENT RECOMMENDATION ---
|
|
39
|
-
* For new views, prefer using Blocks and BlockOutlets for layout composition instead of Sections. Sections will still work but are not recommended for new development.
|
|
40
|
-
*/
|
|
41
26
|
//# sourceMappingURL=Section.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../../../src/core/view/Section.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../../../src/core/view/Section.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEzJ;;;;;;;;GAQG;AACH,qBAAa,OAAQ,YAAW,gBAAgB;IAC5C,GAAG,EAAE,uBAAuB,GAAG,SAAS,GAAG,IAAI,CAAQ;IACvD,oGAAoG;IACpG,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,aAAa,EAAE,sBAAsB,CAAC;gBAE1B,EAAE,GAAG,EAAE,IAAI,EAAE,IAAe,EAAE,WAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,sBAAsB;IAUlH,wFAAwF;IACxF,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI;CAGhD"}
|
|
@@ -1,67 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Section — a `@section(name, ...)` declaration.
|
|
3
|
+
*
|
|
4
|
+
* A thin data holder: it does NOT render or subscribe itself. Sections are
|
|
5
|
+
* declared by a page/layout (often before its matching @yield even exists —
|
|
6
|
+
* same cross-controller ordering as Block/BlockOutlet), so SectionManager
|
|
7
|
+
* owns evaluation, DOM insertion, and reactive re-apply (mirrors how
|
|
8
|
+
* BlockManager owns Block/BlockOutlet mounting instead of Block itself).
|
|
9
|
+
*/
|
|
1
10
|
export class Section {
|
|
2
11
|
constructor({ ctx, name, type = 'static', contentType = 'text', stateKeys, renderFactory }) {
|
|
3
12
|
this.ctx = null;
|
|
4
|
-
this.subscribeFn = null;
|
|
5
|
-
this.unsubscribeFn = null;
|
|
6
|
-
this.content = null; // Can be string or OneElementChildren depending on contentType
|
|
7
|
-
this.parentElement = null; // For dynamic/reactive sections that need a parent element reference
|
|
8
|
-
this.isStarted = false; // Flag to indicate if this section is static (renders once) or dynamic/reactive (renders on state change)
|
|
9
13
|
this.ctx = ctx ?? null;
|
|
14
|
+
this.viewId = ctx?.viewId ?? '';
|
|
10
15
|
this.name = name;
|
|
11
16
|
this.type = type;
|
|
12
17
|
this.contentType = contentType;
|
|
13
|
-
this.stateKeys = stateKeys;
|
|
18
|
+
this.stateKeys = stateKeys ?? [];
|
|
14
19
|
this.renderFactory = renderFactory;
|
|
15
|
-
this.initialize();
|
|
16
|
-
}
|
|
17
|
-
initialize() {
|
|
18
|
-
if (this.type === 'static') {
|
|
19
|
-
this.render();
|
|
20
|
-
}
|
|
21
|
-
this.start();
|
|
22
|
-
}
|
|
23
|
-
render(parentElement) {
|
|
24
|
-
this.parentElement = parentElement ?? null;
|
|
25
|
-
this.content = this.renderFactory(this.parentElement);
|
|
26
|
-
}
|
|
27
|
-
start() {
|
|
28
|
-
if (this.isStarted)
|
|
29
|
-
return; // No need to subscribe for static sections
|
|
30
|
-
this.isStarted = true;
|
|
31
|
-
if ((this.type === 'reactive' || this.type === 'dynamic') && this.stateKeys && this.ctx) {
|
|
32
|
-
this.subscribeFn = () => {
|
|
33
|
-
this.render(this.parentElement);
|
|
34
|
-
};
|
|
35
|
-
this.unsubscribeFn = this.ctx.states.subscribe(this.stateKeys, this.subscribeFn);
|
|
36
|
-
}
|
|
37
20
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
this.isStarted = false;
|
|
42
|
-
if (this.unsubscribeFn) {
|
|
43
|
-
this.unsubscribeFn();
|
|
44
|
-
this.unsubscribeFn = null;
|
|
45
|
-
}
|
|
21
|
+
/** Evaluate current content. `parentElement` only meaningful for contentType 'html'. */
|
|
22
|
+
evaluate(parentElement) {
|
|
23
|
+
return this.renderFactory(parentElement ?? null);
|
|
46
24
|
}
|
|
47
25
|
}
|
|
48
|
-
/**
|
|
49
|
-
* Note: The "Section" concept is being phased out in favor of a more flexible Block/BlockOutlet system.
|
|
50
|
-
* Sections are still supported for backward compatibility but may be deprecated in future versions.
|
|
51
|
-
* For new development, consider using Blocks instead of Sections for better flexibility and composability.
|
|
52
|
-
*
|
|
53
|
-
* --- CHANGELOG ---
|
|
54
|
-
* vX.X.X - Introduced Block/BlockOutlet system as a more flexible alternative to Sections.
|
|
55
|
-
* - Sections are now considered legacy and may be deprecated in future versions.
|
|
56
|
-
* - ViewController's section management is being refactored to support Blocks instead of Sections.
|
|
57
|
-
* - Updated documentation and examples to encourage use of Blocks over Sections.
|
|
58
|
-
*
|
|
59
|
-
* --- FUTURE PLANS ---
|
|
60
|
-
* - Phase out Sections entirely in favor of Blocks, which offer more composability and dynamic capabilities.
|
|
61
|
-
* - Provide migration guides for existing users to transition from Sections to Blocks.
|
|
62
|
-
* - Enhance Block system with features like nested blocks, dynamic block registration, and improved lifecycle management.
|
|
63
|
-
*
|
|
64
|
-
* --- CURRENT RECOMMENDATION ---
|
|
65
|
-
* For new views, prefer using Blocks and BlockOutlets for layout composition instead of Sections. Sections will still work but are not recommended for new development.
|
|
66
|
-
*/
|
|
67
26
|
//# sourceMappingURL=Section.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Section.js","sourceRoot":"","sources":["../../../../src/core/view/Section.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"Section.js","sourceRoot":"","sources":["../../../../src/core/view/Section.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,OAAO,OAAO;IAWhB,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,WAAW,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,EAA0B;QAVlH,QAAG,GAA+C,IAAI,CAAC;QAWnD,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAED,wFAAwF;IACxF,QAAQ,CAAC,aAAoC;QACzC,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;IACrD,CAAC;CACJ"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import type { ViewType } from "../contracts/ViewControllerInterface";
|
|
2
|
-
import type { ViewInterface, ViewLifecycleHooks } from "../contracts/ViewInterface";
|
|
3
|
-
import type {
|
|
4
|
-
import { ViewController } from "./ViewController";
|
|
1
|
+
import type { ViewType } from "../contracts/ViewControllerInterface.js";
|
|
2
|
+
import type { ViewInterface, ViewLifecycleHooks } from "../contracts/ViewInterface.js";
|
|
3
|
+
import type { SaoObjectType } from "../types/utils.js";
|
|
4
|
+
import { ViewController } from "./ViewController.js";
|
|
5
|
+
import type { WatchCallback, WatchOptions } from './ResourceScope.js';
|
|
6
|
+
/** Declared View API without the legacy catch-all that would hide misspelled members. */
|
|
7
|
+
type ViewMembers = {
|
|
8
|
+
[K in keyof View as string extends K ? never : number extends K ? never : K]: View[K];
|
|
9
|
+
};
|
|
10
|
+
/** The exported object's methods run on the View after its members are merged. */
|
|
11
|
+
export type ViewUserConfig<T extends object> = T & ThisType<T & ViewMembers>;
|
|
5
12
|
/**
|
|
6
|
-
* View — the base class for all views in
|
|
13
|
+
* View — the base class for all views in SaoView.
|
|
7
14
|
*
|
|
8
15
|
* A View is the unit that the user writes. It contains:
|
|
9
16
|
* - User-defined properties (reactive state, computed values)
|
|
@@ -41,23 +48,52 @@ export declare class View implements ViewInterface, ViewLifecycleHooks {
|
|
|
41
48
|
* @param systemData — System-level data (SSR data, global config, etc.)
|
|
42
49
|
*/
|
|
43
50
|
$__setup__(__data__?: Record<string, any>, systemData?: Record<string, any>): void;
|
|
51
|
+
mounting?(): void | Promise<void>;
|
|
52
|
+
mounted?(): void | Promise<void>;
|
|
53
|
+
starting?(): void | Promise<void>;
|
|
54
|
+
started?(): void | Promise<void>;
|
|
55
|
+
pausing?(): void | Promise<void>;
|
|
56
|
+
paused?(): void | Promise<void>;
|
|
57
|
+
resuming?(): void | Promise<void>;
|
|
58
|
+
resumed?(): void | Promise<void>;
|
|
59
|
+
stopping?(): void | Promise<void>;
|
|
60
|
+
stopped?(): void | Promise<void>;
|
|
61
|
+
unmounting?(): void | Promise<void>;
|
|
62
|
+
unmounted?(): void | Promise<void>;
|
|
63
|
+
destroying?(): void | Promise<void>;
|
|
64
|
+
destroyed?(): void | Promise<void>;
|
|
44
65
|
onInit?(): void | Promise<void>;
|
|
45
66
|
onMounted?(): void | Promise<void>;
|
|
46
67
|
onUpdated?(): void | Promise<void>;
|
|
47
68
|
onDestroy?(): void | Promise<void>;
|
|
48
69
|
onActivated?(): void | Promise<void>;
|
|
49
70
|
onDeactivated?(): void | Promise<void>;
|
|
71
|
+
onPause?(): void | Promise<void>;
|
|
72
|
+
onResume?(): void | Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Phát sự kiện lên cha đã `@include` view này.
|
|
75
|
+
*
|
|
76
|
+
* Là method của View (không chỉ hàm trong scope compiled) để template gọi
|
|
77
|
+
* thẳng được: `@click(emit('edit', card['id']))` biên dịch thành
|
|
78
|
+
* `{ handler: 'emit' }`, và ViewController.addEventListener tra handler
|
|
79
|
+
* dạng chuỗi trên chính View.
|
|
80
|
+
*/
|
|
81
|
+
emit(event: string, ...args: any[]): any;
|
|
82
|
+
watch(keys: readonly string[], callback: WatchCallback, options?: WatchOptions): () => void;
|
|
83
|
+
afterDom(callback: () => void): () => void;
|
|
84
|
+
get $scope(): import("./ResourceScope.js").ResourceScope;
|
|
50
85
|
get path(): string;
|
|
51
86
|
get viewType(): ViewType;
|
|
52
87
|
/** Shortcut to controller */
|
|
53
88
|
get __(): ViewController;
|
|
54
89
|
/** Shortcut to ViewState */
|
|
55
90
|
get $state(): any;
|
|
56
|
-
get
|
|
57
|
-
set
|
|
91
|
+
get saoType(): SaoObjectType;
|
|
92
|
+
set saoType(value: SaoObjectType);
|
|
58
93
|
get parent(): ViewInterface | null;
|
|
59
94
|
get children(): ViewInterface[];
|
|
60
95
|
get superView(): ViewInterface | null;
|
|
61
96
|
get originView(): ViewInterface | null;
|
|
62
97
|
}
|
|
98
|
+
export {};
|
|
63
99
|
//# sourceMappingURL=View.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../../src/core/view/View.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../../src/core/view/View.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEtE,yFAAyF;AACzF,KAAK,WAAW,GAAG;KACd,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;CACxF,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,IAAK,YAAW,aAAa,EAAE,kBAAkB;IACnD,QAAQ,EAAG,cAAc,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;gBAEP,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAiB,EAAE,mBAAmB,CAAC,EAAE,GAAG;IAahF;;;;;;OAMG;IACH,UAAU,CAAC,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI;IAO1F,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACjC,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACjC,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAChC,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAChC,MAAM,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACjC,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACjC,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAChC,UAAU,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACnC,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,UAAU,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACnC,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlC,MAAM,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/B,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,WAAW,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACpC,aAAa,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACtC,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjC;;;;;;;OAOG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG;IAIxC,KAAK,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,IAAI;IAI3F,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAI1C,IAAI,MAAM,+CAAkC;IAI5C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,6BAA6B;IAC7B,IAAI,EAAE,IAAI,cAAc,CAEvB;IAED,4BAA4B;IAC5B,IAAI,MAAM,IAAI,GAAG,CAEhB;IACD,IAAI,OAAO,IAAI,aAAa,CAE3B;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,aAAa,EAE/B;IAED,IAAI,MAAM,IAAI,aAAa,GAAG,IAAI,CAEjC;IACD,IAAI,QAAQ,IAAI,aAAa,EAAE,CAE9B;IACD,IAAI,SAAS,IAAI,aAAa,GAAG,IAAI,CAEpC;IACD,IAAI,UAAU,IAAI,aAAa,GAAG,IAAI,CAErC;CACJ"}
|