smart-lifecycle 0.1.1
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/LICENSE +21 -0
- package/README.md +275 -0
- package/dist/behaviors/initializer-factory.d.ts +101 -0
- package/dist/behaviors/initializer-factory.d.ts.map +1 -0
- package/dist/behaviors/initializer-factory.js +183 -0
- package/dist/behaviors/initializer-factory.js.map +1 -0
- package/dist/behaviors/initializer.base.d.ts +21 -0
- package/dist/behaviors/initializer.base.d.ts.map +1 -0
- package/dist/behaviors/initializer.base.js +32 -0
- package/dist/behaviors/initializer.base.js.map +1 -0
- package/dist/behaviors/initializer.d.ts +21 -0
- package/dist/behaviors/initializer.d.ts.map +1 -0
- package/dist/behaviors/initializer.interface.d.ts +2 -0
- package/dist/behaviors/initializer.interface.d.ts.map +1 -0
- package/dist/behaviors/initializer.interface.js +2 -0
- package/dist/behaviors/initializer.interface.js.map +1 -0
- package/dist/behaviors/initializer.js +26 -0
- package/dist/behaviors/initializer.js.map +1 -0
- package/dist/behaviors/injection-helper.d.ts +90 -0
- package/dist/behaviors/injection-helper.d.ts.map +1 -0
- package/dist/behaviors/injection-helper.js +136 -0
- package/dist/behaviors/injection-helper.js.map +1 -0
- package/dist/behaviors/lifecycle-manager-factory.d.ts +126 -0
- package/dist/behaviors/lifecycle-manager-factory.d.ts.map +1 -0
- package/dist/behaviors/lifecycle-manager-factory.js +211 -0
- package/dist/behaviors/lifecycle-manager-factory.js.map +1 -0
- package/dist/behaviors/lifecycle-manager.base.d.ts +115 -0
- package/dist/behaviors/lifecycle-manager.base.d.ts.map +1 -0
- package/dist/behaviors/lifecycle-manager.base.js +156 -0
- package/dist/behaviors/lifecycle-manager.base.js.map +1 -0
- package/dist/behaviors/lifecycle-manager.d.ts +114 -0
- package/dist/behaviors/lifecycle-manager.d.ts.map +1 -0
- package/dist/behaviors/lifecycle-manager.interface.d.ts +2 -0
- package/dist/behaviors/lifecycle-manager.interface.d.ts.map +1 -0
- package/dist/behaviors/lifecycle-manager.interface.js +2 -0
- package/dist/behaviors/lifecycle-manager.interface.js.map +1 -0
- package/dist/behaviors/lifecycle-manager.js +157 -0
- package/dist/behaviors/lifecycle-manager.js.map +1 -0
- package/dist/bootstrap.d.ts +9 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +8 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +228 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/components/smart-action/smart-action-element.d.ts +15 -0
- package/dist/components/smart-action/smart-action-element.d.ts.map +1 -0
- package/dist/components/smart-action/smart-action-element.js +149 -0
- package/dist/components/smart-action/smart-action-element.js.map +1 -0
- package/dist/components/smart-action/smart-action.component.d.ts +10 -0
- package/dist/components/smart-action/smart-action.component.d.ts.map +1 -0
- package/dist/components/smart-action/smart-action.component.js +68 -0
- package/dist/components/smart-action/smart-action.component.js.map +1 -0
- package/dist/components/smart-action/smart-action.lifecycle-manager.d.ts +27 -0
- package/dist/components/smart-action/smart-action.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-action/smart-action.lifecycle-manager.js +140 -0
- package/dist/components/smart-action/smart-action.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-action.d.ts +66 -0
- package/dist/components/smart-action.d.ts.map +1 -0
- package/dist/components/smart-action.js +111 -0
- package/dist/components/smart-action.js.map +1 -0
- package/dist/components/smart-for/diff-keys.d.ts +36 -0
- package/dist/components/smart-for/diff-keys.d.ts.map +1 -0
- package/dist/components/smart-for/diff-keys.js +39 -0
- package/dist/components/smart-for/diff-keys.js.map +1 -0
- package/dist/components/smart-for/item-dom-context.d.ts +27 -0
- package/dist/components/smart-for/item-dom-context.d.ts.map +1 -0
- package/dist/components/smart-for/item-dom-context.js +52 -0
- package/dist/components/smart-for/item-dom-context.js.map +1 -0
- package/dist/components/smart-for/smart-for-element.d.ts +38 -0
- package/dist/components/smart-for/smart-for-element.d.ts.map +1 -0
- package/dist/components/smart-for/smart-for-element.js +216 -0
- package/dist/components/smart-for/smart-for-element.js.map +1 -0
- package/dist/components/smart-for/smart-for-item-scope.d.ts +52 -0
- package/dist/components/smart-for/smart-for-item-scope.d.ts.map +1 -0
- package/dist/components/smart-for/smart-for-item-scope.js +94 -0
- package/dist/components/smart-for/smart-for-item-scope.js.map +1 -0
- package/dist/components/smart-for/smart-for.component.d.ts +10 -0
- package/dist/components/smart-for/smart-for.component.d.ts.map +1 -0
- package/dist/components/smart-for/smart-for.component.js +69 -0
- package/dist/components/smart-for/smart-for.component.js.map +1 -0
- package/dist/components/smart-for/smart-for.lifecycle-manager.d.ts +97 -0
- package/dist/components/smart-for/smart-for.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-for/smart-for.lifecycle-manager.js +369 -0
- package/dist/components/smart-for/smart-for.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-link/smart-link-element.d.ts +36 -0
- package/dist/components/smart-link/smart-link-element.d.ts.map +1 -0
- package/dist/components/smart-link/smart-link-element.js +101 -0
- package/dist/components/smart-link/smart-link-element.js.map +1 -0
- package/dist/components/smart-link/smart-link.component.d.ts +21 -0
- package/dist/components/smart-link/smart-link.component.d.ts.map +1 -0
- package/dist/components/smart-link/smart-link.component.js +78 -0
- package/dist/components/smart-link/smart-link.component.js.map +1 -0
- package/dist/components/smart-link/smart-link.lifecycle-manager.d.ts +23 -0
- package/dist/components/smart-link/smart-link.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-link/smart-link.lifecycle-manager.js +53 -0
- package/dist/components/smart-link/smart-link.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-link.d.ts +2 -0
- package/dist/components/smart-link.d.ts.map +1 -0
- package/dist/components/smart-link.js +2 -0
- package/dist/components/smart-link.js.map +1 -0
- package/dist/components/smart-router/navigation-service.interface.d.ts +22 -0
- package/dist/components/smart-router/navigation-service.interface.d.ts.map +1 -0
- package/dist/components/smart-router/navigation-service.interface.js +2 -0
- package/dist/components/smart-router/navigation-service.interface.js.map +1 -0
- package/dist/components/smart-router/navigation.d.ts +57 -0
- package/dist/components/smart-router/navigation.d.ts.map +1 -0
- package/dist/components/smart-router/navigation.js +75 -0
- package/dist/components/smart-router/navigation.js.map +1 -0
- package/dist/components/smart-router/smart-router-element.d.ts +42 -0
- package/dist/components/smart-router/smart-router-element.d.ts.map +1 -0
- package/dist/components/smart-router/smart-router-element.js +188 -0
- package/dist/components/smart-router/smart-router-element.js.map +1 -0
- package/dist/components/smart-router/smart-router.component.d.ts +27 -0
- package/dist/components/smart-router/smart-router.component.d.ts.map +1 -0
- package/dist/components/smart-router/smart-router.component.js +89 -0
- package/dist/components/smart-router/smart-router.component.js.map +1 -0
- package/dist/components/smart-router/smart-router.lifecycle-manager.d.ts +25 -0
- package/dist/components/smart-router/smart-router.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-router/smart-router.lifecycle-manager.js +115 -0
- package/dist/components/smart-router/smart-router.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-router.d.ts +28 -0
- package/dist/components/smart-router.d.ts.map +1 -0
- package/dist/components/smart-router.js +45 -0
- package/dist/components/smart-router.js.map +1 -0
- package/dist/components/smart-select/smart-select-element.d.ts +49 -0
- package/dist/components/smart-select/smart-select-element.d.ts.map +1 -0
- package/dist/components/smart-select/smart-select-element.js +130 -0
- package/dist/components/smart-select/smart-select-element.js.map +1 -0
- package/dist/components/smart-select/smart-select.component.d.ts +35 -0
- package/dist/components/smart-select/smart-select.component.d.ts.map +1 -0
- package/dist/components/smart-select/smart-select.component.js +92 -0
- package/dist/components/smart-select/smart-select.component.js.map +1 -0
- package/dist/components/smart-select/smart-select.lifecycle-manager.d.ts +52 -0
- package/dist/components/smart-select/smart-select.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-select/smart-select.lifecycle-manager.js +144 -0
- package/dist/components/smart-select/smart-select.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-select.d.ts +3 -0
- package/dist/components/smart-select.d.ts.map +1 -0
- package/dist/components/smart-select.js +3 -0
- package/dist/components/smart-select.js.map +1 -0
- package/dist/core/component-instance-registry.d.ts +102 -0
- package/dist/core/component-instance-registry.d.ts.map +1 -0
- package/dist/core/component-instance-registry.js +85 -0
- package/dist/core/component-instance-registry.js.map +1 -0
- package/dist/core/component-metadata-registry.d.ts +100 -0
- package/dist/core/component-metadata-registry.d.ts.map +1 -0
- package/dist/core/component-metadata-registry.interface.d.ts +44 -0
- package/dist/core/component-metadata-registry.interface.d.ts.map +1 -0
- package/dist/core/component-metadata-registry.interface.js +2 -0
- package/dist/core/component-metadata-registry.interface.js.map +1 -0
- package/dist/core/component-metadata-registry.js +113 -0
- package/dist/core/component-metadata-registry.js.map +1 -0
- package/dist/core/component-metadata-source.interface.d.ts +40 -0
- package/dist/core/component-metadata-source.interface.d.ts.map +1 -0
- package/dist/core/component-metadata-source.interface.js +2 -0
- package/dist/core/component-metadata-source.interface.js.map +1 -0
- package/dist/core/component-metadata.d.ts +57 -0
- package/dist/core/component-metadata.d.ts.map +1 -0
- package/dist/core/component-metadata.js +2 -0
- package/dist/core/component-metadata.js.map +1 -0
- package/dist/core/smart-component.d.ts +80 -0
- package/dist/core/smart-component.d.ts.map +1 -0
- package/dist/core/smart-component.js +86 -0
- package/dist/core/smart-component.js.map +1 -0
- package/dist/decorators/component.decorator.d.ts +136 -0
- package/dist/decorators/component.decorator.d.ts.map +1 -0
- package/dist/decorators/component.decorator.js +35 -0
- package/dist/decorators/component.decorator.js.map +1 -0
- package/dist/decorators/host-listener.decorator.d.ts +30 -0
- package/dist/decorators/host-listener.decorator.d.ts.map +1 -0
- package/dist/decorators/host-listener.decorator.js +117 -0
- package/dist/decorators/host-listener.decorator.js.map +1 -0
- package/dist/decorators/index.d.ts +13 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/index.js +8 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/listen/listener-initializer.d.ts +23 -0
- package/dist/decorators/listen/listener-initializer.d.ts.map +1 -0
- package/dist/decorators/listen/listener-initializer.interface.d.ts +20 -0
- package/dist/decorators/listen/listener-initializer.interface.d.ts.map +1 -0
- package/dist/decorators/listen/listener-initializer.interface.js +2 -0
- package/dist/decorators/listen/listener-initializer.interface.js.map +1 -0
- package/dist/decorators/listen/listener-initializer.js +53 -0
- package/dist/decorators/listen/listener-initializer.js.map +1 -0
- package/dist/decorators/listen/listener-metadata-registry.d.ts +27 -0
- package/dist/decorators/listen/listener-metadata-registry.d.ts.map +1 -0
- package/dist/decorators/listen/listener-metadata-registry.interface.d.ts +26 -0
- package/dist/decorators/listen/listener-metadata-registry.interface.d.ts.map +1 -0
- package/dist/decorators/listen/listener-metadata-registry.interface.js +2 -0
- package/dist/decorators/listen/listener-metadata-registry.interface.js.map +1 -0
- package/dist/decorators/listen/listener-metadata-registry.js +51 -0
- package/dist/decorators/listen/listener-metadata-registry.js.map +1 -0
- package/dist/decorators/listen.decorator.d.ts +66 -0
- package/dist/decorators/listen.decorator.d.ts.map +1 -0
- package/dist/decorators/listen.decorator.js +72 -0
- package/dist/decorators/listen.decorator.js.map +1 -0
- package/dist/decorators/listener-initializer.d.ts +33 -0
- package/dist/decorators/listener-initializer.d.ts.map +1 -0
- package/dist/decorators/listener-initializer.js +67 -0
- package/dist/decorators/listener-initializer.js.map +1 -0
- package/dist/decorators/reactive.decorator.d.ts +45 -0
- package/dist/decorators/reactive.decorator.d.ts.map +1 -0
- package/dist/decorators/reactive.decorator.js +86 -0
- package/dist/decorators/reactive.decorator.js.map +1 -0
- package/dist/decorators/smart/capture-config.d.ts +10 -0
- package/dist/decorators/smart/capture-config.d.ts.map +1 -0
- package/dist/decorators/smart/capture-config.js +70 -0
- package/dist/decorators/smart/capture-config.js.map +1 -0
- package/dist/decorators/smart/dynamic-initializer.d.ts +14 -0
- package/dist/decorators/smart/dynamic-initializer.d.ts.map +1 -0
- package/dist/decorators/smart/dynamic-initializer.js +35 -0
- package/dist/decorators/smart/dynamic-initializer.js.map +1 -0
- package/dist/decorators/smart/dynamic-lifecycle.d.ts +17 -0
- package/dist/decorators/smart/dynamic-lifecycle.d.ts.map +1 -0
- package/dist/decorators/smart/dynamic-lifecycle.js +45 -0
- package/dist/decorators/smart/dynamic-lifecycle.js.map +1 -0
- package/dist/decorators/smart/enhanced-class.d.ts +21 -0
- package/dist/decorators/smart/enhanced-class.d.ts.map +1 -0
- package/dist/decorators/smart/enhanced-class.js +93 -0
- package/dist/decorators/smart/enhanced-class.js.map +1 -0
- package/dist/decorators/smart/smart-component-factory.d.ts +59 -0
- package/dist/decorators/smart/smart-component-factory.d.ts.map +1 -0
- package/dist/decorators/smart/smart-component-factory.interface.d.ts +48 -0
- package/dist/decorators/smart/smart-component-factory.interface.d.ts.map +1 -0
- package/dist/decorators/smart/smart-component-factory.interface.js +2 -0
- package/dist/decorators/smart/smart-component-factory.interface.js.map +1 -0
- package/dist/decorators/smart/smart-component-factory.js +271 -0
- package/dist/decorators/smart/smart-component-factory.js.map +1 -0
- package/dist/decorators/smart/types.d.ts +81 -0
- package/dist/decorators/smart/types.d.ts.map +1 -0
- package/dist/decorators/smart/types.js +2 -0
- package/dist/decorators/smart/types.js.map +1 -0
- package/dist/decorators/smart-render.decorator.d.ts +27 -0
- package/dist/decorators/smart-render.decorator.d.ts.map +1 -0
- package/dist/decorators/smart-render.decorator.js +41 -0
- package/dist/decorators/smart-render.decorator.js.map +1 -0
- package/dist/decorators/smart.decorator.d.ts +20 -0
- package/dist/decorators/smart.decorator.d.ts.map +1 -0
- package/dist/decorators/smart.decorator.js +45 -0
- package/dist/decorators/smart.decorator.js.map +1 -0
- package/dist/decorators/view-child.decorator.d.ts +21 -0
- package/dist/decorators/view-child.decorator.d.ts.map +1 -0
- package/dist/decorators/view-child.decorator.js +56 -0
- package/dist/decorators/view-child.decorator.js.map +1 -0
- package/dist/events/action-publisher.interface.d.ts +69 -0
- package/dist/events/action-publisher.interface.d.ts.map +1 -0
- package/dist/events/action-publisher.interface.js +2 -0
- package/dist/events/action-publisher.interface.js.map +1 -0
- package/dist/events/event-bus.d.ts +11 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.interface.d.ts +66 -0
- package/dist/events/event-bus.interface.d.ts.map +1 -0
- package/dist/events/event-bus.interface.js +2 -0
- package/dist/events/event-bus.interface.js.map +1 -0
- package/dist/events/event-bus.js +11 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/events/event-object.d.ts +33 -0
- package/dist/events/event-object.d.ts.map +1 -0
- package/dist/events/event-object.js +35 -0
- package/dist/events/event-object.js.map +1 -0
- package/dist/events/event-payload.d.ts +16 -0
- package/dist/events/event-payload.d.ts.map +1 -0
- package/dist/events/event-payload.js +2 -0
- package/dist/events/event-payload.js.map +1 -0
- package/dist/events/event-store.d.ts +99 -0
- package/dist/events/event-store.d.ts.map +1 -0
- package/dist/events/event-store.js +95 -0
- package/dist/events/event-store.js.map +1 -0
- package/dist/events/rx-event-bus.d.ts +109 -0
- package/dist/events/rx-event-bus.d.ts.map +1 -0
- package/dist/events/rx-event-bus.js +210 -0
- package/dist/events/rx-event-bus.js.map +1 -0
- package/dist/html/register-smart-behavior.d.ts +27 -0
- package/dist/html/register-smart-behavior.d.ts.map +1 -0
- package/dist/html/register-smart-behavior.js +42 -0
- package/dist/html/register-smart-behavior.js.map +1 -0
- package/dist/html/register-smart-element.d.ts +26 -0
- package/dist/html/register-smart-element.d.ts.map +1 -0
- package/dist/html/register-smart-element.js +28 -0
- package/dist/html/register-smart-element.js.map +1 -0
- package/dist/html/services-bootstrap.d.ts +17 -0
- package/dist/html/services-bootstrap.d.ts.map +1 -0
- package/dist/html/services-bootstrap.js +40 -0
- package/dist/html/services-bootstrap.js.map +1 -0
- package/dist/html/smart-element-factory.d.ts +51 -0
- package/dist/html/smart-element-factory.d.ts.map +1 -0
- package/dist/html/smart-element-factory.interface.d.ts +17 -0
- package/dist/html/smart-element-factory.interface.d.ts.map +1 -0
- package/dist/html/smart-element-factory.interface.js +2 -0
- package/dist/html/smart-element-factory.interface.js.map +1 -0
- package/dist/html/smart-element-factory.js +118 -0
- package/dist/html/smart-element-factory.js.map +1 -0
- package/dist/html/smart-element-registrar.d.ts +43 -0
- package/dist/html/smart-element-registrar.d.ts.map +1 -0
- package/dist/html/smart-element-registrar.interface.d.ts +17 -0
- package/dist/html/smart-element-registrar.interface.d.ts.map +1 -0
- package/dist/html/smart-element-registrar.interface.js +2 -0
- package/dist/html/smart-element-registrar.interface.js.map +1 -0
- package/dist/html/smart-element-registrar.js +77 -0
- package/dist/html/smart-element-registrar.js.map +1 -0
- package/dist/html/smart-tags.d.ts +16 -0
- package/dist/html/smart-tags.d.ts.map +1 -0
- package/dist/html/smart-tags.js +30 -0
- package/dist/html/smart-tags.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/observers/document-locale-observer.d.ts +15 -0
- package/dist/observers/document-locale-observer.d.ts.map +1 -0
- package/dist/observers/document-locale-observer.js +43 -0
- package/dist/observers/document-locale-observer.js.map +1 -0
- package/dist/observers/document-theme-observer.d.ts +17 -0
- package/dist/observers/document-theme-observer.d.ts.map +1 -0
- package/dist/observers/document-theme-observer.js +64 -0
- package/dist/observers/document-theme-observer.js.map +1 -0
- package/dist/observers/locale-observer.interface.d.ts +21 -0
- package/dist/observers/locale-observer.interface.d.ts.map +1 -0
- package/dist/observers/locale-observer.interface.js +2 -0
- package/dist/observers/locale-observer.interface.js.map +1 -0
- package/dist/observers/theme-observer.interface.d.ts +21 -0
- package/dist/observers/theme-observer.interface.d.ts.map +1 -0
- package/dist/observers/theme-observer.interface.js +2 -0
- package/dist/observers/theme-observer.interface.js.map +1 -0
- package/dist/providers/adapters/index.d.ts +19 -0
- package/dist/providers/adapters/index.d.ts.map +1 -0
- package/dist/providers/adapters/index.js +19 -0
- package/dist/providers/adapters/index.js.map +1 -0
- package/dist/providers/adapters/tsyringe-adapter.d.ts +139 -0
- package/dist/providers/adapters/tsyringe-adapter.d.ts.map +1 -0
- package/dist/providers/adapters/tsyringe-adapter.js +151 -0
- package/dist/providers/adapters/tsyringe-adapter.js.map +1 -0
- package/dist/providers/app-services.d.ts +131 -0
- package/dist/providers/app-services.d.ts.map +1 -0
- package/dist/providers/app-services.js +174 -0
- package/dist/providers/app-services.js.map +1 -0
- package/dist/providers/default-service-provider.d.ts +57 -0
- package/dist/providers/default-service-provider.d.ts.map +1 -0
- package/dist/providers/default-service-provider.js +89 -0
- package/dist/providers/default-service-provider.js.map +1 -0
- package/dist/providers/framework-bootstrap.d.ts +58 -0
- package/dist/providers/framework-bootstrap.d.ts.map +1 -0
- package/dist/providers/framework-bootstrap.js +153 -0
- package/dist/providers/framework-bootstrap.js.map +1 -0
- package/dist/providers/framework-element-registration.d.ts +2 -0
- package/dist/providers/framework-element-registration.d.ts.map +1 -0
- package/dist/providers/framework-element-registration.js +42 -0
- package/dist/providers/framework-element-registration.js.map +1 -0
- package/dist/providers/service-provider.d.ts +70 -0
- package/dist/providers/service-provider.d.ts.map +1 -0
- package/dist/providers/service-provider.interface.d.ts +55 -0
- package/dist/providers/service-provider.interface.d.ts.map +1 -0
- package/dist/providers/service-provider.interface.js +2 -0
- package/dist/providers/service-provider.interface.js.map +1 -0
- package/dist/providers/service-provider.js +102 -0
- package/dist/providers/service-provider.js.map +1 -0
- package/dist/reactive/dependency-tracker.d.ts +34 -0
- package/dist/reactive/dependency-tracker.d.ts.map +1 -0
- package/dist/reactive/dependency-tracker.interface.d.ts +34 -0
- package/dist/reactive/dependency-tracker.interface.d.ts.map +1 -0
- package/dist/reactive/dependency-tracker.interface.js +2 -0
- package/dist/reactive/dependency-tracker.interface.js.map +1 -0
- package/dist/reactive/dependency-tracker.js +47 -0
- package/dist/reactive/dependency-tracker.js.map +1 -0
- package/dist/reactive/index.d.ts +5 -0
- package/dist/reactive/index.d.ts.map +1 -0
- package/dist/reactive/index.js +4 -0
- package/dist/reactive/index.js.map +1 -0
- package/dist/reactive/observable.d.ts +15 -0
- package/dist/reactive/observable.d.ts.map +1 -0
- package/dist/reactive/observable.js +2 -0
- package/dist/reactive/observable.js.map +1 -0
- package/dist/reactive/operators.d.ts +6 -0
- package/dist/reactive/operators.d.ts.map +1 -0
- package/dist/reactive/operators.js +11 -0
- package/dist/reactive/operators.js.map +1 -0
- package/dist/reactive/signal.d.ts +41 -0
- package/dist/reactive/signal.d.ts.map +1 -0
- package/dist/reactive/signal.js +37 -0
- package/dist/reactive/signal.js.map +1 -0
- package/dist/reactive/subject.d.ts +30 -0
- package/dist/reactive/subject.d.ts.map +1 -0
- package/dist/reactive/subject.js +53 -0
- package/dist/reactive/subject.js.map +1 -0
- package/dist/reactive/subscription.d.ts +33 -0
- package/dist/reactive/subscription.d.ts.map +1 -0
- package/dist/reactive/subscription.js +53 -0
- package/dist/reactive/subscription.js.map +1 -0
- package/dist/registration/register-smart-behavior.d.ts +27 -0
- package/dist/registration/register-smart-behavior.d.ts.map +1 -0
- package/dist/registration/register-smart-behavior.js +42 -0
- package/dist/registration/register-smart-behavior.js.map +1 -0
- package/dist/registration/register-smart-element.d.ts +27 -0
- package/dist/registration/register-smart-element.d.ts.map +1 -0
- package/dist/registration/register-smart-element.js +26 -0
- package/dist/registration/register-smart-element.js.map +1 -0
- package/dist/registration/smart-element-factory.d.ts +46 -0
- package/dist/registration/smart-element-factory.d.ts.map +1 -0
- package/dist/registration/smart-element-factory.interface.d.ts +17 -0
- package/dist/registration/smart-element-factory.interface.d.ts.map +1 -0
- package/dist/registration/smart-element-factory.interface.js +2 -0
- package/dist/registration/smart-element-factory.interface.js.map +1 -0
- package/dist/registration/smart-element-factory.js +146 -0
- package/dist/registration/smart-element-factory.js.map +1 -0
- package/dist/registration/smart-element-registrar.d.ts +41 -0
- package/dist/registration/smart-element-registrar.d.ts.map +1 -0
- package/dist/registration/smart-element-registrar.interface.d.ts +17 -0
- package/dist/registration/smart-element-registrar.interface.d.ts.map +1 -0
- package/dist/registration/smart-element-registrar.interface.js +2 -0
- package/dist/registration/smart-element-registrar.interface.js.map +1 -0
- package/dist/registration/smart-element-registrar.js +56 -0
- package/dist/registration/smart-element-registrar.js.map +1 -0
- package/dist/registration/smart-tags.d.ts +16 -0
- package/dist/registration/smart-tags.d.ts.map +1 -0
- package/dist/registration/smart-tags.js +30 -0
- package/dist/registration/smart-tags.js.map +1 -0
- package/dist/rendering/bindings/binding-resolver.d.ts +90 -0
- package/dist/rendering/bindings/binding-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/binding-resolver.interface.d.ts +31 -0
- package/dist/rendering/bindings/binding-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/binding-resolver.interface.js +2 -0
- package/dist/rendering/bindings/binding-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/binding-resolver.js +232 -0
- package/dist/rendering/bindings/binding-resolver.js.map +1 -0
- package/dist/rendering/bindings/expresion-resolver.d.ts +55 -0
- package/dist/rendering/bindings/expresion-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/expresion-resolver.interface.d.ts +25 -0
- package/dist/rendering/bindings/expresion-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/expresion-resolver.interface.js +2 -0
- package/dist/rendering/bindings/expresion-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/expresion-resolver.js +175 -0
- package/dist/rendering/bindings/expresion-resolver.js.map +1 -0
- package/dist/rendering/bindings/expression-resolver.d.ts +48 -0
- package/dist/rendering/bindings/expression-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/expression-resolver.interface.d.ts +25 -0
- package/dist/rendering/bindings/expression-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/expression-resolver.interface.js +2 -0
- package/dist/rendering/bindings/expression-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/expression-resolver.js +169 -0
- package/dist/rendering/bindings/expression-resolver.js.map +1 -0
- package/dist/rendering/bindings/property-extractor.d.ts +36 -0
- package/dist/rendering/bindings/property-extractor.d.ts.map +1 -0
- package/dist/rendering/bindings/property-extractor.interface.d.ts +21 -0
- package/dist/rendering/bindings/property-extractor.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/property-extractor.interface.js +2 -0
- package/dist/rendering/bindings/property-extractor.interface.js.map +1 -0
- package/dist/rendering/bindings/property-extractor.js +69 -0
- package/dist/rendering/bindings/property-extractor.js.map +1 -0
- package/dist/rendering/bindings/rules-resolver.d.ts +29 -0
- package/dist/rendering/bindings/rules-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/rules-resolver.interface.d.ts +16 -0
- package/dist/rendering/bindings/rules-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/rules-resolver.interface.js +2 -0
- package/dist/rendering/bindings/rules-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/rules-resolver.js +69 -0
- package/dist/rendering/bindings/rules-resolver.js.map +1 -0
- package/dist/rendering/bindings/smart-input-store.d.ts +11 -0
- package/dist/rendering/bindings/smart-input-store.d.ts.map +1 -0
- package/dist/rendering/bindings/smart-input-store.interface.d.ts +54 -0
- package/dist/rendering/bindings/smart-input-store.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/smart-input-store.interface.js +5 -0
- package/dist/rendering/bindings/smart-input-store.interface.js.map +1 -0
- package/dist/rendering/bindings/smart-input-store.js +92 -0
- package/dist/rendering/bindings/smart-input-store.js.map +1 -0
- package/dist/rendering/bindings/static-binding-resolver.d.ts +28 -0
- package/dist/rendering/bindings/static-binding-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/static-binding-resolver.interface.d.ts +15 -0
- package/dist/rendering/bindings/static-binding-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/static-binding-resolver.interface.js +2 -0
- package/dist/rendering/bindings/static-binding-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/static-binding-resolver.js +65 -0
- package/dist/rendering/bindings/static-binding-resolver.js.map +1 -0
- package/dist/rendering/dom/browser-dom-adapter.d.ts +30 -0
- package/dist/rendering/dom/browser-dom-adapter.d.ts.map +1 -0
- package/dist/rendering/dom/browser-dom-adapter.js +40 -0
- package/dist/rendering/dom/browser-dom-adapter.js.map +1 -0
- package/dist/rendering/dom/dom-adapter.interface.d.ts +39 -0
- package/dist/rendering/dom/dom-adapter.interface.d.ts.map +1 -0
- package/dist/rendering/dom/dom-adapter.interface.js +2 -0
- package/dist/rendering/dom/dom-adapter.interface.js.map +1 -0
- package/dist/rendering/dom/index.d.ts +9 -0
- package/dist/rendering/dom/index.d.ts.map +1 -0
- package/dist/rendering/dom/index.js +8 -0
- package/dist/rendering/dom/index.js.map +1 -0
- package/dist/rendering/dom/node-types.d.ts +21 -0
- package/dist/rendering/dom/node-types.d.ts.map +1 -0
- package/dist/rendering/dom/node-types.js +21 -0
- package/dist/rendering/dom/node-types.js.map +1 -0
- package/dist/rendering/dom-context/dom-context-factory.d.ts +31 -0
- package/dist/rendering/dom-context/dom-context-factory.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context-factory.interface.d.ts +14 -0
- package/dist/rendering/dom-context/dom-context-factory.interface.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context-factory.interface.js +2 -0
- package/dist/rendering/dom-context/dom-context-factory.interface.js.map +1 -0
- package/dist/rendering/dom-context/dom-context-factory.js +20 -0
- package/dist/rendering/dom-context/dom-context-factory.js.map +1 -0
- package/dist/rendering/dom-context/dom-context-host-resolver.d.ts +55 -0
- package/dist/rendering/dom-context/dom-context-host-resolver.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context-host-resolver.js +90 -0
- package/dist/rendering/dom-context/dom-context-host-resolver.js.map +1 -0
- package/dist/rendering/dom-context/dom-context.d.ts +168 -0
- package/dist/rendering/dom-context/dom-context.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context.interface.d.ts +156 -0
- package/dist/rendering/dom-context/dom-context.interface.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context.interface.js +17 -0
- package/dist/rendering/dom-context/dom-context.interface.js.map +1 -0
- package/dist/rendering/dom-context/dom-context.js +225 -0
- package/dist/rendering/dom-context/dom-context.js.map +1 -0
- package/dist/rendering/dom-context/host-resolver.interface.d.ts +47 -0
- package/dist/rendering/dom-context/host-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/dom-context/host-resolver.interface.js +2 -0
- package/dist/rendering/dom-context/host-resolver.interface.js.map +1 -0
- package/dist/rendering/dom-context/index.d.ts +5 -0
- package/dist/rendering/dom-context/index.d.ts.map +1 -0
- package/dist/rendering/dom-context/index.js +4 -0
- package/dist/rendering/dom-context/index.js.map +1 -0
- package/dist/rendering/errors/error-render-options.interface.d.ts +29 -0
- package/dist/rendering/errors/error-render-options.interface.d.ts.map +1 -0
- package/dist/rendering/errors/error-render-options.interface.js +2 -0
- package/dist/rendering/errors/error-render-options.interface.js.map +1 -0
- package/dist/rendering/errors/error-renderer.d.ts +71 -0
- package/dist/rendering/errors/error-renderer.d.ts.map +1 -0
- package/dist/rendering/errors/error-renderer.interface.d.ts +29 -0
- package/dist/rendering/errors/error-renderer.interface.d.ts.map +1 -0
- package/dist/rendering/errors/error-renderer.interface.js +2 -0
- package/dist/rendering/errors/error-renderer.interface.js.map +1 -0
- package/dist/rendering/errors/error-renderer.js +127 -0
- package/dist/rendering/errors/error-renderer.js.map +1 -0
- package/dist/rendering/expression-parser/dependency-extractor.d.ts +36 -0
- package/dist/rendering/expression-parser/dependency-extractor.d.ts.map +1 -0
- package/dist/rendering/expression-parser/dependency-extractor.js +83 -0
- package/dist/rendering/expression-parser/dependency-extractor.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/ast.evaluator.d.ts +54 -0
- package/dist/rendering/expression-parser/evaluators/ast.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/ast.evaluator.js +92 -0
- package/dist/rendering/expression-parser/evaluators/ast.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/base.d.ts +20 -0
- package/dist/rendering/expression-parser/evaluators/base.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/base.js +2 -0
- package/dist/rendering/expression-parser/evaluators/base.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/binary.evaluator.d.ts +29 -0
- package/dist/rendering/expression-parser/evaluators/binary.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/binary.evaluator.js +55 -0
- package/dist/rendering/expression-parser/evaluators/binary.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/call.evaluator.d.ts +38 -0
- package/dist/rendering/expression-parser/evaluators/call.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/call.evaluator.js +62 -0
- package/dist/rendering/expression-parser/evaluators/call.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/conditional.evaluator.d.ts +29 -0
- package/dist/rendering/expression-parser/evaluators/conditional.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/conditional.evaluator.js +38 -0
- package/dist/rendering/expression-parser/evaluators/conditional.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/identifier.evaluator.d.ts +28 -0
- package/dist/rendering/expression-parser/evaluators/identifier.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/identifier.evaluator.js +33 -0
- package/dist/rendering/expression-parser/evaluators/identifier.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/index.d.ts +10 -0
- package/dist/rendering/expression-parser/evaluators/index.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/index.js +9 -0
- package/dist/rendering/expression-parser/evaluators/index.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/literal.evaluator.d.ts +27 -0
- package/dist/rendering/expression-parser/evaluators/literal.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/literal.evaluator.js +29 -0
- package/dist/rendering/expression-parser/evaluators/literal.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/member.evaluator.d.ts +29 -0
- package/dist/rendering/expression-parser/evaluators/member.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/member.evaluator.js +39 -0
- package/dist/rendering/expression-parser/evaluators/member.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/unary.evaluator.d.ts +29 -0
- package/dist/rendering/expression-parser/evaluators/unary.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/unary.evaluator.js +44 -0
- package/dist/rendering/expression-parser/evaluators/unary.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/expression-cache.d.ts +65 -0
- package/dist/rendering/expression-parser/expression-cache.d.ts.map +1 -0
- package/dist/rendering/expression-parser/expression-cache.js +79 -0
- package/dist/rendering/expression-parser/expression-cache.js.map +1 -0
- package/dist/rendering/expression-parser/expression-parser.factory.d.ts +105 -0
- package/dist/rendering/expression-parser/expression-parser.factory.d.ts.map +1 -0
- package/dist/rendering/expression-parser/expression-parser.factory.js +113 -0
- package/dist/rendering/expression-parser/expression-parser.factory.js.map +1 -0
- package/dist/rendering/expression-parser/expression-parser.service.d.ts +30 -0
- package/dist/rendering/expression-parser/expression-parser.service.d.ts.map +1 -0
- package/dist/rendering/expression-parser/expression-parser.service.js +96 -0
- package/dist/rendering/expression-parser/expression-parser.service.js.map +1 -0
- package/dist/rendering/expression-parser/host-projector.d.ts +80 -0
- package/dist/rendering/expression-parser/host-projector.d.ts.map +1 -0
- package/dist/rendering/expression-parser/host-projector.js +97 -0
- package/dist/rendering/expression-parser/host-projector.js.map +1 -0
- package/dist/rendering/expression-parser/index.d.ts +6 -0
- package/dist/rendering/expression-parser/index.d.ts.map +1 -0
- package/dist/rendering/expression-parser/index.js +15 -0
- package/dist/rendering/expression-parser/index.js.map +1 -0
- package/dist/rendering/expression-parser/interfaces.d.ts +41 -0
- package/dist/rendering/expression-parser/interfaces.d.ts.map +1 -0
- package/dist/rendering/expression-parser/interfaces.js +2 -0
- package/dist/rendering/expression-parser/interfaces.js.map +1 -0
- package/dist/rendering/expression-parser/parser.d.ts +135 -0
- package/dist/rendering/expression-parser/parser.d.ts.map +1 -0
- package/dist/rendering/expression-parser/parser.js +345 -0
- package/dist/rendering/expression-parser/parser.js.map +1 -0
- package/dist/rendering/expression-parser/safe-method-validator.interface.d.ts +23 -0
- package/dist/rendering/expression-parser/safe-method-validator.interface.d.ts.map +1 -0
- package/dist/rendering/expression-parser/safe-method-validator.interface.js +2 -0
- package/dist/rendering/expression-parser/safe-method-validator.interface.js.map +1 -0
- package/dist/rendering/expression-parser/safe-methods.d.ts +29 -0
- package/dist/rendering/expression-parser/safe-methods.d.ts.map +1 -0
- package/dist/rendering/expression-parser/safe-methods.js +136 -0
- package/dist/rendering/expression-parser/safe-methods.js.map +1 -0
- package/dist/rendering/expression-parser/tokenizer.d.ts +68 -0
- package/dist/rendering/expression-parser/tokenizer.d.ts.map +1 -0
- package/dist/rendering/expression-parser/tokenizer.js +282 -0
- package/dist/rendering/expression-parser/tokenizer.js.map +1 -0
- package/dist/rendering/expression-parser/types.d.ts +234 -0
- package/dist/rendering/expression-parser/types.d.ts.map +1 -0
- package/dist/rendering/expression-parser/types.js +33 -0
- package/dist/rendering/expression-parser/types.js.map +1 -0
- package/dist/rendering/host-projection/host-projection-registry.interface.d.ts +54 -0
- package/dist/rendering/host-projection/host-projection-registry.interface.d.ts.map +1 -0
- package/dist/rendering/host-projection/host-projection-registry.interface.js +2 -0
- package/dist/rendering/host-projection/host-projection-registry.interface.js.map +1 -0
- package/dist/rendering/host-projection/host-projection.registry.d.ts +67 -0
- package/dist/rendering/host-projection/host-projection.registry.d.ts.map +1 -0
- package/dist/rendering/host-projection/host-projection.registry.js +96 -0
- package/dist/rendering/host-projection/host-projection.registry.js.map +1 -0
- package/dist/rendering/host-projection/index.d.ts +3 -0
- package/dist/rendering/host-projection/index.d.ts.map +1 -0
- package/dist/rendering/host-projection/index.js +2 -0
- package/dist/rendering/host-projection/index.js.map +1 -0
- package/dist/rendering/host-resolver/dom-context-host-resolver.d.ts +55 -0
- package/dist/rendering/host-resolver/dom-context-host-resolver.d.ts.map +1 -0
- package/dist/rendering/host-resolver/dom-context-host-resolver.js +90 -0
- package/dist/rendering/host-resolver/dom-context-host-resolver.js.map +1 -0
- package/dist/rendering/host-resolver/host-resolver.interface.d.ts +47 -0
- package/dist/rendering/host-resolver/host-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/host-resolver/host-resolver.interface.js +2 -0
- package/dist/rendering/host-resolver/host-resolver.interface.js.map +1 -0
- package/dist/rendering/host-resolver/index.d.ts +3 -0
- package/dist/rendering/host-resolver/index.d.ts.map +1 -0
- package/dist/rendering/host-resolver/index.js +2 -0
- package/dist/rendering/host-resolver/index.js.map +1 -0
- package/dist/rendering/index.d.ts +34 -0
- package/dist/rendering/index.d.ts.map +1 -0
- package/dist/rendering/index.js +27 -0
- package/dist/rendering/index.js.map +1 -0
- package/dist/rendering/inputs/smart-input-store.d.ts +11 -0
- package/dist/rendering/inputs/smart-input-store.d.ts.map +1 -0
- package/dist/rendering/inputs/smart-input-store.interface.d.ts +54 -0
- package/dist/rendering/inputs/smart-input-store.interface.d.ts.map +1 -0
- package/dist/rendering/inputs/smart-input-store.interface.js +5 -0
- package/dist/rendering/inputs/smart-input-store.interface.js.map +1 -0
- package/dist/rendering/inputs/smart-input-store.js +92 -0
- package/dist/rendering/inputs/smart-input-store.js.map +1 -0
- package/dist/rendering/lifecycle/lifecycle-coordinator.d.ts +94 -0
- package/dist/rendering/lifecycle/lifecycle-coordinator.d.ts.map +1 -0
- package/dist/rendering/lifecycle/lifecycle-coordinator.js +142 -0
- package/dist/rendering/lifecycle/lifecycle-coordinator.js.map +1 -0
- package/dist/rendering/lifecycle/mount-context.interface.d.ts +50 -0
- package/dist/rendering/lifecycle/mount-context.interface.d.ts.map +1 -0
- package/dist/rendering/lifecycle/mount-context.interface.js +2 -0
- package/dist/rendering/lifecycle/mount-context.interface.js.map +1 -0
- package/dist/rendering/lifecycle/mount-session.d.ts +49 -0
- package/dist/rendering/lifecycle/mount-session.d.ts.map +1 -0
- package/dist/rendering/lifecycle/mount-session.js +71 -0
- package/dist/rendering/lifecycle/mount-session.js.map +1 -0
- package/dist/rendering/managed-host/host-style-migrator.d.ts +55 -0
- package/dist/rendering/managed-host/host-style-migrator.d.ts.map +1 -0
- package/dist/rendering/managed-host/host-style-migrator.interface.d.ts +42 -0
- package/dist/rendering/managed-host/host-style-migrator.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/host-style-migrator.interface.js +2 -0
- package/dist/rendering/managed-host/host-style-migrator.interface.js.map +1 -0
- package/dist/rendering/managed-host/host-style-migrator.js +105 -0
- package/dist/rendering/managed-host/host-style-migrator.js.map +1 -0
- package/dist/rendering/managed-host/index.d.ts +18 -0
- package/dist/rendering/managed-host/index.d.ts.map +1 -0
- package/dist/rendering/managed-host/index.js +14 -0
- package/dist/rendering/managed-host/index.js.map +1 -0
- package/dist/rendering/managed-host/input-attribute-policy.d.ts +60 -0
- package/dist/rendering/managed-host/input-attribute-policy.d.ts.map +1 -0
- package/dist/rendering/managed-host/input-attribute-policy.interface.d.ts +43 -0
- package/dist/rendering/managed-host/input-attribute-policy.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/input-attribute-policy.interface.js +2 -0
- package/dist/rendering/managed-host/input-attribute-policy.interface.js.map +1 -0
- package/dist/rendering/managed-host/input-attribute-policy.js +114 -0
- package/dist/rendering/managed-host/input-attribute-policy.js.map +1 -0
- package/dist/rendering/managed-host/managed-element-registry.d.ts +35 -0
- package/dist/rendering/managed-host/managed-element-registry.d.ts.map +1 -0
- package/dist/rendering/managed-host/managed-element-registry.js +103 -0
- package/dist/rendering/managed-host/managed-element-registry.js.map +1 -0
- package/dist/rendering/managed-host/managed-element-resolver.d.ts +27 -0
- package/dist/rendering/managed-host/managed-element-resolver.d.ts.map +1 -0
- package/dist/rendering/managed-host/managed-element-resolver.interface.d.ts +36 -0
- package/dist/rendering/managed-host/managed-element-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/managed-element-resolver.interface.js +2 -0
- package/dist/rendering/managed-host/managed-element-resolver.interface.js.map +1 -0
- package/dist/rendering/managed-host/managed-element-resolver.js +31 -0
- package/dist/rendering/managed-host/managed-element-resolver.js.map +1 -0
- package/dist/rendering/managed-host/managed-host-context.interface.d.ts +31 -0
- package/dist/rendering/managed-host/managed-host-context.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/managed-host-context.interface.js +2 -0
- package/dist/rendering/managed-host/managed-host-context.interface.js.map +1 -0
- package/dist/rendering/managed-host/outlet-resolver.d.ts +43 -0
- package/dist/rendering/managed-host/outlet-resolver.d.ts.map +1 -0
- package/dist/rendering/managed-host/outlet-resolver.interface.d.ts +28 -0
- package/dist/rendering/managed-host/outlet-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/outlet-resolver.interface.js +2 -0
- package/dist/rendering/managed-host/outlet-resolver.interface.js.map +1 -0
- package/dist/rendering/managed-host/outlet-resolver.js +59 -0
- package/dist/rendering/managed-host/outlet-resolver.js.map +1 -0
- package/dist/rendering/pipeline/error-renderer.d.ts +107 -0
- package/dist/rendering/pipeline/error-renderer.d.ts.map +1 -0
- package/dist/rendering/pipeline/error-renderer.js +127 -0
- package/dist/rendering/pipeline/error-renderer.js.map +1 -0
- package/dist/rendering/pipeline/render-pipeline.d.ts +87 -0
- package/dist/rendering/pipeline/render-pipeline.d.ts.map +1 -0
- package/dist/rendering/pipeline/render-pipeline.interface.d.ts +54 -0
- package/dist/rendering/pipeline/render-pipeline.interface.d.ts.map +1 -0
- package/dist/rendering/pipeline/render-pipeline.interface.js +2 -0
- package/dist/rendering/pipeline/render-pipeline.interface.js.map +1 -0
- package/dist/rendering/pipeline/render-pipeline.js +201 -0
- package/dist/rendering/pipeline/render-pipeline.js.map +1 -0
- package/dist/rendering/refs/get-component-host.d.ts +25 -0
- package/dist/rendering/refs/get-component-host.d.ts.map +1 -0
- package/dist/rendering/refs/get-component-host.js +27 -0
- package/dist/rendering/refs/get-component-host.js.map +1 -0
- package/dist/rendering/refs/host-ref-registry.d.ts +43 -0
- package/dist/rendering/refs/host-ref-registry.d.ts.map +1 -0
- package/dist/rendering/refs/host-ref-registry.js +38 -0
- package/dist/rendering/refs/host-ref-registry.js.map +1 -0
- package/dist/rendering/refs/ref-resolver.d.ts +44 -0
- package/dist/rendering/refs/ref-resolver.d.ts.map +1 -0
- package/dist/rendering/refs/ref-resolver.js +54 -0
- package/dist/rendering/refs/ref-resolver.js.map +1 -0
- package/dist/rendering/render-engine-facade.d.ts +80 -0
- package/dist/rendering/render-engine-facade.d.ts.map +1 -0
- package/dist/rendering/render-engine-facade.js +90 -0
- package/dist/rendering/render-engine-facade.js.map +1 -0
- package/dist/rendering/render-engine-factory.d.ts +158 -0
- package/dist/rendering/render-engine-factory.d.ts.map +1 -0
- package/dist/rendering/render-engine-factory.js +225 -0
- package/dist/rendering/render-engine-factory.js.map +1 -0
- package/dist/rendering/render-engine.d.ts +200 -0
- package/dist/rendering/render-engine.d.ts.map +1 -0
- package/dist/rendering/render-engine.js +205 -0
- package/dist/rendering/render-engine.js.map +1 -0
- package/dist/rendering/skeleton/skeleton-renderer.d.ts +91 -0
- package/dist/rendering/skeleton/skeleton-renderer.d.ts.map +1 -0
- package/dist/rendering/skeleton/skeleton-renderer.interface.d.ts +33 -0
- package/dist/rendering/skeleton/skeleton-renderer.interface.d.ts.map +1 -0
- package/dist/rendering/skeleton/skeleton-renderer.interface.js +2 -0
- package/dist/rendering/skeleton/skeleton-renderer.interface.js.map +1 -0
- package/dist/rendering/skeleton/skeleton-renderer.js +188 -0
- package/dist/rendering/skeleton/skeleton-renderer.js.map +1 -0
- package/dist/rendering/skeleton/skeleton-validator.d.ts +51 -0
- package/dist/rendering/skeleton/skeleton-validator.d.ts.map +1 -0
- package/dist/rendering/skeleton/skeleton-validator.interface.d.ts +23 -0
- package/dist/rendering/skeleton/skeleton-validator.interface.d.ts.map +1 -0
- package/dist/rendering/skeleton/skeleton-validator.interface.js +2 -0
- package/dist/rendering/skeleton/skeleton-validator.interface.js.map +1 -0
- package/dist/rendering/skeleton/skeleton-validator.js +215 -0
- package/dist/rendering/skeleton/skeleton-validator.js.map +1 -0
- package/dist/rendering/slots/index.d.ts +2 -0
- package/dist/rendering/slots/index.d.ts.map +1 -0
- package/dist/rendering/slots/index.js +2 -0
- package/dist/rendering/slots/index.js.map +1 -0
- package/dist/rendering/slots/slot-content.registry.d.ts +58 -0
- package/dist/rendering/slots/slot-content.registry.d.ts.map +1 -0
- package/dist/rendering/slots/slot-content.registry.js +77 -0
- package/dist/rendering/slots/slot-content.registry.js.map +1 -0
- package/dist/rendering/styles/shared-styles-registry.d.ts +68 -0
- package/dist/rendering/styles/shared-styles-registry.d.ts.map +1 -0
- package/dist/rendering/styles/shared-styles-registry.js +55 -0
- package/dist/rendering/styles/shared-styles-registry.js.map +1 -0
- package/dist/rendering/support/error-render-options.interface.d.ts +29 -0
- package/dist/rendering/support/error-render-options.interface.d.ts.map +1 -0
- package/dist/rendering/support/error-render-options.interface.js +2 -0
- package/dist/rendering/support/error-render-options.interface.js.map +1 -0
- package/dist/rendering/support/error-renderer.d.ts +56 -0
- package/dist/rendering/support/error-renderer.d.ts.map +1 -0
- package/dist/rendering/support/error-renderer.interface.d.ts +29 -0
- package/dist/rendering/support/error-renderer.interface.d.ts.map +1 -0
- package/dist/rendering/support/error-renderer.interface.js +2 -0
- package/dist/rendering/support/error-renderer.interface.js.map +1 -0
- package/dist/rendering/support/error-renderer.js +92 -0
- package/dist/rendering/support/error-renderer.js.map +1 -0
- package/dist/rendering/support/safe-methods.d.ts +46 -0
- package/dist/rendering/support/safe-methods.d.ts.map +1 -0
- package/dist/rendering/support/safe-methods.js +138 -0
- package/dist/rendering/support/safe-methods.js.map +1 -0
- package/dist/rendering/support/smart-input-store.d.ts +11 -0
- package/dist/rendering/support/smart-input-store.d.ts.map +1 -0
- package/dist/rendering/support/smart-input-store.interface.d.ts +54 -0
- package/dist/rendering/support/smart-input-store.interface.d.ts.map +1 -0
- package/dist/rendering/support/smart-input-store.interface.js +5 -0
- package/dist/rendering/support/smart-input-store.interface.js.map +1 -0
- package/dist/rendering/support/smart-input-store.js +92 -0
- package/dist/rendering/support/smart-input-store.js.map +1 -0
- package/dist/rendering/templates/compiled-template.interface.d.ts +34 -0
- package/dist/rendering/templates/compiled-template.interface.d.ts.map +1 -0
- package/dist/rendering/templates/compiled-template.interface.js +2 -0
- package/dist/rendering/templates/compiled-template.interface.js.map +1 -0
- package/dist/rendering/templates/composite-token-extractor.d.ts +10 -0
- package/dist/rendering/templates/composite-token-extractor.d.ts.map +1 -0
- package/dist/rendering/templates/composite-token-extractor.js +16 -0
- package/dist/rendering/templates/composite-token-extractor.js.map +1 -0
- package/dist/rendering/templates/delimited-token-extractor.d.ts +12 -0
- package/dist/rendering/templates/delimited-token-extractor.d.ts.map +1 -0
- package/dist/rendering/templates/delimited-token-extractor.js +44 -0
- package/dist/rendering/templates/delimited-token-extractor.js.map +1 -0
- package/dist/rendering/templates/host-projector.interface.d.ts +25 -0
- package/dist/rendering/templates/host-projector.interface.d.ts.map +1 -0
- package/dist/rendering/templates/host-projector.interface.js +2 -0
- package/dist/rendering/templates/host-projector.interface.js.map +1 -0
- package/dist/rendering/templates/html-aware-token-extractor.d.ts +56 -0
- package/dist/rendering/templates/html-aware-token-extractor.d.ts.map +1 -0
- package/dist/rendering/templates/html-aware-token-extractor.js +78 -0
- package/dist/rendering/templates/html-aware-token-extractor.js.map +1 -0
- package/dist/rendering/templates/html-fragment-parser.interface.d.ts +19 -0
- package/dist/rendering/templates/html-fragment-parser.interface.d.ts.map +1 -0
- package/dist/rendering/templates/html-fragment-parser.interface.js +2 -0
- package/dist/rendering/templates/html-fragment-parser.interface.js.map +1 -0
- package/dist/rendering/templates/interpolable-content-selector.interface.d.ts +33 -0
- package/dist/rendering/templates/interpolable-content-selector.interface.d.ts.map +1 -0
- package/dist/rendering/templates/interpolable-content-selector.interface.js +2 -0
- package/dist/rendering/templates/interpolable-content-selector.interface.js.map +1 -0
- package/dist/rendering/templates/parse5-fragment-parser.d.ts +31 -0
- package/dist/rendering/templates/parse5-fragment-parser.d.ts.map +1 -0
- package/dist/rendering/templates/parse5-fragment-parser.js +36 -0
- package/dist/rendering/templates/parse5-fragment-parser.js.map +1 -0
- package/dist/rendering/templates/safe-content-selector.d.ts +50 -0
- package/dist/rendering/templates/safe-content-selector.d.ts.map +1 -0
- package/dist/rendering/templates/safe-content-selector.js +138 -0
- package/dist/rendering/templates/safe-content-selector.js.map +1 -0
- package/dist/rendering/templates/simple-template-analyzer.d.ts +29 -0
- package/dist/rendering/templates/simple-template-analyzer.d.ts.map +1 -0
- package/dist/rendering/templates/simple-template-analyzer.js +59 -0
- package/dist/rendering/templates/simple-template-analyzer.js.map +1 -0
- package/dist/rendering/templates/template-analyzer.d.ts +60 -0
- package/dist/rendering/templates/template-analyzer.d.ts.map +1 -0
- package/dist/rendering/templates/template-analyzer.interface.d.ts +15 -0
- package/dist/rendering/templates/template-analyzer.interface.d.ts.map +1 -0
- package/dist/rendering/templates/template-analyzer.interface.js +2 -0
- package/dist/rendering/templates/template-analyzer.interface.js.map +1 -0
- package/dist/rendering/templates/template-analyzer.js +74 -0
- package/dist/rendering/templates/template-analyzer.js.map +1 -0
- package/dist/rendering/templates/template-compilation-cache.d.ts +96 -0
- package/dist/rendering/templates/template-compilation-cache.d.ts.map +1 -0
- package/dist/rendering/templates/template-compilation-cache.js +125 -0
- package/dist/rendering/templates/template-compilation-cache.js.map +1 -0
- package/dist/rendering/templates/template-compiler.d.ts +76 -0
- package/dist/rendering/templates/template-compiler.d.ts.map +1 -0
- package/dist/rendering/templates/template-compiler.interface.d.ts +35 -0
- package/dist/rendering/templates/template-compiler.interface.d.ts.map +1 -0
- package/dist/rendering/templates/template-compiler.interface.js +2 -0
- package/dist/rendering/templates/template-compiler.interface.js.map +1 -0
- package/dist/rendering/templates/template-compiler.js +136 -0
- package/dist/rendering/templates/template-compiler.js.map +1 -0
- package/dist/rendering/templates/template-provider.d.ts +112 -0
- package/dist/rendering/templates/template-provider.d.ts.map +1 -0
- package/dist/rendering/templates/template-provider.factory.d.ts +35 -0
- package/dist/rendering/templates/template-provider.factory.d.ts.map +1 -0
- package/dist/rendering/templates/template-provider.factory.js +42 -0
- package/dist/rendering/templates/template-provider.factory.js.map +1 -0
- package/dist/rendering/templates/template-provider.interface.d.ts +32 -0
- package/dist/rendering/templates/template-provider.interface.d.ts.map +1 -0
- package/dist/rendering/templates/template-provider.interface.js +2 -0
- package/dist/rendering/templates/template-provider.interface.js.map +1 -0
- package/dist/rendering/templates/template-provider.js +104 -0
- package/dist/rendering/templates/template-provider.js.map +1 -0
- package/dist/rendering/templates/template-token.interface.d.ts +38 -0
- package/dist/rendering/templates/template-token.interface.d.ts.map +1 -0
- package/dist/rendering/templates/template-token.interface.js +2 -0
- package/dist/rendering/templates/template-token.interface.js.map +1 -0
- package/dist/types/interfaces.d.ts +204 -0
- package/dist/types/interfaces.d.ts.map +1 -0
- package/dist/types/interfaces.js +2 -0
- package/dist/types/interfaces.js.map +1 -0
- package/dist/utils/dom-utils.d.ts +71 -0
- package/dist/utils/dom-utils.d.ts.map +1 -0
- package/dist/utils/dom-utils.js +119 -0
- package/dist/utils/dom-utils.js.map +1 -0
- package/dist/utils/object-registry.d.ts +71 -0
- package/dist/utils/object-registry.d.ts.map +1 -0
- package/dist/utils/object-registry.js +126 -0
- package/dist/utils/object-registry.js.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { SkeletonRenderer } from './skeleton/skeleton-renderer.js';
|
|
2
|
+
import { SkeletonValidator } from './skeleton/skeleton-validator.js';
|
|
3
|
+
import { TemplateProviderFactory } from './templates/template-provider.factory.js';
|
|
4
|
+
import { BindingResolver } from './bindings/binding-resolver.js';
|
|
5
|
+
import { HostProjector } from './expression-parser/host-projector.js';
|
|
6
|
+
import { ErrorRenderer } from './errors/error-renderer.js';
|
|
7
|
+
import { RenderPipeline } from './pipeline/render-pipeline.js';
|
|
8
|
+
import { RenderEngine } from './render-engine.js';
|
|
9
|
+
import { DomContextFactory } from './dom-context/dom-context-factory.js';
|
|
10
|
+
import { BrowserDomAdapter } from './dom/browser-dom-adapter.js';
|
|
11
|
+
import { TemplateCompilationCache } from './templates/template-compilation-cache.js';
|
|
12
|
+
import { TemplateAnalyzer } from './templates/template-analyzer.js';
|
|
13
|
+
import { TemplateCompiler } from './templates/template-compiler.js';
|
|
14
|
+
import { ComponentInstanceRegistry } from '../core/component-instance-registry.js';
|
|
15
|
+
import { ComponentMetadataRegistry } from '../core/component-metadata-registry.js';
|
|
16
|
+
import { DomContextHostResolver } from './host-resolver/dom-context-host-resolver.js';
|
|
17
|
+
import { HostProjectionRegistry } from './host-projection/host-projection.registry.js';
|
|
18
|
+
/**
|
|
19
|
+
* Implements the responsibility of creating RenderEngine instances with standard dependencies.
|
|
20
|
+
*
|
|
21
|
+
* @description
|
|
22
|
+
* Creates RenderEngine instances with standard dependencies.
|
|
23
|
+
* Uses composition to wire all modules together properly.
|
|
24
|
+
*
|
|
25
|
+
* @architecture
|
|
26
|
+
* **Dependency Graph:**
|
|
27
|
+
* ```
|
|
28
|
+
* RenderEngine
|
|
29
|
+
* ├── ISkeletonRenderer (SkeletonRenderer)
|
|
30
|
+
* ├── IRenderPipeline (RenderPipeline)
|
|
31
|
+
* │ ├── IServiceProvider
|
|
32
|
+
* │ ├── ITemplateProvider (TemplateProvider)
|
|
33
|
+
* │ ├── ITemplateCompiler (inline object)
|
|
34
|
+
* │ │ ├── IHostProjector (HostProjector)
|
|
35
|
+
* │ │ └── IBindingResolver (BindingResolver)
|
|
36
|
+
* │ └── IErrorRenderer (ErrorRenderer)
|
|
37
|
+
* └── IDomContextFactory (DomContextFactory)
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export class RenderEngineFactory {
|
|
41
|
+
/**
|
|
42
|
+
* Creates a RenderEngine with all dependencies properly configured
|
|
43
|
+
*
|
|
44
|
+
* @param serviceProvider - Optional service provider for DI
|
|
45
|
+
* @returns RenderEngine instance ready for use
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Default configuration
|
|
50
|
+
* const factory = new RenderEngineFactory();
|
|
51
|
+
* const renderEngine = factory.create();
|
|
52
|
+
*
|
|
53
|
+
* // With custom service provider
|
|
54
|
+
* const renderEngine = factory.create(customServices);
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
create(serviceProvider) {
|
|
58
|
+
const domAdapter = this.createDomAdapter();
|
|
59
|
+
const metadataSource = this.createMetadataSource();
|
|
60
|
+
const hostProjectionRegistry = this.resolveHostProjectionRegistry(serviceProvider);
|
|
61
|
+
const skeletonRenderer = this.createSkeletonRenderer(domAdapter);
|
|
62
|
+
const bindingResolver = this.createBindingResolver(metadataSource);
|
|
63
|
+
const hostProjector = this.createHostProjector(domAdapter, hostProjectionRegistry);
|
|
64
|
+
const errorHandler = this.createErrorHandler(domAdapter);
|
|
65
|
+
const domContextFactory = this.createDomContextFactory();
|
|
66
|
+
const templateCache = this.createTemplateCache();
|
|
67
|
+
const templateAnalyzer = this.createTemplateAnalyzer();
|
|
68
|
+
const hostResolver = this.createHostResolver();
|
|
69
|
+
const templateCompiler = this.createTemplateCompiler(domAdapter, hostProjector, bindingResolver, metadataSource, hostProjectionRegistry);
|
|
70
|
+
// Register framework services in the service provider for lifecycle managers
|
|
71
|
+
if (serviceProvider) {
|
|
72
|
+
this.registerFrameworkServices(serviceProvider, {
|
|
73
|
+
domAdapter,
|
|
74
|
+
bindingResolver,
|
|
75
|
+
templateCompiler,
|
|
76
|
+
hostResolver
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const renderPipeline = this.createRenderPipeline(serviceProvider, templateCompiler, errorHandler);
|
|
80
|
+
const templateProvider = this.createTemplateProvider(hostProjectionRegistry);
|
|
81
|
+
return this.createRenderEngine(skeletonRenderer, renderPipeline, domContextFactory, templateCache, templateAnalyzer, this.createInstanceRegistry(), metadataSource, templateProvider);
|
|
82
|
+
}
|
|
83
|
+
// ============================================================================
|
|
84
|
+
// FACTORY METHODS - Override these for custom implementations
|
|
85
|
+
// ============================================================================
|
|
86
|
+
/**
|
|
87
|
+
* Creates the skeleton renderer
|
|
88
|
+
*/
|
|
89
|
+
createSkeletonRenderer(domAdapter) {
|
|
90
|
+
const validator = new SkeletonValidator();
|
|
91
|
+
return new SkeletonRenderer(domAdapter, validator);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Creates the template provider
|
|
95
|
+
*/
|
|
96
|
+
createTemplateProvider(hostProjectionRegistry) {
|
|
97
|
+
return TemplateProviderFactory.createDefault(hostProjectionRegistry);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Creates the binding resolver
|
|
101
|
+
*/
|
|
102
|
+
createBindingResolver(metadataSource) {
|
|
103
|
+
return new BindingResolver(undefined, undefined, undefined, metadataSource);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Creates the host projector
|
|
107
|
+
*/
|
|
108
|
+
createHostProjector(domAdapter, hostProjectionRegistry) {
|
|
109
|
+
return new HostProjector(domAdapter, hostProjectionRegistry);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Creates the error handler
|
|
113
|
+
*/
|
|
114
|
+
createErrorHandler(domAdapter) {
|
|
115
|
+
return new ErrorRenderer(domAdapter);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Creates the DOM adapter for environment-specific DOM operations
|
|
119
|
+
*/
|
|
120
|
+
createDomAdapter() {
|
|
121
|
+
return new BrowserDomAdapter();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Creates the template compilation cache
|
|
125
|
+
*/
|
|
126
|
+
createTemplateCache() {
|
|
127
|
+
return new TemplateCompilationCache();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Creates the template analyzer with default extractors
|
|
131
|
+
*/
|
|
132
|
+
createTemplateAnalyzer() {
|
|
133
|
+
return new TemplateAnalyzer();
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Creates the template compiler using composed dependencies
|
|
137
|
+
*/
|
|
138
|
+
createTemplateCompiler(domAdapter, hostProjector, bindingResolver, metadataSource, hostProjectionRegistry) {
|
|
139
|
+
return new TemplateCompiler(domAdapter, hostProjector, bindingResolver, metadataSource, hostProjectionRegistry);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Creates the render pipeline
|
|
143
|
+
*/
|
|
144
|
+
createRenderPipeline(serviceProvider, templateCompiler, errorHandler) {
|
|
145
|
+
return new RenderPipeline(serviceProvider || this.createNullServiceProvider(), templateCompiler, errorHandler);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Creates a null service provider when none is provided
|
|
149
|
+
*/
|
|
150
|
+
createNullServiceProvider() {
|
|
151
|
+
return {
|
|
152
|
+
has() {
|
|
153
|
+
return false;
|
|
154
|
+
},
|
|
155
|
+
get() {
|
|
156
|
+
throw new Error('[RenderEngineFactory] No service provider configured');
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Creates the host resolver for lifecycle managers
|
|
162
|
+
*/
|
|
163
|
+
createHostResolver() {
|
|
164
|
+
return new DomContextHostResolver();
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Creates the DOM context factory
|
|
168
|
+
*/
|
|
169
|
+
createDomContextFactory() {
|
|
170
|
+
return new DomContextFactory();
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Registers framework-provided services in the service provider.
|
|
174
|
+
* These services are essential for lifecycle managers and rendering.
|
|
175
|
+
*
|
|
176
|
+
* @param serviceProvider - Service provider to register services into
|
|
177
|
+
* @param services - Core framework services to register
|
|
178
|
+
*/
|
|
179
|
+
registerFrameworkServices(serviceProvider, services) {
|
|
180
|
+
const registry = serviceProvider;
|
|
181
|
+
if (!serviceProvider.has('IDomAdapter')) {
|
|
182
|
+
registry.register('IDomAdapter', () => services.domAdapter);
|
|
183
|
+
}
|
|
184
|
+
if (!serviceProvider.has('IBindingResolver')) {
|
|
185
|
+
registry.register('IBindingResolver', () => services.bindingResolver);
|
|
186
|
+
}
|
|
187
|
+
if (!serviceProvider.has('ITemplateCompiler')) {
|
|
188
|
+
registry.register('ITemplateCompiler', () => services.templateCompiler);
|
|
189
|
+
}
|
|
190
|
+
if (!serviceProvider.has('IHostResolver')) {
|
|
191
|
+
registry.register('IHostResolver', () => services.hostResolver);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Creates the component instance registry
|
|
196
|
+
*/
|
|
197
|
+
createInstanceRegistry() {
|
|
198
|
+
return new ComponentInstanceRegistry();
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Creates the read-only metadata source for component metadata lookup
|
|
202
|
+
*/
|
|
203
|
+
createMetadataSource() {
|
|
204
|
+
return ComponentMetadataRegistry;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Creates the render engine with its required dependencies
|
|
208
|
+
*/
|
|
209
|
+
createRenderEngine(skeletonRenderer, renderPipeline, domContextFactory, templateCache, templateAnalyzer, instanceRegistry, metadataSource, templateProvider) {
|
|
210
|
+
return new RenderEngine(skeletonRenderer, renderPipeline, domContextFactory, templateCache, templateAnalyzer, templateProvider, instanceRegistry, metadataSource);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Resolves the host projection registry from the service provider or creates a new instance.
|
|
214
|
+
*
|
|
215
|
+
* @param serviceProvider - Optional service provider to resolve from
|
|
216
|
+
* @returns IHostProjectionRegistry instance
|
|
217
|
+
*/
|
|
218
|
+
resolveHostProjectionRegistry(serviceProvider) {
|
|
219
|
+
if (serviceProvider?.has('IHostProjectionRegistry')) {
|
|
220
|
+
return serviceProvider.get('IHostProjectionRegistry');
|
|
221
|
+
}
|
|
222
|
+
return new HostProjectionRegistry();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=render-engine-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-engine-factory.js","sourceRoot":"","sources":["../../src/rendering/render-engine-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { SmartComponent } from "../core/smart-component.js";
|
|
2
|
+
import type { IComponentMetadataRegistry } from "../core/component-metadata-registry.interface.js";
|
|
3
|
+
import { IComponentInstanceRegistry } from "../core/component-instance-registry.js";
|
|
4
|
+
import { ISkeletonRenderer } from "./skeleton/skeleton-renderer.js";
|
|
5
|
+
import { IRenderPipeline } from "./pipeline/render-pipeline.interface.js";
|
|
6
|
+
import { IDomContextFactory } from "./dom-context/dom-context-factory.js";
|
|
7
|
+
import { ITemplateAnalyzer } from "./templates/template-analyzer.js";
|
|
8
|
+
import { ITemplateProvider } from "./templates/template-provider.js";
|
|
9
|
+
import type { TemplateCompilationCache } from "./templates/template-compilation-cache.js";
|
|
10
|
+
/**
|
|
11
|
+
* Defines the responsibility of configuring render operations for SmartComponents.
|
|
12
|
+
*
|
|
13
|
+
* @template T - The SmartComponent type being rendered
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const options: RenderOptions<MyComponent> = {
|
|
18
|
+
* componentId: 'my-component',
|
|
19
|
+
* component: new MyComponent(),
|
|
20
|
+
* targetRoot: document.body
|
|
21
|
+
* };
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export interface RenderOptions<T extends SmartComponent> {
|
|
25
|
+
/** Component ID (selector) for metadata lookup */
|
|
26
|
+
componentId: string;
|
|
27
|
+
/** The component instance to render */
|
|
28
|
+
component: T;
|
|
29
|
+
/** Target DOM root (HTMLElement or ShadowRoot) */
|
|
30
|
+
targetRoot: HTMLElement | ShadowRoot;
|
|
31
|
+
/** The custom element itself (for host projection content) */
|
|
32
|
+
hostElement?: HTMLElement;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Defines the responsibility of representing the outcome of a component render operation.
|
|
36
|
+
*
|
|
37
|
+
* @template T - The SmartComponent type that was rendered
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const result: RenderResult<MyComponent> = {
|
|
42
|
+
* component: myComponent,
|
|
43
|
+
* domContext: domContext,
|
|
44
|
+
* lifecycleManager: lifecycleManager,
|
|
45
|
+
* cleanup: () => {}
|
|
46
|
+
* };
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export interface RenderResult {
|
|
50
|
+
/** Cleanup function to destroy component and remove from DOM */
|
|
51
|
+
cleanup: () => void;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Defines the responsibility of rendering SmartComponents and HTML fragments.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const renderEngine: IRenderEngine = new RenderEngine(
|
|
59
|
+
* skeletonRenderer,
|
|
60
|
+
* renderPipeline,
|
|
61
|
+
* fragmentRenderer,
|
|
62
|
+
* domContextFactory
|
|
63
|
+
* );
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export interface IRenderEngine {
|
|
67
|
+
render<T extends SmartComponent>(options: RenderOptions<T>): Promise<RenderResult>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Implements the responsibility of orchestrating the complete rendering lifecycle of SmartComponents.
|
|
71
|
+
*
|
|
72
|
+
* @description
|
|
73
|
+
* The RenderEngine is the core rendering system that transforms SmartComponents into
|
|
74
|
+
* interactive DOM elements. It manages the entire lifecycle from skeleton display
|
|
75
|
+
* through initialization, template compilation, reactive binding, and cleanup.
|
|
76
|
+
*
|
|
77
|
+
* Now uses composition with specialized modules for each responsibility.
|
|
78
|
+
*
|
|
79
|
+
* @architecture
|
|
80
|
+
* **Rendering Pipeline (6 Steps):**
|
|
81
|
+
*
|
|
82
|
+
* 1. **Skeleton Display** - Show loading state immediately (synchronous)
|
|
83
|
+
* 2. **Initializer Check** - Detect if component requires async initialization
|
|
84
|
+
* 3. **Initialize & Wait** - Run initializer.initialize() and await completion
|
|
85
|
+
* 4. **Template Compilation** - Parse template, bind reactive state with {{bindings}}
|
|
86
|
+
* 5. **Lifecycle Start** - Begin lifecycle manager event listeners
|
|
87
|
+
*
|
|
88
|
+
* **Reactive Binding System:**
|
|
89
|
+
* - Scans template for {{propertyName}} expressions
|
|
90
|
+
* - Creates state$.subscribe() for each binding
|
|
91
|
+
* - Updates DOM automatically when component.setState() is called
|
|
92
|
+
* - Subscriptions managed by DomContext, cleaned up on destroy
|
|
93
|
+
*
|
|
94
|
+
* **Skeleton Strategy:**
|
|
95
|
+
* - Metadata: metadata.skeleton property from @SmartRender decorator
|
|
96
|
+
* - Fallback: Default skeleton with animated dots
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* // RenderEngine is called automatically by @SmartRender decorator
|
|
101
|
+
* @SmartRender({
|
|
102
|
+
* selector: 'my-counter',
|
|
103
|
+
* template: `<div>Count: {{count}}</div>
|
|
104
|
+
* <button @click="increment">+</button>`,
|
|
105
|
+
* initializer: CounterInitializer,
|
|
106
|
+
* lifecycle: CounterLifecycle
|
|
107
|
+
* })
|
|
108
|
+
* class Counter extends SmartComponent {
|
|
109
|
+
* @Reactive accessor count = 0;
|
|
110
|
+
*
|
|
111
|
+
* increment() {
|
|
112
|
+
* this.count++; // Auto-triggers state$.next() → DOM update
|
|
113
|
+
* }
|
|
114
|
+
* }
|
|
115
|
+
*
|
|
116
|
+
* // Manual render (advanced):
|
|
117
|
+
* const renderEngine = new RenderEngine();
|
|
118
|
+
* const result = await renderEngine.render({
|
|
119
|
+
* component: new Counter(),
|
|
120
|
+
* componentCtor: Counter,
|
|
121
|
+
* tagName: 'my-counter',
|
|
122
|
+
* targetRoot: shadowRoot
|
|
123
|
+
* });
|
|
124
|
+
*
|
|
125
|
+
* result.cleanup(); // Destroys component, removes DOM, cleans subscriptions
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* @remarks
|
|
129
|
+
* - render() returns immediately with skeleton, completes asynchronously
|
|
130
|
+
* - Template must be provided via @SmartRender decorator metadata
|
|
131
|
+
* - Error handling shows error overlay on skeleton
|
|
132
|
+
* - All subscriptions automatically cleaned up on component destroy
|
|
133
|
+
* - RenderEngine requires IServiceProvider for dependency resolution
|
|
134
|
+
*/
|
|
135
|
+
export declare class RenderEngine implements IRenderEngine {
|
|
136
|
+
private readonly skeletonRenderer;
|
|
137
|
+
private readonly renderPipeline;
|
|
138
|
+
private readonly domContextFactory;
|
|
139
|
+
private readonly templateCache;
|
|
140
|
+
private readonly templateAnalyzer;
|
|
141
|
+
private readonly templateProvider;
|
|
142
|
+
private readonly instanceRegistry;
|
|
143
|
+
private readonly metadataSource;
|
|
144
|
+
/**
|
|
145
|
+
* Creates a new RenderEngine instance with injected dependencies
|
|
146
|
+
*
|
|
147
|
+
* @param skeletonRenderer - Module for skeleton rendering
|
|
148
|
+
* @param renderPipeline - Module for executing render pipeline
|
|
149
|
+
* @param domContextFactory - Factory for creating DOM contexts
|
|
150
|
+
* @param templateCache - Optional template compilation cache
|
|
151
|
+
* @param templateAnalyzer - Optional template analyzer
|
|
152
|
+
* @throws Error if any required dependency is null or undefined
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```typescript
|
|
156
|
+
* // Resolve from container (recommended)
|
|
157
|
+
* const renderEngine = registry.get<IRenderEngine>('IRenderEngine');
|
|
158
|
+
*
|
|
159
|
+
* // Manual construction (advanced — all params required)
|
|
160
|
+
* const renderEngine = new RenderEngine(
|
|
161
|
+
* skeletonRenderer,
|
|
162
|
+
* renderPipeline,
|
|
163
|
+
* domContextFactory,
|
|
164
|
+
* templateCache,
|
|
165
|
+
* templateAnalyzer,
|
|
166
|
+
* templateProvider,
|
|
167
|
+
* instanceRegistry,
|
|
168
|
+
* metadataSource
|
|
169
|
+
* );
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
constructor(skeletonRenderer: ISkeletonRenderer, renderPipeline: IRenderPipeline, domContextFactory: IDomContextFactory, templateCache: TemplateCompilationCache, templateAnalyzer: ITemplateAnalyzer, templateProvider: ITemplateProvider, instanceRegistry: IComponentInstanceRegistry, metadataSource: IComponentMetadataRegistry);
|
|
173
|
+
/**
|
|
174
|
+
* Renders a SmartComponent with full lifecycle support
|
|
175
|
+
*
|
|
176
|
+
* @description
|
|
177
|
+
* Main entry point for rendering a component. Looks up metadata from registry,
|
|
178
|
+
* manages component instance lifecycle (1:1 with DomContext),
|
|
179
|
+
* and executes the render pipeline.
|
|
180
|
+
*
|
|
181
|
+
* @template T - The SmartComponent type being rendered
|
|
182
|
+
* @param options - Render configuration options
|
|
183
|
+
* @returns Promise<RenderResult> - Cleanup function for this render context
|
|
184
|
+
* @throws Error if component metadata not found or rendering fails
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* const renderEngine = new RenderEngine();
|
|
189
|
+
* const result = await renderEngine.render({
|
|
190
|
+
* componentId: 'my-component',
|
|
191
|
+
* component: myComponent,
|
|
192
|
+
* targetRoot: document.getElementById('app')!
|
|
193
|
+
* });
|
|
194
|
+
*
|
|
195
|
+
* result.cleanup(); // Full cleanup
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
render<T extends SmartComponent>(options: RenderOptions<T>): Promise<RenderResult>;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=render-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-engine.d.ts","sourceRoot":"","sources":["../../src/rendering/render-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AACnG,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAE1F;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,CAAC,CAAC;IACb,kDAAkD;IAClD,UAAU,EAAE,WAAW,GAAG,UAAU,CAAC;IACrC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,CAAC,SAAS,cAAc,EAC7B,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,qBAAa,YAAa,YAAW,aAAa;IAkC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IApCjC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;gBAEgB,gBAAgB,EAAE,iBAAiB,EACnC,cAAc,EAAE,eAAe,EAC/B,iBAAiB,EAAE,kBAAkB,EACrC,aAAa,EAAE,wBAAwB,EACvC,gBAAgB,EAAE,iBAAiB,EACnC,gBAAgB,EAAE,iBAAiB,EACnC,gBAAgB,EAAE,0BAA0B,EAC5C,cAAc,EAAE,0BAA0B;IAgB7D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,MAAM,CAAC,CAAC,SAAS,cAAc,EACnC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,YAAY,CAAC;CAuEzB"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Implements the responsibility of orchestrating the complete rendering lifecycle of SmartComponents.
|
|
3
|
+
*
|
|
4
|
+
* @description
|
|
5
|
+
* The RenderEngine is the core rendering system that transforms SmartComponents into
|
|
6
|
+
* interactive DOM elements. It manages the entire lifecycle from skeleton display
|
|
7
|
+
* through initialization, template compilation, reactive binding, and cleanup.
|
|
8
|
+
*
|
|
9
|
+
* Now uses composition with specialized modules for each responsibility.
|
|
10
|
+
*
|
|
11
|
+
* @architecture
|
|
12
|
+
* **Rendering Pipeline (6 Steps):**
|
|
13
|
+
*
|
|
14
|
+
* 1. **Skeleton Display** - Show loading state immediately (synchronous)
|
|
15
|
+
* 2. **Initializer Check** - Detect if component requires async initialization
|
|
16
|
+
* 3. **Initialize & Wait** - Run initializer.initialize() and await completion
|
|
17
|
+
* 4. **Template Compilation** - Parse template, bind reactive state with {{bindings}}
|
|
18
|
+
* 5. **Lifecycle Start** - Begin lifecycle manager event listeners
|
|
19
|
+
*
|
|
20
|
+
* **Reactive Binding System:**
|
|
21
|
+
* - Scans template for {{propertyName}} expressions
|
|
22
|
+
* - Creates state$.subscribe() for each binding
|
|
23
|
+
* - Updates DOM automatically when component.setState() is called
|
|
24
|
+
* - Subscriptions managed by DomContext, cleaned up on destroy
|
|
25
|
+
*
|
|
26
|
+
* **Skeleton Strategy:**
|
|
27
|
+
* - Metadata: metadata.skeleton property from @SmartRender decorator
|
|
28
|
+
* - Fallback: Default skeleton with animated dots
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // RenderEngine is called automatically by @SmartRender decorator
|
|
33
|
+
* @SmartRender({
|
|
34
|
+
* selector: 'my-counter',
|
|
35
|
+
* template: `<div>Count: {{count}}</div>
|
|
36
|
+
* <button @click="increment">+</button>`,
|
|
37
|
+
* initializer: CounterInitializer,
|
|
38
|
+
* lifecycle: CounterLifecycle
|
|
39
|
+
* })
|
|
40
|
+
* class Counter extends SmartComponent {
|
|
41
|
+
* @Reactive accessor count = 0;
|
|
42
|
+
*
|
|
43
|
+
* increment() {
|
|
44
|
+
* this.count++; // Auto-triggers state$.next() → DOM update
|
|
45
|
+
* }
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* // Manual render (advanced):
|
|
49
|
+
* const renderEngine = new RenderEngine();
|
|
50
|
+
* const result = await renderEngine.render({
|
|
51
|
+
* component: new Counter(),
|
|
52
|
+
* componentCtor: Counter,
|
|
53
|
+
* tagName: 'my-counter',
|
|
54
|
+
* targetRoot: shadowRoot
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* result.cleanup(); // Destroys component, removes DOM, cleans subscriptions
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @remarks
|
|
61
|
+
* - render() returns immediately with skeleton, completes asynchronously
|
|
62
|
+
* - Template must be provided via @SmartRender decorator metadata
|
|
63
|
+
* - Error handling shows error overlay on skeleton
|
|
64
|
+
* - All subscriptions automatically cleaned up on component destroy
|
|
65
|
+
* - RenderEngine requires IServiceProvider for dependency resolution
|
|
66
|
+
*/
|
|
67
|
+
export class RenderEngine {
|
|
68
|
+
skeletonRenderer;
|
|
69
|
+
renderPipeline;
|
|
70
|
+
domContextFactory;
|
|
71
|
+
templateCache;
|
|
72
|
+
templateAnalyzer;
|
|
73
|
+
templateProvider;
|
|
74
|
+
instanceRegistry;
|
|
75
|
+
metadataSource;
|
|
76
|
+
// ============================================================================
|
|
77
|
+
// CONSTRUCTOR
|
|
78
|
+
// ============================================================================
|
|
79
|
+
/**
|
|
80
|
+
* Creates a new RenderEngine instance with injected dependencies
|
|
81
|
+
*
|
|
82
|
+
* @param skeletonRenderer - Module for skeleton rendering
|
|
83
|
+
* @param renderPipeline - Module for executing render pipeline
|
|
84
|
+
* @param domContextFactory - Factory for creating DOM contexts
|
|
85
|
+
* @param templateCache - Optional template compilation cache
|
|
86
|
+
* @param templateAnalyzer - Optional template analyzer
|
|
87
|
+
* @throws Error if any required dependency is null or undefined
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* // Resolve from container (recommended)
|
|
92
|
+
* const renderEngine = registry.get<IRenderEngine>('IRenderEngine');
|
|
93
|
+
*
|
|
94
|
+
* // Manual construction (advanced — all params required)
|
|
95
|
+
* const renderEngine = new RenderEngine(
|
|
96
|
+
* skeletonRenderer,
|
|
97
|
+
* renderPipeline,
|
|
98
|
+
* domContextFactory,
|
|
99
|
+
* templateCache,
|
|
100
|
+
* templateAnalyzer,
|
|
101
|
+
* templateProvider,
|
|
102
|
+
* instanceRegistry,
|
|
103
|
+
* metadataSource
|
|
104
|
+
* );
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
constructor(skeletonRenderer, renderPipeline, domContextFactory, templateCache, templateAnalyzer, templateProvider, instanceRegistry, metadataSource) {
|
|
108
|
+
this.skeletonRenderer = skeletonRenderer;
|
|
109
|
+
this.renderPipeline = renderPipeline;
|
|
110
|
+
this.domContextFactory = domContextFactory;
|
|
111
|
+
this.templateCache = templateCache;
|
|
112
|
+
this.templateAnalyzer = templateAnalyzer;
|
|
113
|
+
this.templateProvider = templateProvider;
|
|
114
|
+
this.instanceRegistry = instanceRegistry;
|
|
115
|
+
this.metadataSource = metadataSource;
|
|
116
|
+
if (!skeletonRenderer)
|
|
117
|
+
throw new Error("SkeletonRenderer is required");
|
|
118
|
+
if (!renderPipeline)
|
|
119
|
+
throw new Error("RenderPipeline is required");
|
|
120
|
+
if (!domContextFactory)
|
|
121
|
+
throw new Error("DomContextFactory is required");
|
|
122
|
+
if (!templateCache)
|
|
123
|
+
throw new Error("TemplateCompilationCache is required");
|
|
124
|
+
if (!templateAnalyzer)
|
|
125
|
+
throw new Error("TemplateAnalyzer is required");
|
|
126
|
+
if (!templateProvider)
|
|
127
|
+
throw new Error("TemplateProvider is required");
|
|
128
|
+
if (!instanceRegistry)
|
|
129
|
+
throw new Error("InstanceRegistry is required");
|
|
130
|
+
if (!metadataSource)
|
|
131
|
+
throw new Error("MetadataSource is required");
|
|
132
|
+
}
|
|
133
|
+
// ============================================================================
|
|
134
|
+
// PUBLIC API
|
|
135
|
+
// ============================================================================
|
|
136
|
+
/**
|
|
137
|
+
* Renders a SmartComponent with full lifecycle support
|
|
138
|
+
*
|
|
139
|
+
* @description
|
|
140
|
+
* Main entry point for rendering a component. Looks up metadata from registry,
|
|
141
|
+
* manages component instance lifecycle (1:1 with DomContext),
|
|
142
|
+
* and executes the render pipeline.
|
|
143
|
+
*
|
|
144
|
+
* @template T - The SmartComponent type being rendered
|
|
145
|
+
* @param options - Render configuration options
|
|
146
|
+
* @returns Promise<RenderResult> - Cleanup function for this render context
|
|
147
|
+
* @throws Error if component metadata not found or rendering fails
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* const renderEngine = new RenderEngine();
|
|
152
|
+
* const result = await renderEngine.render({
|
|
153
|
+
* componentId: 'my-component',
|
|
154
|
+
* component: myComponent,
|
|
155
|
+
* targetRoot: document.getElementById('app')!
|
|
156
|
+
* });
|
|
157
|
+
*
|
|
158
|
+
* result.cleanup(); // Full cleanup
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
async render(options) {
|
|
162
|
+
// 1. Lookup metadata
|
|
163
|
+
const metadata = this.metadataSource.get(options.componentId);
|
|
164
|
+
if (!metadata) {
|
|
165
|
+
throw new Error(`Component ${options.componentId} not registered in metadata registry`);
|
|
166
|
+
}
|
|
167
|
+
// 2. Create unique DOM context
|
|
168
|
+
const domContext = this.domContextFactory.create(options.targetRoot);
|
|
169
|
+
// 3. Get or create component instance (1:1 per contextId)
|
|
170
|
+
const entry = this.instanceRegistry.getOrCreate(domContext.contextId, () => options.component, metadata);
|
|
171
|
+
const instance = entry.instance;
|
|
172
|
+
// 4. Resolve constants early so skeleton can use [[BINDING]] syntax
|
|
173
|
+
const resolvedConstants = metadata.constants
|
|
174
|
+
? typeof metadata.constants === "function"
|
|
175
|
+
? metadata.constants(options.hostElement ?? instance)
|
|
176
|
+
: metadata.constants
|
|
177
|
+
: undefined;
|
|
178
|
+
// 5. Render skeleton (with resolved constants for [[BINDING]] support)
|
|
179
|
+
await this.skeletonRenderer.render(instance, metadata, domContext, resolvedConstants);
|
|
180
|
+
// 6. Resolve static bindings ([[CONSTANT]] and [[RULES.field]]) BEFORE template analysis
|
|
181
|
+
const resolvedTemplate = await this.templateProvider.getSource(instance, {
|
|
182
|
+
...options,
|
|
183
|
+
component: instance,
|
|
184
|
+
});
|
|
185
|
+
// 6. Get or compile template
|
|
186
|
+
const compiledTemplate = this.templateCache.getOrCompile(options.componentId, resolvedTemplate, this.templateAnalyzer);
|
|
187
|
+
// 7. Execute pipeline
|
|
188
|
+
const result = await this.renderPipeline.execute({
|
|
189
|
+
component: instance,
|
|
190
|
+
metadata,
|
|
191
|
+
domContext,
|
|
192
|
+
compiledTemplate,
|
|
193
|
+
hostElement: options.hostElement,
|
|
194
|
+
}, domContext);
|
|
195
|
+
// 8. Wrap cleanup with ComponentInstanceRegistry.release
|
|
196
|
+
const originalCleanup = result.cleanup;
|
|
197
|
+
return {
|
|
198
|
+
cleanup: () => {
|
|
199
|
+
originalCleanup();
|
|
200
|
+
this.instanceRegistry.release(domContext.contextId);
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=render-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-engine.js","sourceRoot":"","sources":["../../src/rendering/render-engine.ts"],"names":[],"mappings":"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"}
|