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 @@
|
|
|
1
|
+
{"version":3,"file":"initializer.d.ts","sourceRoot":"","sources":["../../src/behaviors/initializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;GAGG;AACH,8BAAsB,yBAAyB,CAC7C,UAAU,CACV,YAAW,qBAAqB,CAAC,UAAU,CAAC;IAC5C;;;;;;OAMG;IACG,UAAU,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAazD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAC7B,SAAS,EAAE,UAAU,GACpB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializer.interface.d.ts","sourceRoot":"","sources":["../../src/behaviors/initializer.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializer.interface.js","sourceRoot":"","sources":["../../src/behaviors/initializer.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for component initializers
|
|
3
|
+
* Handles initial setup and data loading for components
|
|
4
|
+
*/
|
|
5
|
+
export class SmartComponentInitializer {
|
|
6
|
+
/**
|
|
7
|
+
* Initializes the component with initial data and configuration
|
|
8
|
+
*
|
|
9
|
+
* @param component - Component instance to initialize
|
|
10
|
+
* @returns true if initialization succeeded, false if failed
|
|
11
|
+
* @throws Never - always catches and logs errors
|
|
12
|
+
*/
|
|
13
|
+
async initialize(component) {
|
|
14
|
+
if (!component) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
return await this.onInitialize(component);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
void error;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=initializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializer.js","sourceRoot":"","sources":["../../src/behaviors/initializer.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAgB,yBAAyB;IAG7C;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,SAAqB;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,KAAK,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CASF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { IServiceProvider, ServiceToken } from '../providers/service-provider.interface.js';
|
|
2
|
+
export type { ServiceToken } from '../providers/service-provider.interface.js';
|
|
3
|
+
/**
|
|
4
|
+
* Injection map for declaring dependencies explicitly.
|
|
5
|
+
* Maps property names to service tokens.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const inject: InjectMap = {
|
|
10
|
+
* logger: Logger,
|
|
11
|
+
* api: 'IApiClient',
|
|
12
|
+
* config: Symbol.for('IConfig')
|
|
13
|
+
* };
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export type InjectMap = Record<string, ServiceToken>;
|
|
17
|
+
/**
|
|
18
|
+
* Context information for error messages.
|
|
19
|
+
*/
|
|
20
|
+
export interface InjectionContext {
|
|
21
|
+
/**
|
|
22
|
+
* Type of the entity being injected (Initializer, Lifecycle, Effect)
|
|
23
|
+
*/
|
|
24
|
+
kind: 'Initializer' | 'Lifecycle' | 'Effect';
|
|
25
|
+
/**
|
|
26
|
+
* Name of the class or effect
|
|
27
|
+
*/
|
|
28
|
+
name: string;
|
|
29
|
+
/**
|
|
30
|
+
* Component selector (optional)
|
|
31
|
+
*/
|
|
32
|
+
componentName?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Applies dependency injection to an instance using property assignment.
|
|
36
|
+
*
|
|
37
|
+
* @description
|
|
38
|
+
* Resolves services from the provider and assigns them to instance properties.
|
|
39
|
+
* User declares properties with `declare` keyword for IntelliSense:
|
|
40
|
+
* ```typescript
|
|
41
|
+
* class MyLifecycle extends SmartLifecycleManager {
|
|
42
|
+
* static inject = { logger: Logger, api: ApiService };
|
|
43
|
+
* declare logger: Logger;
|
|
44
|
+
* declare api: ApiService;
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @param instance - Target instance to inject dependencies into
|
|
49
|
+
* @param injectMap - Map of property names to service tokens
|
|
50
|
+
* @param provider - Service provider for dependency resolution
|
|
51
|
+
* @param context - Context information for error messages
|
|
52
|
+
* @throws Error if a required service is not registered
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const lifecycle = new MyLifecycle();
|
|
57
|
+
* applyInjection(lifecycle, MyLifecycle.inject, Services, {
|
|
58
|
+
* kind: 'Lifecycle',
|
|
59
|
+
* name: 'MyLifecycle',
|
|
60
|
+
* componentName: 'my-component'
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare function applyInjection(instance: unknown, injectMap: InjectMap | undefined, provider: IServiceProvider, context: InjectionContext): void;
|
|
65
|
+
/**
|
|
66
|
+
* Resolves dependencies from inject map and returns them as an object.
|
|
67
|
+
*
|
|
68
|
+
* @description
|
|
69
|
+
* Used for effects and other scenarios where dependencies are passed
|
|
70
|
+
* as function parameters instead of property assignment.
|
|
71
|
+
*
|
|
72
|
+
* @param injectMap - Map of property names to service tokens
|
|
73
|
+
* @param provider - Service provider for dependency resolution
|
|
74
|
+
* @param context - Context information for error messages
|
|
75
|
+
* @returns Object with resolved dependencies
|
|
76
|
+
* @throws Error if a required service is not registered
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const deps = resolveDeps(
|
|
81
|
+
* { logger: Logger, api: ApiService },
|
|
82
|
+
* Services,
|
|
83
|
+
* { kind: 'Effect', name: 'loadData' }
|
|
84
|
+
* );
|
|
85
|
+
* // deps = { logger: LoggerInstance, api: ApiServiceInstance }
|
|
86
|
+
* effectFn(component, deps);
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export declare function resolveDeps(injectMap: InjectMap | undefined, provider: IServiceProvider, context: InjectionContext): Record<string, unknown>;
|
|
90
|
+
//# sourceMappingURL=injection-helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injection-helper.d.ts","sourceRoot":"","sources":["../../src/behaviors/injection-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AACjG,YAAY,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE/E;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;IAE7C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,gBAAgB,GACxB,IAAI,CAgCN;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6BzB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies dependency injection to an instance using property assignment.
|
|
3
|
+
*
|
|
4
|
+
* @description
|
|
5
|
+
* Resolves services from the provider and assigns them to instance properties.
|
|
6
|
+
* User declares properties with `declare` keyword for IntelliSense:
|
|
7
|
+
* ```typescript
|
|
8
|
+
* class MyLifecycle extends SmartLifecycleManager {
|
|
9
|
+
* static inject = { logger: Logger, api: ApiService };
|
|
10
|
+
* declare logger: Logger;
|
|
11
|
+
* declare api: ApiService;
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @param instance - Target instance to inject dependencies into
|
|
16
|
+
* @param injectMap - Map of property names to service tokens
|
|
17
|
+
* @param provider - Service provider for dependency resolution
|
|
18
|
+
* @param context - Context information for error messages
|
|
19
|
+
* @throws Error if a required service is not registered
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const lifecycle = new MyLifecycle();
|
|
24
|
+
* applyInjection(lifecycle, MyLifecycle.inject, Services, {
|
|
25
|
+
* kind: 'Lifecycle',
|
|
26
|
+
* name: 'MyLifecycle',
|
|
27
|
+
* componentName: 'my-component'
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export function applyInjection(instance, injectMap, provider, context) {
|
|
32
|
+
if (!injectMap) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (!instance || typeof instance !== 'object') {
|
|
36
|
+
throw new Error(`[DI] Cannot apply injection: instance is null or undefined`);
|
|
37
|
+
}
|
|
38
|
+
if (!provider) {
|
|
39
|
+
throw new Error(`[DI] Cannot apply injection: provider is null or undefined`);
|
|
40
|
+
}
|
|
41
|
+
const target = instance;
|
|
42
|
+
for (const [propName, token] of Object.entries(injectMap)) {
|
|
43
|
+
try {
|
|
44
|
+
const service = provider.get(token);
|
|
45
|
+
target[propName] = service;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
const tokenName = getTokenName(token);
|
|
49
|
+
const contextInfo = formatContext(context);
|
|
50
|
+
throw new Error(`[DI] Missing dependency for ${context.kind} '${context.name}'.${propName} -> Token '${tokenName}'\n` +
|
|
51
|
+
`${contextInfo}\n` +
|
|
52
|
+
`Solution: Register the service in your Composition Root:\n` +
|
|
53
|
+
` Services.register(${tokenName}, () => new ${tokenName}());\n` +
|
|
54
|
+
`Original error: ${error instanceof Error ? error.message : String(error)}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Resolves dependencies from inject map and returns them as an object.
|
|
60
|
+
*
|
|
61
|
+
* @description
|
|
62
|
+
* Used for effects and other scenarios where dependencies are passed
|
|
63
|
+
* as function parameters instead of property assignment.
|
|
64
|
+
*
|
|
65
|
+
* @param injectMap - Map of property names to service tokens
|
|
66
|
+
* @param provider - Service provider for dependency resolution
|
|
67
|
+
* @param context - Context information for error messages
|
|
68
|
+
* @returns Object with resolved dependencies
|
|
69
|
+
* @throws Error if a required service is not registered
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const deps = resolveDeps(
|
|
74
|
+
* { logger: Logger, api: ApiService },
|
|
75
|
+
* Services,
|
|
76
|
+
* { kind: 'Effect', name: 'loadData' }
|
|
77
|
+
* );
|
|
78
|
+
* // deps = { logger: LoggerInstance, api: ApiServiceInstance }
|
|
79
|
+
* effectFn(component, deps);
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export function resolveDeps(injectMap, provider, context) {
|
|
83
|
+
if (!injectMap) {
|
|
84
|
+
return {};
|
|
85
|
+
}
|
|
86
|
+
if (!provider) {
|
|
87
|
+
throw new Error(`[DI] Cannot resolve dependencies: provider is null or undefined`);
|
|
88
|
+
}
|
|
89
|
+
const resolved = {};
|
|
90
|
+
for (const [propName, token] of Object.entries(injectMap)) {
|
|
91
|
+
try {
|
|
92
|
+
resolved[propName] = provider.get(token);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
const tokenName = getTokenName(token);
|
|
96
|
+
const contextInfo = formatContext(context);
|
|
97
|
+
throw new Error(`[DI] Missing dependency for ${context.kind} '${context.name}'.${propName} -> Token '${tokenName}'\n` +
|
|
98
|
+
`${contextInfo}\n` +
|
|
99
|
+
`Solution: Register the service in your Composition Root:\n` +
|
|
100
|
+
` Services.register(${tokenName}, () => new ${tokenName}());\n` +
|
|
101
|
+
`Original error: ${error instanceof Error ? error.message : String(error)}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return resolved;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Gets a human-readable name from a service token.
|
|
108
|
+
*
|
|
109
|
+
* @param token - Service token (class, string, or symbol)
|
|
110
|
+
* @returns Token name for display
|
|
111
|
+
*/
|
|
112
|
+
function getTokenName(token) {
|
|
113
|
+
if (typeof token === 'string') {
|
|
114
|
+
return token;
|
|
115
|
+
}
|
|
116
|
+
if (typeof token === 'symbol') {
|
|
117
|
+
return token.toString();
|
|
118
|
+
}
|
|
119
|
+
// Constructor function
|
|
120
|
+
return token.name || token.toString();
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Formats context information for error messages.
|
|
124
|
+
*
|
|
125
|
+
* @param context - Injection context
|
|
126
|
+
* @returns Formatted context string
|
|
127
|
+
*/
|
|
128
|
+
function formatContext(context) {
|
|
129
|
+
const parts = [];
|
|
130
|
+
if (context.componentName) {
|
|
131
|
+
parts.push(`Component: <${context.componentName}>`);
|
|
132
|
+
}
|
|
133
|
+
parts.push(`${context.kind}: ${context.name}`);
|
|
134
|
+
return `Context: ${parts.join(' | ')}`;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=injection-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injection-helper.js","sourceRoot":"","sources":["../../src/behaviors/injection-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { SmartComponent } from '../core/smart-component.js';
|
|
2
|
+
import type { SmartLifecycleManager } from './lifecycle-manager.base.js';
|
|
3
|
+
import type { IServiceProvider } from '../providers/service-provider.interface.js';
|
|
4
|
+
import type { IHostResolver } from '../rendering/host-resolver/host-resolver.interface.js';
|
|
5
|
+
import type { ITemplateCompiler } from '../rendering/templates/template-compiler.interface.js';
|
|
6
|
+
import { type ServiceToken } from './injection-helper.js';
|
|
7
|
+
/**
|
|
8
|
+
* Constructor type for lifecycle managers supporting common dependency patterns.
|
|
9
|
+
*/
|
|
10
|
+
interface LifecycleCtor<T extends SmartComponent> {
|
|
11
|
+
new (): SmartLifecycleManager<T>;
|
|
12
|
+
new (hostResolver: IHostResolver): SmartLifecycleManager<T>;
|
|
13
|
+
new (hostResolver: IHostResolver, templateCompiler: ITemplateCompiler): SmartLifecycleManager<T>;
|
|
14
|
+
new (...args: unknown[]): SmartLifecycleManager<T>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Defines the responsibility of creating lifecycle manager instances.
|
|
18
|
+
*/
|
|
19
|
+
export interface ILifecycleManagerFactory {
|
|
20
|
+
/**
|
|
21
|
+
* Creates a lifecycle manager instance for the given class.
|
|
22
|
+
*
|
|
23
|
+
* @param lifecycleClass - Lifecycle manager class constructor
|
|
24
|
+
* @returns Fully initialized lifecycle manager instance
|
|
25
|
+
* @throws Error if required dependencies are not available
|
|
26
|
+
*/
|
|
27
|
+
create<T extends SmartComponent>(lifecycleClass: LifecycleCtor<T>): SmartLifecycleManager<T>;
|
|
28
|
+
/**
|
|
29
|
+
* Registers a custom factory function for a specific lifecycle manager type.
|
|
30
|
+
*
|
|
31
|
+
* @param lifecycleClass - Lifecycle manager class to register
|
|
32
|
+
* @param factoryFn - Factory function that creates the instance
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* factory.registerFactory(CustomLifecycleManager, (resolver) => {
|
|
37
|
+
* const dep1 = resolver.get('IDependency1');
|
|
38
|
+
* const dep2 = resolver.get('IDependency2');
|
|
39
|
+
* return new CustomLifecycleManager(dep1, dep2);
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
registerFactory(token: ServiceToken, factoryFn: (serviceProvider: IServiceProvider) => SmartLifecycleManager<unknown>): void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Implements the responsibility of creating lifecycle manager instances with proper DI.
|
|
47
|
+
*
|
|
48
|
+
* @description
|
|
49
|
+
* Centralizes lifecycle manager creation logic following the Factory Pattern.
|
|
50
|
+
* Uses ServiceProvider to resolve dependencies and allows registration of
|
|
51
|
+
* custom factory functions for extensibility.
|
|
52
|
+
*
|
|
53
|
+
* @architecture
|
|
54
|
+
* **Design Decisions:**
|
|
55
|
+
* - Uses strategy pattern via registerFactory for extensibility
|
|
56
|
+
* - Resolves dependencies from ServiceProvider (DIP)
|
|
57
|
+
* - Throws clear errors when dependencies are missing
|
|
58
|
+
* - Allows zero-config for lifecycle managers without dependencies
|
|
59
|
+
*/
|
|
60
|
+
export declare class LifecycleManagerFactory implements ILifecycleManagerFactory {
|
|
61
|
+
private readonly serviceProvider;
|
|
62
|
+
private readonly factories;
|
|
63
|
+
/**
|
|
64
|
+
* Initializes a new instance of LifecycleManagerFactory.
|
|
65
|
+
*
|
|
66
|
+
* @param serviceProvider - Service provider for dependency resolution
|
|
67
|
+
* @throws Error if serviceProvider is null or undefined
|
|
68
|
+
*/
|
|
69
|
+
constructor(serviceProvider: IServiceProvider);
|
|
70
|
+
registerFactory(token: ServiceToken, factoryFn: (serviceProvider: IServiceProvider) => SmartLifecycleManager<unknown>): void;
|
|
71
|
+
create<T extends SmartComponent>(lifecycleClass: LifecycleCtor<T>): SmartLifecycleManager<T>;
|
|
72
|
+
/**
|
|
73
|
+
* Attempts to create lifecycle manager with auto-discovered dependencies.
|
|
74
|
+
*
|
|
75
|
+
* @description
|
|
76
|
+
* Tries common dependency patterns:
|
|
77
|
+
* - 0 params: new Lifecycle()
|
|
78
|
+
* - 1 param: new Lifecycle(IHostResolver)
|
|
79
|
+
* - 2 params: new Lifecycle(IHostResolver, ITemplateCompiler)
|
|
80
|
+
* - 3 params: new Lifecycle(IHostResolver, ITemplateCompiler, IDomAdapter)
|
|
81
|
+
* - 4 params: new Lifecycle(IHostResolver, ITemplateCompiler, IDomAdapter, IBindingResolver)
|
|
82
|
+
*
|
|
83
|
+
* @param lifecycleClass - Lifecycle manager class constructor
|
|
84
|
+
* @returns Instantiated lifecycle manager
|
|
85
|
+
* @throws Error if dependencies cannot be resolved
|
|
86
|
+
*/
|
|
87
|
+
private createWithAutodiscovery;
|
|
88
|
+
/**
|
|
89
|
+
* Attempts to get a service from the provider without throwing.
|
|
90
|
+
*
|
|
91
|
+
* @param token - Service token
|
|
92
|
+
* @returns Service instance or undefined
|
|
93
|
+
*/
|
|
94
|
+
private tryGet;
|
|
95
|
+
/**
|
|
96
|
+
* Applies explicit dependency injection using static inject property.
|
|
97
|
+
*
|
|
98
|
+
* @description
|
|
99
|
+
* If the class defines a static inject property, resolves the declared
|
|
100
|
+
* dependencies and assigns them to the instance properties.
|
|
101
|
+
*
|
|
102
|
+
* @param instance - Lifecycle manager instance
|
|
103
|
+
* @param lifecycleClass - Lifecycle manager class constructor
|
|
104
|
+
*/
|
|
105
|
+
private applyDependencyInjection;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Registers standard SmartComponents lifecycle managers in the factory.
|
|
109
|
+
*
|
|
110
|
+
* @description
|
|
111
|
+
* This function is called during bootstrap to register the built-in
|
|
112
|
+
* lifecycle managers (SmartFor, SmartAction, etc.) with their dependency
|
|
113
|
+
* resolution logic.
|
|
114
|
+
*
|
|
115
|
+
* @param factory - Lifecycle manager factory instance
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* const factory = new LifecycleManagerFactory(Services);
|
|
120
|
+
* registerStandardLifecycleManagers(factory);
|
|
121
|
+
* Services.register('ILifecycleManagerFactory', () => factory);
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export declare function registerStandardLifecycleManagers(factory: ILifecycleManagerFactory): void;
|
|
125
|
+
export {};
|
|
126
|
+
//# sourceMappingURL=lifecycle-manager-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle-manager-factory.d.ts","sourceRoot":"","sources":["../../src/behaviors/lifecycle-manager-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAE/F,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1F;;GAEG;AACH,UAAU,aAAa,CAAC,CAAC,SAAS,cAAc;IAC9C,QAAQ,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACjC,KAAK,YAAY,EAAE,aAAa,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5D,KAAK,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACjG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,SAAS,cAAc,EAC7B,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,GAC/B,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACH,eAAe,CACb,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,CAAC,eAAe,EAAE,gBAAgB,KAAK,qBAAqB,CAAC,OAAO,CAAC,GAC/E,IAAI,CAAC;CACT;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,uBAAwB,YAAW,wBAAwB;IAS1D,OAAO,CAAC,QAAQ,CAAC,eAAe;IAR5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2F;IAErH;;;;;OAKG;gBAC0B,eAAe,EAAE,gBAAgB;IAM9D,eAAe,CACb,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,CAAC,eAAe,EAAE,gBAAgB,KAAK,qBAAqB,CAAC,OAAO,CAAC,GAC/E,IAAI;IAWP,MAAM,CAAC,CAAC,SAAS,cAAc,EAC7B,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,GAC/B,qBAAqB,CAAC,CAAC,CAAC;IAuC3B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,uBAAuB;IAqD/B;;;;;OAKG;IACH,OAAO,CAAC,MAAM;IAWd;;;;;;;;;OASG;IACH,OAAO,CAAC,wBAAwB;CAejC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAsBzF"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { applyInjection } from './injection-helper.js';
|
|
2
|
+
/**
|
|
3
|
+
* Implements the responsibility of creating lifecycle manager instances with proper DI.
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Centralizes lifecycle manager creation logic following the Factory Pattern.
|
|
7
|
+
* Uses ServiceProvider to resolve dependencies and allows registration of
|
|
8
|
+
* custom factory functions for extensibility.
|
|
9
|
+
*
|
|
10
|
+
* @architecture
|
|
11
|
+
* **Design Decisions:**
|
|
12
|
+
* - Uses strategy pattern via registerFactory for extensibility
|
|
13
|
+
* - Resolves dependencies from ServiceProvider (DIP)
|
|
14
|
+
* - Throws clear errors when dependencies are missing
|
|
15
|
+
* - Allows zero-config for lifecycle managers without dependencies
|
|
16
|
+
*/
|
|
17
|
+
export class LifecycleManagerFactory {
|
|
18
|
+
serviceProvider;
|
|
19
|
+
factories = new Map();
|
|
20
|
+
/**
|
|
21
|
+
* Initializes a new instance of LifecycleManagerFactory.
|
|
22
|
+
*
|
|
23
|
+
* @param serviceProvider - Service provider for dependency resolution
|
|
24
|
+
* @throws Error if serviceProvider is null or undefined
|
|
25
|
+
*/
|
|
26
|
+
constructor(serviceProvider) {
|
|
27
|
+
this.serviceProvider = serviceProvider;
|
|
28
|
+
if (!serviceProvider) {
|
|
29
|
+
throw new Error('Service provider is required');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
registerFactory(token, factoryFn) {
|
|
33
|
+
if (!token) {
|
|
34
|
+
throw new Error('Lifecycle class token is required');
|
|
35
|
+
}
|
|
36
|
+
if (!factoryFn) {
|
|
37
|
+
throw new Error('Factory function is required');
|
|
38
|
+
}
|
|
39
|
+
this.factories.set(token, factoryFn);
|
|
40
|
+
}
|
|
41
|
+
create(lifecycleClass) {
|
|
42
|
+
if (!lifecycleClass) {
|
|
43
|
+
throw new Error('Lifecycle class is required');
|
|
44
|
+
}
|
|
45
|
+
// Check if custom factory is registered
|
|
46
|
+
const customFactory = this.factories.get(lifecycleClass);
|
|
47
|
+
if (customFactory) {
|
|
48
|
+
const instance = customFactory(this.serviceProvider);
|
|
49
|
+
this.applyDependencyInjection(instance, lifecycleClass);
|
|
50
|
+
return instance;
|
|
51
|
+
}
|
|
52
|
+
// Auto-discovery: Try to resolve common framework dependencies
|
|
53
|
+
let instance;
|
|
54
|
+
try {
|
|
55
|
+
instance = this.createWithAutodiscovery(lifecycleClass);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
// Fallback: try parameterless constructor
|
|
59
|
+
try {
|
|
60
|
+
instance = new lifecycleClass();
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
62
|
+
}
|
|
63
|
+
catch (_fallbackError) {
|
|
64
|
+
const originalMessage = error instanceof Error ? error.message : String(error);
|
|
65
|
+
throw new Error(`Cannot create lifecycle manager ${lifecycleClass.name}. ` +
|
|
66
|
+
`Dependencies could not be auto-discovered. ` +
|
|
67
|
+
`Register a factory function using registerFactory() if it requires custom dependencies. ` +
|
|
68
|
+
`Original error: ${originalMessage}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Apply explicit dependency injection if static inject property exists
|
|
72
|
+
this.applyDependencyInjection(instance, lifecycleClass);
|
|
73
|
+
return instance;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Attempts to create lifecycle manager with auto-discovered dependencies.
|
|
77
|
+
*
|
|
78
|
+
* @description
|
|
79
|
+
* Tries common dependency patterns:
|
|
80
|
+
* - 0 params: new Lifecycle()
|
|
81
|
+
* - 1 param: new Lifecycle(IHostResolver)
|
|
82
|
+
* - 2 params: new Lifecycle(IHostResolver, ITemplateCompiler)
|
|
83
|
+
* - 3 params: new Lifecycle(IHostResolver, ITemplateCompiler, IDomAdapter)
|
|
84
|
+
* - 4 params: new Lifecycle(IHostResolver, ITemplateCompiler, IDomAdapter, IBindingResolver)
|
|
85
|
+
*
|
|
86
|
+
* @param lifecycleClass - Lifecycle manager class constructor
|
|
87
|
+
* @returns Instantiated lifecycle manager
|
|
88
|
+
* @throws Error if dependencies cannot be resolved
|
|
89
|
+
*/
|
|
90
|
+
createWithAutodiscovery(lifecycleClass) {
|
|
91
|
+
// Try common dependency patterns in order of likelihood
|
|
92
|
+
const patterns = [
|
|
93
|
+
// Pattern 1: No dependencies
|
|
94
|
+
() => new lifecycleClass(),
|
|
95
|
+
// Pattern 2: IHostResolver only (most common)
|
|
96
|
+
() => {
|
|
97
|
+
const hostResolver = this.tryGet('IHostResolver');
|
|
98
|
+
return new lifecycleClass(hostResolver);
|
|
99
|
+
},
|
|
100
|
+
// Pattern 3: IHostResolver + ITemplateCompiler (SmartFor)
|
|
101
|
+
() => {
|
|
102
|
+
const hostResolver = this.tryGet('IHostResolver');
|
|
103
|
+
const templateCompiler = this.tryGet('ITemplateCompiler');
|
|
104
|
+
return new lifecycleClass(hostResolver, templateCompiler);
|
|
105
|
+
},
|
|
106
|
+
// Pattern 4: IHostResolver + ITemplateCompiler + IDomAdapter
|
|
107
|
+
() => {
|
|
108
|
+
const hostResolver = this.tryGet('IHostResolver');
|
|
109
|
+
const templateCompiler = this.tryGet('ITemplateCompiler');
|
|
110
|
+
const domAdapter = this.tryGet('IDomAdapter');
|
|
111
|
+
return new lifecycleClass(hostResolver, templateCompiler, domAdapter);
|
|
112
|
+
},
|
|
113
|
+
// Pattern 5: All framework services
|
|
114
|
+
() => {
|
|
115
|
+
const hostResolver = this.tryGet('IHostResolver');
|
|
116
|
+
const templateCompiler = this.tryGet('ITemplateCompiler');
|
|
117
|
+
const domAdapter = this.tryGet('IDomAdapter');
|
|
118
|
+
const bindingResolver = this.tryGet('IBindingResolver');
|
|
119
|
+
return new lifecycleClass(hostResolver, templateCompiler, domAdapter, bindingResolver);
|
|
120
|
+
}
|
|
121
|
+
];
|
|
122
|
+
let lastError = null;
|
|
123
|
+
for (const pattern of patterns) {
|
|
124
|
+
try {
|
|
125
|
+
return pattern();
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
lastError = (error instanceof Error ? error : new Error(String(error)));
|
|
129
|
+
// Continue to next pattern
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
throw lastError || new Error('All dependency patterns failed');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Attempts to get a service from the provider without throwing.
|
|
136
|
+
*
|
|
137
|
+
* @param token - Service token
|
|
138
|
+
* @returns Service instance or undefined
|
|
139
|
+
*/
|
|
140
|
+
tryGet(token) {
|
|
141
|
+
try {
|
|
142
|
+
if (this.serviceProvider.has(token)) {
|
|
143
|
+
return this.serviceProvider.get(token);
|
|
144
|
+
}
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Applies explicit dependency injection using static inject property.
|
|
153
|
+
*
|
|
154
|
+
* @description
|
|
155
|
+
* If the class defines a static inject property, resolves the declared
|
|
156
|
+
* dependencies and assigns them to the instance properties.
|
|
157
|
+
*
|
|
158
|
+
* @param instance - Lifecycle manager instance
|
|
159
|
+
* @param lifecycleClass - Lifecycle manager class constructor
|
|
160
|
+
*/
|
|
161
|
+
applyDependencyInjection(instance, lifecycleClass) {
|
|
162
|
+
const injectMap = lifecycleClass.inject;
|
|
163
|
+
if (!injectMap) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
applyInjection(instance, injectMap, this.serviceProvider, {
|
|
167
|
+
kind: 'Lifecycle',
|
|
168
|
+
name: lifecycleClass.name
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Registers standard SmartComponents lifecycle managers in the factory.
|
|
174
|
+
*
|
|
175
|
+
* @description
|
|
176
|
+
* This function is called during bootstrap to register the built-in
|
|
177
|
+
* lifecycle managers (SmartFor, SmartAction, etc.) with their dependency
|
|
178
|
+
* resolution logic.
|
|
179
|
+
*
|
|
180
|
+
* @param factory - Lifecycle manager factory instance
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* const factory = new LifecycleManagerFactory(Services);
|
|
185
|
+
* registerStandardLifecycleManagers(factory);
|
|
186
|
+
* Services.register('ILifecycleManagerFactory', () => factory);
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export function registerStandardLifecycleManagers(factory) {
|
|
190
|
+
// Import lifecycle managers lazily to avoid circular dependencies
|
|
191
|
+
import('../components/smart-for/smart-for.lifecycle-manager.js').then(({ SmartForLifecycleManager }) => {
|
|
192
|
+
factory.registerFactory(SmartForLifecycleManager, (provider) => {
|
|
193
|
+
const hostResolver = provider.get('IHostResolver');
|
|
194
|
+
const templateCompiler = provider.get('ITemplateCompiler');
|
|
195
|
+
const hostProjectionRegistry = provider.get('IHostProjectionRegistry');
|
|
196
|
+
return new SmartForLifecycleManager(hostResolver, templateCompiler, hostProjectionRegistry);
|
|
197
|
+
});
|
|
198
|
+
}).catch(() => {
|
|
199
|
+
// Lifecycle manager not available - skip
|
|
200
|
+
});
|
|
201
|
+
import('../components/smart-select/smart-select.lifecycle-manager.js').then(({ SmartSelectLifecycleManager }) => {
|
|
202
|
+
factory.registerFactory(SmartSelectLifecycleManager, (provider) => {
|
|
203
|
+
const hostResolver = provider.get('IHostResolver');
|
|
204
|
+
const hostProjectionRegistry = provider.get('IHostProjectionRegistry');
|
|
205
|
+
return new SmartSelectLifecycleManager(hostResolver, hostProjectionRegistry);
|
|
206
|
+
});
|
|
207
|
+
}).catch(() => {
|
|
208
|
+
// Lifecycle manager not available - skip
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=lifecycle-manager-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle-manager-factory.js","sourceRoot":"","sources":["../../src/behaviors/lifecycle-manager-factory.ts"],"names":[],"mappings":"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"}
|