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,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Implements the responsibility of locating the target outlet element within a rendered component.
|
|
3
|
+
*
|
|
4
|
+
* @description
|
|
5
|
+
* Resolves the outlet element using a prioritized strategy:
|
|
6
|
+
* 1. Element with `.outlet` class (explicit outlet marker)
|
|
7
|
+
* 2. First child element if root has single child (common pattern)
|
|
8
|
+
* 3. Fallback: rootElement itself (conservative approach)
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const resolver = new OutletResolver();
|
|
13
|
+
* const outlet = resolver.resolve(compiledElement);
|
|
14
|
+
* // Returns the element that should receive host styling
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export class OutletResolver {
|
|
18
|
+
/**
|
|
19
|
+
* Resolves the outlet element within a compiled component root.
|
|
20
|
+
*
|
|
21
|
+
* @param rootElement - The compiled component root element
|
|
22
|
+
* @returns The outlet element that should receive host styling
|
|
23
|
+
* @throws Error if rootElement is null or undefined
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* // Template: <div><span class="outlet"></span></div>
|
|
28
|
+
* const outlet = resolver.resolve(rootElement);
|
|
29
|
+
* // Returns the span.outlet element
|
|
30
|
+
*
|
|
31
|
+
* // Template: <div><span>content</span></div>
|
|
32
|
+
* const outlet = resolver.resolve(rootElement);
|
|
33
|
+
* // Returns the span (single child)
|
|
34
|
+
*
|
|
35
|
+
* // Template: <div>multiple<span>children</span></div>
|
|
36
|
+
* const outlet = resolver.resolve(rootElement);
|
|
37
|
+
* // Returns rootElement (fallback)
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
resolve(rootElement) {
|
|
41
|
+
if (!rootElement) {
|
|
42
|
+
throw new Error("Root element is required");
|
|
43
|
+
}
|
|
44
|
+
// Strategy 1: Explicit .outlet marker
|
|
45
|
+
const explicitOutlet = rootElement.querySelector(".outlet");
|
|
46
|
+
if (explicitOutlet) {
|
|
47
|
+
return explicitOutlet;
|
|
48
|
+
}
|
|
49
|
+
// Strategy 2: Single child element (common pattern)
|
|
50
|
+
const children = Array.from(rootElement.children).filter((child) => child instanceof
|
|
51
|
+
(rootElement.ownerDocument?.defaultView?.HTMLElement || HTMLElement));
|
|
52
|
+
if (children.length === 1) {
|
|
53
|
+
return children[0];
|
|
54
|
+
}
|
|
55
|
+
// Strategy 3: Fallback to root (conservative)
|
|
56
|
+
return rootElement;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=outlet-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outlet-resolver.js","sourceRoot":"","sources":["../../../src/rendering/managed-host/outlet-resolver.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,cAAc;IACzB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,WAAwB;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,sCAAsC;QACtC,MAAM,cAAc,GAAG,WAAW,CAAC,aAAa,CAAc,SAAS,CAAC,CAAC;QACzE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,oDAAoD;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CACtD,CAAC,KAAK,EAAE,EAAE,CACR,KAAK;YACL,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,IAAI,WAAW,CAAC,CACvE,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,QAAQ,CAAC,CAAC,CAAgB,CAAC;QACpC,CAAC;QAED,8CAA8C;QAC9C,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { IDomContext } from "../dom-context/dom-context.interface.js";
|
|
2
|
+
import { IDomAdapter } from "../dom/dom-adapter.interface.js";
|
|
3
|
+
/**
|
|
4
|
+
* Defines the responsibility of carrying error rendering options.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Encapsulates optional data required by `ErrorRenderer` to display a custom
|
|
8
|
+
* error overlay, including an HTML template and static constants for
|
|
9
|
+
* preprocessing.
|
|
10
|
+
*/
|
|
11
|
+
export interface ErrorRenderOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Optional HTML template used to render the error overlay. Supports
|
|
14
|
+
* `{{message}}` placeholder, which will be replaced by the final error message.
|
|
15
|
+
*/
|
|
16
|
+
errorTemplate?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Optional constants object used by the static binding resolver to preprocess
|
|
19
|
+
* template placeholders like `[[Styles.ERROR]]`.
|
|
20
|
+
*/
|
|
21
|
+
constants?: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Defines the responsibility of rendering error states and overlays.
|
|
25
|
+
*
|
|
26
|
+
* @description
|
|
27
|
+
* Defines the contract for rendering error states when component rendering fails,
|
|
28
|
+
* including custom error templates and fallback overlays.
|
|
29
|
+
*/
|
|
30
|
+
export interface IErrorRenderer {
|
|
31
|
+
/**
|
|
32
|
+
* Renders an error overlay in the DOM context.
|
|
33
|
+
*
|
|
34
|
+
* @param domContext - DOM context for managing the error display
|
|
35
|
+
* @param errorMessage - Error message to display
|
|
36
|
+
* @param options - Optional custom template and constants to render error overlay
|
|
37
|
+
* @throws Error if domContext or errorMessage are null/undefined
|
|
38
|
+
*/
|
|
39
|
+
render(domContext: IDomContext, errorMessage: string, options?: ErrorRenderOptions): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Implements the responsibility of rendering error states and overlays.
|
|
43
|
+
*
|
|
44
|
+
* @description
|
|
45
|
+
* Handles the rendering of error states when component rendering fails.
|
|
46
|
+
* Supports custom error templates from component metadata and provides
|
|
47
|
+
* a coherent fallback error overlay without hardcoded styles.
|
|
48
|
+
*
|
|
49
|
+
* @architecture
|
|
50
|
+
* Error Display Priority:
|
|
51
|
+
* 1. Custom error template: @SmartRender({ errorTemplate: '...' })
|
|
52
|
+
* 2. Fallback overlay: Simple HTML structure with message
|
|
53
|
+
*/
|
|
54
|
+
export declare class ErrorRenderer implements IErrorRenderer {
|
|
55
|
+
private readonly domAdapter;
|
|
56
|
+
/**
|
|
57
|
+
* Initializes a new instance of ErrorRenderer.
|
|
58
|
+
*
|
|
59
|
+
* @param domAdapter - Adapter for DOM element creation
|
|
60
|
+
* @throws Error if domAdapter is null or undefined
|
|
61
|
+
*/
|
|
62
|
+
constructor(domAdapter: IDomAdapter);
|
|
63
|
+
/**
|
|
64
|
+
* Renders an error overlay in the DOM context
|
|
65
|
+
*
|
|
66
|
+
* @description
|
|
67
|
+
* Displays error message by either using custom error template from metadata
|
|
68
|
+
* or showing a simple fallback overlay. Preprocesses constants in custom templates.
|
|
69
|
+
*
|
|
70
|
+
* @param domContext - DOM context for managing the error display
|
|
71
|
+
* @param errorMessage - Error message to display
|
|
72
|
+
* @param componentId - Component identifier for custom error template lookup
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* // Custom error template with constants
|
|
77
|
+
* @SmartRender({
|
|
78
|
+
* selector: 'my-component',
|
|
79
|
+
* constants: { Styles: { ERROR: 'error-overlay' } },
|
|
80
|
+
* errorTemplate: `<div class="[[Styles.ERROR]]">{{message}}</div>`
|
|
81
|
+
* })
|
|
82
|
+
*
|
|
83
|
+
* // Fallback: Simple structure without styles
|
|
84
|
+
* <div><div>⚠️</div><div>Error message</div></div>
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
render(domContext: IDomContext, errorMessage: string, options?: ErrorRenderOptions): Promise<void>;
|
|
88
|
+
private tryRenderCustomErrorTemplate;
|
|
89
|
+
private renderCustomErrorTemplate;
|
|
90
|
+
private renderDefaultErrorOverlay;
|
|
91
|
+
/**
|
|
92
|
+
* Safely replaces text placeholders in DOM tree to prevent XSS.
|
|
93
|
+
*
|
|
94
|
+
* @param element - Root element to search
|
|
95
|
+
* @param placeholder - Placeholder text to find
|
|
96
|
+
* @param value - Safe text value to insert
|
|
97
|
+
*/
|
|
98
|
+
private replaceTextPlaceholder;
|
|
99
|
+
/**
|
|
100
|
+
* Recursively walks all text nodes in an element.
|
|
101
|
+
*
|
|
102
|
+
* @param node - Node to start walking from
|
|
103
|
+
* @param callback - Function to call for each text node
|
|
104
|
+
*/
|
|
105
|
+
private walkTextNodes;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=error-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-renderer.d.ts","sourceRoot":"","sources":["../../../src/rendering/pipeline/error-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEZ,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,MAAM,CACJ,UAAU,EAAE,WAAW,EACvB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,cAAc;IAOtC,OAAO,CAAC,QAAQ,CAAC,UAAU;IANvC;;;;;OAKG;gBAC0B,UAAU,EAAE,WAAW;IAGpD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,MAAM,CACV,UAAU,EAAE,WAAW,EACvB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC;YAaF,4BAA4B;YAe5B,yBAAyB;IA0BvC,OAAO,CAAC,yBAAyB;IAqBjC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAQtB"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { DomContentType, } from "../dom-context/dom-context.interface.js";
|
|
2
|
+
import { NodeType } from "../dom/node-types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Implements the responsibility of rendering error states and overlays.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Handles the rendering of error states when component rendering fails.
|
|
8
|
+
* Supports custom error templates from component metadata and provides
|
|
9
|
+
* a coherent fallback error overlay without hardcoded styles.
|
|
10
|
+
*
|
|
11
|
+
* @architecture
|
|
12
|
+
* Error Display Priority:
|
|
13
|
+
* 1. Custom error template: @SmartRender({ errorTemplate: '...' })
|
|
14
|
+
* 2. Fallback overlay: Simple HTML structure with message
|
|
15
|
+
*/
|
|
16
|
+
export class ErrorRenderer {
|
|
17
|
+
domAdapter;
|
|
18
|
+
/**
|
|
19
|
+
* Initializes a new instance of ErrorRenderer.
|
|
20
|
+
*
|
|
21
|
+
* @param domAdapter - Adapter for DOM element creation
|
|
22
|
+
* @throws Error if domAdapter is null or undefined
|
|
23
|
+
*/
|
|
24
|
+
constructor(domAdapter) {
|
|
25
|
+
this.domAdapter = domAdapter;
|
|
26
|
+
if (!domAdapter)
|
|
27
|
+
throw new Error("Dom adapter is required");
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Renders an error overlay in the DOM context
|
|
31
|
+
*
|
|
32
|
+
* @description
|
|
33
|
+
* Displays error message by either using custom error template from metadata
|
|
34
|
+
* or showing a simple fallback overlay. Preprocesses constants in custom templates.
|
|
35
|
+
*
|
|
36
|
+
* @param domContext - DOM context for managing the error display
|
|
37
|
+
* @param errorMessage - Error message to display
|
|
38
|
+
* @param componentId - Component identifier for custom error template lookup
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* // Custom error template with constants
|
|
43
|
+
* @SmartRender({
|
|
44
|
+
* selector: 'my-component',
|
|
45
|
+
* constants: { Styles: { ERROR: 'error-overlay' } },
|
|
46
|
+
* errorTemplate: `<div class="[[Styles.ERROR]]">{{message}}</div>`
|
|
47
|
+
* })
|
|
48
|
+
*
|
|
49
|
+
* // Fallback: Simple structure without styles
|
|
50
|
+
* <div><div>⚠️</div><div>Error message</div></div>
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
async render(domContext, errorMessage, options) {
|
|
54
|
+
if (!domContext)
|
|
55
|
+
throw new Error("DOM context is required");
|
|
56
|
+
if (!errorMessage)
|
|
57
|
+
throw new Error("Error message is required");
|
|
58
|
+
if (await this.tryRenderCustomErrorTemplate(domContext, errorMessage, options)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.renderDefaultErrorOverlay(domContext, errorMessage);
|
|
62
|
+
}
|
|
63
|
+
async tryRenderCustomErrorTemplate(domContext, errorMessage, options) {
|
|
64
|
+
if (!options?.errorTemplate)
|
|
65
|
+
return false;
|
|
66
|
+
await this.renderCustomErrorTemplate(domContext, errorMessage, options.errorTemplate, options.constants);
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
async renderCustomErrorTemplate(domContext, errorMessage, errorTemplate, constants) {
|
|
70
|
+
let template = errorTemplate;
|
|
71
|
+
if (constants) {
|
|
72
|
+
const { StaticBindingResolver } = await import("../bindings/static-binding-resolver.js");
|
|
73
|
+
const resolver = new StaticBindingResolver();
|
|
74
|
+
template = resolver.resolve(template, constants);
|
|
75
|
+
}
|
|
76
|
+
const wrapper = this.domAdapter.createElement("div");
|
|
77
|
+
const placeholder = "__ERROR_MESSAGE_PLACEHOLDER__";
|
|
78
|
+
wrapper.innerHTML = template.replace(/\{\{\s*message\s*\}\}/g, placeholder);
|
|
79
|
+
// Replace placeholder with safe text content to prevent XSS
|
|
80
|
+
this.replaceTextPlaceholder(wrapper, placeholder, errorMessage);
|
|
81
|
+
wrapper.setAttribute("data-error", "true");
|
|
82
|
+
domContext.setElement(wrapper, DomContentType.ERROR);
|
|
83
|
+
}
|
|
84
|
+
renderDefaultErrorOverlay(domContext, errorMessage) {
|
|
85
|
+
const overlay = this.domAdapter.createElement("div");
|
|
86
|
+
overlay.setAttribute("data-error", "true");
|
|
87
|
+
const container = this.domAdapter.createElement("div");
|
|
88
|
+
const icon = this.domAdapter.createElement("div");
|
|
89
|
+
icon.textContent = "⚠️";
|
|
90
|
+
const message = this.domAdapter.createElement("div");
|
|
91
|
+
message.textContent = errorMessage;
|
|
92
|
+
container.appendChild(icon);
|
|
93
|
+
container.appendChild(message);
|
|
94
|
+
overlay.appendChild(container);
|
|
95
|
+
domContext.setElement(overlay, DomContentType.ERROR);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Safely replaces text placeholders in DOM tree to prevent XSS.
|
|
99
|
+
*
|
|
100
|
+
* @param element - Root element to search
|
|
101
|
+
* @param placeholder - Placeholder text to find
|
|
102
|
+
* @param value - Safe text value to insert
|
|
103
|
+
*/
|
|
104
|
+
replaceTextPlaceholder(element, placeholder, value) {
|
|
105
|
+
this.walkTextNodes(element, (textNode) => {
|
|
106
|
+
if (textNode.textContent?.includes(placeholder)) {
|
|
107
|
+
textNode.textContent = textNode.textContent.replace(new RegExp(placeholder, "g"), value);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Recursively walks all text nodes in an element.
|
|
113
|
+
*
|
|
114
|
+
* @param node - Node to start walking from
|
|
115
|
+
* @param callback - Function to call for each text node
|
|
116
|
+
*/
|
|
117
|
+
walkTextNodes(node, callback) {
|
|
118
|
+
if (node.nodeType === NodeType.TEXT_NODE) {
|
|
119
|
+
callback(node);
|
|
120
|
+
}
|
|
121
|
+
else if (node.nodeType === NodeType.ELEMENT_NODE) {
|
|
122
|
+
const children = Array.from(node.childNodes);
|
|
123
|
+
children.forEach((child) => this.walkTextNodes(child, callback));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=error-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-renderer.js","sourceRoot":"","sources":["../../../src/rendering/pipeline/error-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,GACf,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AA+ChD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,aAAa;IAOK;IAN7B;;;;;OAKG;IACH,YAA6B,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAClD,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC9D,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,MAAM,CACV,UAAuB,EACvB,YAAoB,EACpB,OAA4B;QAE5B,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEhE,IACE,MAAM,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,EAC1E,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,4BAA4B,CACxC,UAAuB,EACvB,YAAoB,EACpB,OAA4B;QAE5B,IAAI,CAAC,OAAO,EAAE,aAAa;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,IAAI,CAAC,yBAAyB,CAClC,UAAU,EACV,YAAY,EACZ,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,SAAS,CAClB,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,UAAuB,EACvB,YAAoB,EACpB,aAAqB,EACrB,SAA2C;QAE3C,IAAI,QAAQ,GAAG,aAAa,CAAC;QAE7B,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,qBAAqB,EAAE,GAC7B,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,+BAA+B,CAAC;QACpD,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;QAE5E,4DAA4D;QAC5D,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAEhE,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC3C,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAEO,yBAAyB,CAC/B,UAAuB,EACvB,YAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC;QAEnC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAE/B,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;OAMG;IACK,sBAAsB,CAC5B,OAAoB,EACpB,WAAmB,EACnB,KAAa;QAEb,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvC,IAAI,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChD,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CACjD,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAC5B,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,IAAU,EAAE,QAAkC;QAClE,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAY,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { SmartComponent } from "../../core/smart-component.js";
|
|
2
|
+
import { RenderResult } from "../render-engine.js";
|
|
3
|
+
import { IRenderPipeline, PipelineOptions } from "./render-pipeline.interface.js";
|
|
4
|
+
import type { IListenerInitializer } from "../../decorators/listen/listener-initializer.interface.js";
|
|
5
|
+
import { ITemplateCompiler } from "../templates/template-compiler.interface.js";
|
|
6
|
+
import { IErrorRenderer } from "./error-renderer.js";
|
|
7
|
+
import { IOutletResolver, IHostStyleMigrator } from "../managed-host/index.js";
|
|
8
|
+
import type { IManagedElementRegistry } from "../managed-host/managed-element-registry.js";
|
|
9
|
+
import type { IHostResolver } from "../dom-context/host-resolver.interface.js";
|
|
10
|
+
import type { ISharedStylesRegistry } from "../styles/shared-styles-registry.js";
|
|
11
|
+
/**
|
|
12
|
+
* Implements the responsibility of orchestrating the complete component rendering pipeline.
|
|
13
|
+
*
|
|
14
|
+
* @description
|
|
15
|
+
* Coordinates the execution of the rendering pipeline steps: initialization,
|
|
16
|
+
* template compilation, DOM replacement, and lifecycle management. Acts as
|
|
17
|
+
* the central orchestrator for component rendering after skeleton display.
|
|
18
|
+
*
|
|
19
|
+
* @architecture
|
|
20
|
+
* Pipeline Steps:
|
|
21
|
+
* 1. Check for initializer and execute async initialization
|
|
22
|
+
* 2. Retrieve and preprocess template source
|
|
23
|
+
* 3. Compile template with reactive bindings
|
|
24
|
+
* 4. Replace skeleton with compiled element
|
|
25
|
+
* 5. Start lifecycle manager
|
|
26
|
+
* 6. Handle errors with overlay display
|
|
27
|
+
*/
|
|
28
|
+
export declare class RenderPipeline implements IRenderPipeline {
|
|
29
|
+
private readonly hostResolver;
|
|
30
|
+
private readonly templateCompiler;
|
|
31
|
+
private readonly errorHandler;
|
|
32
|
+
private readonly outletResolver;
|
|
33
|
+
private readonly styleMigrator;
|
|
34
|
+
private readonly managedRegistry;
|
|
35
|
+
private readonly listenerInitializer;
|
|
36
|
+
private readonly sharedStyles;
|
|
37
|
+
/**
|
|
38
|
+
* Creates a RenderPipeline instance
|
|
39
|
+
*
|
|
40
|
+
* @param hostResolver - Host resolver for component-DOM context mapping
|
|
41
|
+
* @param templateCompiler - Compiler for template processing
|
|
42
|
+
* @param errorHandler - Renderer for error display
|
|
43
|
+
* @param outletResolver - Resolver for outlet element lookup
|
|
44
|
+
* @param styleMigrator - Migrator for host styling
|
|
45
|
+
* @param managedRegistry - Registry for managed element tracking
|
|
46
|
+
* @param listenerInitializer - Initializer for event listener bindings
|
|
47
|
+
* @param sharedStyles - Optional shared styles registry for adoptedStyleSheets
|
|
48
|
+
*/
|
|
49
|
+
constructor(hostResolver: IHostResolver | null, templateCompiler: ITemplateCompiler, errorHandler: IErrorRenderer, outletResolver: IOutletResolver, styleMigrator: IHostStyleMigrator, managedRegistry: IManagedElementRegistry, listenerInitializer: IListenerInitializer, sharedStyles?: ISharedStylesRegistry | null);
|
|
50
|
+
/**
|
|
51
|
+
* Executes the complete render pipeline for a component
|
|
52
|
+
*
|
|
53
|
+
* @description
|
|
54
|
+
* Runs the full rendering sequence: initialization, compilation, DOM update,
|
|
55
|
+
* and lifecycle setup. Handles errors by showing error overlays.
|
|
56
|
+
*
|
|
57
|
+
* @param options - Pipeline execution options
|
|
58
|
+
* @returns Promise<RenderResult> - Component, DOM context, lifecycle, and cleanup
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const result = await pipeline.execute({
|
|
63
|
+
* component,
|
|
64
|
+
* metadata,
|
|
65
|
+
* domContext,
|
|
66
|
+
* compiledTemplate,
|
|
67
|
+
* hostElement
|
|
68
|
+
* });
|
|
69
|
+
* // Result includes cleanup function
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
execute<T extends SmartComponent>(options: PipelineOptions<T>): Promise<RenderResult>;
|
|
73
|
+
/**
|
|
74
|
+
* Processes a managed host element with SmartComponent association.
|
|
75
|
+
*
|
|
76
|
+
* @description
|
|
77
|
+
* Executes the managed host policy for elements rendered by the SmartComponents engine:
|
|
78
|
+
* 1. Resolve outlet element (target for styling migration)
|
|
79
|
+
* 2. Migrate class/id from host to outlet
|
|
80
|
+
*
|
|
81
|
+
* @param rootElement - The compiled root element
|
|
82
|
+
* @param hostElement - The managed host element
|
|
83
|
+
* @param metadata - Component metadata for input declarations
|
|
84
|
+
*/
|
|
85
|
+
private processManagedHost;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=render-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/rendering/pipeline/render-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAEjF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,YAAW,eAAe;IAoBlD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IArB/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuB;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAE5D;;;;;;;;;;;OAWG;gBAEgB,YAAY,EAAE,aAAa,GAAG,IAAI,EAClC,gBAAgB,EAAE,iBAAiB,EACnC,YAAY,EAAE,cAAc,EAC7C,cAAc,EAAE,eAAe,EAC/B,aAAa,EAAE,kBAAkB,EACjC,eAAe,EAAE,uBAAuB,EACxC,mBAAmB,EAAE,oBAAoB,EACzC,YAAY,GAAE,qBAAqB,GAAG,IAAW;IAiBnD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,OAAO,CAAC,CAAC,SAAS,cAAc,EACpC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,YAAY,CAAC;IAoIxB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kBAAkB;CAW3B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { SmartComponent } from "../../core/smart-component.js";
|
|
2
|
+
import { ComponentMetadata } from "../../core/component-metadata.js";
|
|
3
|
+
import { RenderResult } from "../render-engine.js";
|
|
4
|
+
import { IDomContext } from "../dom-context/dom-context.interface.js";
|
|
5
|
+
import { ICompiledTemplate } from "../templates/compiled-template.interface.js";
|
|
6
|
+
/**
|
|
7
|
+
* Defines the responsibility of configuring pipeline execution.
|
|
8
|
+
*/
|
|
9
|
+
export interface PipelineOptions<T extends SmartComponent = SmartComponent> {
|
|
10
|
+
/** The component instance to render */
|
|
11
|
+
component: T;
|
|
12
|
+
/** Component metadata (template, initializer, lifecycle, etc) */
|
|
13
|
+
metadata: ComponentMetadata;
|
|
14
|
+
/** DOM context for managing subscriptions and cleanup */
|
|
15
|
+
domContext: IDomContext;
|
|
16
|
+
/** Pre-compiled template (from cache or fresh compilation) */
|
|
17
|
+
compiledTemplate: ICompiledTemplate;
|
|
18
|
+
/** The custom element itself (for host projection content) */
|
|
19
|
+
hostElement?: HTMLElement;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Defines the responsibility of orchestrating the complete component rendering pipeline.
|
|
23
|
+
*
|
|
24
|
+
* @description
|
|
25
|
+
* Defines the contract for executing the complete component rendering pipeline,
|
|
26
|
+
* coordinating initialization, compilation, and lifecycle management.
|
|
27
|
+
*/
|
|
28
|
+
export interface IRenderPipeline {
|
|
29
|
+
/**
|
|
30
|
+
* Executes the complete render pipeline for a component.
|
|
31
|
+
*
|
|
32
|
+
* @param options - Pipeline configuration options
|
|
33
|
+
* @param domContext - DOM context for managing subscriptions and cleanup
|
|
34
|
+
* @returns Promise resolving to render result with cleanup function
|
|
35
|
+
* @throws Error if options are null/undefined
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const result = await renderPipeline.execute(
|
|
40
|
+
* {
|
|
41
|
+
* component: myComponent,
|
|
42
|
+
* metadata,
|
|
43
|
+
* domContext,
|
|
44
|
+
* compiledTemplate,
|
|
45
|
+
* hostElement: customElement
|
|
46
|
+
* },
|
|
47
|
+
* domContext
|
|
48
|
+
* );
|
|
49
|
+
* // Call result.cleanup() when done
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
execute(options: PipelineOptions, domContext: IDomContext): Promise<RenderResult>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=render-pipeline.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-pipeline.interface.d.ts","sourceRoot":"","sources":["../../../src/rendering/pipeline/render-pipeline.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IACxE,uCAAuC;IACvC,SAAS,EAAE,CAAC,CAAC;IACb,iEAAiE;IACjE,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,yDAAyD;IACzD,UAAU,EAAE,WAAW,CAAC;IACxB,8DAA8D;IAC9D,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CACL,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,WAAW,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-pipeline.interface.js","sourceRoot":"","sources":["../../../src/rendering/pipeline/render-pipeline.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { DomContentType } from "../dom-context/dom-context.interface.js";
|
|
2
|
+
/**
|
|
3
|
+
* Implements the responsibility of orchestrating the complete component rendering pipeline.
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Coordinates the execution of the rendering pipeline steps: initialization,
|
|
7
|
+
* template compilation, DOM replacement, and lifecycle management. Acts as
|
|
8
|
+
* the central orchestrator for component rendering after skeleton display.
|
|
9
|
+
*
|
|
10
|
+
* @architecture
|
|
11
|
+
* Pipeline Steps:
|
|
12
|
+
* 1. Check for initializer and execute async initialization
|
|
13
|
+
* 2. Retrieve and preprocess template source
|
|
14
|
+
* 3. Compile template with reactive bindings
|
|
15
|
+
* 4. Replace skeleton with compiled element
|
|
16
|
+
* 5. Start lifecycle manager
|
|
17
|
+
* 6. Handle errors with overlay display
|
|
18
|
+
*/
|
|
19
|
+
export class RenderPipeline {
|
|
20
|
+
hostResolver;
|
|
21
|
+
templateCompiler;
|
|
22
|
+
errorHandler;
|
|
23
|
+
outletResolver;
|
|
24
|
+
styleMigrator;
|
|
25
|
+
managedRegistry;
|
|
26
|
+
listenerInitializer;
|
|
27
|
+
sharedStyles;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a RenderPipeline instance
|
|
30
|
+
*
|
|
31
|
+
* @param hostResolver - Host resolver for component-DOM context mapping
|
|
32
|
+
* @param templateCompiler - Compiler for template processing
|
|
33
|
+
* @param errorHandler - Renderer for error display
|
|
34
|
+
* @param outletResolver - Resolver for outlet element lookup
|
|
35
|
+
* @param styleMigrator - Migrator for host styling
|
|
36
|
+
* @param managedRegistry - Registry for managed element tracking
|
|
37
|
+
* @param listenerInitializer - Initializer for event listener bindings
|
|
38
|
+
* @param sharedStyles - Optional shared styles registry for adoptedStyleSheets
|
|
39
|
+
*/
|
|
40
|
+
constructor(hostResolver, templateCompiler, errorHandler, outletResolver, styleMigrator, managedRegistry, listenerInitializer, sharedStyles = null) {
|
|
41
|
+
this.hostResolver = hostResolver;
|
|
42
|
+
this.templateCompiler = templateCompiler;
|
|
43
|
+
this.errorHandler = errorHandler;
|
|
44
|
+
if (!templateCompiler)
|
|
45
|
+
throw new Error("TemplateCompiler is required");
|
|
46
|
+
if (!errorHandler)
|
|
47
|
+
throw new Error("ErrorHandler is required");
|
|
48
|
+
if (!outletResolver)
|
|
49
|
+
throw new Error("OutletResolver is required");
|
|
50
|
+
if (!styleMigrator)
|
|
51
|
+
throw new Error("StyleMigrator is required");
|
|
52
|
+
if (!managedRegistry)
|
|
53
|
+
throw new Error("ManagedElementRegistry is required");
|
|
54
|
+
if (!listenerInitializer)
|
|
55
|
+
throw new Error("ListenerInitializer is required");
|
|
56
|
+
this.outletResolver = outletResolver;
|
|
57
|
+
this.styleMigrator = styleMigrator;
|
|
58
|
+
this.managedRegistry = managedRegistry;
|
|
59
|
+
this.listenerInitializer = listenerInitializer;
|
|
60
|
+
this.sharedStyles = sharedStyles;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Executes the complete render pipeline for a component
|
|
64
|
+
*
|
|
65
|
+
* @description
|
|
66
|
+
* Runs the full rendering sequence: initialization, compilation, DOM update,
|
|
67
|
+
* and lifecycle setup. Handles errors by showing error overlays.
|
|
68
|
+
*
|
|
69
|
+
* @param options - Pipeline execution options
|
|
70
|
+
* @returns Promise<RenderResult> - Component, DOM context, lifecycle, and cleanup
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const result = await pipeline.execute({
|
|
75
|
+
* component,
|
|
76
|
+
* metadata,
|
|
77
|
+
* domContext,
|
|
78
|
+
* compiledTemplate,
|
|
79
|
+
* hostElement
|
|
80
|
+
* });
|
|
81
|
+
* // Result includes cleanup function
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
async execute(options) {
|
|
85
|
+
const { component, metadata, domContext, compiledTemplate, hostElement } = options;
|
|
86
|
+
let lifecycleManager = null;
|
|
87
|
+
try {
|
|
88
|
+
// Execute initializer factory if configured
|
|
89
|
+
const initializerFactory = metadata.initializer;
|
|
90
|
+
if (initializerFactory) {
|
|
91
|
+
const initializerInstance = initializerFactory();
|
|
92
|
+
const success = await initializerInstance.initialize(component);
|
|
93
|
+
if (!success) {
|
|
94
|
+
const errorMsg = "Component initialization failed";
|
|
95
|
+
const resolvedConstants = typeof metadata.constants === "function"
|
|
96
|
+
? metadata.constants(hostElement ?? component)
|
|
97
|
+
: metadata.constants;
|
|
98
|
+
await this.errorHandler.render(domContext, errorMsg, {
|
|
99
|
+
errorTemplate: metadata.errorTemplate,
|
|
100
|
+
constants: resolvedConstants,
|
|
101
|
+
});
|
|
102
|
+
throw new Error(errorMsg);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Compile template to HTML element
|
|
106
|
+
const templateSource = compiledTemplate.templateString;
|
|
107
|
+
const compiledElement = await this.templateCompiler.compile(templateSource, component, domContext, metadata);
|
|
108
|
+
// Apply managed host processing if host element provided
|
|
109
|
+
if (hostElement) {
|
|
110
|
+
// Register host element as managed BEFORE processing
|
|
111
|
+
this.managedRegistry.register(hostElement, metadata.selector);
|
|
112
|
+
this.processManagedHost(compiledElement, hostElement, metadata);
|
|
113
|
+
}
|
|
114
|
+
// Register root element as managed component element
|
|
115
|
+
this.managedRegistry.register(compiledElement, metadata.selector);
|
|
116
|
+
// Register element in DOM context — this also replaces the skeleton in the DOM.
|
|
117
|
+
domContext.setElement(compiledElement, DomContentType.COMPONENT);
|
|
118
|
+
// Apply shared stylesheets via adoptedStyleSheets (Lit pattern)
|
|
119
|
+
const targetRoot = domContext.getTargetRoot();
|
|
120
|
+
if (this.sharedStyles &&
|
|
121
|
+
typeof ShadowRoot !== "undefined" &&
|
|
122
|
+
targetRoot instanceof ShadowRoot) {
|
|
123
|
+
this.sharedStyles.applyTo(targetRoot);
|
|
124
|
+
}
|
|
125
|
+
// Inject component styles into the Shadow Root after setElement
|
|
126
|
+
if (metadata.styles) {
|
|
127
|
+
const styleEl = compiledElement.ownerDocument.createElement("style");
|
|
128
|
+
styleEl.textContent = metadata.styles;
|
|
129
|
+
domContext.getTargetRoot().prepend(styleEl);
|
|
130
|
+
}
|
|
131
|
+
// Initialize event listeners after DOM replacement
|
|
132
|
+
this.listenerInitializer.initialize(domContext, component);
|
|
133
|
+
// Notify component of render completion
|
|
134
|
+
component.onRenderComplete?.();
|
|
135
|
+
// Register component in host resolver before starting lifecycle
|
|
136
|
+
if (this.hostResolver) {
|
|
137
|
+
this.hostResolver.register(component, domContext);
|
|
138
|
+
}
|
|
139
|
+
// Start lifecycle manager if configured
|
|
140
|
+
const lifecycleFactory = metadata.lifecycle;
|
|
141
|
+
if (lifecycleFactory) {
|
|
142
|
+
const lifecycleManagerInstance = lifecycleFactory();
|
|
143
|
+
lifecycleManagerInstance.startListening(component);
|
|
144
|
+
lifecycleManager = lifecycleManagerInstance;
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
cleanup: () => {
|
|
148
|
+
// Unregister from host resolver
|
|
149
|
+
if (this.hostResolver) {
|
|
150
|
+
this.hostResolver.unregister(component);
|
|
151
|
+
}
|
|
152
|
+
// Unregister managed elements on cleanup
|
|
153
|
+
if (hostElement) {
|
|
154
|
+
this.managedRegistry.unregister(hostElement);
|
|
155
|
+
}
|
|
156
|
+
this.managedRegistry.unregister(compiledElement);
|
|
157
|
+
if (lifecycleManager) {
|
|
158
|
+
lifecycleManager.stopListening();
|
|
159
|
+
lifecycleManager.dispose();
|
|
160
|
+
}
|
|
161
|
+
domContext.destroy();
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
const errorMsg = error instanceof Error ? error.message : "Render pipeline failed";
|
|
167
|
+
console.error("[RenderPipeline] Pipeline failed:", errorMsg, error);
|
|
168
|
+
const resolvedConstants = typeof metadata.constants === "function"
|
|
169
|
+
? metadata.constants(hostElement ?? component)
|
|
170
|
+
: metadata.constants;
|
|
171
|
+
await this.errorHandler.render(domContext, errorMsg, {
|
|
172
|
+
errorTemplate: metadata.errorTemplate,
|
|
173
|
+
constants: resolvedConstants,
|
|
174
|
+
});
|
|
175
|
+
return {
|
|
176
|
+
cleanup: () => {
|
|
177
|
+
domContext.destroy();
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Processes a managed host element with SmartComponent association.
|
|
184
|
+
*
|
|
185
|
+
* @description
|
|
186
|
+
* Executes the managed host policy for elements rendered by the SmartComponents engine:
|
|
187
|
+
* 1. Resolve outlet element (target for styling migration)
|
|
188
|
+
* 2. Migrate class/id from host to outlet
|
|
189
|
+
*
|
|
190
|
+
* @param rootElement - The compiled root element
|
|
191
|
+
* @param hostElement - The managed host element
|
|
192
|
+
* @param metadata - Component metadata for input declarations
|
|
193
|
+
*/
|
|
194
|
+
processManagedHost(rootElement, hostElement, _metadata) {
|
|
195
|
+
// Step 1: Resolve outlet element
|
|
196
|
+
const outlet = this.outletResolver.resolve(rootElement);
|
|
197
|
+
// Step 2: Migrate class/id styling from host to outlet
|
|
198
|
+
this.styleMigrator.migrate(hostElement, outlet);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=render-pipeline.js.map
|